10. přednáška 4. května 2015 Operační systémy LS 2014/2015.

Slides:



Advertisements
Podobné prezentace
A1PRG - Programování – Seminář Ing. Michal Typová konverze, oblast platnosti, paměťové třídy 9 Verze
Advertisements

Tento výukový materiál vznikl v rámci Operačního programu Vzdělávání pro konkurenceschopnost 1. KŠPA Kladno, s. r. o., Holandská 2531, Kladno,
PEVNÝ DISK POČÍTAČE.
13AMT Procesory I. Lecture 2 Ing. Martin Molhanec, CSc.
Komunikace periférii.
SOFTWARE dálkové studium PODNIKÁNÍ 2. listopad 2006.
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ů.
Architektury a techniky DS Tvorba efektivních příkazů I Přednáška č. 3 RNDr. David Žák, Ph.D. Fakulta elektrotechniky a informatiky
Otázky k absolutoriu HW 1 - 5
Principy překladačů Mezikód Jakub Yaghob.
Generování mezikódu Jakub Yaghob
Kontakty Webpage přednášky: – Slajdy (MS PowerPoint): –ftp://ulita.ms.mff.cuni.cz/predn/PRG017 Technické.
Vzdělávací materiál / DUMVY_32_INOVACE_02B5 Správa pamětí AutorIng. Petr Haman Období vytvořeníčerven 2013 Ročník / věková kategorie2. ročník Vyučovací.
Architektura a vývoj PC 2.
PicoBlaze, MicroBlaze, PowerPC
Orbis pictus 21. století Tato prezentace byla vytvořena v rámci projektu.
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.
Výrok „Počítač je pouze tak inteligentní jako jeho uživatel.“ (Radek Lochman, dnes)
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,
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)
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.
11. přednáška politika přidělování místa, trashing -algoritmy určení oběti -souběžnost procesů -kritická sekce (co je to, požadavky, možnosti.
Zablokování (deadlock, smrtelné objetí, uváznutí)
Distribuovaná sdílená paměť Přednášky z Distribuovaných systémů Ing. Jiří Ledvina, CSc.
A4B33OSS (J. Lažanský) verze: Podzim 2010 Meziprocesní komunikace a synchronizace procesů 1 Obsah Téma 5 – Meziprocesní komunikace a synchronizace procesů.
3. konzultace (5 hodin) Studijní materiály najdete na adrese:
Distribuované algoritmy - přehled Přednášky z Distribuovaných systémů Ing. Jiří Ledvina, CSc.
Vnitřní (operační paměť)
Real time jádro operačního systému Lukáš Hamáček.
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.
Kontakty Webpage přednášky: – Slajdy (MS PowerPoint): –ftp://ulita.ms.mff.cuni.cz/predn/PRG017 Technické.
Téma 6 – Správa paměti a její virtualizace
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.
1/28 PB153 OPERAČNÍ SYSTÉMY A JEJICH ROZHRANÍ Vlákna 06.
OSNOVA: a) Ukazatel b) Pole a ukazatel c) Pole ukazatelů d) Příklady Jiří Šebesta Ústav radioelektroniky, FEKT VUT v Brně Počítače a programování 1 pro.
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.
9. přednáška služby správce procesů ( resched, ready, resume, suspend, kill, sleep, wakeup ) -Memory Management -cache paměť, adresové prostory.
Základy operačních systémů
Základní pojmy v informatice Bohumil Bareš. Základní pojmy Data – soubory, jiný výraz pro „informace“, jsou to údaje, které vypovídají o světě, mohou.
Kontakty slajdy: ftp://ulita.ms.mff.cuni.cz/predn/POS.
4. konzultace (4 hodiny) Studijní materiály najdete na adrese:
Kontakty Webpage přednášky: – Slajdy (MS PowerPoint): –ftp://ulita.ms.mff.cuni.cz/predn/PRG017 Technické.
Operační systémy Správa paměti © Milan Keršláger
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.
VIRTUÁLNÍ PAMĚŤ EP1. Kryštof Supek. Umožňuje předložit běžícímu procesu adresní prostor paměti, který je větší, než je fyzicky připojená paměť RAM Procesor.
Překladače Operační paměť © Milan Keršláger
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.
A4B33OSS (J. Lažanský) verze: Podzim Obsah Téma 7 – Správa paměti 1.Požadavky a problémy správy paměti 2.Historické přístupy správy paměti 3.Segmenty.
Stránkování MATĚJ JURIČIČ 2015/2016 EP1 SPŠ A VOŠ JANA PALACHA KLADNO.
Bezpečnostní technologie I
Zvídavé otázky 1. Prevence a detekce uváznutí
OPERAČNÍ SYSTÉMY Část 4 – správa souborů
Operační systémy 11. Správa paměti
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.
1. ročník oboru Mechanik opravář motorových vozidel
Fragmentace paměti 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: 
PB 169 Počítačové sítě a operační systémy
Souborové systémy 2 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 9. Spolupráce mezi procesy
Stránkování 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: 
Správa paměti.
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: 
Informační a komunikační technologie 5. ročník
Paměť.
Přednášky z Distribuovaných systémů
Elektronické instalace budov II
Systém souborů 1.
Transkript prezentace:

