Univerzita Hradec Králové

Transkript

Univerzita Hradec Králové
Management procesu I
Mgr. Josef Horálek
Procesy
= Starší počítače umožňovaly spouštět pouze jeden
program. Tento program plně využíval OS i
všechny systémové zdroje. Současné počítače
umožňují běh více programu současně.
= Instancí běžícího programu v takovém systému je
proces. Proces je základní jednotka práce
moderního OS se sdílením času.
Procesy
= Základní souběžně spuštěné procesy:
= procesy operačního systému;
= uživatelské procesy;
= Všechny tyto procesy běží zdánlivě současně a
CPU je střídavě obsluhuje;
= OS se tím stává produktivnější;
= proces jako takový není pouze kód programu, ale zahrnuje v
sobě i všechny jeho aktivity, které jsou reprezentovány
hodnotami ukazatele programu a obsahem registru procesoru;
Procesy
= Proces jako takový není pouze kód programu, ale
zahrnuje v sobě i všechny jeho „aktivity“, které jsou
reprezentovány hodnotami ukazatele programu a
obsahem registru procesoru.
= Program sám o sobě není proces!
= jedná se o pasivní entitu;
= existující např. jako soubor dat na disku;
= proces je aktivní entita s ukazatelem programu, který
specifikuje následující instrukci a dalších zdrojů;
= více procesů může být asociováno s týmž programem;
Procesy - Stavy procesu
= Každý proces se může vzhledem ke své
momentální aktivitě vyskytovat v některém z
následujících stavu:
= nový (New) - proces byl právě vytvořen;
= probíhající (Running);
= instrukce procesu začala být vykonávána;
= čekající (Waiting)
= proces čeká na nějakou událost;
= na dokončení I/O operace nebo přijetí signálu;
= připraven (Ready)
= proces čeká na procesor;
= ukončen (Terminated)
= proces dokončil svou činnost;
Procesy - Stavy procesu
Nový
přijat
ukončen
přerušen
Připraven
Ukončen
Probíhající
vybrán
dispečerem
I/O nebo jiná událost
ukončena
I/O nebo jiná událost
Čekající
Procesy - Process Control
Block
= Každý proces v OS je reprezentován záznamem,
(process control block - PCB).
= Obsahuje množství informací o procesu, jako např:
= Status procesu (Process state)
=
Nový, Probíhající, Čekající, Připraven, Ukončen;
= CPU plánovací informace (CPU scheduling information)
=
priorita procesu, ukazatele do plánovacích front aj;
= CPU registry (CPU registers)
=
=
počet registrů je různý v závislosti na architektuře procesoru
jsou zde akumulátory, indexové registry, ukazatele do zásobníku aj;
= Informace správy paměti (Memory management information)
=
počet base a limit registru, tabulky stránek nebo segmentu;
= Účtovací informace (Accounting information)
=
informace o čase přidělení procesoru, časový limit, číslo procesu aj;
= I/O stavové informace (I/O status information)
=
seznam I/O zařízení alokovaných pro tento proces, seznam otevřených
souborů apod;.
Procesy - Process Control
Block
Proces P0
Process number
Proces P1
Přerušení nebo systémové volání
Process counter
Ulož stav do PCB_0
Register
.
.
Memory limits
List of open files
Načti stav do PCB_1
čekající
.
.
.
Operační systém
čekající
Process state
Přerušení nebo systémové volání
Ulož stav do PCB_1
.
.
Načti stav do PCB_0
čekající
Pointer
Plánování procesu
= Plánovací fronty:
= v okamžiku, kdy je proces vytvořen je jeho záznam
vložen do fronty procesu (job queue);
= tato fronta obsahuje všechny procesy v systému;
= procesy, které jsou ve fyzické paměti a čekají na
přidělení procesoru jsou ve frontě připravených (ready
queue);
= sejde-li se najednou více požadavků na určité I/O
zařízení;
= OS tyto požadavky řídí pomocí fronty zařízení (device queue)
=
každé I/O zařízení má svou vlastní frontu zařízení;
Plánování procesu
Fronta
připravených
CPU
CPU
I/O fronta
I/O
požadavky
Konec
přiděleného
časového kvanta
Dokončení
syn.
procesu
Spuštění
syn.
rpocesu
Vytvořen
synovský
proces
Přerušení
vykonáno
Čekání na
přerušení
Plánování procesu
= Nový proces
= je inicializován
= zařazen do fronty připravených
= čeká na přidělení CPU
= v okamžiku, kdy jej dostane je spuštěn a může nastat
některá z následujících možností:
= proces požaduje I/O operaci a je zařazen do příslušné I/O fronty;
= proces vytvořil podproces a čeká na jeho dokončení;
= procesu je násilně odebrána CPU v důsledku přerušení a je
uložen zpět do fronty připravených;
Plánování procesu
= Plánovače:
= životní cyklus procesu sestává z přesunu mezi
jednotlivými plánovacími frontami OS;
= proces, který je třeba zařadit do fronty rozhoduje OS
pomoci tzv. plánovačů;
= plánovač úloh (job scheduler) vybírá procesy z poolu a
zavádí je do fyzické paměti ke spuštění;
= plánovač procesu (CPU scheduler) vybírá z připravených
procesů ten, kterému bude přidělen procesor;
= tito dva plánovači se od sebe výrazně liší frekvencemi, s
jakými jsou spouštěni;
Plánování procesu
= Plánovač procesu
= vybírá proces pro přidělení CPU;
= pracuje mnohem častěji;
= proces může být spuštěn jen na pár milisekund, než je
nucen např. čekat na nějakou I/O operaci;
= Plánovač úloh
= spouštěn s mnohem menší frekvencí;
= mezi vstupem nového procesu do systému mohou
uběhnout řádově minuty;
= plánovač úloh sleduje počet procesů v paměti;
Plánování procesu
= Procesy se dají rozdělit na:
= procesy převážně využívají I/O zařízení;
= CPU procesy;
=
je vhodné, aby plánovač procesu natahoval do systému
rovnoměrně oba tyto typy procesu;
= v některých systémech není plánovač úloh
implementován, nebo je minimalizován
= v systémech se sdílením času velmi často plánovač není a
všechny procesy jsou zaváděny přímo do paměti a předány
plánovači procesu;
Planování procesu
Swap in
Procesy spuštěné ale
odložené na swap
Fronta připravených
I/O
Swap out
CPU
I/O fronty
Plánování procesu
= Přepínání kontextu:
= přidělení procesoru jiné úloze vyžaduje uložit stav
procesu, který procesor opouští a načíst stav procesu,
který k procesoru přichází;
= tato výměna se nazývá přepínání kontextu (context
switch);
= přepínání kontextu představuje čistě režii systému;
= přepínání kontextu zahrnuje nejdříve změnu ukazatele
do paměti na aktuální kontext;
= ten je z paměti načten (při vstupu procesu)
= nebo je do paměti uložen aktuální stav (pokud proces
procesor opouští);
Operace s procesy
= Základní operace, které musí operační systém
provádět jsou mechanismy vedoucí k vytvoření a
zrušení procesu.
= Vytvoření procesu:
= libovolný proces může vytvořit nový proces
prostřednictvím volání vytvoření procesu;
= proces pro své naplnění potřebuje zdroje:
=
=
=
=
čas CPU;
paměť;
soubory;
periferie;
Operace s procesy
= V okamžiku, kdy proces vytvoří další proces jsou dvě
možnosti jejich další existence:
= rodičovský proces běží dále souběžně se synovským;
= rodičovský proces čeká na to než, některý nebo všechny
synovské procesy budou dokončeny;
= Vzhledem k adresovému prostoru obou procesů
nastávají také dvě možné situace:
= synovský proces je duplikátem rodičovského;
= synovský proces má vlastní program a ten je zaveden do
paměti;
Operace s procesy
= Vytváření synovských procesů je v různých OS
implementováno různě.
= v OS UNIX
= má každý proces jedinečné identifikační číslo (PID);
= nový proces je vytvářen voláním jádra fork;
= vytvořený proces potom obsahuje kopii adresového prostoru
procesu rodičovského;
= OS s jádrem na základě Windows NT
= podporuje stejné možnosti vytvoření synovského procesu;
= nebo když vytvoří nový proces, natáhne jeho program do paměti
a spustí jej;
Operace s procesy
= Zrušení procesu:
= ke zrušení procesu dochází poté, co jsou vykonány
všechny jeho instrukce;
= OS ho zajišťuje voláním jádra exit;
= všechny zdroje alokované pro proces jsou uvolněny
operačním systémem;
= zrušení procesu si může vyžádat i jiný proces
prostřednictvím volání abort;
Operace s procesy
= Rodič může zadat zrušení synovských procesů z
různých důvodů:
= syn překročil možnosti, které mu byly poskytnuty na
nějakém systémovém zdroji;
= úkol, který měl syn splnit již není požadován;
= rodičovský proces byl ukončen a OS ukončuje všechny
jeho potomky;
Spolupráce procesu
= Procesy souběžně spuštěné v systému mohou
být:
= autonomní ;
= kooperující;
= Možnosti spolupráce procesu:
=
=
=
=
sdílení informací (Information sharing);
urychlení výpočtu (Computation speedup);
modularita (Modularity);
zvýšení pohodlí (Convenience);
Spolupráce procesu
= Spolupráce procesu vyžaduje mechanismy
povolující popř. zakazující komunikaci mezi
procesy a mechanismy pro synchronizaci procesů;
= Spolupráci procesu si lze představit jako spolupráci
výrobce a příjemce;
= producent produkuje informace, která přijímá příjemce;
= Pro spolupracující procesy je třeba vytvořit buffer,
který bude naplňován producentem a
vyprazdňován příjemcem;
Spolupráce procesu
= Neomezený buffer (unbounded buffer)
= velikost bufferu není omezena;
= příjemce musí čekat je-li buffer prázdný, producent může
stále produkovat;
= Omezený buffer (bounded buffer)
= buffer má pevnou velikost
= příjemce musí čekat je-li buffer prázdný;
= producent musí čekat je-li buffer plný;
Děkuji za pozornost…

