Stáhnout prezentaci
Prezentace se nahrává, počkejte prosím
1
5. přednáška 14. března 2016 Operační systémy 2015/2016
2
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
3
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í). Operační systémy 2015/2016
4
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. Operační systémy 2015/2016
5
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 Operační systémy 2015/2016
6
Proces zdroje, HW, SW (OS, aplikace) prováděný program
instance běžícího programu na počítači entita, která může být přiřazena a provedena procesorem aktivní jednotka charakterizovaná a prováděná sekvenčně prováděnými instrukcemi (vláknem), se svým stavem a sdružená se systémovými zdroji skládá se z několika částí, z nich základní jsou kód programu a množina zpracovávaných dat všechny informace jsou uloženy ve struktuře – PCB (vytváří se současně se vznikem procesu) Operační systémy 2015/2016
7
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 . . . Operační systémy 2015/2016
8
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 Operační systémy 2015/2016
9
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 implicitní 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 existence PCB je klíčovým nástrojem k podpoře multiprocesingu při přerušení procesu (v preemptivním prostředí kdykoliv) dochází k uložení všech údajů spojených s procesem (datový kontext, běhový kontext), je provedena změna ve stavu procesu a může být prováděn další proces s fronty připravených procesů 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) Operační systémy 2015/2016
10
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 Operační systémy 2015/2016
11
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 Operační systémy 2015/2016
12
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 Operační systémy 2015/2016
13
Vytvoření, přerušení a přeplánování procesu
život procesu je ohraničen jeho vytvořením a přerušením (ukončením) v dávkovém prostředí – proces je vytvořen na požadavek jobu v interaktivním prostředí – reakce na přihlášení nového uživatele, v obou případech je vytvořen nový proces proces může být vytvořen i prostřednictvím běžící aplikace (požadavek na tisk, …) na přání procesu – process spawning parents process, child process komunikace a spolupráce spawn procesů 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 Operační systémy 2015/2016
14
Důvody pro vytvoření procesu
Způsob přerušení - ukončení Popis Normální Vše je hotovo Překročení časového limitu Proces trvá déle, než je pro něj určeno Nedostupná paměť Proces požaduje více paměti než má OS Porušení hranic Proces požaduje přístup do zakázané oblasti paměti Chyba ochrany Proces chce použít prostředek, který není k tomu určený (soubor, …) Chyba aritmetiky Došlo k aritmetické chybě (dělení nulou, snaha o uložení většího čísla, …) Překročení času čekání Proces čeká na událost déle, než je určeno Chyba I/O Chyba při komunikaci s periferií Špatná instrukce Pokus o provedení neexistující instrukce (skok do datové oblasti, …) Privilegovaná instrukce Proces zkouší instrukci určenou pro privilegovaný režim Intervence operátora nebo OS Ukončení procesu ze strany OS nebo operátora Požadavek od rodiče Požadavek může ukončit všechny vlastní potomky Operační systémy 2015/2016
15
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 Operační systémy 2015/2016
16
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 Operační systémy 2015/2016
17
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 Operační systémy 2015/2016
18
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 Operační systémy 2015/2016
19
Struktura seznamů procesů
Running PCB Ready Blocked PCB PCB PCB PCB PCB PCB PCB PCB Operační systémy 2015/2016
20
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é Operační systémy 2015/2016
21
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, ...) Operační systémy 2015/2016
22
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 Operační systémy 2015/2016
23
Dva stavy suspend Ready / Suspend Dispatch Release Timeout Activate
Event occurs Event wait Ready Running Exit Blocked / Blocked New Admit Operační systémy 2015/2016
24
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 Operační systémy 2015/2016
Podobné prezentace
© 2024 SlidePlayer.cz Inc.
All rights reserved.