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

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

11. přednáška 2. května 2016 Operační systémy 2015/2016.

Podobné prezentace


Prezentace na téma: "11. přednáška 2. května 2016 Operační systémy 2015/2016."— Transkript prezentace:

1 11. přednáška 2. května 2016 Operační systémy 2015/2016

2 Formáty virtuální paměti Virtuální adresa Page numberOffset Další řídící bityPMFrame number Virtuální adresa Page numberOffset Další řídící bityPMFrame number Page table entry Virtuální adresa Segment numberOffset Další řídící bityPMLength Segment table entry Segment base Segment number Page table entry Segment table entry DélkaSegment baseŘídící bity Pouze stránkování Pouze segmentace Kombinace segmentování a stránkování P M Present in main memory Modify

3 Příklady velikosti stránky PočítačVelikost stránky Atlas bit words Honeywell - Multics bit words IBM 370/XA, 370/ESA4 KB VAX family512 B IBM AS/ B DEC Alpha8 KB MIPS4 KB až 16 MB UltraSPARC8 KB až 4 MB Pentium4 KB nebo 4 MB Power PC4 KB Itanium4 KB až 256 MB Operační systémy 2015/2016

4 Problém velikosti stránky Frekvence výpadků Počet alokovaných rámců NW Velikost stránky Frekvence výpadků P - velmi malý rozměr stránky – není zde nic, co není potřeba z hlediska prostorové lokality, malý počet výpadků stránek - čím menší stránka, tím menší interní fragmentace, větší počet stránek – delší tabulka stránek (čerpání větší velikosti FAP) - umístění PT ve virtuální paměti – dvojnásobný počet přerušení page fault - čím delší stránka – více dat než je nutné z hlediska prostorové lokality, větší počet výpadků (konečná kapacita FAP) - obvyklá délka stránky 1 KB – 4 KB - některé procesory podporují možnost používat několik rozměrů stránek - frekvence výpadků stránky je dána i počtem rámců přidělených procesu Hodně malých stránek ve FAP Méně stránek i s nepotřebnými daty Celý program v 1 stránce ve FAP - pravděpodobnost výpadku stránky 0 <= p <= 1 - p=0 žádný výpadek, p=1 výpadek pro každý odkaz EAT = (1 – p)*t p + p*t r t p – doba přístupu do paměti, t r – režie výpadku Operační systémy 2015/2016

5 Politika přidělování místa Frekvence výpadků Počet alokovaných rámců U W Neměnit alokaci rámců L - je potřeba řešit problém, kolik rámců procesu přidělit, pokud málo – zvýší se frekvence výpadků stránek, pokud hodně – omezí se možný stupeň multiprogramování - problém proměnnosti počtu, pokud se přidělí konstantní počet, určuje se při spuštění, v případě proměnného počtu (roste / klesá podle změny frekvence výpadků stránek – je zde vyšší režie operačního systému) - sledování frekvence výpadků - definuje se horní (U) a dolní (L) mez frekvence výpadků stránek - při překročení horní meze se procesu přidělí více rámců (pokud nejsou tak se proces odloží) - pokud klesne pod dolní mez, tak se procesu přidělí rámců méně Operační systémy 2015/2016

6 Trashing stupeň multiprogramování využití procesoru trashing (výprask) - pokud je mnoho procesů (malé rezidentní množiny), dochází k častým výpadkům stránek - systém nedělá nic jiného, než zavádí stránky - ochrana před výpraskem (pevná alokace počtu rámců) - omezení stupně multitaskingu (procesy nejnižších priorit, procesy způsobující výpadky stránek, naposled běžící proces, největší proces, proces s nejdelší dobou dokončení,...) Operační systémy 2015/2016

7 Algoritmy určení oběti OPT (optimální nahrazování) - proces s 5 stránkami, rezidentní množina 3 stránky - oběť – nejpozdější ze všech následných odkazů - generuje nejmenší počet výpadků stránky - neimplementovatelný, srovnávací normál LRU (Least Recently Used) - obětí je nejdéle neodkazovaná stránka - princip lokality -> pravděpodobnost referencování je malá - výkon blízký OPT - velmi drahé řešení - velká režie - čítač má konečnou kapacitu Operační systémy 2015/2016

