Prezentace se nahrává, počkejte prosím

Prezentace se nahrává, počkejte prosím

Správa procesů. Základní pojmy Program Úloha (job) Proces – Vlákno procesu (thread) – Obraz procesu.

Podobné prezentace


Prezentace na téma: "Správa procesů. Základní pojmy Program Úloha (job) Proces – Vlákno procesu (thread) – Obraz procesu."— Transkript prezentace:

1 Správa procesů

2 Základní pojmy Program Úloha (job) Proces – Vlákno procesu (thread) – Obraz procesu

3 Zpracování úlohy programúloha proces Dokončený proces Předáno ke zpracování Začalo zpracování Zpracování dokončeno

4 Vznik procesu První spuštěný proces systému (init) Spuštění programu jiným procesem (rodičem procesu). Může to být i proces command, resp. bash Klonováním (fork) již běžícího procesu Takto vzniká stromová struktura procesů s kořenem u procesu intit (v UNIXu) Ve Windows není stromová struktura striktně dodržována

5 Ukončení procesu Proces ukončí sám sebe - funkce exit() Je ukončen svým rodičem - funkce abort() Je odstraněn uživatel, či systémem Po ukončení rodičovského procesu jsou potomci – Ukončeni, nebo – Se stanou sirotky ( v UNIXu se jejich rodičem se stane kořenový proces)

6 Stavy procesu novýPřipravený ready Běžící runing Čekající waiting dokončený Přidělení prostředků Přidělen procesor Odebrán procesor Potřebuje událost Událost nastala

7 Další stavy Pozastavený – varianta stavu čekající, čekání je vynuceno signálem zaslaným jiným programem (např. ladění programu) Spící (sleeping) – varianta stavu čekající, proces čeká na událost, kterou je uplynutí časového kvanta Zombie – varianta stavu ukončený, proces však neuvolnil přidělené prostředky

8 Pseudoparaelismus Cíl: Operační systém by měl umožnit uživatelům spustit několik programů současně a přepínat mezi nimi takto vzniklými procesy (multiprogramová a multiprocesní práce) Fakt: Moderní počítače v některých ohledech porušují von- Neumannovo schéma počítače. Jsou schopné současně provádět program a vstupní nebo výstupní operace, ale obvykle mají pouze jeden procesor, nejsou tedy schpny paraelního zpracování dat (multitasking) Řešení: viz předchozí obrázek. Procesy sice neběží současně (na to by bylo potřeba více procesorů), ale uživateli se situace tak jeví. Proto pseudoparaelismus.

9 Diagram využití procesoru

10 Plánování procesů Krátkodobé (short-term, CPU sheduling): kterému procesu bude přidělen procesor Střednědobé (medium-term): Pokud je nedostatek paměti, který čekající nebo připravený proces bude odsunut do vnější paměti. Dlouhodobé (long-term, job sheduling): která úloha bude spuštěna při dávkovém zpracování ( při běžné práci na osobním počítači řeší (či neřeší) toto uživatel)

11 Plánování procesoru (krátkodobé plánování) 1) Pokud proces přejde ze stavu běžící do stavu čekající 2) Pokud proces skončí 3) Pokud proces přejde ze stavu běžící do stavu připravený 4) Pokud proces přejde ze stavu čekající do stavu připravený (užívá se zřídka, obvykle v úlohách běžících v reálném čase)

12 Plánování procesoru Nepreempitivní: proces se musí procesoru sám vzdát (situace 1,2), například když – Skončí – Potřebuje událost – Sám zjistí, že uplynulo časové kvantum Při nestandardním chování procesu může dojít k zablokování počítače (nižší verze Windows) Preemptivní: Procesor může procesu odebrat plánovač procesů (bod 3) Preemptivní v reálném čase: Plánovač procesů sleduje i neběžící procesy a podle jejich stavu přeplánovává využití procesoru (bod 4)

13 Strategie plánování procesoru - požadavky spravedlnost: každý proces dostane spravedlivý díl času procesoru efektivita: udržovat maximální vytížení procesoru, případně jiné části systému čas odezvy: minimalizovat dobu odezvy pro interaktivní uživatele doba obrátky: minimalizovat dobu zpracování každé dávkové úlohy průchodnost: maximalizovat množství úloh zpracovaných za jednotku času

