Stáhnout prezentaci
Prezentace se nahrává, počkejte prosím
1
3. konzultace (4 hodiny) 4. března 2016
2
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
3
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
4
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.
5
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
6
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í).
7
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.
8
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
9
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
10
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)
11
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
12
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
13
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
14
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
15
Struktura seznamů procesů
Running PCB Ready Blocked PCB PCB PCB PCB PCB PCB PCB PCB
16
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
17
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 . . .
18
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
19
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
20
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
21
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é
22
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, ...)
23
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
24
Dva stavy suspend Ready / Suspend Dispatch Release Timeout Activate
Event occurs Event wait Ready Running Exit Blocked / Blocked New Admit
25
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
26
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
27
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ů
28
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
29
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
30
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í
31
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ů, ...)
32
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
33
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
34
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
35
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
36
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
37
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
38
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!
39
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
40
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
41
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
42
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
43
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
44
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
45
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
46
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
47
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, …)
48
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
49
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
50
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
51
Prioritní fronty . . . RQ0 Dispatch Release Processor RQ1 RQ2 Admit
Blocked queue Release Event wait Event occurs RQ1 RQ2 RQn . . . Preemption Dispatch Admit
52
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é
53
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
54
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
55
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ů
56
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
57
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ů
58
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í.
59
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).
61
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
62
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
63
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
64
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
65
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
66
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í
67
. . . . . 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
68
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
69
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ů
70
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
Podobné prezentace
© 2024 SlidePlayer.cz Inc.
All rights reserved.