10. přednáška 4. května 2015 Operační systémy LS 2014/2015

Klasické synchronizační úlohy Producent – konzument (P-K) (Bounded – Buffer Problem) Jedná se o komunikaci mezi dvěma procesy. Čtenáři a písaři (Readers and Writers Problem) Jedná se o souběžnost čtení a modifikace dat (v databázi, ...). Jsou možné dva přístupy: priorita čtenářů – žádný čtenář nebude muset čekat, pokud sdílený prostředek nebude obsazen písařem (kterýkoliv čtenář čeká pouze na opuštění KS písařem – písaři mohou stárnout), priorita písařů – jakmile je některý písař připraven vstoupit do KS, čeká jen na její uvolnění čtenářem nebo písařem. Připravený písař tedy předbíhá všechny připravené čtenáře – čtenáři mohou stárnout. Úloha o večeřících filozofech (Dining Philosophers Problem) Jedná se o zajímavý ilustrační problém pro řešení uváznutí. 5 filozofů buď přemýšlí nebo jí, jedí rozvařené (tedy klouzavé) špagety a potřebují tedy 2 hůlky. Co se stane, když všech 5 filozofů najednou uchopí např. své pravé hůlky? (Časem všichni umřou hlady) Operační systémy LS 2014/2015

Producent - konzument - jeden proces vyčká na událost generovanou druhým procesem - proces může být pouze v jedné frontě, z fronty binárního semaforu odchází přes službu resume do ready fronty - některé implementace nevhodné pro binární semafory (výměna dat přes sdílenou paměť) - modelový případ producent – konzument (obecné paradigma kooperace procesů) - buffer s produkovanými a dosud nezpracovanými položkami (buffer konečné kapacity k) PRODUCENT KONZUMENT Operační systémy LS 2014/2015

Producent - konzument Kód producenta Kód konzumenta for(;;) for(;;) { { char data=vytvor_data(); char data; wait(B); wait(A); uloz_do_sdilene_pameti(); data=cti_ze_sdilene_pameti(); signal(A); signal(B); } zpracuj_data(); } - semafor A je inicializován na 0, semafor B je inicializován na velikost sdílené paměti v případě souběhu producenta a konzumenta jsou data obhospodařována průběžně, v jiném případě se zastaví produkce, nebo čerpání návaznost na inkrementaci semaforu ve službě KILL (stav WAIT), kdy se proces odstraňuje z každé fronty Operační systémy LS 2014/2015

Čtenáři - písaři Priorita čtenářů Implementace Písař: Čtenář: wait(wrt); wait(readcountmutex); .... readcount++; písař modifikuje zdroj ; if(readcount==1) .... wait(wrt); signal(wrt); signal(readcountmutex); … čtení sdíleného zdroje wait(readcountmutex); readcount--; if (readcount==0) signal(wrt); signal(readcountmutex); Priorita čtenářů Žádný čtenář nebude muset čekat, pokud sdílený zdroj nebude obsazen písařem. Jinak řečeno: Kterýkoliv čtenář čeká pouze na opuštění kritické sekce písařem. Písaři mohou stárnout Sdílená data + inicializace semaphore wrt=1, readcountmutex=1, int readcount=0 Operační systémy LS 2014/2015