14 Strategie plánování procesoru FCFS (Firs Come First Served): Procesy ve stavu připravený se řadí do fronty FIFO, nepreemptivní RR (Round Robin Sheduling): Procesy ve stavu připravený se řadí do fronty FIFO, preemptivní SJF (Short Job First): Přednost mají úlohy, u kterých se předpokládá kratší doba běhu, nebo nevyužití časového kvanta na základě jejich chování v minulosti. Prioritní strategie (Priority): Procesy jsou ve frontě řazeny podle své priority, může dojít ke stárnutí (starvation) procesů s nízkou prioritou Strategie založené na proměnné délce časového kvanta: Podle priority, nebo podle délky kvanta využité v minulosti

15 Process Control Block (PCB) Informace pro správu procesů – PID procesu – Obsah CPU registrů – Ukazatel na aktuální instrukci – Stav procesu – Ukazatel na další proces ve frontě – Ukazatel na seznam procesů potomků – Ukazatel na rodičovský proces – Číslo uživatele a skupiny uživatelů

16 Process Control Block Informace pro správu procesoru – Aktuální časové kvantum – Využití časových kvant v minulosti – Priorita procesu Infrormace pro správu paměti – Ukazatele na segmenty paměti – Tabulky stránek – Informace pro ochranu paměti Informace pro správu souborů – Aktuální adresář – Přístupová práva k souborům Účtovací informace – Celkový čas využití procesoru – Počet přečtených a zapsaných diskových bloků – Počet vytištěných stránek na tiskárně

17 Změna kontextu (Context Switch) Při přechodu procesu ze stavu běžící do stavu čekající, nebo připravený se uloží všechny PCB informace – Do zásobníku procesu – Do předem připraveného místa v adresové části paměti procesu Při přechodu procesu opět do stavu běžící se provede obnovení informací (context restore)

18 Vlákna (Thread) Každý proces používá oddělené místo v paměti, komunikaci procesů musí zajistit operační systém Některé systému umožňují rozdělení procesu na více vláken (multithreading). Vlákna na rozdíl od procesů sdílejí stejný paměťový prostor a je mezi nimi jednodušší spolupráce.

19 „Priority“ procesů (Windows) Hodnoty 0-31 – 0: Nulový proces – 1: Nečinný proces – 4: Nízká priorita – 6: Podprůměrná priorita – 8: Normální priorita – 10: Nadprůměrná priorita – 13: Vysoká priorita – 15: Maximální priorita pro běžné procesy – 24: Priorita procesů reálného času – 31: maximální hodnota Priority lze vidět na Crtl-Alt-Del Zobrazit-Vybrat sloupce (slovní vyjádření), nebo pomocí specializovaných nástrojů. Nastavovat je lze jen velmi omezeně a pomocí specializovaných programů.

20 Priority procesů Windows Pro každou prioritu existuje samostatná fronta připravených procesů Procesor je vždy přednostně přidělován procesům s vyšší prioritou Procesor je přidělován na pevnou dobu, obvykle 2 tiky procesoru (Systém-Upřesnit-Nastavení výkonu-Upřesnit-Optimalizovat pro programy), nebo 12 tiků (Optimalizovat pro služby) Problém stárnutí procesů řeší uživatel

21 Priority procesů UNIX Běžné procesy 1-40 Procesy reálného času 1-99 (odlišný způsob zpracování, například vlastní plánovač procesoru) Nice hodnota od -20 do +19 zvyšuje, nebo snižuje prioritu procesu – Výsledná priorita = základní priorita – nice Příkazy nice –n – nice –n 10 ps – ps -le

22 Plánování procesů LINUX Z připravených procesů je vybrán proces s nejvyšší prioritou. Ostatním procesů je dočasně dynamicky zvýšena priorita (prevence stárnutí procesů) Časové kvantum je odvozeno od časových kvant spotřebovaných v minulosti (Drakeovy vzorce cyklické obsluhy)


Stáhnout ppt "Správa procesů. Základní pojmy Program Úloha (job) Proces – Vlákno procesu (thread) – Obraz procesu."

Podobné prezentace


Reklamy Google