8 Algoritmy určení oběti FIFO - obětí je nejdéle zobrazená stránka ve FAP - rámce jsou organizovány do cyklického bufferu - když je buffer plný, nahrazuje se nejstarší stránka - méně efektivní, jednoduchá implementace "Máš ještě 1 šanci" / hodiny - výběr oběti – cyklické procházení rámci - referencí se získává "život" (nekumulativně) - výběrem za oběť se "život" ztrácí - oběť bez * se nahrazuje * * Operační systémy 2015/2016

9 Srovnání algoritmů určení oběti Operační systémy 2015/2016

10 Hodnocení algoritmů určení oběti FIFO snadná implementace cyklického seznamu, méně efektivní, jednoduchá implementace, špatná heuristika (nerozpozná odkazované stránky) "Máš ještě 1 šanci" / hodiny chrání před výběrem často referencované stránky, numerické simulace dokazují optimalitu blížící se LRU OPT nutnost znát budoucnost, neimplementovatelný, srovnávací normál LRU časové čítače s konečnou kapacitou, oběť má nejvyšší hodnotu čítače, časová lokalita, implementace má vysokou režii, pseudo-LRU – "used" bit, pravidelné nulování, při referenci se nastaví na hodnotu 1, pokud je 0 – kandidát na odložení Operační systémy 2015/2016

11 Správa I/O zařízení (periferií) - vstupní a výstupní zařízení - od notoricky známých až po zbraně, traktory, obráběcí stroje, vlhkoměry, převodníky, … - pro lidské rozhraní (komunikace s uživatelem, terminály s displeji, klávesnice, myš, tiskárna) - pro strojové rozhraní (disky, pásky, řadiče, senzory, komunikace modemy, komunikace síťovými rozhraními) - rozdíly: v rychlosti přenosu dat, ve složitosti ovládání, v objemech přenosu (byte – desítky KB), v kódování dat, v chybovosti a reakcích na chyby - základní koncepce připojení: port (mechanicky i elektricky definované připojení), I/O adresa (kanál), sběrnice, řadič (adaptér) - I/O zařízení jsou ovládána I/O instrukcemi (adresování I/O zařízení instrukcemi, mapování do FAP, zobrazování řídicích registrů řadičů do FAP) - znaková (klávesnice, displeje, terminály, tiskárny, myši, plottery, tablety), bloková (disky, pásky), speciální (časovač, speaker, …) - přidávání nových druhů zařízení: zásah do jádra OS (Unix), instalovatelné ovladače zařízení, kombinace obou způsobů - ovladače zařízení mají tři části: obslužný program přerušení, část závislá na zařízení, část nezávislá na zařízení (správce vyrovnávací paměti, přidělení jména zařízení, …) - hlavním úkolem operačního systému není přímé ovládání periferie, ale její korektní přidělování jednotlivým procesům, služby pro manipulaci s periferií jsou na daleko vyšší úrovni, než jakou nabízí samo zařízení, sdílení a ochrana zařízení, tyto služby nemusí být součástí operačního systému, mohou být soustředěny ve sdílených knihovnách - vyhrazená (vyhrazování, virtualizace), sdílená, společná Operační systémy 2015/2016

12 Rychlosti I/O zařízení Gigabit ethernet Graphics display Hard disk Ethernet Optical disk Scanner Laser printer Floppy disk Modem Mouse Keyboard date rate [bps] Operační systémy 2015/2016

13 Pevný disk Platter Track Head Cylinder Sector -vzdálenost hlavy cca 0,5 μm -sektor – nejmenší jednotka, kterou umí disk číst/zapsat (512 až 4096 B) -prokládání (interleaving) -disková rozhraní – ATA, SATA, SCSI, USB, FireWire, FieberChannel -diskové sběrnice se liší rychlostí (cca 16 GB/s), počtem připojitelných zařízení, maximální délkou kabelů … -někdy se jim říká sekundární paměť Operační systémy 2015/2016

14 Velikostní poměry Operační systémy 2015/2016

15 Pevný disk - parametry -přístupová doba – doba vystavení hlav + rotační zpoždění -kapacita – nízké jednotky TB -průměrná doba přístupu – nízké jednotky ms -otáčky – až ot./min. -přenosová rychlost – stovky MB/s, GB/s -různé počítání GB – 10 9 B, 1.000*2 20 B, B = 2 30 B -u přenosových rychlostí je potřeba dávat pozor na sustained transfer rate (opravdové čtení z ploten) a maximum transfer rate (čtení z bufferu disku) -možnost měření přenosových rychlostí – hdparm –t Operační systémy 2015/2016

