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ěť volno 1 Proces 1 2 Proces 2 volno 1 Proces 1 2 Proces 2 3 Proces 3 4 5 Volno 6 7 6 5 4 3 2 1
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ěť https://www.youtube.com/watch?v=bjcrHN3M3K0
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)
Virtuální paměť, stránkování na žádost Vnější paměť Stránka 7 Stránka 6 Stránka 5 Stránka 4 Stránka 3 Stránka 2 Stránka 1 Stránka 0 Rámec 4 Rámec 3 Rámec 2 Rámec 1 Rámec 0
Proces žádá o stránku 4 Vnější paměť Stránka 7 Rámec 4 Stránka 6
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 Rámec 3 Rámec 2 Rámec 1 Rámec 0 Stránka 7 Stránka 6 Stránka 5 Stránka 4 Stránka 3 Stránka 2 Stránka 1 Stránka 0 kód Proces 1 data zásobník kód Proces 2 Vnější paměť data zásobník