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

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

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

Podobné prezentace


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

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

2 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

3 PRODUCENTKONZUMENT - 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

4 Kód producentaKód konzumenta 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 Producent - konzument

5 Čtenáři - písaři Operační systémy LS 2014/2015 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 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);

6 Čtenáři - písaři Operační systémy LS 2014/2015 Priorita písařů 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 Implementace Čtenář: wait(rdr); wait(readcountmutex); readcount++; if (readcount == 1) wait(wrt); signal(readcountmutex); signal(rdr);... čtení sdíleného zdroje... wait(readcountmutex); readcount--; if (readcount == 0) signal(wrt); signal(readcountmutex); Implementace Písař: wait(writecountmutex); writecount++; if (writecount==1) wait(rdr); signal(writecountmutex); wait(wrt);... písař modifikuje zdroj... signal(wrt); wait(writecountmutex); writecount--; if (writecount==0) release(rdr); signal(writecountmutex);

7 Večeřící filosofové Operační systémy LS 2014/2015 -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é

8 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

9 Cache 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

10 Adresové prostory RAM LAPFAP procesorRAM la n la 1 la 0 DAT - MMU fa n fa 1 fa 0 Logický adresový prostorFyzický 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

11 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

12 Zobrazení LAP do FAP relokací LAP OS LAP2 LAP1 AP2 AP1 FAP nevyužito AP1 AP2 RR 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

13 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í) Blokové přidělování

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

15 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. Proces1 15KB Proces2 10KB Proces3 25KB Proces1 Proces2 Proces3 Informace ve zvláštní struktuře Proces1 Další blok Data P1 Proces2 Další blok Data P2 Informace v bloku Blokové přidělování Operační systémy LS 2014/2015

16 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 2 MB 4 MB 8 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

17 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 8 MB 12 MB 16 MB nové procesy nové procesy 8 MB 2 MB 4 MB 8 MB 12 MB 16 MB Operační systémy LS 2014/2015

18 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é OS proces 5 volné proces 2 volné OS proces 5 proces 9 proces 2 volné OS proces 5 proces 9 proces 2 volné proces 10 volné Blokové přidělování Operační systémy LS 2014/2015

19 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 Alokační strategie alokovaný volný nově alokovaný poslední alokovaný Poslední first fit best fit last fit worst fit next fit

20 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 2 K, L <= K <= U, kde představuje: 2 L – nejmenší velikost alokovaného bloku 2 U – 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 2 U. Jestliže platí 2 U-1 < S < 2 U, přidělí se celý blok délky 2 U, jinak se blok rozdělí na dva „blížence“ o rozměrech 2 U-1. Jestliže platí 2 U-2 < S < 2 U-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 2 i - 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 2 i+1 < k < 2 i, nejprve se zkoumá i-seznam a je-li prázdný, zkoumá se (i+1) seznam...

21 volná přidělená Req. B – 240K Req. A – 100K Operační systémy LS 2014/2015 Systém „blíženců“ (Buddy System)

22 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) Segmentace Operační systémy LS 2014/2015

23 Segmentace Segment A Segment B Segment C segmentoffset baselimit baselimit baselimit baselimit baselimit baselimit baselimit baselimit fyzická adresa operační paměť Operační systémy LS 2014/2015

24 Stránkování procesor RAM fyzická adresa logická adresa p p d d f 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

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

26 - 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) Stránkování Operační systémy LS 2014/2015

27 Jednoúrovňová tabulek stránek V + PageOffset fyzická adresa virtuální adresa V=0 bit platnosti, stránka není v paměti (page fault) Page Table Base Register Access rightsFrame 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í

28 Příklady stránkování - 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

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

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

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

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

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

34 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

35 Virtuální paměť Logická stránka 0Fyzická 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 ? - 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 Operační systémy LS 2014/2015

36 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


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

Podobné prezentace


Reklamy Google