Wielowątkowość/Obsługa procesów

Z Wikibooks, biblioteki wolnych podręczników.

Obsługa procesówEtap rozwoju: 25% (w dniu 13 lip 2014)[edytuj]

Z obsługą procesów wiąże się kilka elementarnych operacji: tworzenie, usuwanie, zmiana stanu, zmiana priorytetu. Nie wszystkie operacje na procesach są dostępne dla aplikacji. Dlatego też tutaj przyjrzymy się tylko tym ważnym z punktu widzenia programisty aplikacji.

Tworzenie procesów[edytuj]

Tworzenie procesów występuje w czterech podstawowych przypadkach :

  1. Inicjalizacja systemu.
  2. Uruchomienie wywołania systemowego tworzącego proces przez działający proces.
  3. Żądanie użytkownika utworzenia nowego procesu.
  4. Zainicjowanie zadania wsadowego.

W systemach zgodnych ze standardem POSIX funkcją, która odpowiedzialna jest za tworzenie nowego procesu jest fork. Natomiast w systemach z rodziny Windows NT odpowiedzialna za to będzie funkcja CreateProcess.

Usuwanie procesów[edytuj]

Jest kilka sytuacji, w których może dojść do zakończenia procesu:

  1. Normalne zakończenie pracy (dobrowolne).
  2. Zakończenie pracy w wyniku błędu (dobrowolne).
  3. Błąd krytyczny (przymusowe).
  4. Zniszczenie przez inny proces (przymusowe).

Standard POSIX definiuje operacje: exit, abort, kill.