Čtenáři - písaři Priorita písařů Implementace Implementace Čtenář: wait(rdr); wait(readcountmutex); readcount++; if (readcount == 1) wait(wrt); signal(readcountmutex); signal(rdr); ... čtení sdíleného zdroje readcount--; if (readcount == 0) signal(wrt); Implementace Písař: wait(writecountmutex); writecount++; if (writecount==1) wait(rdr); signal(writecountmutex); wait(wrt); ... písař modifikuje zdroj signal(wrt); writecount--; if (writecount==0) release(rdr); Jakmile je některý písař připraven vstoupit do kritické sekce, čeká jen na její uvolnění (čtenářem nebo písařem). Jinak řečeno: Připravený písař předbíhá všechny připravené čtenáře. Čtenáři mohou stárnou Sdílená data + inicializace semaphore wrt=1, rdr=1 readcountmutex=1 writecountmutex=1 int readcount=0 int writecount=0 Operační systémy LS 2014/2015

Večeřící filosofové filosofové buď přemýšlí nebo jedí mají rozvařené (klouzavé) špagety, potřebují dvě vidličky pokud všichni současně vezmou do pravé ruky vidličku – zablokování možné ochrany proti uváznutí – zrušení symetrie úlohy (jeden z filosofů je levák), pro n filosofů bude připraveno n+1 míst, filosof smí uchopit vidličku jen pokud jsou obě volné Operační systémy LS 2014/2015

Modul správce paměti Memory Management sledování stavu každého místa v operační paměti (přiděleno, volné) určování strategie přidělování paměti (komu, která část, kdy, v jakém rozsahu, ...) realizace přidělení paměti (zvolení příslušného paměťového místa, aktualizace informací o přidělení) realizace uvolnění paměti (proces sám, odebrána násilně, aktualizace informací) rozpozná případy, kdy proces skončí bez uvolnění paměti (KILL) zajišťuje ochranu paměti (procesy, operační systém) - moduly na základní desce počítače Operační systémy LS 2014/2015

Cache paměť CPU Word Transfer - drahá a velmi rychlá paměť Main memory Cache CPU Block Transfer Word Transfer - drahá a velmi rychlá paměť - kontakt s pomalejší a větší hlavní pamětí - OS a uživatelské procesy ji nevidí - je v interakci s HW správy paměti (MMU) - hledání odkazovaného slova v cache při neúspěchu přesun dalšího bloku dat prostorová lokalita Operační systémy LS 2014/2015

Adresové prostory RAM LAP FAP procesor RAM DAT - MMU lan la1 la0 DAT - MMU fan fa1 fa0 Logický adresový prostor Fyzický adresový prostor LAP - logické adresy, instrukční soubor procesoru FAP - fyzické adresy, HW řešení DAT - Dynamic Address Translation MMU - Memory Management Unit správa adresových prostorů (oddělení LAP a FAP pro jednotlivé procesy, rozdělení FAP pro LAP) Operační systémy LS 2014/2015

Správa paměti - relokace – možnost umístění kódu na jiné místo, než pro které bylo překladačem vytvořeno, program locator, podle údajů v relokační tabulce přepíše absolutní adresy, nebyla k dispozici virtuální paměť (adresní prostor je od adresy 0), program musel být umístěn od začátku volného prostoru, ten byl různě - blokové přidělování – jedna souvislá oblast, statické přidělování, dynamické přidělování, systém „blíženců“ - segmentace – procesu je vytvořen virtuální adresní prostor začínající od 0 (odpadá potřeba relokace), fyzická adresa je získaná součtem segment registru a offsetu, proces používá více segmentů, obsah segmentů odpovídá struktuře paměťového prostoru procesu - stránkování – každému procesu je vytvořen jeho lineární adresní prostor, začínající na adrese 0, fyzická adresa je tvořena rámcem a offsetem, stránky jsou různé velikosti (4 KB, 8 KB, …), algoritmy stránkování (kradení stránek, stránkování na žádost), proces má dojem souvislého paměťového prostoru - virtuální paměť – fyzická paměť je rozdělena na rámce, logická je rozdělena na stránky, stránka má přidělený rámec nebo je odložena na disk Operační systémy LS 2014/2015

