Stáhnout prezentaci
Prezentace se nahrává, počkejte prosím
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
Podobné prezentace
© 2024 SlidePlayer.cz Inc.
All rights reserved.