Wyjasniij Czym W Systemie Operacyjnym Jest Proces I Jakie Moze Miec Stany

Proces - jedno z najbardziej podstawowych pojęć w informatyce. Z definicji jest to po prostu egzemplarz wykonywanego programu. Należy odróżnić jednak proces od wątku - każdy proces posiada własną przestrzeń adresową, natomiast wątki posiadają wspólną sekcję danych.

Każdy proces posiada tzw. "rodzica". W ten sposób tworzy się swego rodzaju drzewo procesów. Proces może (ale nie musi) mieć swoje procesy potomne.

Za zarządzanie procesami odpowiada jądro systemu operacyjnego. Sposób obsługi procesów jest różny dla różnych systemów operacyjnych.

Skład i zasoby procesu
W skład procesu wchodzi:
kod programu,
licznik rozkazów,
stos,
sekcja danych.

Każdemu procesowi przydzielone zostają zasoby, takie jak:
procesor,
pamięć,
dostęp do urządzeń wejścia-wyjścia,
pliki.

Tworzenie procesów
Użytkownik za pomocą powłoki zleca uruchomienie programu, proces wywołujący wykonuje polecenie fork, lub jego pochodną.
System operacyjny tworzy przestrzeń adresową dla procesu oraz strukturę opisującą nowy proces w następujący sposób:
wypełnia strukturę opisującą proces,
kopiuje do przestrzeni adresowej procesu dane i kod, zawarte w pliku wykonywalnym,
ustawia stan procesu na działający,
dołącza nowy proces do kolejki procesów oczekujących na procesor (ustala jego priorytet),
zwraca sterowanie do powłoki użytkownika.

Wykonywanie procesów

Dany proces rozpoczyna wykonywanie w momencie przełączenia przez Jądro systemu operacyjnego przestrzeni adresowej na przestrzeń adresową danego procesu oraz takie zaprogramowanie procesora, by wykonywał kod procesu. Wykonujący się proces może żądać pewnych zasobów, np. większej ilości pamięci. Zlecenia takie są na bieżąco realizowane przez system operacyjny.

Wykonanie procesu musi przebiegać sekwencyjnie. Może przyjmować kilka stanów:
działający,
czekający na udostępnienie przez system operacyjny zasobów,
przeznaczony do zniszczenia,
proces zombie,
właśnie tworzony itd.

Kończenie procesów
Proces wykonuje ostatnią instrukcję - zwraca do systemu operacyjnego kod zakończenia. Jeśli proces zakończył się poprawnie zwraca wartość 0, w przeciwnym wypadku zwraca wartość kodu błędu.
W momencie zwrotu do systemu operacyjnego kodu zakończenia, system operacyjny ustawia stan procesu na przeznaczony do zniszczenia i rozpoczyna zwalnianie wszystkich zasobów, które w czasie działania procesu zostały temu procesowi przydzielone.
System operacyjny po kolei kończy wszystkie procesy potomne w stosunku do procesu macierzystego.
System operacyjny zwalnia przestrzeń adresową procesu. Jest to dosłowna śmierć procesu.
System operacyjny usuwa proces z kolejki procesów gotowych do uruchomienia i szereguje zadania. Jest to ostatnia czynność wykonywana na rzecz procesu.
Procesor zostaje przydzielony innemu procesowi.

O ile nie zaznaczono inaczej, treść tej strony objęta jest licencją Creative Commons Attribution-ShareAlike 3.0 License