Zobrazení LAP do FAP relokací LAP OS LAP2 LAP1 AP2 AP1 FAP nevyužito RR 0 1000 1200 - zachování spojitosti LAP ve FAP - DAT – relokační registr RR - obraz RR je součástí PCB - LAP -> FAP se provádí dynamicky za běhu Operační systémy LS 2014/2015

Blokové přidělování Fragmentace paměti – hlavní nevýhoda, důsledek přidělování nestejně velkých bloků paměti a jejich uvolňování v různých okamžicích, pro omezení externí fragmentace se přidělují stejně veliké bloky (zvýšení režie), spojování více bloků, pro úplné zamezení - uvolňování v opačném pořadí než se alokuje, nepřijatelný diktát chování procesů, některé procesy si OP potřebují držet stále, drasticky by se snižovala průchodnost OS, musí být vnitřní věcí správce OP. Externí fragmentace – dost volné paměti, není dostupná v souvislé díře Interní fragmentace – přidělená oblast je větší, než bylo požadováno Redukce externí fragmentace – slučování nesousedních děr posuvem obsazených oblastí (bliter). Při přesouvání bloků dat je nutné zachování transparentnosti pro procesy - požadavek na překlad adres, pokud je k dispozici, není důvod nepoužít virtualizaci - virtuální paměť. strategie pro jednoduché OS nebo jednorázové a krátkodobé úkoly, proces musí vědět, kolik OP potřebuje a explicitně si ji vyžádat (požadavek je buď akceptován, nebo odmítnut), je třeba udržovat informace o vlastnících bloků, o volných blocích (tabulky s informacemi), potřebná znalost délky bloku, adresa dalšího bloku nemusí být explicitně uvedena (bloky navazují)

Odstranění fragmentace - setřásání P1 P1 volná fragmentováno P2 defragmentováno P2 P3 volná P4 P3 volná volná P4 Operační systémy LS 2014/2015

Blokové přidělování Informace o blocích v datových strukturách správce, potřeba další paměti a zvýšení režie, počet bloků předem neznáme, řešením je přidělení většího bloku, do volného místa uložit informace o samotném bloku i o adrese následujícího. Nevýhodou je promíchání systémových informací a paměťových bloků. Při nedokonalé ochraně paměti hrozí zhroucení OS. Informace v bloku Proces1 Informace ve zvláštní struktuře Další blok Proces1 Proces1 Data P1 15KB Proces2 Proces2 Proces2 10KB Proces3 Další blok Proces3 Data P2 25KB Operační systémy LS 2014/2015

Blokové přidělování Pevná velikost přidělovaných bloků – umožňuje umístění procesu menšího nebo stejného, pokud jsou všechny bloky obsazené je možné paměťové požadavky (procesy) odkládat 8 MB 8 MB 2 MB 4 MB 12 MB 16 MB bloky stejné velikosti - statické přidělování nezáleží na tom, který blok se použije (jsou stejné) nabízený prostor je nedostatečný, nutnost zavedení překryvů využití paměti je extrémně neefektivní i malý požadavek čerpá celý blok vzniká interní fragmentace bloky nestejné velikosti - dynamické přidělování existují dvě možnosti čerpání bloků Operační systémy LS 2014/2015

Způsob obsazení bloků jedna fronta procesů pro každý blok – pro každý blok je jedna plánovací fronta procesů, výhodou je omezení interní fragmentace jedna fronta procesů pro všechny bloky – možnost stanovit preferenci mezi odkládáním malých procesů a jejich umístění ve větším prostoru (zvýšení interní fragmentace versus zvýšená průchodnost operačního systému) 8 MB 2 MB 4 MB 12 MB 16 MB nové procesy nové procesy 8 MB 2 MB 4 MB 12 MB 16 MB Operační systémy LS 2014/2015

