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

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

Základy operačních systémů Správa paměti Jakub Yaghob.

Podobné prezentace


Prezentace na téma: "Základy operačních systémů Správa paměti Jakub Yaghob."— Transkript prezentace:

1 Základy operačních systémů Správa paměti Jakub Yaghob

2 Hierarchie paměti

3 Správce paměti Část OS, která spravuje paměťovou hierarchii se nazývá správce paměti (memory manager) informace o volné/plné části paměti přidělování paměti výměna paměti s diskem

4 Přiřazení adresy Při překladu je již známo umístění procesu generuje se absolutní kód Při zavádění OS rozhodne o umístění generuje se kód s relokacemi Za běhu proces se může stěhovat i za běhu relokační registr

5 Překlad, spojování, zavedení.c.h CC.obj Link.exe.obj.lib.obj Loader proces.obj.dll staticky.obj.dll dynamicky

6 Overlay Proces potřebuje více paměti než je skutečně k dispozici Programátor rozdělí program na nezávislé části a část nezbytnou pro všechny části

7 Výměna (swapping) Proces musí být v hlavní paměti, aby jeho instrukce mohly být vykonávány procesorem OS uživatelský prostor hlavní paměťzáložní paměť proces 1 proces 2

8 Překlad adresy Proces pracuje v logickém (virtuálním) adresovém prostoru HW pracuje s fyzickým adresovým prostorem logický adresový prostor fyzický adresový prostor překlad adresy

9 Spojité přidělování - 1 Jeden paměťový oddíl OS uživatelský prostor LAFA < + limitrelokace

10 Spojité přidělování - 2 Více paměťových oddílů - pevné OS 100 K 200 K 500 K OS 100 K 200 K 500 K

11 Spojité přidělování - 3 Více paměťových oddílů - volné OS 100 K 200 K 150 K OS 100 K 200 K 150 K OS 100 K 200 K 150 K OS 100 K 200 K 150 K OS 100 K 150 K OS 150 K

12 Informace o obsazení paměti Bitmapa bloky pevné velikosti Spojový seznam seznam volných bloků spojování uvolněného bloku se sousedy

13 Algoritmy na přidělování - 1 First-fit první volný dostatečné velikosti Next-fit jako first-fit začíná se na poslední prohledávané pozici Best-fit nejmenší volný dostatečné velikosti Worst-fit největší volný

14 Algoritmy na přidělování - 2 First-fit + rychlý - občas rozdělí velkou díru Next-fit jako first-fit ale rychlejší Best-fit - pomalý (prohledává celý seznam) + nechává velké díry vcelku - nechává malinké díry, do kterých se nic nevejde Worst-fit - pomalý (prohledává celý seznam) - rozdělí velké díry

15 Algoritmy na přidělování – Buddy systém Paměť rozdělena na bloky o velikosti 2 n Bloky stejné velikosti v seznamu Při přidělení zaokrouhlit na nejbližší 2 n Pokud není volný, rozštípnou se větší bloky na příslušné menší velikosti Při uvolnění paměti se slučují sousední bloky (buddy)

16 Fragmentace paměti Externí volný paměťový prostor rozdělen na malé kousky pravidlo 50% Interní nevyužití celého přiděleného prostoru Sesypání pouze při přiřazení adresy za běhu nebo segmentaci

17 Virtuální paměť - 1 Procesy pracují s virtuální adresou Adresa se převádí na fyzickou Převod nemusí vždy existovat Obraz virtuální paměti je částečně v hlavní paměti a částečně na pomocné paměti Výhody Dříve zejména iluze větší paměti Dnes hlavně ochrana

18 Virtuální paměť - 2 Virtuální Adresový Prostor Fyzický Adresový Prostor Převod adresy OS

19 Virtuální paměť - 3 Stránkování podporovaná všemi velkými CPU a OS jednorozměrný VAP Segmentace dnes pouze Intel IA-32 dvojrozměrný VAP

20 Stránkování - 1 VAP rozdělen na úseky stejné délky – stránky velikost je mocnina 2 FAP rozdělen na úseky stejné délky jako stránky – rámce převod adres stránkovací tabulkou příznak existence mapování výpadek stránky

