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

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

Operační systémy 2015/ přednáška 21. března 2016.

Podobné prezentace


Prezentace na téma: "Operační systémy 2015/ přednáška 21. března 2016."— Transkript prezentace:

1 Operační systémy 2015/2016 6. přednáška 21. března 2016

2 Operační systémy 2015/2016 Architektura kernelu Hardware Primitive process management Virtual memory I/O and device management Interprocess communication File system Users Kernel mode User mode Hardware Microkernel User mode Kernel mode... Client process Virtual memory Process server File server Device drivers

3 Operační systémy 2015/2016 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 - mikrokernal obsahuje jen nejzákladnější funkce (správa paměti, meziprocesová komunikace, plánování) - 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), démoni - komunikace mezi nimi probíhá pomocí zpráv - hybridní jádro (částečně monolit a mikrokernel)

4 Operační systémy 2015/2016 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í Typické funkce kernelu OS

5 Operační systémy 2015/2016 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

6 Operační systémy 2015/2016 Důvody pro odložení procesu swapping OS potřebuje získat místo v paměti other OS reason OS odloží proces, který působí problémy interactive user request uživatel projeví přání ladění, komunikace, připojení zdroje, … timing časové přerušení spojené s nějakou událostí (účtování, monitorování, …) parent process request rodič potřebuje přerušit činnost potomka (modifikace procesu, koordinování aktivity, …)

7 Operační systémy 2015/2016 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ů Interactive 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ů

8 Operační systémy 2015/2016 Řídící struktury OS - OS musí mít informace o aktuálním stavu procesů, informace o stavu HW zdrojů - OS vytváří a udržuje tabulky o všech částech, které jsou pro něj důležité - čtyři různé typy tabulek (paměť, I/O, soubory, procesy) - mohou být rozdíly mezi různými OS, uvedené kategorie ale platí obecně Memory tables – sleduje se stav primární (real) i sekundární (virtual) paměti, část paměti je rezervována pro OS, zbytek je pro procesy, tabulky musí obsahovat informace o alokování obou pamětí procesům, ochranné atributy pro neoprávněný přístup (sdílení), informace potřebné k řízení virtuální paměti I/O tables – jsou používány OS k řízení I/O zařízení a kanálů systému, obsahují informace o přiřazení I/O zařízení jednotlivým procesům, jejich dostupnost File tables – informují o uložení souborů na disku, všechny jeho atributy, informace využívá hlavně souborový systém Process tables – slouží pro řízení procesů, musí obsahovat lokalizaci procesu (PCB (task control block, process descriptor, task descriptor), process image)

9 Operační systémy 2015/2016 Řídící struktury OS Memory Devices Files Processes Memory tables Process 1 Process n Process 1 Process 2 Process 3 Process n I/O tables File tables...... Primary process table Process image

10 Operační systémy 2015/2016 Procesy a HW zdroje - 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 P 1 – P n - proces P 1 běží, proces P 2 je v paměti, ale je blokován, proces P n je ve stavu Suspend (na disku) - pro řízení procesů potřebuje OS informace P1P1 P2P2 PnPn Processor Main memory I/O Computer resources Disk

11 Operační systémy 2015/2016 Popis procesu -pro OS je nezbytné vědět vše o jednotlivých procesech -umístění může být v paměti nebo na disku -nejdůležitější strukturou je PCB -PCB obsahuje všechny důležité informace o procesu -souhrn atributů v PCB + program + data + stack – process image -vznik procesu: přiřazení unikátního ID, alokace paměti pro proces, inicializace PCB, nastavení souvisejících odkazů (např. umístění procesu do Ready fronty), vytvoření souvisejících datových struktur (např. pro účtování, hodnocení, …) -typické součásti image procesu: user data, user program, stack, PCB

12 Operační systémy 2015/2016 UNIX Process State Transition Diagram Preempted User running Kernel running Zombie Ready to run in memory Ready to run swapped Created Asleep in memory Sleep, swapped sleep fork enough memory not enough memory swap in swap out wakeup swap out exit preempt reschedule process return system call, interrupt interrupt, interrupt return return to user

13 Operační systémy 2015/2016 Význam jednotlivých stavů - procesy v systému UNIX (System V, Bell, 1983, pokračovatel K&R) běží v uživatelském nebo systémovém prostředí, změna na kernel mód se provádí systémovým voláním (když nastane exception nebo interrupt) - diagram vychází ze dvou stavů suspend, dva stavy Sleep, dva stavy Running, koncepce vychází z kernelovských funcí prováděných v uživatelském režimu - Ready to Run in Memory – proces je připraven k běhu, jakmile je kernelem přeplánován - Preempted – proces se vrací z kernel módu do uživatelského módu, ale kernel přeplánuje jiný proces k běhu - Created – proces je nově vytvořený a ještě není schopen běhu - Zombie – proces přestává existovat, ruší se všechny záznamy týkající se jeho předka

14 Operační systémy 2015/2016 UNIX system V, SVR4 - Ready to Run Swapped – proces je připraven k běhu, kernel jej ale odložil na disk - Asleep in Memory – proces čeká na událost, v main memory - Sleeping Swapped – proces čeká na událost v blokovaném stavu na disku - User/Kernel Running – provádění v patřičném režimu - k preempci (přeplánování) může dojít pouze v uživatelském módu, pokud je UNIX v kernel módu, tak k preempci nedochází, OS UNIX je tak nevhodný pro RT zpracování - pro UNIX existují dva speciální procesy, proces 0 – vytváří se při bootování (vše je předdefinováno), proces 1 – jde o potomka procesu 0, init proces, ten je předchůdcem všech ostatních procesů

15 Operační systémy 2015/2016 - 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 - 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í (procesy, režimy)

16 Operační systémy 2015/2016 Přepínání UdálostPříčinaVyuž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

17 Operační systémy 2015/2016 Vlákna (threads) - Program – soubor přesně definovaného formátu ( instrukce, data, služební ú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ů,...)

18 Operační systémy 2015/2016 Procesy, vlákna a jejich komponenty kód programuproces lokální pracovní datavlákno globální dataproces alokované systémové zdrojeproces Zásobníkvlákno data pro správu pamětiproces čítač instrukcívlákno registry procesoruvlákno plánovací stavvlákno uživatelská práva a identifikaceproces

19 Operační systémy 2015/2016 Procesy a sledy One process One thread One process Multiple thread Multiple processes Multiple threads per process Multiple processes One thread per process Instruction trace

20 Operační systémy 2015/2016 Vztah mezi procesy a sledy

21 Operační systémy 2015/2016 Single Threaded and Multithreaded Process Models – Control Structures User stack Kernel stack Single-threaded process model Multi-threaded process model Process control block User address space User stack Kernel stack User stack Kernel stack User stack Kernel stack Process control block User address space Thread control block Thread control block Thread control block

22 Operační systémy 2015/2016 Procesy a vlákna Kód Jednovláknový procesVícevláknový proces Data Soubory Registry Zásobník KódData Soubory Registry Zásobník

23 Operační systémy 2015/2016 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 - 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

24 Operační systémy 2015/2016 Procesy a vlákna - vlákna jednoho procesu sdílí paměť a tudíž mohou mezi sebou komunikovat, aniž by potřebovala 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


Stáhnout ppt "Operační systémy 2015/ přednáška 21. března 2016."

Podobné prezentace


Reklamy Google