Podobné dokumenty

DVB-T PLUS

DVB-T PLUS Čelní tlačítka slouží k přidání vkládaných složek; mazání souborů; editaci možností; spuštění a ukončení transkódování. Okno periodického procesu zobrazuje název složky, kódovací status, velikost o...

Více

Počítačové hry

Počítačové hry  Odhady času s přesností na +30%, -20%  Aktualizace V tomto okamžiku má projekt za sebou přibližně 45% celkového času a 40% celkové práce (za předpokladu, že jsou tři fáze).

Více

+ 420 608 048 446 inesabelahofbauerova.wordpress.com ines

+ 420 608 048 446 inesabelahofbauerova.wordpress.com ines mezinárodních konferencích, příprava rukopisů vědeckých článků k publikování, účást na seminářích katedry. Vědecká práce probíhala v rámci grantu “ Vliv různých guildů herbivorního hmyzu na populač...

Více

GridSQL a pg-pool II

GridSQL a pg-pool II ● Není odolný vůči výpadku nodu/ů Řešení ala Kutil Tim ● INSERT, UPDATE – spouštět přímo na nodech => řádové zrychlení, ale koledujeme si o malér ● Lze využít uživatelských funkcí, které jsou vytvo...

Více

Recenze Qosmio G40

Recenze Qosmio G40 tato tlačítka fungují pouze při aktivovaném programu Toshiba FlashCards a k němu musím mít velké výhrady. Všechny poloprůhledné efekty a animace programu jsou sice hezké, ale program byl i přes ext...

Více

Výkonnost počítače

Výkonnost počítače Doba odezvy (response time) Čas potřebný k získání výsledku dané úlohy Důležité především pro interaktivní úlohy

Více

Milí přátelé, dovolte, abych Vám nejprve popřál

Milí přátelé, dovolte, abych Vám nejprve popřál jsou jen pouhými iluzemi, které jsou symbolizovány oním knězem a levitou, kteří se mu jako polomrtvému vyhnuli. A hle, přichází Samařan, ten, který je nenáviděný všemi Izraelci. Tehdy nadchází okam...

Více

2 a IMC-4D(-bioplyn)2 - ExTox Gasmess

2 a IMC-4D(-bioplyn)2 - ExTox Gasmess na láhvi zkušebního plynu. Jestliže jsou zkušební plyny naplněny v různých láhvích se stlačeným plynem, musíte následně popsaný průběh provádět postupně pro všechny použité zkušební plyny. Pro kali...

Více