16 SSD disk -Solid State Drive -založení na nevolatilních pamětech NAND flash, jsou i v provedení DRAM se zálohovaným napájením nebo kombinace -výhody: rychlý náběh, náhodný přístup (od jednotek do stovek μs), větší přenosová rychlost (cca 600 MB/s), zápis může být pomalejší, tichý provoz, mechanická a magnetická odolnost, nižší spotřeba (mimo DRAM) -nevýhody: vyšší cena, omezený počet přepisů (ne příliš významné pro běžný provoz), možné komplikace se zabezpečením -NAND flash disky jsou organizovány do stránek (4 KB) a ty do bloku (128 stránek) -pro zápis je nutné načíst celý blok do vyrovnávací paměti, udělat změny a celý blok potom zapsat zpět Operační systémy 2015/2016

17 RAID -diskové pole – Redundant Array of Independet/Inexpensive Disks v Berkeley, není to zálohování, obyčejné disky -RAID0 – linear, striping, bloky jsou rozmístěny na různých discích, žádná redundance, není vlastně RAID -RAID1 – disk mirroring, všechna data jsou ukládána na dva disky, velká redundance, mohou být i dva řadiče (duplexing), RAID 0+1, RAID 1+0 -RAID2- data jsou rozdělena mezi disky po bitech, použito zabezpečení Hammingovým kódem, chybu na jednom disku lze opravit, na dvou discích detekovat -RAID3 – sekvence bajtů je rozdělena na části uložené na různých discích, navíc je použitý disk s paritami -RAID4 – bloky dat jsou na různých discích a paritní bloky jsou na zvláštním disku -RAID5 – vyžaduje alespoň 3 disky, paritní a datové bloky jsou rozloženy na všech discích, kapacitu jednoho členu zabírají samoopravné kódy Operační systémy 2015/2016

18 Platformy rozhraní Win32 API - API - Application Programming Interface, množina funkcí vyvinutá firmou Microsoft - implementace na platformách (později rozšířená i na 64-bitů): Win32s - mapovací vrstva z 32 b. na 16 b., pro Windows 3.x, používá mechanismus roubování (thunking), konvertuje 32 b. parametry na 16 b., platforma Win32s nerozšiřuje možnosti operačního systému, řada funkcí je realizována jako slepé (stub) - hned se vrátí a hlásí chybu (16 b. Win nepodporují toky -> funkce CreateThread vrací NULL), některá rozšíření (strukturovaná obsluha výjimek, částečná implementace paměťově mapovaných souborů), vytvořena pro vytváření 32 b. aplikací ještě před příchodem oficiální platformy, nijak zvlášť se neujala. Windows NT - platforma s výhledem do budoucnosti, žádné pozůstatky z MS DOSu, značné nároky na velikost paměti a disku, velice robustní, brání přímému přístupu k HW počítače, přenositelnost (C++, MIPS, Alpha, PowerPC) – potřeba překladu pro daný procesor, jádro a HAL (Hardware Abstraction Layer) je potřeba přepsat speciálně pro jinou architekturu (assembler), podpora více procesorů. Windows 95 (Windows 98) - první 32 b. platforma s širokým použitím, lepší implementace Win32 API než Win32s (nikoliv úplná), HW nedostatečný pro Windows NT, omezená podpora pro funkce bezpečnostní, sledování událostí, ladící, pro práci s registry, velmi přijatelná a výkonná. Windows CE - pro kapesní počítače, bez podpory virtuální paměti, podpora paměťově mapovaných souborů, strukturovaná obsluha výjimek, registry, DLL, preemptivní multitasking, přenositelná. Operační systémy 2015/2016

19 Objekty jádra - objekty se vytváří voláním různých funkcí rozhraní Win32 API (paměťově mapované soubory, semafory, procesy, prováděcí toky, události) - objekt jádra je tvořen vyhrazeným úsekem paměti, datová struktura se složkami o objektu, přístup k datovým strukturám má pouze jádro - zachování konzistentních objektů jádra – případné změny neovlivní existující aplikace - přístup aplikací výhradně přes API funkce - přístup k objektům přes handle (rukojeť), 32 bitové číslo, může ho použít kterýkoliv tok - objekty jádra vlastní jádro, při zrušení procesu objekt může dále existovat (použití jiným procesem) Počítadlo odkazů - objekt má počítadlo odkazů, inkrementace - při vzniku objektu nastaveno na hodnotu 1 - dekrementace při ukončení procesu - při dosažení hodnoty 0 je objekt zrušen Operační systémy 2015/2016

20 Tabulka handlů objektů jádra - při inicializaci procesu alokace tabulky handlů objektů jádra - podrobnosti o struktuře a správě tabulky nedokumentovány - návratová hodnota NULL ( CreateFile -1) typedef struct _TAB_HANDLE { INT index; VOID handle; DWORD maska; DWORD priznak; }; IndexUkazatel na paměťovou oblast Přístupová maska Příznaky 10xFFFFFFFF 2 ………… Vytvoření objektu jádra - při inicializaci procesu je tabulka prázdná, při vytvoření objektu se alokuje paměť a přiřadí se první položka, ukazatel na interní adresu bloku paměti objektu, maska na plný přístup - funkce pro vytvoření objektu vrací handle vztažený k volajícímu procesu, použitelný pro všechny prováděcí toky volajícího procesu - skutečné hodnoty handlů mohou být různé (nedokumentováno) Operační systémy 2015/2016

21 Objekty jádra Zavření objektu jádra - BOOL CloseHandle(HANDLE hobj) - při existenci objektu v tabulce volajícího procesu TRUE (jinak FALSE) - dekrementace počitadla odkazů (0 – zrušení), zrušení odpovídající položky v tabulce handlů - počitadlo <> 0 – objekt stále existuje (slouží pro jiný proces), volající proces už jej nemůže používat - při ukončení procesu je prohlížena tabulka handlů a všechny aktivní handly jsou zrušeny (v případě počitadla=0 jsou i odstraněny) Sdílení objektů jádra mezi procesy - sdílení bloků dat mezi dvěma procesy na stejném počítači (mapování souborů), předávání bloků dat mezi procesy na různých počítačích (poštovní přihrádky, roury), synchronizace prováděcích toků různých procesů (mutexy, semafory, události) - handly objektů jádra se vztahují pouze k jednomu procesu - zajištění robustnosti operačního systému, nelze zajistit při celosystémovém přidělování handlů - zabezpečení (systém autorizace handlů vlastníkem) Operační systémy 2015/2016

22 Dědičnost handlů - použití v případě rodičovství, objekt je vytvářen s příznakem dědičnosti, dědí se pouze handly (nikoliv objekty) - při vytvoření synovského procesu je vytvořena nová tabulka handlů a všechny řádky s příznakem dědičnosti v tabulce rodiče jsou zkopírovány (na stejné místo => stejný handle), inkrementace počitadla odkazů (využívání objektu více procesy) - rodič může zavřít handle bezprostředně po návratu z funkce Create…, aniž by omezil možnost manipulovat potomkovi s objektem - dědičnost funguje stejným způsobem i na další generace - dědění probíhá pouze v okamžiku vytváření potomka (pozdější objekty už nejsou zkopírovány do tabulky potomků), možnost změny příznaků IndexUkazatel na paměťovou oblast Přístupová maska Příznaky 10xF x????????0x (???) 30xF x????????0x ………… IndexUkazatel na paměťovou oblast Přístupová maska Příznaky 10x (???) 20x (???) 30xF x????????0x ………… RODIČPOTOMEK Objekty jádra

23 Pojmenované objekty - další způsob sdílení objektů jádra, jméno objektu je parametrem funkce Create… (MAX_PATH znaků (260), nesmí obsahovat \, stejný prostor jmen) - nemusí být příznak dědičnosti, je možné sdílet i mezi nepříbuznými procesy - stejný typ objektu Semaphore BERTA Proces A … … 150xABCD… … … HANDLE CreateSemaphore(…, …, …, "BERTA"); Proces B … … 220xABCD… … … HANDLE CreateSemaphore(…, …, …, "BERTA"); Objekty jádra

24 Duplikace handlů - kopírování položky z jedné tabulky handlů do druhé - mohou kooperovat tři procesy (zdrojový, cílový, aktivační) nebo dva procesy Objekty jádra Procesy - instance běžícího programu, k dispozici má paměťový prostor 4 GB, inertní - různé prostředky (soubory, dynamicky alokovaná paměť, prováděcí toky, …) - automatické uvolnění při ukončení procesu - za provádění kódu je zodpovědný prováděcí tok - kontext toku (registry procesoru, zásobník) - proces bez prováděcího toku je zrušen i se svým paměťovým prostorem - cyklické přidělování procesorového času jednotlivým tokům - primární prováděcí tok, vnořené toky - proces : prováděcí tok (1 : 1 MS DOS, Unix V, IRIX; 1 : M NT, Solaris) - souběžný běh prováděcích toků na víceprocesorových strojích - dva typy aplikací v prostředí Win32 API – graficky orientované (GUI), textově orientované (CUI - konzolové), hranice nejasná, systémový zavaděč Operační systémy 2015/2016

25 Cyklické přidělování procesoru - funkce CreateProcess - objekt jádra typu proces, počitadlo odkazů = 1, vytvoření adresového prostoru (data, EXE, DLL), primární prováděcí tok - spouštěcí kód runtimové knihovny s voláním funkce WinMain - ukončení procesu třemi způsoby: 1. nejběžnější, nastavení návratové hodnoty procesu, nevrací žádnou hodnotu, zánik všech prováděcích toků, následující kód se neprovede 2. nedoporučuje se, volá prováděcí tok jiného procesu, asociované DLL se nemusí dozvědět o ukončení procesu 3. velmi zřídka 1. VOID ExitProcess(UINT fuExitCode) 2. BOOL TerminateProcess(HANDLE hProcess, UINT fuExitCode) 3. zánik všech prováděcích toků - primární prováděcí tok jediným tokem v procesu (obvyklé) - elegantnější řešení než periodické dotazování (velké časové zpoždění) - každý prováděcí tok může mít přiřazen vlastní procesor (počet toků > počet procesorů) - každý tok vlastní zásobník alokovaný v 4 GB procesního adresového prostoru

26 Prováděcí toky - při použití statických a globálních proměnných může dojít k poškození - v případě automatických a lokálních proměnných se používá zásobník - implicitně je nastaven 1 MB paměťového prostoru, přiděleny dvě fyzické stránky, lze měnit během linkování aplikace (/STACK:rezervovat[, přidělit]) Adresa paměti Stav stránky 0x080FF000 Vrchol zásobníku - přidělena fyzická stránka Fyzická stránka přidělena, nastaven příznak ochrany PAGE_GUARD 0x080FE000 Rezervovaná stránka 0x080FD000 Rezervovaná stránka0x Rezervovaná stránka0x Rezervovaná stránka0x Dno zásobníku - rezervovaná stránka 0x …… Počáteční nastavení zásobníku - přidělení dvou stránek fyzického prostoru - ukazatel na nejvyšší stránku zásobníku - hlídací stránka (guard page) - při snaze použít hlídací stránku se zásobníku přidělí další fyzická stránka - odstranění příznaku PAGE_GUARD a jeho přesunutí na novou hlídací stránku - růst zásobníku jen v případě nutnosti - nejspodnější stránka nemá nikdy přidělen fyzický prostor - přidělení fyzické stránky na adresu 0x se vyvolá výjimka přetečení zásobníku - při pokusu o přístup na adresu 0x je proces zrušen Operační systémy 2015/2016

27 Adresa paměti Stav stránky 0x080FF000 Vrchol zásobníku - přidělena fyzická stránka Přidělena fyzická stránka0x080FE000 0x080FD000 0x Rezervovaná stránka0x Dno zásobníku - rezervovaná stránka 0x …… Téměř zaplněný zásobník toku Přidělena fyzická stránka Fyzická stránka přidělena, nastaven příznak ochrany PAGE_GUARD 0x080FE000 Adresa paměti Stav stránky 0x080FF000 Vrchol zásobníku - přidělena fyzická stránka Přidělena fyzická stránka0x080FE000 0x080FD000 0x Dno zásobníku - rezervovaná stránka 0x …… Plný zásobník toku Přidělena fyzická stránka 0x Přidělena fyzická stránka 0x Přidělena fyzická stránka - prováděcí tok má svoji sadu registrů procesoru – kontext toku, struktura CONTEXT je jedinou, která je závislá na typu procesoru, odráží stav registrů v době posledního běhu toku (x86, MIPS, Alpha, PowerPC) - kontext také obsahuje registr IP a vrchol zásobníku - registry naplněny kontextem po přidělení procesorového času

