1 / 18

Riadenie procesov

Riadenie procesov. Úvod. Ľubovoľná aplikácia, ktorú spustíme vytvorí v OS proces Jednému procesu zodpovedá práve jeden program (ale jednému programu môže prislúchať viac procesov) Procesy sa medzi sebou prepínajú – každý chvíľu zamestnáva procesor (ťahá pílku). Proces.

anoush
Download Presentation

Riadenie procesov

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Riadenie procesov

  2. Úvod • Ľubovoľná aplikácia, ktorú spustíme vytvorí v OS proces • Jednému procesu zodpovedá práve jeden program (ale jednému programu môže prislúchať viac procesov) • Procesy sa medzi sebou prepínajú – každý chvíľu zamestnáva procesor (ťahá pílku)

  3. Proces • je to program, ktorý sa práve vykonáva • vykonávanie je sekvenčné: v každom časovom okamihu sa vykonáva nanajvýš jedna inštrukcia daného procesu a po jej vykonaní sa prejde na ďaľšiu inštrukciu procesu alebo sa začne vykonávať iný proces. • proces je aktívna, dynamická entita na rozdiel od (textu) programu, ktorý je statickou, pasívnou entitou.

  4. Charakteristiky procesu • Kód – text programu (strojový kód) • Hodnoty registrov – akumulátor, IP, SP, ... • PID – identifikačné číslo procesu • Dáta procesu – uložené v RAM • Stav procesu • Všetky tieto údaje sa uchovávajú v tabuľke procesov – je to špeciálna dátová štruktúra v chránenej časti RAM

  5. Stav procesu • určuje prípustné operácie s procesom a reakcie procesu na ne • Stavy: • Nový (NEW) – proces bol práve vytvorený a ešte nebol pripustený k CPU • Bežiaci (RUNNING) – práve je vykonávaný CPU • Pripravený (READY) – čaká na CPU, kým ho uvoľní iný proces • Čakajúci (WAITING) – nevykonáva sa pretože čaká na nejakú udalosť (vstup z klávesnice a pod.) • Ukončený (TERMINATED) – vykonal poslednú inštrukciu alebo ho OS násilne ukončil

  6. Životný cyklus • Prechody medzi jednotlivými stavmi • Prechody: • Pripustenie (admit) – NEW  READY • Naplánovanie (dispatch) – READY  RUNNING • Prerušenie – RUNNING  READY • Čakanie – READY  WAITING • Po výskyte udalostí – WAITING  READY • Ukončenie – RUNNING  TERMINATED

  7. Informácie o procese • Sú uložené v tabuľke procesov, ktorá sa skladá z tzv. PCB (process control blockov), ktoré obsahujú: • PID • Stav procesu • Obsah registrov • Informácie pre plánovač (priorita, front, ...) • Informácie o pridelenej pamäti • Účtovnícke operácie (čas strávený na CPU, čas posledného behu, ...) • Stav I/O – priradené zariadenia, súbory ,... • Tieto informácie nazývame aj kontextom procesu

  8. Prepínanie kontextu • Nastáva pri zmene bežiaceho procesu • Ak pri tom prepíname z procesu A na proces B, tak : • informácie o procese A sa uložia do jeho PCB, • obnoví sa proces B z informácií uložených v jeho PCB, • riadenie sa odovzdá procesu B

  9. Vytváranie procesu • procesy sú vytvárané inými procesmi: proces-rodič vytvorí proces-potomka • deje sa to volaním systému vytvor-proces • procesy tvoria strom, ktorého koreň vzniká pri štarte OS • po vytvorení potomka môže rodič • pokračovať v činnosti • počkať na ukončenie potomka. • OS umožňuje zdieľanie zdrojov medzi rodičom a potomkom

  10. Vytváranie procesu - UNIX • Rodičovský proces vytvorí nový proces príkazom „fork“ • Nový proces má zdrojový text rodiča ale nové informácie v PCB • Príkazom „exec“ zmeníme zdrojový text za iný • Rodič má informáciu o svojich potomkoch (vie ich PIDy)

  11. Vytváranie procesu - DOS • nový proces je možné vytvoriť volaním exec, ale rodič nemôže súbežne pokračovať, musí počkať na ukončenie potomka

  12. Vytváranie procesu - WIN • preferovaným spôsobom vytvárania potomkov je jednotný mechanizmus vytvor-proces, t.j. nový proces dostane aj nový kód • podporuje sa aj mechanizmus fork/exec

  13. Ukončenie procesu • Proces vykoná svoje posledné inštrukcie (na konci je uskutočnené systémové volanie exit), alebo je násilne ukončený systémovým volaním abort. • OS uvoľní všetky zdroje systému, ktoré boli pridelené. Ak je to nutné, násilne sa ukončia iné súvisiace procesy. • Po ukončení procesu je jeho návratový kód vrátený rodičovskému procesu. • PCB potomka sa uvoľní až vtedy, keď jeho rodič spracoval (vzal na vedomie volaním wait) túto návratovú hodnotu. • Ak to rodič neurobí, z potomka sa stane zombie ─ ukončený proces, ktorý stále zaberá miesto v tabuľke procesov

  14. Plánovanie procesu • činnosť OS, ktorá vyberá medzi procesmi a určuje poradie ich vykonávania. • Rozlišujeme tri druhy plánovania procesov: • Dlhodobé • Strednodobé • krátkodobé

  15. Dlhodobé plánovanie • Ak je v systéme viacero užívateľských úloh očakávajúcich spustenie, OS musí určiť, ktorá z nich sa má spustiť ako nasledujúca. • Jedná sa vlastne o naplánovanie prechodu zo stavu novovytvorený do stavu čakajúci.

  16. Strednodobé plánovanie • Súvisí s odkladaním procesov na disk (swapping), OS rozhoduje o tom, ktorý proces sa odsunie na disk alebo presunie do op. pamäti.

  17. Krátkodobé plánovanie • Určenie procesu spomedzi pripravených, ktorý sa má stať bežiacim.

  18. Zmena stavu procesu • OS musí vybrať proces, ktorý prejde do stavu bežiaci • Pripravené procesy sú organizované vo fronte. V prípade že procesy majú priority môže byť front usporiadaný podľa hodnôt priorít. Priorita určuje, ktorý z pripravených procesov sa vyberie plánovačom ─ čím vyššia priorita, tým väčšia šanca dostať sa k CPU. • Poznamenajme, že aj procesy čakajúce na udalosti sú zaradené vo frontoch, typicky existuje front pre každý typ udalosti ako aj pre každé I/O zariadenie.

More Related