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

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

Základy operačních systémů

Podobné prezentace


Prezentace na téma: "Základy operačních systémů"— 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 Při zavádění Za běhu
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í
.obj .obj .lib .obj .dll .obj .dll .h .h staticky dynamicky .obj .c CC Link .exe Loader proces .obj

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 proces 1 proces 2 hlavní paměť záložní paměť

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 limit relokace
uživatelský prostor LA < FA +

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

11 Spojité přidělování - 3 Více paměťových oddílů - volné OS OS OS OS OS
100 K 100 K 100 K 100 K 100 K 200 K 200 K 200 K 200 K 200 K 150 K 150 K 150 K 150 K 150 K 150 K 150 K 150 K 150 K 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 - rozdělí velké díry

15 Algoritmy na přidělování – Buddy systém
Paměť rozdělena na bloky o velikosti 2n Bloky stejné velikosti v seznamu Při přidělení zaokrouhlit na nejbližší 2n 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í Interní Sesypání
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ý Převod
adresy OS

19 Virtuální paměť - 3 Stránkování Segmentace
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 VA FA p d f d Stránkovací tabulka p f

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

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

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

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

26 TLB lokalita chování programů asociativní paměť Platné Stránka Dirty
Ochrana Rámec 1 125 RW 654 44 132 485 12 55 R X 142 111 54 108 88 543

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 VA FA p d f d hash table p f p f hash fn p f

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 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 A D 1 2 3

33 FIFO, druhá šance FIFO Druhá šance vykazuje anomálie (Belady)
ú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 G H F A E B D C

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í Globá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 VAP dvojrozměrný – (s, d)
čá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 VA FA s d + Segmentová tabulka s b

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

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 data Lineární Adresový Prostor Fyzický Adresový Prostor PAG SEG VAP Segment kód OS OS


Stáhnout ppt "Základy operačních systémů"

Podobné prezentace


Reklamy Google