Uvedení autoři, není-li uvedeno jinak, jsou autory tohoto výukového materiálu a všech jeho částí. Tento projekt je spolufinancován ESF a státním rozpočtem ČR. Název SŠ:SOU Uherský Brod Autoři:Ing. Radim Bublík Název prezentace: (DUMu) Správa procesů Tematická oblast:Operační systémy Ročník: 1. ročník oboru Mechanik opravář motorových vozidel Číslo projektu:CZ.1.07/1.5.00/ Datum vzniku:
Záměrem této sady výukových materiálů s názvem Operační systémy je poskytnout žákům potřebné informace o logické struktuře a fundamentálních principech fungování moderních operačních systémů, s nimiž (nebo jejich obdobami) se budou velmi pravděpodobně setkávat po celý svůj život. Jednotlivé DUMy (prezentace a pracovní listy) v této sadě pokrývají vybrané tematické oblasti, které jsou probírány v předmětu Informační a komunikační technologie na naší SŠ. Tato prezentace je konkrétně zaměřena na tematický celek Správa procesů.
Správa procesů je složitý mechanismus. Zahrnuje tyto elementy: Evidence procesů Běh procesůa multitasking Multithreading Správa front procesů Přidělování procesoru Komunikace procesů Priorita [1]
Program... soubor na vnějším paměťovém médiu, obsahující kód (instrukce) a případně nějaká konstantní data Proces... instance programu určená nejen jeho kódem, ale i dalšími vlastnostmi, jako je jeho stav, priorita, identifikační číslo, programový čítač, přidělené prostředky (včetně paměti), atd. [1]
Proces se může nacházet v různých stavech: nový (new) - proces byl právě vytvořen, jsou mu přidělovány prostředky běžící (running) - proces má právě přidělen procesor, jeho kód je vykonáván připravený (ready) - čeká na přidělení procesoru čekající (waiting) - čeká na přístup k I/O prostředku, o který požádal nebo čeká na událost (např. stisknutí klávesy) ukončený (terminated) - proces byl ukončen
Správce procesů vede tabulku procesů, záznam v této tabulce o konkrétním procesu se nazývá Process Control Block (PCB). Je to souhrn všech dat, která OS potřebuje k řízení procesů. Součástí PCB obvykle bývají tyto informace: PID (identifikační číslo procesu), případně další identif. čísla určující např. přístupová práva nebo vztah k jiným procesům stav procesu programový čítač určující, která instrukce se právě provádí (nebo má být provedena) hodnoty registrů ukazatele do front, ve kterých proces čeká (procesor, I/O zařízení) informace pro Správce paměti (tabulky obsazení paměti, evidence stránek, segmentů procesu) účtovací informace (týkají se přidělování procesoru) další momentálně přidělené prostředky (zařízení, otevřené soubory) [1]
Proces může vzniknout několika způsoby: spuštěním programu jiným procesem (kromě prvního spuštěného procesu v OS, samozřejmě), pak každý z procesů má jiný programový kód klonováním již spuštěného procesu (fork) – celý paměťový prostor původního procesu je zkopírován do nového adresového prostoru, pak je novému procesu vytvořen vlastní záznam v tabulce procesů (PCB) s některými údaji původními a některými novými, pak oba procesy pokračují souběžně od stejného místa
Některé OS (např. Unixy) vytvářejí stromovou strukturu procesů, ve které je zachyceno, který proces byl kterým spuštěn. Spouštějící proces (nadřízený uzel) se nazývá rodič (parent) a spouštěný proces je jeho synovským/dceřiným procesem (child). V kořeni stromu je “praproces”, který buď přímo nebo zprostředkovaně spustil všechny ostatní běžící procesy. Každý další proces má kromě svého vlastního PID také uloženo identif. číslo rodičovského procesu (PPID = Parent PID). Mezi rodičovským a synovským procesem existuje jistý vztah závislosti. Obvykle po ukončení rodičovského procesu bývají ukončeny všechny procesy jeho podstromu (všechny synovské procesy), až na výjimky, které z dobrých důvodů mají pokračovat v práci (např. zálohování nebo dlouhodobé výpočty). [1]
Typickým příkladem je ukončení všech procesů spuštěných uživatelem po jeho odhlášení (všechny jsou v podstromu jeho přihlašovacího či inicializačního procesu). Rodičovský proces může počkat na dokončení práce synovského procesu (použije volání jádra wait) nebo pokračovat ve své činnosti. Může taktéž v kterémkoliv okamžiku synovský proces ukončit (abort), například tehdy, když synovský proces splnil svůj úkol, pro který byl spuštěn. [1]
[1] VAVREČKOVÁ, Šárka. SLEZSKÁ UNIVERZITA V OPAVE. Operační systémy: Přednášky [online]. 2006, [cit ]. Dostupné z: