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

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

Operační systémy LS 2014/2015 5. přednáška 16. března 2015.

Podobné prezentace


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

1 Operační systémy LS 2014/2015 5. přednáška 16. března 2015

2 Operating system Design Hierarchy LNameObjectsExample Operations 13ShellUser programming environmentStatements in shell language 12User processes Quit, kill, suspend, resume 11Directories Create, destroy, attach, detach, search list 10Devices External devices, such as printers, displays and keyboards Open, close, read, write 9File systemFilesCreate, destroy, open, close, read, write 8ComunicationsPipesCreate, destroy, open, close, read, write 7Virtual memorySegments, pagesRead, write, fetch 6Load secondary storeBlocks of data, device channelsRead, write, allocate, free 5Primitive processesPrimitive processes, semaphores, ready listSuspend, resume, wait, signal 4InterruptsInterrupt-handling programsInvoke, mask, unmask, retry 3ProceduresProcedures, call stack, displayMark stack, call, return 2Instruction set Evaluation stack, microprogram interpreter, scalar and array data Load, store, add, subtract, branch 1Electronic circuitsRegisters, 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í).

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.

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

6 - 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) Proces

7 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...

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

9 Operační systémy LS 2014/2015 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)

10 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 5000 – Starting address of program of Process A 8000 – Starting address of program of Process B 12000 – Starting address of program of Process C Trasování procesů Process C Process A Process B Dispatcher 0 100 5000 8000 12000 8000 Main memory Program counter

11 Timeout I/O request Timeout 15000 25001 35002 45003 55004 65005 7100 8101 9102 10103 11104 12105 138000 148001 158002 168003 17100 18101 19102 20103 21104 22105 2312000 2412001 2512002 2612003 2712004 2812005 29100 30101 31102 32103 33104 34105 355006 365007 375008 385009 395010 405011 41100 42101 43102 44103 45104 46105 4712006 4812007 4912008 5012009 5112010 5212011 Timeout Enter Not running Running Exit Dispatch Pause Queue Processor Enter Exit Pause Dispatch Dvoustavový diagram procesů

12 Process A Process B Process C Dispatcher RunningReadyBlocked Stavy procesů při trasování

13 Vytvoření, přerušení a přeplánování procesu Operační systémy LS 2014/2015 -ž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

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

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

16 P1P1 OS 1 kernel... Vztah mezi operačním systémem a procesy process switching functions... P1P1 P2P2 P3P3 PnPn P2P2 P3P3 PnPn OS 2 OS 3 OS n P1P1 P2P2 P3P3 PnPn funkce OS - 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 - 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 - OS je implementován jako kolekce systémových procesů, většina kernelových funkcí je organizována v samostatných procesech

17 OS je prováděn během procesu PCB Process identification Process state information Process control information User stack Private user address space (program, data) Kernel stack Shared address space 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 sdílení všemi procesy

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

19 Struktura seznamů procesů Running Ready Blocked PCB

20 připraven probíhající čekající předánpřijat dokonče n Procesu je přiřazen procesor Čekání na dokončení I/O operace I/O operace je dokončena - 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řijat: úloha převedena do vnitřního tvaru, procesům nejsou přiděleny žádné prostředky - dokončen: prostředky jsou volné Stavy procesu

21 Pětistavový model procesu - 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,...) New Ready Running Blocked Exit Dispatch Timeout Přijmout Očekávaná událost Událost nastala Uvolnit

22 Jeden stav suspend New Admit Dispatch Release Timeout Suspend Activate Event occurs Event wait ReadyRunningExit SuspendBlocked 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

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

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

25 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

26 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ů


Stáhnout ppt "Operační systémy LS 2014/2015 5. přednáška 16. března 2015."

Podobné prezentace


Reklamy Google