Proces, implementace procesu, konstrukce pro vytváření procesů

Z FAV wiki
Přejít na: navigace, hledání

Proces = program, který běží · Má vlastní adresový prostor, ve kterém běží · V adresním prostoru má kód spustitelného programu, data, zásobník · S procesem sdruženy registry a další informace potřebné k běhu programu · Stavy: běžící, připraven, blokován


Základní stavy procesů Následující stavy procesů se vyskytují ve všech víceúlohových systémech:

   * vytvořený (created) - proces je vytvořen buď příkazem uživatele (u terminálu), nebo na žádost operačního systému o provedení služby, či na žádost jiného procesu (rodiče)
   * připravený (ready) nebo čekající (waiting) - připravený pro vstup do stavu běžící, čeká pouze na přidělení procesoru
   * běžící (running) - procesu je přidělen procesor a právě se provádí příslušné programy
   * blokovaný (blocked) - proces je převeden do tohoto stavu v případě, kdy čeká na dokončení nějaké vstupně-výstupní operace, případně na skončení jiného procesu, uvolnění zdroje, synchronizační primitivum a podobně
   * ukončený (terminated) - proces skončil

činnosti.

Stavy-procesu.jpg

Implementace procesu OS udržuje tabulku nazývanou TABULKA PROCESŮ - každý proces v ní má položkou nazývanou PCB (Process Control Block). PCB obsahuje všechny informace, které musejí být uchovány, je-li proces přepnut ze stavu „běžící“ do „připraven“ nebo „blokován“ - tak aby bylo proces možné znovu spustit. Konkrétní obsah se liší mezi systémy, ale většina obsahuje: · Správa procesu - Identifikátory - Stavová informace procesoru - Stav procesu - Plánovací parametry procesu - Odkazy na rodiče a potomky - Nastavení meziprocesové komunikace · Správa paměti - Popis paměti = ukazatel, velikost, přístupová práva - Úsek paměti s kódem programu - Data - Zásobník · Správa souborů - Prostředí (aktuální adresář, …) - Otevřené soubory Konstrukce pid = fork(); if (pid == 0) jsem potomek; else jsem rodič;

Osobní nástroje
Jmenné prostory
Varianty
Akce
Navigace
Nástroje