Wielowątkowość/Obsługa procesów
Obsługa procesów
edytujZ 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
edytujTworzenie procesów występuje w czterech podstawowych przypadkach :
- Inicjalizacja systemu.
- Uruchomienie wywołania systemowego tworzącego proces przez działający proces.
- Żądanie użytkownika utworzenia nowego procesu.
- 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
edytujJest kilka sytuacji, w których może dojść do zakończenia procesu:
- Normalne zakończenie pracy (dobrowolne).
- Zakończenie pracy w wyniku błędu (dobrowolne).
- Błąd krytyczny (przymusowe).
- Zniszczenie przez inny proces (przymusowe).
Standard POSIX definiuje operacje: exit, abort, kill
.