21 Stránkování - 2 p FAVA d Stránkovací tabulka f fd p

22 Stránkování - 3 VAP Proces A FAP ST A VAP Proces B ST B oddělené VAP

23 Stránkování - 4 VAP Proces A FAP ST A VAP Proces B ST B sdílená paměť

24 Stránkovací tabulky Leží v hlavní paměti Problémy: 1.Velké 2.Pomalé

25 Víceúrovňové stránkování p1 FAVA d ST1 f ST2 fd p1 p2 ST2 f p2

26 TLB lokalita chování programů asociativní paměť PlatnéStránkaDirtyOchranaRámec 11251RW RW RW R X R X RW R X543

27 Nulaúrovňové stránkovací tabulky Využívá pouze TLB TLB řízena i OS Oblíbené u 64-bitových CPU UltraSPARC III

28 Inverzní stránkovací tabulky FAP menší než VAP 64-bitové CPU IA-64 p FA VA d p fd hash fn hash table f pfpf

29 Výpadek stránky výjimka procesoru uložit stav CPU (kontext) zjistit VA kontrola platnosti adresy a práv nalezení volného rámce zrušit mapování na nalezený rámec pokud je vyhazovaný rámec vyhazován, spustit ukládání na disk načíst z disku požadovanou stránku do rámce zavést mapování obnovit kontext

30 Algoritmy pro výměnu stránek Optimální stránka NRU (Not Recently Used) FIFO Druhá šance Hodiny LRU (Least Recently Used) Náhodná

31 Optimální stránka v okamžiku výpadku stránky vybírám stránku, na níž se přistoupí za největší počet instrukcí nedá se implementovat

32 NRU (Not Recently Used) každá stránka příznaky A (Accessed) a D (Dirty) typicky implementovány HW lze simulovat SW jednou za čas se smažou všechna A při výpadku rozdělím stránky podle A, D vyberu stránku z nejnižší neprázdné třídy AD

33 FIFO, druhá šance FIFO vykazuje anomálie (Belady) Druhá šance úprava FIFO pokud A=1, zařadím na konec FIFO nevykazuje anomálie

34 Hodiny modifikace druhé šance jedna x dvě ručičky využívána ve Win2000, Linuxu A B C D E F G H

35 LRU (Least Recently Used) Stránky často používané v předchozím krátkém časovém úseku budou v nejbližších okamžicích znovu použity lze implementovat v HW 64-bitový čítač, zápis při použití matice n x n bitů podle počtu rámců při použití rámce k nastavit v matici řádek k na 1 a vynulovat sloupec k vybírám řádek s nejnižší binární hodnotou

36 NFU (Not Frequently Used) SW simulace LRU SW čítač ke každé stránce jednou za čas projdu všechna A a přičtu je k odpovídajícím čítačům vybírám stránku s nejnižším čítačem nezapomíná modifikace – stárnutí (aging) čítače

37 Alokační strategie Lokální každý proces má svoji množinu rámců a v ní provádí algoritmy pro výměnu pracovní množina Globální procesy sdílí všechny rámce

38 Implementace stránkování znovuspuštění instrukce sdílení stránek odstranění položky TLB při rušení mapování

39 Segmentace - 1 program rozdělen na segmenty část programu se stejnými vlastnostmi (kód, data, zásobníky) mají různé délky mohou měnit svoji délku za běhu VAP dvojrozměrný – (s, d) FAP jednorozměrný převod adresy segmentovou tabulkou příznak existence mapování výpadek segmentu

40 Segmentace - 2 s FAVA d Segmentová tabulka b s +

41 Segmentace - 3 FAP vypadá stejně jako při spojitém přidělování OS 100 K 150 K

42 Výhody/problémy segmentace při výpadku nutné vyměnit celý segment a ty mohou být velké lze sesypat segmenty ve FAP nelze mít segment větší než FAP

43 Kombinace segmentace+stránkování odstraňuje nevýhody segmentace neprovádí se výpadky segmentů VAP Segment kód Fyzický Adresový Prostor SEG OS Lineární Adresový Prostor PAG OS VAP Segment data


Stáhnout ppt "Základy operačních systémů Správa paměti Jakub Yaghob."

Podobné prezentace


Reklamy Google