Blokové přidělování OS Díra – blok dostupné paměti, díry mají různý rozměr, jsou roztroušeny po FAP, při vzniku procesu se procesu přidělí dostatečně velká díra, OS udržuje informaci o přidělených oblastech a dírách OS proces 5 proces 8 proces 2 volné proces 9 proces 10 Operační systémy LS 2014/2015

Alokační strategie First fit - přidělí oblast v první díře, která má dostatečnou velikost, zbytek je novou dírou, jednoduchá, rychlá, nemá vliv na fragmentaci Best fit - přidělí oblast v nejmenší díře, která má ještě dostatečnou velikost, mírně omezuje fragmentaci, pomalá, větší režie, zanechává malé díry, šetří velké díry pro velké požadavky Worst fit – přidělí oblast v největší díře, pomalá, zanechává největší díru Last fit – obsazuje paměť od nejvyšších adres, někdy výhodný způsob (místo pro zásobník) Next fit – prohledává paměť za posledním umístěním Quick fit – informace o dírách je udržována v několika oddělených seznamech, každý obsahuje informace o dírách, jejichž velikost je v určitém intervalu, rychlé nalezení díry first fit best fit last fit worst fit next fit Poslední poslední alokovaný alokovaný volný nově alokovaný

Systém „blíženců“ (Buddy System) zajímavým kompromisem mezi statickým a dynamickým přidělováním bloků je tzv. „Buddy System“ (Unix SVR4). Dostupné jsou paměťové bloky o velikosti 2K, L <= K <= U, kde představuje: 2L – nejmenší velikost alokovaného bloku 2U – největší velikost alokovaného bloku (dostupná paměť) Řešení požadavku na přidělení bloku o velikosti S: - začne se s celým blokem velikosti 2U. Jestliže platí 2U-1 < S < 2U, přidělí se celý blok délky 2U, jinak se blok rozdělí na dva „blížence“ o rozměrech 2U-1. Jestliže platí 2U-2 < S < 2U-1, přidělí se jeden z blíženců, jinak opět dojde k rozdělení. Postup se opakuje, dokud se nezíská nejmenší možný blok s velikostí větší nebo rovnou s požadavkem S. Jakmile se „blíženci“ uvolní, tak splývají. Operační systém udržuje několik seznamů děr: - i-tý seznam je seznam děr o velikosti 2i - kdykoliv se v (i+1) seznamu vyskytne pár „blíženců“, jsou z (i+1) seznamu odstraněny, sloučeny a vloženy do i-tého seznamu. Když se požaduje oblast o velikosti k, kde 2i+1 < k < 2i, nejprve se zkoumá i-seznam a je-li prázdný, zkoumá se (i+1) seznam ...

Systém „blíženců“ (Buddy System) 512K B - 256K 256K D - 256K 128K E - 128K A - 128K C 64K 64K Rel. B Req. E – 75K Req. D – 256K Req. C – 62K Rel. A Rel. C Rel. E Req. A – 100K Req. B – 240K volná přidělená Operační systémy LS 2014/2015

Segmentace Segmentace paměti: - fyzická adresa se získává z páru segment + offset, obsah segment registru nastavuje OS, pro uživatelský program je nepřístupný, adresní prostor každého procesu začíná na hodnotě 0, odpadají problémy s relokací, rozdělení na segmenty odpovídá struktuře paměťového prostoru procesu (kód, konstanty, proměnné, zásobník, halda), procesy řízené stejným programem mohou sdílet kód programu a konstanty, je možné dynamické přemísťování segmentů za běhu procesu, možnost dodatečného zvětšování adresového prostoru, možnost sdílení segmentů, není nutné provádět relokaci programu, nevýhodou je, že součet nároků procesů <= velikost paměti (odkládání segmentů na disk – může být časově náročné), nutná hardwarová podpora segmentace, pro odstranění fragmentace se užívá setřásání segmentů, k ochraně se užívá mezní registr na číslo segmentu (segmenty mají různou délku) Operační systémy LS 2014/2015

Segmentace operační paměť Segment A Segment B Segment C fyzická adresa offset Segment A base limit base limit Segment B base limit base limit base limit base limit Segment C base limit base limit fyzická adresa Operační systémy LS 2014/2015

