Stáhnout prezentaci
Prezentace se nahrává, počkejte prosím
1
2. konzultace (4 hodiny) 14. 3. 2014 Studijní materiály najdete na adrese: http://www.uai.fme.vutbr.cz/~vdumek/
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
- 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 Proces 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
7
Vytvoření a přerušení procesu 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) 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
8
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
9
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
10
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
11
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
12
Struktura seznamů procesů Running Ready Blocked PCB
13
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
14
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...
15
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
16
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ů
17
Process A Process B Process C Dispatcher RunningReadyBlocked Stavy procesů při trasování
18
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
19
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
20
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
21
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
22
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
23
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
24
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ů
25
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
26
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)
27
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
28
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ů,...)
29
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
30
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
31
Vztah mezi procesy a sledy Threads:ProcessesDescriptionExample 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
32
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
33
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
34
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
35
Problém konzistence - příklad Scénář Proces vytvořil vlákna T 1 a T 2. T 1 počítá C = A + B. T 2 používá hodnotu X: A = A – X; B = B + X T 1 a T 2 pracují souběžně, avšak jejich rychlosti nejsou známy. Úmysl programátora Nechť A = 2; B = 3; X = 10 T 2 udělá A = A – X; B = B + X[A=-8,B=13,C=5] T 1 spočítá C = A + B, hodnota C nezávisí na X. Možná realita T 2 udělá A = A – X a pak je mu odebrán procesor.[A=-8,B=13,C=-5] T 1 spočítá C = A + B = A – X + B T 2 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!
36
Multithreading Example on a Uniprocessor time Time quantum expires Process created Blocked Running Ready Thread A (Process 1) Thread B (Process 1) Thread C (Process 2) I/O request Request complete Time quantum expires
37
- 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řepínání procesů UdálostPříčinaVyužití InterruptProvedení běžné instrukce na vnější popud Reakce na asynchronní externí událost TrapReakce na událost během provádění instrukce Zpracování chyby nebo výjimečného stavu Supervisor callExplicitní požadavekVolání funkce operačního systému
38
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ř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 a režimu
39
Přepínání kontextu procesů proces P 0 proces P 1 operační systém uložení kontextu P 0 předání kontextu P 1...... uložení kontextu P 1 předání kontextu P 0...... idle běží privilegované instrukce
40
- 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 Sdílení času
41
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 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 větší než typická doba interakce časové kvantum menší než typická doba interakce
42
Proč multitasking ? procesorV/V Model - zvýšení využití procesoru - pravděpodobnost čekání na V/V - pravděpodobnost pro n procesů - využití procesoru p n pnpn
43
- 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 Vývoj multitaskingu
44
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, …)
45
- 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 Modul přidělování procesoru 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
46
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
47
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 Plánování běhu procesů - rozdělení
48
Prioritní fronty Processor RQ 0 Blocked queue Release Event wait Event occurs RQ 1 RQ 2 RQ n... Preemption Dispatch Admit
49
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é
50
Plánování běhu procesů
51
First Come First Served (FCFS) ProcesVznikTrvání 103 226 344 465 582 - 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
52
Cyklické plánování (Round Robin) ProcesVznikTrvání 103 226 344 465 582 - 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ů
53
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
54
Shortest Process Next (SPN) ProcesVznikTrvání 103 226 344 465 582 - 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ů
55
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í.
56
Exponenciální průměrování Postup volby příštího kvanta procesoru: Pokud platí, že > 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).
58
Srovnání plánovacích politik – použité procesy ProcessArival TimeService Time A03 B26 C44 D65 E82
Podobné prezentace
© 2024 SlidePlayer.cz Inc.
All rights reserved.