2. konzultace (4 hodiny) 14. 3. 2014 Studijní materiály najdete na adrese:

Slides:



Advertisements
Podobné prezentace
Základy databázových systémů
Advertisements

Přednáška č. 3 Normalizace dat, Datová a funkční analýza
Komunikace periférii.
SOFTWARE dálkové studium PODNIKÁNÍ 2. listopad 2006.
Přednáška č. 5 Proces návrhu databáze
Operační systémy. OPERAČNÍ SYSTÉMY pomoc operátorovi, podpora vlastností reálného času, víceuživatelských a více úlohových systémů.
Otázky k absolutoriu HW 1 - 5
hierarchie pamětí vyrovnávací paměť režimy práce procesoru
Kontakty Webpage přednášky: – Slajdy (MS PowerPoint): –ftp://ulita.ms.mff.cuni.cz/predn/PRG017 Technické.
7. přednáška konzistence dat (příklad) -multithreading (monoprocesor) -sdílení času -analýza časového kvanta -priorita -přepínání (procesů,
Operační systémy Přednášky pro výuku předmětu Operační systémy Ing. Antonín Vaněk, CSc. DFJP, Univerzita Pardubice září 2003.
Operační systémy Přednášky pro výuku předmětu Operační systémy Ing. Antonín Vaněk, CSc. DFJP, Univerzita Pardubice září 2003.
Databázové systémy. Práce s daty Ukládání dat Aktualizace dat Vyhledávání dat Třídění dat Výpočty a agregace.
Databázové systémy Architektury DBS.
Operační systém (OS) ICT Informační a komunikační technologie.
13AMP 2. přednáška Ing. Martin Molhanec, CSc.. Stav procesu (kontext) Stav procesu je úplná informace, kterou je nutné uschovat při přerušení procesu,
Správa procesů.
Gymnázium, SOŠ a VOŠ Ledeč nad Sázavou I NFORMAČNÍ A KOMUNIKAČNÍ TECHNOLOGIE Ing. Jan Roubíček.
13AMP 3. přednáška Ing. Martin Molhanec, CSc.. Co jsme se naučili naposled I. Co je to kontext úlohy Co je to kontext úlohy Task switching (přepnutí úlohy)
Orbis pictus 21. století Tato prezentace byla vytvořena v rámci projektu.
Zablokování (deadlock, smrtelné objetí, uváznutí)
Správa procesů.
8. přednáška přepínání kontextu -plánování (pojmy, kritéria, prioritní fronty, vybrané typy) Studijní materiály najdete na adrese:
3. konzultace (5 hodin) Studijní materiály najdete na adrese:
Vnitřní (operační paměť)
A4B33OSS (J. Lažanský) verze: Podzim 2012 Procesy a vlákna 1 Obsah Téma 3 – Procesy a vlákna 1.Výpočetní procesy a jejich stavy 2.Stavový diagram procesů.
Operační systémy Název a adresa školy
Co je to OS Správce prostředků –spravuje a přiděluje systémové zdroje systému úlohám, stará se o jejich efektivní sdílení procesoru (ů) operační paměti.
Výrok „Vypadá to, že jsme narazili na hranici toho, čeho je možné dosáhnout s počítačovými technologiemi. Člověk by si ale měl dávat pozor na takováto.
Operační systémy. Výpočetní systém Stroj na zpracování dat vykonávající samočinně předem zadané operace.
Orbis pictus 21. století Tato prezentace byla vytvořena v rámci projektu.
1/28 PB153 OPERAČNÍ SYSTÉMY A JEJICH ROZHRANÍ Vlákna 06.
Systém souborů. Množina souborů různých typů – Data – Spustitelné programy – Konfigurační a pomocné informace – I/O zařízení Způsob organizace množiny.
Základy operačních systémů Meziprocesová komunikace a synchronizace Jakub Yaghob.
Základy operačních systémů
Operační systémy. Výpočetní systém Stroj na zpracování dat vykonávající samočinně předem zadané operace.
Kontakty slajdy: ftp://ulita.ms.mff.cuni.cz/predn/POS.
Operační systémy LS 2014/ přednáška 30. března 2015.
Operační systémy LS 2014/ přednáška 16. března 2015.
OPERAČNÍ SYSTÉMY učební text pro žáky SŠ.
Uvedení autoři, není-li uvedeno jinak, jsou autory tohoto výukového materiálu a všech jeho částí. Tento projekt je spolufinancován ESF a státním rozpočtem.
AS/400 (IBM iSeries) Úvod. Co vlastně je AS/400 (IBM i)? Aplikační systém 400 (AS/400) byl navržen jako počítač obecně použitelný v obchodním prostředí.
Uvedení autoři, není-li uvedeno jinak, jsou autory tohoto výukového materiálu a všech jeho částí. Tento projekt je spolufinancován ESF a státním rozpočtem.
Uvedení autoři, není-li uvedeno jinak, jsou autory tohoto výukového materiálu a všech jeho částí. Tento projekt je spolufinancován ESF a státním rozpočtem.
Uvedení autoři, není-li uvedeno jinak, jsou autory tohoto výukového materiálu a všech jeho částí. Tento projekt je spolufinancován ESF a státním rozpočtem.
Operační systémy 2015/ přednáška 21. března 2016.
Stránkování MATĚJ JURIČIČ 2015/2016 EP1 SPŠ A VOŠ JANA PALACHA KLADNO.
Vypracoval / Roman Málek
Zvídavé otázky 1. Prevence a detekce uváznutí
Služby Windows Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Ing. Libor Otáhalík. Dostupné z Metodického portálu ISSN: 
Operační systémy - úvod
Soubor Soubor v informatice označuje pojmenovanou sadu dat uloženou na nějakém datovém médiu, se kterou lze pracovat nástroji operačního systému jako.
DIGITÁLNÍ UČEBNÍ MATERIÁL
Téma 3 – Procesy a vlákna Obsah Výpočetní procesy a jejich stavy
PB 169 Počítačové sítě a operační systémy
Operační systémy 9. Spolupráce mezi procesy
Správa paměti.
PB 169 Počítačové sítě a operační systémy
Segmentace Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Ing. Libor Otáhalík. Dostupné z Metodického portálu ISSN: 
hierarchie pamětí vyrovnávací paměť režimy práce procesoru
5. přednáška 14. března 2016 Operační systémy 2015/2016.
3. konzultace (4 hodiny) 4. března 2016.
Správa disků
přerušení (instrukční cyklus, obsluha) vztahy mezi tématy
Přednášky z distribuovaných systémů
Přepínání procesů Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Ing. Libor Otáhalík. Dostupné z Metodického portálu ISSN: 
Paměť.
Správa procesů.
Přednášky z Distribuovaných systémů
Monitor Object 1.
Transkript prezentace:

2. konzultace (4 hodiny) Studijní materiály najdete na adrese:

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

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

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.

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

- 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

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

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

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

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

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

Struktura seznamů procesů Running Ready Blocked PCB

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

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

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

Timeout I/O request Timeout Timeout Enter Not running Running Exit Dispatch Pause Queue Processor Enter Exit Pause Dispatch Dvoustavový diagram procesů

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

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

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

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

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

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

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

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ů

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

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)

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

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ů,...)

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

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

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

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

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

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

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!

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

- 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

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

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 uložení kontextu P 1 předání kontextu P idle běží privilegované instrukce

- 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

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

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

- 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

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, …)

- 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

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

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í

Prioritní fronty Processor RQ 0 Blocked queue Release Event wait Event occurs RQ 1 RQ 2 RQ n... Preemption Dispatch Admit

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é

Plánování běhu procesů

First Come First Served (FCFS) ProcesVznikTrvání 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

Cyklické plánování (Round Robin) ProcesVznikTrvání 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ů

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

Shortest Process Next (SPN) ProcesVznikTrvání 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ů

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

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

Srovnání plánovacích politik – použité procesy ProcessArival TimeService Time A03 B26 C44 D65 E82