28 Prováděcí čas toku - pomocí funkce GetThreadTimes je možné získat: CreationTime (čas vytvoření) · kdy byl prováděcí tok vytvořen Exit Time (čas ukončení) · kdy byl prováděcí tok ukončen, pokud tok ještě běží, je hodnota nedefinována KernelTime (čas jádra) · množství času, které tok strávil vykonáváním kódu operačního systému UserTime (uživatelský čas) · množství času, které tok strávil vykonáváním kódu aplikace - pro veškeré manipulace s tokem jsou k dispozici funkce Win32 API (Create, Exit, Terminate, …) Plánování toků - modifikace algoritmů pro jednotlivé platformy Win32 API - plánování prováděcích toků se děje na základě jejich priority - priorita nastavena v rozmezí 0 (nejnižší) až 31 (nejvyšší) - Zero Page Thread – tok s nejnižší prioritou, nemůže mít žádný jiný tok - přidělování procesorového času tokům s nejvyšší prioritou (starvation) - prováděcí toky často nemají důvod k činnosti – obsloužení i nízkých priorit - běh prováděcího toku s prioritou n je ihned zastaven tokem s prioritou n+1

29 - priorita se přiděluje ve dvou krocích (třída priority procesu, prioritní offset prováděcího toku v rámci třídy procesu) - třída procesu: čekací, normální, vysoká, realtime TřídaPříznak funkce CreatePriorita čekacíIDLE_PRIORITY_CLASS4 normálníNORMAL_PRIORITY_CLASS8 vysokáHIGH_PRIORITY_CLASS13 realtimeREALTIME_PRIORITY_CLASS24 - pokud třída priority není určena, nastaví systém prioritu normální (pokud rodič neběží v čekací třídě) - většina uživatelských procesů běží v normální třídě – procesy na popředí, ostatní jsou procesy běžící na pozadí - při provádění procesu na popředí se časové kvantum zvýší trojnásobně (NT) nebo se priorita všech jeho toků zvýší o 1 (Win95) - čekací třída – monitorovací akce, šetřiče obrazovky, vysoká třída – pouze výjimečně (reakce i při zacyklení procesu nižší úrovně), realtime je naprostou vzácností (komunikace s hardwarem, většina procesů s nižší prioritou) - v případě oprávnění je umožněno procesům libovolně měnit prioritu

30 - priorita prováděcího toku se nastavuje vzhledem ke třídě procesu - snižovat, zvyšovat, BOOL SetThreadPriority(HANDLE hThread, int nPriority) IdentifikátorVýznam THREAD_PRIORITY_LOWEST-2 (třída procesu) THREAD_PRIORITY_BELOW_NORMAL THREAD_PRIORITY_NORMALstejná THREAD_PRIORITY_ABOVE_NORMAL+1 THREAD_PRIORITY_HIGHEST+2 - první vytvoření prováděcího toku (NORMAL) - modifikace pomocí speciálních parametrů: THREAD_PRIORITY_IDLE THREAD_PRIORITY_TIME_CRITICAL Relativní priorita toku Třída priority procesu IdleNormalHighRealtime Time critical15 31 Highest Above normal Normal Below normal Lowest Idle11116

31 - tabulka znázorňuje priority prováděcích toků odpovídající procesům běžícím na pozadí, při přesunu na popředí se v NT úrovně nemění, pouze se zvýší časová kvanta, u Win95 se u toků s vysokou, zvýšenou, normální, sníženou a nízkou relativní prioritou zvýší úrovně o 1, toky s čekací a kritickou prioritou se nemění - v rozhraní Win32 API neexistuje žádná funkce, která by vracela úroveň priority prováděcí toku, chování plánovacího algoritmu je zvoleno experimentálně - neměly by se vytvářet aplikace, které budou spoléhat na konkrétní chování plánovacího algoritmu Dynamická úprava prioroty - kombinace třídy a relativní hodnoty – bázová úroveň - reakcí na události (zpráva) se bázová priorita zvyšuje o 2, přidělí se procesor a celé kvantum pro přečtení, po skončení toku se jeho priorita sníží o 1, při příštím přidělení procesoru se nechá opět proběhnout celé kvantum a priorita se sníží na původní bázovou hodnotu - algoritmy pro dynamickou změnu priority se neustále mění, nikdy se neupravuje priorita realtimových toků, ani se neprovádí úprava na realtimovou úroveň - pro NT jsou k dispozici funkce k zakázání a povolení úpravy (zvyšování) priority a funkce na zjištění stavu tohoto mechanizmu Operační systémy 2015/2016


Stáhnout ppt "11. přednáška 2. května 2016 Operační systémy 2015/2016."

Podobné prezentace


Reklamy Google