Stránkování RAM procesor fyzická adresa logická adresa p d f LAP se dělí na logické stránky, FAP na fyzické stránky (frame), oboje má pevnou délku, délka je mocninou 2, zobrazení LAP do FAP se děje pomocí tabulky stránek, technika trpí vnitřní fragmentací, logickou adresu generuje procesor, číslo stránky (p – index do tabulky stránek, indexovaný řádek obsahuje číslo rámce f), offset (d – adresa ve stránce, dohromady s f tvoří fyzickou adresu), použito u virtuální paměti Operační systémy LS 2014/2015

Stránkovací mechanismus Stránkování Page Offset Virtuální adresa Frame Fyzická adresa + Page table ptr page frame Program Stránkovací mechanismus Operační paměť n bitů m bitů Registr Page table Operační systémy LS 2014/2015

Stránkování - metoda, jak se vyrovnat s externí fragmentací, logická adresa (použita v programu) má dvě složky (číslo stránky a offset), velikost stránky bývá v KB (při velikosti 4 KB je pro offset potřeba 12 bitů, spodních 12 bitů je offset, zbytek je pro číslo stránky, číslo stránky se použije jako index do tabulky stránek (každý proces má svoji vlastní), v tabulce stránek je uvedeno číslo rámce ve fyzické paměti, k tomuto rámci se připojí offset => fyzická adresa, výhodou je odstranění externí fragmentace, není nutné přemísťování bloků v paměti, poslední stránka procesu trpí interní fragmentací, je potřeba hardwarová podpora, tabulka stránek může být extrémně velká (pro 32 b., 4 KB stránka, 1 milión stránek, tolik položek bude mít PT), každý proces potřebuje svoji vlastní tabulku stránek (každý má svůj virtuální adresový prostor) Operační systémy LS 2014/2015

V=0 bit platnosti, stránka není v paměti (page fault) Jednoúrovňová tabulek stránek virtuální adresa Page Offset Page Table Base Register + V=0 bit platnosti, stránka není v paměti (page fault) fyzická adresa Access rights Frame V Page Table je umístěna ve fyzické paměti, 32 bitový virtuální prostor bude mít při velikosti stránky 4 KB pro offset 12 bitů a pro stránku 20 bitů, tabulka stránek je příliš velká (4 MB pro tabulku stránek pro jeden proces), používá se víceúrovňové stránkování

Příklady stránkování A0 1 A1 2 A2 3 A3 4 B0 D0 5 B1 D1 6 B2 D2 7 C0 8 B1 5 B2 6 C0 7 8 9 10 D3 11 D4 12 D0 D1 D2 Proces A - Proces B Proces C 13 14 Proces D Free frame list - proces D nezabírá souvislou oblast - nedochází k externí fragmentaci - vnitřní fragmentace je problém poslední stránky procesu - OS udržuje PT pro každý proces - zmenšování délky stránky – minimalizace vnitřní fragmentace, prodlužování PT Operační systémy LS 2014/2015

Stránkovací mechanismus Stránkování s TLB Virtuální adresa Fyzická adresa Page Offset Frame Offset Registr Offset Page table ptr n bitů Page table TLB Page frame page frame page frame m bitů page frame + page frame page frame Program Frame Operační paměť Stránkovací mechanismus stránka v TLB (Translation Look-aside Buffer) nalezena (tzv. TLB hit) Operační systémy LS 2014/2015

Doba přístupu do paměti s TLB Skutečná přístupová doba – Effective Access Time (EAT) Přístupová doba do fyzické paměti = t Přístup do TLB = e „Hit Ratio“a – pravděpodobnost nalezení stránky v TLB EAT = (e + t) a + (e + 2t)(1 – a) = (2 – a)t + e Příklad pro t = 100 ns a = 0% EAT = 200 ns Bez TLB e = 20 ns a = 60% EAT = 160 ns Zrychlení přístupu a = 80% EAT = 140 ns a = 98% EAT = 122 ns Operační systémy LS 2014/2015

Srovnání stránkování a segmentace FAP je dělen na elementy (chunks) pevné délky - rámce FAP není rozdělen Program (LAP) je kompilátorem (MMU) dělen na stránky Segmenty LAP určuje programátor Interní fragmentace uvnitř rámce Žádná interní fragmentace Žádná externí fragmentace Externí fragmentace OS udržuje tabulku stránek pro každý proces s určením, které rámce s nimi souvisí OS musí udržovat tabulku segmentů pro každý proces. Určuje zaváděcí adresu a délku každého segmentu OS udržuje seznam volných rámců Operační systém udržuje seznam volných děr Procesor používá číslo stránky a offset k výpočtu fyzické adresy Procesor používá číslo segmentu a offset k výpočtu fyzické adresy Všechny stránky procesu nemusí být při běhu procesu ve FAP, zavádění stránek probíhá podle potřeby Všechny segmenty se zavádí do FAP podle potřeby Zavedení stránky do FAP může způsobit požadavek zápisu některé stránky na disk Zavedení segmentu do FAP může způsobit výpis některého segmentu na disk

Srovnání adresování relativní adresa: 1502 0000010111011110 Uživatelský proces 2700 bytes Blokové přidělování logická adresa: Page=1 Offset=478 Page 2 Page 1 Page 0 0000010111011110 Stránkování (stránka 1K) logická adresa: Segment=1 Offset=752 Segment 0 750 bytes Segment 1 1950 bytes 0001001011110000 Segmentace Operační systémy LS 2014/2015

Převod logické adresy na fyzickou 0 0 0 0 0 1 0 1 1 1 0 1 1 1 1 0 0 0 0 1 1 0 0 1 1 1 0 1 1 1 1 0 0 000101 1 000110 2 011001 Stránkování Process page table 16 bitů logické adresy 16 bitů fyzické adresy Offset Stránka Segmentace 0 0 0 1 0 0 1 0 1 1 1 1 0 0 0 0 0 0 0 1 0 1 1 1 0 1 1 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 1 1 1 0 0 1 1 1 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 Process segment table + 0 0 1 0 0 0 1 1 0 0 0 1 0 0 0 0 16 bitů fyzické adresy 16 bitů logické adresy Operační systémy LS 2014/2015

Virtuální paměť - virtualizace je nejdokonalejší strategie správy paměti, musí být k dispozici MMU - jednotka řízení paměti zajišťuje transparentnost paměti pro procesy Nutné podmínky pro realizaci virtuální paměti: schopnost procesoru zpracovávat přerušení opakování přístupu do paměti jednotka řízení paměti musí být schopna zajistit ochranu paměti - při pokusu o práci s neexistující pamětí se vyvolá přerušení, jednotka řízení paměti neexistující paměť doplní, zopakuje se přístup do paměti Operační systémy LS 2014/2015

Virtuální paměť - logická adresa, účastní se překladu, leží v adresovém prostoru - fyzická adresa, leží v OP, platná po překladu adres - logické stránky reprezentují adresový prostor - fyzické stránky reprezentují OP - odkládací prostor na disku - pokud není k dispozici žádná volná fyzická stránka, vezme se obsah některé z alokovaných a uloží se na disk, uvolněná fyzická stránka se spojí s logickou stránkou - při požadavku čtení z odložené stránky se vyvolá přerušení - výpadek stránky a postupuje se stejně, jako při požadavku na volnou fyzickou stránku Logická stránka 0 Fyzická stránka 0 Logická stránka 1 Logická stránka 2 Logická stránka 6 Logická stránka 3 Logická stránka 4 Logická stránka 5 Fyzická stránka 1 Fyzická stránka 2 Fyzická stránka 3 Fyzická stránka 4 Fyzická stránka 5 ? Operační systémy LS 2014/2015

Lokalita odkazy na instrukce programu a na data mají tendenci tvořit shluky časová lokalita prostorová lokalita provádění programu je s výjimkou skoků a volání podprogramů sekvenční programy mají tendenci zůstávat po jistou dobu v rámci několika procedur často zpracovávanou datovou strukturou bývá pole lze dělat odhady o průběhu programu a potřeby dat v nejbližší budoucnosti Operační systémy LS 2014/2015