3. konzultace (4 hodiny) 4. března 2016.

Slides:



Advertisements
Podobné prezentace
Základy databázových systémů
Advertisements

Přednáška č. 3 Normalizace dat, Datová a funkční analýza
Komunikace periférii.
SOFTWARE dálkové studium PODNIKÁNÍ 2. listopad 2006.
Operační systémy. OPERAČNÍ SYSTÉMY pomoc operátorovi, podpora vlastností reálného času, víceuživatelských a více úlohových systémů.
Otázky k absolutoriu HW 1 - 5
Operační systém Adam Greguš, 4.A.
Zpracování programu programovatelným automatem. Zpracování programu na PA se vykonává v periodicky se opakujícím uzavřeném cyklu, tzv. scanu. Nejprve.
Přínosy a druhy počítačových sítí. Jednou z nejvýznamnějších technologií používaných v oblasti výpočetních systémů jsou již řadu let počítačové sítě.
Kontakty Webpage přednášky: – Slajdy (MS PowerPoint): –ftp://ulita.ms.mff.cuni.cz/predn/PRG017 Technické.
7. přednáška konzistence dat (příklad) -multithreading (monoprocesor) -sdílení času -analýza časového kvanta -priorita -přepínání (procesů,
Maturitní okruh č. 7. Odstínit aplikace od specifik HWSpráva procesůSpráva pamětiSpráva souborůSpráva vstupů a výstupůSpráva sítěSystém ochrany a bezpečnostiSystém.
Operační systémy Přednášky pro výuku předmětu Operační systémy Ing. Antonín Vaněk, CSc. DFJP, Univerzita Pardubice září 2003.
Operační systémy.
Databázové systémy. Práce s daty Ukládání dat Aktualizace dat Vyhledávání dat Třídění dat Výpočty a agregace.
Databázové systémy Architektury DBS.
Operační systém (OS) ICT Informační a komunikační technologie.
13AMP 2. přednáška Ing. Martin Molhanec, CSc.. Stav procesu (kontext) Stav procesu je úplná informace, kterou je nutné uschovat při přerušení procesu,
Správa procesů.
Gymnázium, SOŠ a VOŠ Ledeč nad Sázavou I NFORMAČNÍ A KOMUNIKAČNÍ TECHNOLOGIE Ing. Jan Roubíček.
13AMP 3. přednáška Ing. Martin Molhanec, CSc.. Co jsme se naučili naposled I. Co je to kontext úlohy Co je to kontext úlohy Task switching (přepnutí úlohy)
Orbis pictus 21. století Tato prezentace byla vytvořena v rámci projektu.
Zablokování (deadlock, smrtelné objetí, uváznutí)
Orbis pictus 21. století Tato prezentace byla vytvořena v rámci projektu.
Správa procesů.
8. přednáška přepínání kontextu -plánování (pojmy, kritéria, prioritní fronty, vybrané typy) Studijní materiály najdete na adrese:
3. konzultace (5 hodin) Studijní materiály najdete na adrese:
4. přednáška holý počítač, BIOS, virtuální počítač -vývoj operačních systémů -multiprocessing -paralelní systémy Studijní materiály najdete.
Vnitřní (operační paměť)
A4B33OSS (J. Lažanský) verze: Podzim 2012 Procesy a vlákna 1 Obsah Téma 3 – Procesy a vlákna 1.Výpočetní procesy a jejich stavy 2.Stavový diagram procesů.
Operační systémy Název a adresa školy
Co je to OS Správce prostředků –spravuje a přiděluje systémové zdroje systému úlohám, stará se o jejich efektivní sdílení procesoru (ů) operační paměti.
Výrok „Vypadá to, že jsme narazili na hranici toho, čeho je možné dosáhnout s počítačovými technologiemi. Člověk by si ale měl dávat pozor na takováto.
Orbis pictus 21. století Tato prezentace byla vytvořena v rámci projektu.
1/28 PB153 OPERAČNÍ SYSTÉMY A JEJICH ROZHRANÍ Vlákna 06.
Základy operačních systémů Meziprocesová komunikace a synchronizace Jakub Yaghob.
2. konzultace (4 hodiny) Studijní materiály najdete na adrese:
Kontakty slajdy: ftp://ulita.ms.mff.cuni.cz/predn/POS.
Operační systémy LS 2014/ přednáška 30. března 2015.
Operační systémy LS 2014/ přednáška 16. března 2015.
OPERAČNÍ SYSTÉMY učební text pro žáky SŠ.
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.
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.
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.
Operační systémy 2015/ přednáška 21. března 2016.
Stránkování MATĚJ JURIČIČ 2015/2016 EP1 SPŠ A VOŠ JANA PALACHA KLADNO.
Vypracoval / Roman Málek
Zvídavé otázky 1. Prevence a detekce uváznutí
Služby Windows Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Ing. Libor Otáhalík. Dostupné z Metodického portálu ISSN: 
Operační systémy - úvod
Soubor Soubor v informatice označuje pojmenovanou sadu dat uloženou na nějakém datovém médiu, se kterou lze pracovat nástroji operačního systému jako.
DIGITÁLNÍ UČEBNÍ MATERIÁL
1. ročník oboru Mechanik opravář motorových vozidel
PB 169 Počítačové sítě a operační systémy
Operační systémy 9. Spolupráce mezi procesy
Správa paměti.
1. ročník oboru Mechanik opravář motorových vozidel
PB 169 Počítačové sítě a operační systémy
1. ročník oboru Mechanik opravář motorových vozidel
Segmentace Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Ing. Libor Otáhalík. Dostupné z Metodického portálu ISSN: 
hierarchie pamětí vyrovnávací paměť režimy práce procesoru
5. přednáška 14. března 2016 Operační systémy 2015/2016.
přerušení (instrukční cyklus, obsluha) vztahy mezi tématy
Práce s procesy Centrum pro virtuální a moderní metody a formy vzdělávání na Obchodní akademii T.G. Masaryka, Kostelec nad Orlicí Autor:
Přednášky z distribuovaných systémů
Přepínání procesů Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Ing. Libor Otáhalík. Dostupné z Metodického portálu ISSN: 
Paměť.
Správa procesů.
Přednášky z Distribuovaných systémů
Monitor Object 1.
Transkript prezentace:

3. konzultace (4 hodiny) 4. března 2016

Počítačové systémy Počítačový systém - hardware („holý počítač“) - operační systém - aplikační programy (překladače, hry, databázové systémy, systémové nástroje, …) - uživatelé Paralelní systémy Multiprocesorový systém obsahuje více procesorů (p > 1) sdílejících společnou paměť, sběrnice, hodiny a periferie. Paralelní systémy dělíme na symetrické a asymetrické. Paralelní systém – skutečný paralelismus procesů, těsně vázané systémy, společný FAP, sdílí se hodiny, vyšší propustnost a spolehlivost Distribuovaný systém – paralelismus procesů, volně vázané systémy, více FAP, komunikace periferními operacemi, každý procesor má vlastní paměť a hodiny

Paralelismus - distribuovanost Paralelní systém – skutečný paralelismus procesů, těsně vázané systémy, společný FAP, sdílí se hodiny, vyšší propustnost a spolehlivost Distribuovaný systém – paralelismus procesů, volně vázané systémy, více FAP, komunikace periferními operacemi, každý procesor má vlastní paměť a hodiny Nezávislý – běží samostatné procesy, žádná synchronizace, víceuživatelské systémy Velmi hrubozrnný – distribuované zpracování v síti (řešení jedné komplexní úlohy) řídká interakce mezi procesy (omezení síťové režie) Hrubozrnný – běh více procesů na více procesorech, jeden FAP, multiprocessing Střednězrnný – multitasking, sledy v rámci jednoho procesu v časté interakci, multiprogramming Jemnozrnný – paralelní řešení operací (maticové procesory), stejná operace na datech Paralelní systém paměť procesor Distribuovaný systém distribuce dat a řízení Mem Mem P P

Distribuované a agentové systémy Distribuované systémy Klasické – procesory jsou méně vázané, jde vlastně o samostatné počítače (uzly) spojené pomocí komunikační sítě. Důvody pro budování distribuovaných systémů: - sdílení zdrojů - urychlení výpočtů - zvýšení spolehlivosti (porovnání výsledků, uložení souborů na více místech, …) Mezi paralelními systémy a klasickými distribuovanými systémy se nachází počítačový cluster. Ten umožňuje efektivní spojení výkonu více počítačů, nejen jejich procesorů. Navzájem jsou propojeny vysokorychlostní sítí. Agentové systémy - jsou vázány volněji než klasické distribuované systémy. Agenti se skládají z jádra (programu) a komunikační obálky pro umožnění komunikace s jinými agenty. Agent je samostatný systém schopný spolupracovat s jinými systémy. Na rozdíl od přesně organizovaného distribuovaného systému jsou agentové systémy schopné v případě potřeby přibrat další agenty ke spolupráci.

Operating system Design Hierarchy L Name Objects Example Operations 13 Shell User programming environment Statements in shell language 12 User processes Quit, kill, suspend, resume 11 Directories Create, destroy, attach, detach, search list 10 Devices External devices, such as printers, displays and keyboards Open, close, read, write 9 File system Files Create, destroy, open, close, read, write 8 Comunications Pipes 7 Virtual memory Segments, pages Read, write, fetch 6 Load secondary store Blocks of data, device channels Read, write, allocate, free 5 Primitive processes Primitive processes, semaphores, ready list Suspend, resume, wait, signal 4 Interrupts Interrupt-handling programs Invoke, mask, unmask, retry 3 Procedures Procedures, call stack, display Mark stack, call, return 2 Instruction set Evaluation stack, microprogram interpreter, scalar and array data Load, store, add, subtract, branch 1 Electronic circuits Registers, gates, buses, etc. Clear, transfer, activate, complement

Operating system Design Hierarchy Level 1: obsahuje elektronické obvody, které představují registry, paměťové buňky a logická hradla, operace na těchto objektech jsou např. mazání registrů, čtení z paměti, atd. Level 2: představuje instrukční soubor procesoru se strojovými instrukcemi (sčítání, odčítání, přesun, ...) Level 3: volání procedur a funkcí (podprogramů), call and return Level 4: představuje přerušení, při kterém se ukládá starý kontext a aktivuje se přerušovací rutina První 4 úrovně nejsou součástí operačního systému, ale zahrnují HW. Přesto některé části operačního systému těchto úrovní využívají (přerušení).

Operating system Design Hierarchy Level 5: v této úrovni běží procesy, jsou přepínány, je zajištěna synchronizace Level 6: zabývá se sekundární pamětí počítače (pevný disk), jsou zde implementovány funkce polohování čtecích hlav, přesun bloků dat, využívá sousedních vrstev pro plánování a adresování přesunů bloků dat Level 7: vytváří logický adresní prostor pro procesy, tato vrstva zajišťuje přesun dat mezi operační pamětí a diskem, běžná jsou 3 schémata: pevná délka stránky, proměnná délka stránky a obojí, pokud není požadovaný blok dat v paměti, zapojí se vrstva 6 Do úrovně Level 7 se operační systém zabývá pouze procesory, od úrovně Level 8 jsou zapojeny periferie a počítačová síť, objekty jsou sdíleny na jednom nebo více počítačích.

Operating system Design Hierarchy Level 8: zabývá se komunikací mezi procesy, pipes (roury) slouží k předávání informací mezi procesy, synchronizace, zprávy Level 9: long-term storage pojmenovaných souborů, čtení dat do proměnných, stopy, sektory, konstantní velikost bloku (Level 6) Level 10: poskytuje přístup k externím zařízením pomocí standardních interfaces Level 11: zodpovídá za asociace mezi externími a interními identifikátory zdrojů a objektů, externí jsou textové položky pro uživatele, interní jsou indikátory pro OS, přístupová práva Level 12: poskytuje podporu procesům na vyšší úrovni, než Level 5 (virtuální adresování, seznamy procesů k přepínání, atd.) Level 13: poskytuje intarface OS s uživatelem, shell, transformuje vlastnosti OS do služeb

Proces Vytváření procesu prováděný program instance běžícího programu entita, která může být popsána a provedena na počítači aktivní jednotka charakterizovaná a prováděná jedním sekvenčním vláknem, se svým stavem a sdružená se systémovými zdroji Vytváření procesu přiřazení jedinečného identifikátoru alokování paměti pro zásobník, image procesu, program a data, hodnoty mohou být imlicitní nebo explicitní inicializace PCB nastavení příslušných vazeb (různé fronty dle plánování, ...) vytváření všech potřebných datových struktur

Vytvoření a přerušení procesu Důvody pro přerušení (ukončení) procesu vše je hotovo překročení časového limitu určeného pro běh procesu proces požaduje více paměti, než mu OS může poskytnout porušení ochrany paměti, souboru, prostředku, ... vznik chyby při výpočtu (dělení nulou, velké číslo, ..) překročení časového limitu při čekání procesu na událost chyba při I/O operaci pokus o provedení neexistující instrukce (při větvení programu skok na data, ...) snaha o provedení instrukce rezervované pro OS špatný typ nebo inicializace dat intervence OS nebo rodičovského procesu Korektní - při přerušení procesu je aktuální obsah programového čítače a registrů procesoru (datový kontext) přenesen do příslušné datové oblasti korespondující s PCB a stav procesu je označen jinou hodnotou, přepnutí kontextu Důvody pro vytvoření procesu spuštění nového programu (příkaz, dávka, ...) přihlášení uživatele operační systém potřebuje provést nějakou službu ve prospěch uživatele nebo jiného procesu při běhu programu se objeví potřeba paralelismu nebo modularity (spawn)

Typical Process Implementation Main memory Processor registers i Process index Process list i j PC Base b Limit h Context Process A Data . Program Other registers b Process B Context h Data Program

process switching functions process switching functions Vztah mezi operačním systémem a procesy P1 P2 P3 Pn . . . - tradiční přístup, běžný pro starší OS, kernel běží vně všech procesů, procesy jsou přerušovány pomocí supervissor call, kontext procesu je uložen, kernel má vlastní paměť a zásobník, po provedení požadované funkce se provede návrat k procesu kernel P1 P2 P3 Pn funkce OS . . . - způsob běžný pro PC a workstations, funkce OS se provádí v kontextu procesů, OS je kolekcí rutin prováděných v rámci uživatelských procesů, každý image procesu obsahuje i program, data a zásobník kernelu OS1 OS2 OS3 OSn process switching functions P1 P2 P3 Pn . . . - OS je implementován jako kolekce systémových procesů, většina kernelových funkcí je organizována v samostatných procesech process switching functions

OS je prováděn během procesu Process identification PCB Process state information Process control information běžné pro OS na PC a workstations, SW OS probíhá v kontextu uživatelského procesu každý image procesu obsahuje i program, data a zásobník kernelu User stack Private user address space (program, data) Kernel stack sdílení všemi procesy Shared address space

Uživatelské procesy v paměti Process identification Process identification Process identification Process state information Process state information Process state information Process control information Process control information Process control information process image User stack User stack . . . User stack Private user address space (programs, data) Private user address space (programs, data) Private user address space (programs, data) Shared address space Shared address space Shared address space Process 1 Process 2 Process n

Struktura seznamů procesů Running PCB Ready Blocked PCB PCB PCB PCB PCB PCB PCB PCB

Typické komponenty PCB Process Identification – obsahuje identifikátory (procesu, rodiče, uživatele) Process State Information – registry viditelné uživatelem (pouze některé), řídící a stavové registry (program counter, condition codes (výsledky logických a aritmetických operací)), ukazatele zásobníků Process Control Information – plánovací informace (stav, priorita, ...), ukazatele na spolupracující datové struktury, meziprocesová komunikace (příznaky, signály, zprávy, ...), informace o MMU, informace o vlastnění zdrojů, informace o využití procesoru

I/O status information Accounting information Zjednodušený Process Control Block PCB (execution context) - datová struktura vytvářená a řízená prostřednictvím OS, jedná se o klíčový moment v otázce podpory běhu více procesů Identifikátor – jedinečné označení procesu, odlišné od všech jiných Stav – označuje stav procesu z množiny stavového diagramu Priorita – je zde poznamenána úroveň priority procesu Čítač instrukcí – ukazuje na další instrukci při provádění procesu Paměťové ukazatele – obsahují údaje o umístění kódu procesu, datech a sdílených oblastech s jinými procesy Související data – obsah registrů během provádění procesu Stav V/V – obsahuje nevyřízené V/V požadavky procesu, sdružená zařízení s procesem, seznam souborů souvisejících s procesem, ... Účtovací informace – mohou obsahovat údaje o spotřebovaném procesorovém čase, časové limity, ... Identifier State Priority Program counter Memory pointers Context data I/O status information Accounting information . . .

Trasování procesů Dispatcher Process A Process B Process C Main memory 100 Dispatcher Program counter 5000 Process A 8000 8000 Process B 5000 5001 5002 5003 5004 5005 5006 5007 5008 5009 5010 5011 8000 8001 8002 8003 12000 12001 12002 12003 12004 12005 12006 12007 12008 12009 12010 12011 Trace of Process A Trace of Process B Trace of Process C 12000 Process C 5000 – Starting address of program of Process A 8000 – Starting address of program of Process B 12000 – Starting address of program of Process C

Dvoustavový diagram procesů 5000 5001 5002 5003 5004 5005 100 101 102 103 104 105 8000 8001 8002 8003 12000 12001 12002 12003 12004 12005 100 101 102 103 104 105 5006 5007 5008 5009 5010 5011 12006 12007 12008 12009 12010 12011 Timeout Dispatch Timeout Enter Not running Running Exit Pause Timeout I/O request Enter Queue Exit Dispatch Processor Pause Timeout

Stavy procesů při trasování Process A Process B Process C Dispatcher 10 5 15 20 25 30 35 40 45 50 Running Ready Blocked

I/O operace je dokončena Stavy procesu - probíhající: je přidělen procesor - čekající: čekání na určitou událost - připraven: čeká na přidělení procesoru - předán: očekává se reakce OS na předání úlohy připraven probíhající čekající předán přijat dokončen Procesu je přiřazen procesor Čekání na dokončení I/O operace I/O operace je dokončena - přijat: úloha převedena do vnitřního tvaru, procesům nejsou přiděleny žádné prostředky - dokončen: prostředky jsou volné

Pětistavový model procesu New Ready Running Blocked Exit Dispatch Timeout Přijmout Očekávaná událost Událost nastala Uvolnit předpokládejme přítomnost jednoho procesoru New – vytvořený proces, který ještě nebyl přijat operačním systémem, už má vytvořený PCB Ready – čeká na svoji příležitost (modifikováno politikou přidělování) Running – právě zpracovávaný proces, může být pouze jeden Exit – proces uvolnil veškeré přidělené prostředky, ukončen, zrušen Blocked – odložený proces z důvodu očekávání události (prostředek, zpráva, ...)

Jeden stav suspend Dispatch New Admit Ready Running Release Exit Timeout Activate Event occurs Event wait Ready – proces je v paměti a je připraven k provedení Blocked – proces je v paměti a očekává nějakou událost Suspend – proces je na disku a čeká na uvolnění místa v paměti Suspend Blocked Suspend

Dva stavy suspend Ready / Suspend Dispatch Release Timeout Activate Event occurs Event wait Ready Running Exit Blocked / Blocked New Admit

Přechody mezi stavy procesu Blocked -> Blocked/Suspend: málo místa v paměti, možnost vzniku nových procesů Blocked/Suspend -> Ready/Suspend: pokud nastala událost, na kterou proces musel čekat Ready/Suspend -> Ready: pokud není v paměti žádný proces schopný svého provedení, záleží na prioritě procesů Ready -> Ready/Suspend: používá se v případě potřeby získat hodně místa v paměti, někdy si pro suspendování může OS vybrat ready proces s nízkou prioritou místo blokovaného procesu s prioritou vysokou - nově vzniklý proces někdy nemusí mít vytvořeny všechny podmínky pro svůj běh

Odkládání procesů stav suspend každý prováděný proces musí být uložený v paměti, pokud blokované procesy zaplní paměť do určité míry, jsou převedeny do stavu suspend a odkládány na disk (swapování), diskové operace jsou z hlediska výměn rychlostně uspokojivé systém má možnost vzít do fronty připravených procesů proces nový (zvýšení míry multiprogramování) nebo proces ze stavu suspend (z disku) při opuštění stavu suspend se předpokládá okamžité zapojení procesu do mechanismu plánování není účelné zařazovat suspendované procesy, které očekávají nějakou událost

Důvody pro odložení procesu Swapping OS potřebuje uvolnit místo v operační paměti, potřebuje zde umístit proces ve stavu Ready Other OS Reason OS může suspendovat nějaký méně důležitý (background) proces, nějakou utilitu nebo proces podezřelý z působení problémů User Reguest interaktivní požadavek uživatele přerušení programu z důvodů trasování, modifikace HW zdrojů Timing přerušení periodicky se opakujícího procesu (účtování, monitorování, ...) a čekání na další periodu Parent Request rodič si může přát suspendování potomka za účelem jeho zkoumání nebo modifikace, pro koordinaci akcí několika potomků

Procesy a HW zdroje P1 P2 Pn Processor I/O I/O I/O Disk Main memory Computer resources OS řídí všechny procesy uvnitř počítačového systému plánuje a řídí provádění procesů, alokuje procesům HW zdroje, poskytuje veškeré základní služby multiprogramové prostředí s procesy P1 – Pn proces P1 běží, proces P2 je v paměti, ale je blokován, proces Pn je ve stavu Suspend (na disku) pro řízení procesů potřebuje OS informace

Mikrokernel do konce 50. let monolitické OS, všechny funkce OS byly pohromadě, OS/360, Multics OS s vrstvovou strukturou, funkce jsou organizovány hierarchicky, interakce nastává mezi přilehlými vrstvami, každá změna v jedné vrstvě přináší nutnost změn ve vrstvách sousedících, kvůli mnoha interakcím je obtížné dbát o bezpečnost u mikrokernelu je v kernelu zachováno pouze nezbytné jádro, ostatní služby jsou aplikovány samostatně a jsou prováděny v uživatelském režimu část OS je externím subsystémem, vertikální architektura je nahrazena horizontální, komponenty OS jsou implementovány jako procesy (servery) komunikace mezi nimi probíhá pomocí zpráv mikrokernelové řešení přináší řadu výhod (rozšiřitelnost, jednotné rozhraní, pružnost, přenositelnost, spolehlivost, rozdělenou systémovou podporu, podporu pro objektově orientované OS) 29 29

Typické funkce kernelu OS Process Management vytváření a ukončení procesu plánování a přiřazování přepínání procesů synchronizace procesů a komunikace mezi procesy řízení PCB Memory Management alokace adresního prostoru procesům swapping stránkování, segmentace I/O Management buffer management alokace kanálů a zařízení procesům Podpůrné funkce manipulace s přerušením účtování monitorování

Vlákna (threads) - Program – soubor přesně definovaného formátu (instrukce, data, identifikační údaje) Proces – systémový objekt realizující výpočet podle programu, je charakterizován svým paměťovým prostorem, kontextem, prostor ve FAP se přiděluje procesům, může vlastnit prostředky, přiděluje se mu čas procesoru Vlákno – systémový objekt vytvářený v rámci procesu a viditelný uvnitř procesu, tradiční proces je s jedním vláknem, vlákna podléhají plánování vlákno se nachází ve stavech jako procesy, když vlákno neběží, je jeho kontext uložen v TCB (analogie s PCB), vlákno může přistupovat k LAP a k ostatním zdrojům svého procesu, ty jsou sdíleny všemi vlákny tohoto procesu (změna obsahu paměťové buňky, otevřený soubor, sdílení proměnných a systémových zdrojů, ...)

Procesy, vlákna a jejich komponenty kód programu proces lokální pracovní data vlákno globální data alokované systémové zdroje zásobník data pro správu paměti čítač instrukcí registry procesoru plánovací stav uživatelská práva a identifikace

Multiple threads per process Procesy a sledy Instruction trace One process One thread One process Multiple thread Multiple processes One thread per process Multiple processes Multiple threads per process

Vztah mezi procesy a sledy Threads:Processes Description Example System 1 : 1 Každý sled je prováděn jako unikátní proces s vlastním adresovým prostorem a vlastními prostředky Implementace tradičního systému UNIX M : 1 Proces definuje adresový prostor a vlastnictví prostředků, v rámci tohoto procesu mohou být vytvářeny a spouštěny vlákna Win, Solaris, OS/2, Linux, MACH, OS/390 1 : M Vlákno může migrovat z jednoho procesu do jiného Re (Clouds), Emerald M : N Kombinace obou předchozích případů TRIX

Single Threaded and Multithreaded Process Models – Control Structures block Thread control block Thread control block User stack User stack User stack User stack Process control block Process control block Kernel stack User address space User address space Kernel stack Kernel stack Kernel stack

Procesy a vlákna Kód Data Kód Data Zásobník Jednovláknový proces Vícevláknový proces Kód Data Soubory Kód Data Soubory Registry Zásobník Registry Registry Registry Registry Zásobník Zásobník Zásobník Zásobník

Procesy a vlákna vlákno se vytvoří i ukončí rychleji než proces přepínání mezi vlákny je rychlejší než mezi procesy (správu vláken provádí tzv. vláknová knihovna na úrovni aplikačního procesu, není potřeba funkce jádra OS (kernelu)) je-li jádro OS jednovláknové, každé volání kernelu procesem zastaví tento uživatelský proces, dokud kernel neodpoví spolupráce vláken, které jsou součástí stejné úlohy, vede k vyšší propustnosti i výkonu OS (pokud chtějí všechny procesy souborového serveru pracovat s diskem, není možné CPU přidělit žádnému procesu) dosáhne se lepší strukturalizace programu když vlákno čeká na nějakou událost, může běžet jiné vlákno téhož procesu, aniž by se přepínalo mezi procesy vlákna jednoho procesu sdílí paměť a tudíž mohou mezi sebou komunikovat, aniž by potřebovaly kernel vlákna potřebují synchronizaci (aby se zachovala konzistence dat) vlákna podléhají plánování a mají své stavy podobně jako procesy vlákna se samostatně neodkládají (pouze proces), ukončení procesu ukončuje všechna vlákna exitující v procesu na rozdíl od procesu jsou na sobě vlákna závislá, všechna vlákna mají přístup na libovolnou adresu úlohy, mohou číst a zapisovat do zásobníku jiného vlákna, neprovádí se žádná ochrana jednotlivých vláken, ochrana paměti mezi vlákny není zapotřebí, procesy mohou být takřka nepřátelské, vlákna jsou programována k vzájemné pomoci

Problém konzistence - příklad Scénář Proces vytvořil vlákna T1 a T2. T1 počítá C = A + B. T2 používá hodnotu X: A = A – X; B = B + X T1 a T2 pracují souběžně, avšak jejich rychlosti nejsou známy. Úmysl programátora Nechť A = 2; B = 3; X = 10 T2 udělá A = A – X; B = B + X [A=-8,B=13,C=5] T1 spočítá C = A + B, hodnota C nezávisí na X. Možná realita T2 udělá A = A – X a pak je mu odebrán procesor. [A=-8,B=13,C=-5] T1 spočítá C = A + B = A – X + B T2 udělá B = B + X a to už hodnotu C neovlivní. V proměnné C jsou dva různé výsledky. Poznámka Kdyby nedošlo k preempci vlákna T2, žádný problém by nenastal!

Multithreading Example on a Uniprocessor time Time quantum expires I/O request Request complete Thread A (Process 1) Thread B (Process 1) Time quantum expires Blocked Running Thread C (Process 2) Process created Ready

Přepínání procesů u současných OS může k výměně procesů dojít kdykoliv je spojena s přerušením (interrupt) nebo s výjimkou (trap) clock interrupt souvisí s časovým sdílením I/O interrupt souvisí s požadavkem na externí zařízení výpadek stránky souvisí s MMU výjimka způsobí ukončení procesu, závisí to i od OS, někdy se může objevit pokus o obnovu stavu k přepínání dochází mezi procesy nebo mezi módy, funkce OS může být aktivována tzv. supervisor call Událost Příčina Využití Interrupt Provedení běžné instrukce na vnější popud Reakce na asynchronní externí událost Trap Reakce na událost během provádění instrukce Zpracování chyby nebo výjimečného stavu Supervisor call Explicitní požadavek Volání funkce operačního systému

Přepínání kontextu a režimu preemptivní multitasking - libovolné přerušení procesu bez jeho spolupráce, zvětší se kontext (kompletní stav procesoru, pomocných procesorů, …), prostředky se povolí pouze jednomu procesu (I/O kanály, tisk, porty…) - nebezpečí zablokování, řeší se prostřednictvím serverů - speciální procesy pro práci s prostředky, mají své klienty, přepnutí lze vyvolat kdykoliv, v rámci kteréhokoliv přerušení Přepínání kontextu a režimu přepnutí kontextu: context switch, požadavek na přerušení, uloží se kontext aktivního procesu, zavede se kontext nového procesu do registrů procesoru, ukončí se přerušovací služba, běží nový proces, odebrání procesu, přidělení procesu - procesor se vrací z přerušení na jiné místo přepnutí režimu: přerušení nemusí vyvolat přepnutí kontextu, provedou se privilegované instrukce a řízení se vrátí přerušenému procesu, stačí uchovávat stav procesoru, nižší režie

Přepínání kontextu procesů proces P0 proces P1 operační systém uložení kontextu P0 předání kontextu P1 . uložení kontextu P1 předání kontextu P0 idle běží privilegované instrukce

Sdílení času - zajišťuje iluzi souběžného zpracování několika procesů - time slicing - při preempci operační systém nepovolí žádnému procesu běžet neomezenou dobu, pouze určitý časový interval, jestliže proces běží dlouho, odebere mu OS v rámci přerušení časovače procesor a přidělí jej jinému procesu, délky intervalů běhu procesu jsou jednotky až desítky ms - v průměrném případě se časové sdílení neuplatní, proces většinou stihne udělat vše co potřebuje a vyvolá nějakou službu, její součástí bývá čekání na nějakou událost, takže se procesor stejně přidělí někomu jinému

Analýza časového kvanta - musí být podstatně větší, než režijní interval operačního systému spojený se změnou procesu (přerušení časovačem a provedení dispečerských operací) - musí být větší než typická doba interakce procesu s okolím (ne o moc, aby se nepenalizovaly I/O vázané procesy) přidělení časového kvanta doba odpovědi (s) časové kvantum (q) q - s časové kvantum větší než typická doba interakce konec interakce přidělení časového kvanta proces přeplánován časové kvantum (q) doba odpovědi (s) opětovné přidělení časového kvanta běh jiného procesu časové kvantum menší než typická doba interakce

Proč multitasking ? Model procesor V/V - zvýšení využití procesoru - pravděpodobnost čekání na V/V - pravděpodobnost pro n procesů - využití procesoru pn m = 1 - pn

Vývoj multitaskingu - vzájemné volání - přímý předchůdce multitaskingu, je to vlastnost jednotlivých programů, není možné přepínání (Apple, MS DOS) - omezené přepínání programů - jeden hlavní program, více speciálních (accessories) - neomezené přepínání programů - spuštění několika hlavních programů a přepínání mezi nimi (dostatek paměti) - kooperativní multitasking - princip vychází z přepínání, tam mohlo ale dojít ke změně pouze na žádost uživatele, nevyužitý procesorový čas, v případě čekání aktivního procesu se spustí jiný proces, při jeho přerušení se provede pokus o návrat do procesu na popředí (foreground), background procesy - využívají čas procesoru během neaktivity foreground procesu, Windows 3.x - nevýhody kooperativního multitaskingu: zpomalení foreground, chybí volání přerušovací služby (zacyklení background), malá bezpečnost, programování omezeno konvencemi (delší procesy rozděleny na kratší úseky), foreground only - degradace na neomezené přepínání, realizace není o moc jednodušší než preemptivní - hlavním rysem je spolupráce procesů - kooperativnost

Priorita - statická priorita - je přidělena při vytvoření, nemění se - statický časový interval - při přeplánování je čítač nastaven na konstantní hodnotu, stejnou pro všechny procesy - dynamická priorita, dynamický časový interval - mění se na základě vlastností a chování procesů, vyšší průchodnost operačního systému - správce procesů sleduje dobu, po kterou měl proces procesor (součet momentů Running), pokud je delší než určitá doba, sníží se priorita, náročné procesy běží dlouho, krátké procesy hotovy dříve - možnost zrušení procesu při zacyklení - při přepínání kontextu se zjišťuje, vyčerpal-li proces celý svůj interval, přidělí se tím větší priorita, čím menší doba byla čerpána z povoleného intervalu (časté čekání na periferie, …)

Modul přidělování procesoru - správa procesů nejkomplikovanější částí každého OS - multitasking - vztahuje se k OS, nikoliv k počítači, multiprogramming, souběžná realizace více procesů, prokládání běhů procesů, sdílení CPU procesu pomocí přerušení - musí být pečlivě navržen, nevyplatí se pro jednoúčelová prostředí - první multitaskové OS - počátek 60. let, sálové počítače, na PC koncem 80. let - pokud je jeden procesor, nemůže na něm běžet současně více procesů, tento stav je pouze simulován, musí se přihlížet i v systémech s více procesory (rovnoměrné zatížení) přepínání programů, kooperativní a preemptivní multitasking podpora multitaskingu – hardwarová (přerušovací systém, DMA, MMU, ochrana paměti), softwarová (plánování, ochrana proti zablokování) požadavek absolutní transparentnosti multitaskingu vůči procesům Výhody: * přechod k jinému programu bez nutnosti přerušovat práci * snadná implementace činností, které musí probíhat paralelně (správa počítačové sítě, …), zajištění běhu dalších procesů * lepší kooperace programů (není potřeba soubory) * nutná podmínka pro víceuživatelské prostředí * lepší využití kapacity výpočetního systému (procesor ne- zahálí při čekání) Nevýhody: * degradace programu při spuštění více úloh, dnes irelevantní * větší režie OS spojená s plánováním * větší, složitější, dražší, náročnější na HW * větší nároky na bezpečnost

Plánování běhu procesů - pojmy - režim výběru – nonpreemptive (bez předbíhání), vybraný proces běží, dokud se sám neukončí, nevhodné pro víceuživatelské systémy, preemptive (s předbíháním), běžící proces lze přerušit, ochrana před monopolizací procesoru - procesy vázané na I/O – proces opakovaně alternuje mezi potřebou procesoru a periferie, dávka procesorové orientace (jednotky ms) je následována I/O operacemi (řádově delší doba) - procesorově orientovaný proces – dokázal by využívat procesor po neomezenou dobu (dlouhé procesy) - priorita procesu – narušení disciplíny FIFO (spravedlivá obsluha), prioritní úrovně (pro každou z nich je samostatná FIFO), procesy nízké priority mohou stárnout, procesy mohou měnit prioritu dynamicky

Plánování běhu procesů - rozdělení dlouhodobé – strategické plánování, povolení vytvoření procesu, stupeň multitaskingu střednědobé – taktické plánování, řízení odkládání, rozhodující roli sehrává dostupná paměť, provádí správa paměti, řízení stupně multiprogramování krátkodobé – operativní plánování, plánování procesoru, aktivace přerušením časovače, I/O přerušením, službou OS, signály (semafor), uživatelsky orientované (odpověď, průchod), systémově orientované (využití, spravedlnost, propustnost) - monoprocesor, multiprocesor, RT - minimalizace doby odpovědi, co nejvyšší propustnost, co nejvyšší využití procesoru

Prioritní fronty . . . RQ0 Dispatch Release Processor RQ1 RQ2 Admit Blocked queue Release Event wait Event occurs RQ1 RQ2 RQn . . . Preemption Dispatch Admit

Kriteria plánování Uživatelsky orientované (výkonnost) doba obrátky (od předložení procesu do jeho zpracování, zahrnuje čas zpracování + čekání na zdroje), je možné měřit pro každý job čas odezvy (pro interaktivní procesy), je lépe měřitelný než doba obrátky Systémově orientované (výkonnost) propustnost, snaha o maximální množství procesů zpracovaných za jednotku času, závisí na délce procesů, je ovlivněno plánovací politikou, utilizací procesoru, ... využití procesoru, čas, kdy je procesor zaměstnán, jde o významné kritérium, u jednouživatelských OS a RT je méně důležité

Plánování běhu procesů Processor Ready queue Ready, suspend queue Blocked, suspend queue Blocked queue Interactive users Time-out Release Event wait Event occurs Long-term scheduling Medium-term Short-term Batch jobs

First Come First Served (FCFS) Proces Vznik Trvání 1 3 2 6 4 5 8 - vybírá se proces, který je nejdéle ve frontě připravených procesů, rozhodování není preemptivní, proces běží tak dlouho, dokud se sám neukončí, pokud je proces orientovaný na procesor, dojde k jeho monopolizaci, procesorově orientované procesy jsou zvýhodňovány, I/O orientované procesy musí čekat, i když už mají dokončenu svoji operaci (nedojde k uvolnění periferie), pro I/O procesy je potřeba zajistit vyšší prioritu, snadno se implementuje

Cyklické plánování (Round Robin) Proces Vznik Trvání 1 3 2 6 4 5 8 - vybírá se proces, který je nejdéle ve frontě připravených procesů, rozhodování je nepreemptivní, proces běží po předem stanovenou dobu časového kvanta (jednotky až desítky ms), po vypršení časového kvanta je proces přeplánován a vrací se na konec fronty připravených procesů, při ignorování plánovací režie dostává každý z n procesů k dispozici 1/n výkonu procesoru, pro q dostatečně velké dochází k degradaci na FCFS, pro malé q se výrazně projevuje plánovací režie, zvýhodněné jsou procesorově vázané procesy, I/O procesy časové kvantum nevyužije a řadí se do fronty Blocked, procesorově vázané procesy je proto předbíhají, neboť se vrací do fronty připravených procesů

Virtuální RR - model - po ukončení I/O operace je proces přesunut do pomocné fronty, která je obsluhována přednostně před regulérní frontou připravených procesů, procesy spuštěné z této pomocné fronty běží pouze po dobu nevyčerpaného časového kvanta

Shortest Process Next (SPN) Vznik Trvání 1 3 2 6 4 5 8 - vybírá se proces s nejmenší očekávanou dobou potřeby procesoru, může být nonpreemptivní nebo preemptivní (pokud se objeví kratší proces, je přeplánováno, SRT – Shortest Remaining Time), procesy vázané na I/O budou upřednostňovány, je potřeba dokázat odhadnout dávku potřeby procesoru, používá se exponenciální průměrování (aproximace budoucnosti z historie), hrozí nebezpečí stárnutí dlouhých procesů, pokud bude vznikat dostatečný počet krátkých procesů

Průměrování Nechť T[i] je i-tá doba provádění procesu, skutečná doba trvání časového kvanta procesoru přiděleného procesu. Nechť S[i] je odhad i-tého kvanta. Nejjednodušší volba S[i+1] je odhad průměrem: Aby se nemusela opakovaně počítat celá suma, lze tento vztah přepsat: Tím se dá stejná váha každé instanci běhu procesu. Z principu časové lokality platí, že poslední instance běhu procesu lépe vystihují budoucí chování procesu a proto se používá metoda exponenciálního průměrování.

Exponenciální průměrování Postup volby příštího kvanta procesoru: Pokud platí, že a > 1/n, mají poslední instance běhu procesu větší váhu a váhy starších instancí se exponenciálně snižují s růstem vzdálenosti na časové ose: Odhad první instance S[1] se obvykle neprovádí a nastavuje se na hodnotu nula (dává se tím přednost novým procesům).

Srovnání plánovacích politik – použité procesy Process Arival Time Service Time A 3 B 2 6 C 4 D 5 E 8

Srovnání plánovacích politik 5 10 15 20 A FCFS B C D E A B RR q=1 C D E A B RR q=4 C D E A B C SPN D E A B C SRT D E A B Feedback q=1 C D E

FCFS RR q=1 RR q=4 SPN SRT FB q=1 Process Arrival Time Service Time (Ts) A 3 B 2 6 C 4 D 5 E 8 Průměr FCFS Finish Time Turnaround Time (Tr) Tr/Ts 1,00 9 7 1,17 13 2,50 18 12 2,40 20 6,00 8,60 2,65 RR q=1 1,33 16 2,67 17 3,25 14 2,80 15 3,50 10,80 2,71 RR q=4 2,5 11 1,25 19 5,50 10,00 SPN 2,75 1,50 7,60 1,84 SRT 2,17 10 7,20 1,59 FB q=1 3,00 2,60 1,5 2,63

Správa procesů Operační systém, to je něco jako socialistická ekonomika: samé plánování a samá fronta. (Roderik Plevka) - správce procesů (dispečer, plánovač) sleduje procesy v systému a řídí jejich chování, předává jim procesor - správce procesů plánuje, který proces bude aktivován, rozhoduje o přerušení aktivního procesu - příští aktivní proces určuje plánovací algoritmus - pro zajištění činnosti udržuje správce procesů několik front procesů, odpovídajících jednotlivým situacím, ve kterých proces na něco čeká - ve frontách čekají procesy na ukončení určité situace - z fronty se vybírá proces podle splnění určitých kritérií, aktivace po odstranění příčiny čekání - zabraňuje monopolizování procesoru procesem

Fronty procesů - práce s frontami - základní požadavek efektivity správce procesů - fronta je objekt, na který můžeme aplikovat služby: * vytvoření fronty - vznik nového objektu * zrušení fronty * umístění do fronty - vložení na určité místo fronty * odebrání z fronty - vrací proces z fronty (první, obecný) - správce front udržuje několik prioritních front, jednu frontu speciál- ního typu - delta list, fronty typu FIFO - prioritní fronta - parametrem je priorita procesu, podle které se pro- cesy řadí sestupně, proces je zařazen na konec skupiny procesů se stejnou prioritou - delta list - fronta, do které se procesy řadí pro čekání na uplynutí ča- sového intervalu - absolutní čas je pouze u prvního procesu, jinak přírůstky - FIFO – First In First Out, LIFO – Last In First Out

Typy front 3. 2. 1. P = 1 P = 4 P = 6 P = 10 P = n ….. t = 16 D = 1 první 3. 2. 1. FIFO poslední Typy front Prioritní P = 1 P = 4 P = 6 P = 10 P = n ….. 1 4 6 10 n Delta list t = 16 D = 1 D = 4 D = 5 D = 680 D = 682 D = 1548 D = 10589 ….. 18 697 1580 12358 LIFO 3. 2. 1. poslední první

. . . . . Fronta jako spojový seznam - žádný proces nemůže být ve více frontách současně, zpětně vázaný seznam (v každém prvku vyjma prvního a posledního je umístěn ukazatel na předcházející a následující prvek) NULL následující PID předchozí První člen Poslední člen . . . . .

Stavy procesů Nulový proces suspended ready current waiting receiving sleeping Nulový proces Situace, kdy jsou všechny procesy mimo pohotovostní stav (ready), jediný aktivní proces potřebuje přerušit (čekání na stisk klávesy) - proces s nízkou prioritou, triviální obsah, nesmí být v jiném stavu než ready nebo current

Stavy procesů - suspended: speciální stav procesů, z/do něj se dostane pouze na základě explicitního požadavku jiného procesu nebo OS - ready: čekání na přidělení procesoru, ready (prioritní) fronta, vybírá se první proces - current: aktivní stav, pouze jeden proces, při ukončení změna kontextu - waiting: čekání na periferní operaci, každá událost má svoji frontu - receiving: čekání na příchod zprávy od jiného procesu - sleeping: čekání na uplynutí časového intervalu, delta list z kteréhokoliv stavu lze proces zrušit, při rušení aktivního procesu se mění kontext- změna kontextu - základní kámen multitaskingu, plánování činnosti procesů

Služby správce procesů Vlastní přepnutí kontextu je „zabaleno“ do resched create suspended resume suspend resched ready current signal wait waiting Využívají ovladače periferií send receive receiving Komunikace se servery wakeup sleep blocked sleeping