220 likes | 403 Views
Správa paměti. Vnitřní (operační paměť). Funkce modulu správce paměti. Udržuje informace o využití paměti Přiděluje paměť procesům Paměť, kterou procesy uvolní, přidá k volné paměti Je-li třeba, odebírá paměť procesům
E N D
Správa paměti Vnitřní (operační paměť)
Funkce modulu správce paměti • Udržuje informace o využití paměti • Přiděluje paměť procesům • Paměť, kterou procesy uvolní, přidá k volné paměti • Je-li třeba, odebírá paměť procesům • Rozpozná případy, kdy proces skončí bez uvolnění paměti (např. násilné ukončení) • Zajišťuje ochranu paměti (nedovolí procesům přístup mimo vymezený prostor)
Operační paměť • Obvykle umístěna na základní desce • Některé části mohou být na rozšiřujících deskách (např. videopaměť) 1kB RAM paměť , 1982 1GB RAM paměť , 2009
Adresování • Absolutní adresa • Relativní adresa
Adresový prostor • Fyzický adresový prostor • Logický adresový prostor • LAP <= FAP reálné přidělování paměti • LAP > FAP virtuální přidělování paměti
Reálné metody přidělování paměti • Přidělení jedné souvislé oblasti • Přidělení bloků pevné velikosti • Přidělení bloků proměnné velikosti • Segmentace • Stránkování
Přidělování jedné souvislé oblasti paměti Nevyužitá paměť Paměť procesu Mezní registr Paměť OS $0000
Swapování • Celá paměť od mezního registru nahoru je uložena do vnější paměti (na pevný disk). • Princip zásobníku • Multiprogramový systém (ne multiprocesní) • Některé nadstavby MS DOSu, Windows 2
Přidělování bloků pevné velikosti Volná paměť nevyužito Přiděleno procesu 2 Používá proces 2 nevyužito Přiděleno procesu 1 Používá proces 1 Paměť OS
Přidělování bloků proměnné velikosti (dynamické přidělování paměti) Volná paměť null Používá proces 2 Používá proces 1 Paměť OS
Segmentace • Každý proces má přiděleno několik nezávislých segmentů, například • Kód procesu (pevná délka, pevný obsah) • Globální konstanty (pevná délka, pevný obsah) • Globální proměnné (pevná délka, proměnný obsah) • Zásobník (proměnná délka i obsah)
Segmentace Registry procesoru zásobník SS Volná paměť ES Rozšířená data DS data CS kód Paměť OS
Stránkování • Paměťový prostor procesu je rozdělen na stejně dlouhé úseky – stránky (např. 4096 B) • Procesu se prostor jeví jako spojitý, je logicky spojitý, logické adresy jsou z intervalu <0,počet stránek x velikost stránky> • Fyzicky jsou stránky na různých místech paměti, fyzicky je adresový prostro procesu nespojitý
Stránkování Tabulka obsazení paměti paměť 7 6 5 4 3 2 1 0
Výběr vhodného místa paměti pro proces • Předcházíme fragmentaci paměti • Metody • First fit (první souvislý blok, do kterého se požadavek vejde) • Best fit (blok s nejblíže vyšší velikostí, než je požadavek) • Last fit • Worst fit (největší volný blok) • …
Setřásání paměti • Řešení již vzniklé fragmentace • Obvykle časově náročné • Používá se jen v nutných případech, tj. když nelze nalézt souvislý blok požadované velikosti • Správce paměti informuje každý proces o změně fyzického paměťového prostoru • Tato zpráva má větší prioritu než jakákoliv činnost procesu
Virtuální paměť • http://www.youtube.com/watch?v=59t_0uYbeL8
Virtuální paměť • Fyzická paměť rozdělena na rámce (fyzické kolejnice) • Logická paměť rozdělena na stránky (místa pro uložení kolejnic) • Stránka má buď • Přidělen rámec, nebo • Je odložena (do vnější paměti) • Některé stránky nelze odložit (systémové procesy)
Metody výběru oběti • FIFO – Je odložena stránka, která má rámec přidělen nejdéle • LIFO • LFU = Less Frequently Used • LRU = Last Recently Used • NRU = Not Used Recently (hodinový algoritmus cyklicky prochází stránky a nuluje jejich used bit
Segmentace se stránkováním na žádost kód Proces 1 data zásobník kód Proces 2 data zásobník