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

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

Operační systémy Správa paměti © Milan Keršláger 27.9.2016

Podobné prezentace


Prezentace na téma: "Operační systémy Správa paměti © Milan Keršláger 27.9.2016"— Transkript prezentace:

1 Operační systémy Správa paměti © Milan Keršláger

2 Správa paměti ● Memory Managment (MM) ● součástí CPU je MMU (Memory Managment Unit) – řídí přístup do operační paměti ● v jádře OS je modul správy paměti – zajištění multitaskingu, vzájemné oddělení procesů ● proces pro svůj běh potřebuje ● přidělenou paměť – zajišťuje jádro OS, používá virtuální paměť ● přidělený procesor – zajišťuje jádro OS (scheduler) + privilegovaný režim CPU

3 Historie pamětí ● děrné štítky, děrné pásky ● mechanický zápis, mechanické nebo optické čtení ● feritové paměti ● využití elektromagnetické indukce ● obnovování informace (dynamická paměť) ● zpožďovací smyčka ● využívá omezené (též snížené) rychlosti šíření el. ● rtuť, cívka, piezoelektrický krystal ● na výstup dat bylo nutno počkat → sériový přístup ● využití jako paměť (periodický zápis), v TV přístroji

4 Rozdělení pamětí (1) ● podle materiálu a fyzikálních vlastností ● magnetické, optické, polovodičové, zpožďovací smyčka... ● metoda uchování informace ● statické – používají klopný obvod, jsou dražší, rychlejší → cache ● dynamické – periodické obnovování obsahu (refresh) → RAM ● závislost na napájení ● volatilní → udržení informace závislé na napájení ● nevolatilní → udržení informace nezávislé na napájení

5 Rozdělení pamětí (2) ● podle přístupu k uloženým informacím ● sekvenční – např. magnetická páska ● asociativní – adresace obsahem (klíč) ● sériový – posuvný registr FIFO ● RAM (Random Access Memory) – s libovolným přístupem (náhodný je nesmysl) – přímý přístup k datům podle zvolené adresy – přibližně mu odpovídá i pevný disk

6 Rozdělení pamětí (3) ● podle schopnosti čtení a zápisu ● RWM – Read Write Memory – pro čtení i zápis, používáme pro ně označení RAM ● ROM – Read Only Memory ● PROM – uživatelsky programovatelná ● EPROM – smazatelná PROM (UV záření) ● EEPROM – elektricky smazatelná EPROM ● Flash EPROM – rychlé mazání po větších blocích

7 Rozdělení paměti (4) ● podle určení ● vnitřní paměť – primární ● registry CPU, cache, paměť RAM ● v přímém dosahu z CPU ● vnější paměť – sekundární paměť ● pevný disk ● využívána jako virtuální paměť ● mimo přímý dosah CPU – odděleno řadičem – terciální paměť ● CD, DVD, magnetické pásky ● využívána pro zálohování (vyměnitelné médium)

8 Výběr adekvátní paměti ● rychlost ● statické jsou nejrychlejší, ale nejdražší ● dynamické jsou pomalejší, ale laciné ● cena za bit ● terciální je nejlevnější ● sekundární je snadno a relativně rychle přístupná ● primární je nejdražší, ale odpovídá rychlosti CPU ● podle uchování informací ● nevolatilní pro uchování dat ● volatilní pro běh procesu

9 Operační paměť ● vnitřní paměť počítače ● pro uchování programu, dat, mezivýsledků ● přímo adresovatelná procesorem ● připojena pomocí sběrnice (adresní, datová, řídící) ● uchovávány bity, adresace po bajtech ● přístup pomocí strojových instrukcí ● adresa je v registru ● přenos dat mezi registrem a pamětí ● využití cache

10 Přístup k paměti ● přímo adresovatelná ● adresní registr → omezení velikosti – IA-32 → 32 bitů = 4 GiB – x86_64 → dnes 48 bitů = 256 TiB ● nepřímo adresovatelná ● různé triky (pomocné registry, I/O) – PAE, XMS, EMS, paměťové banky u Didaktiku… ● virtualizace paměti ● rozdělení na virtuální a fyzické adresy ● část adresního prostoru v RAM a část na disku

11 Správa operační paměti ● v procesoru MMU ● anglicky Memory Managment Unit ● řízení přístupu k operační paměti (řízení sběrnic) ● řízení cache ● překlad virtuálních adres na fyzické a zpět ● řešení nepřímé adresace ● v jádře operačního systému ● řízení chodu MMU ● rozvržení operační paměti ● přidělování paměti procesům

12 Virtualizace paměti ● proces vidí jiné uspořádání, než je skutečnost ● odstranění fragmentace ● umožňuje zvětšit dostupnou paměť ● pro podporu multitaskingu ● rozlišuje dvě různé adresy ● logická adresa – pracují s ní strojové instrukce (proces) ● fyzická adresa – získána převodem z logické (v MMU) – adresa paměti v RAM nebo na pevném disku

13 Využití virtualizace ● multitasking ● každý proces má vlastní logický adresní prostor ● není nutné používat relokaci nebo relativní adresy ● rozšíření adresního prostoru ● místo na pevném disku je lacinější, než RAM ● efektivnější využití paměti ● nepoužívané části paměti jsou odsunuty na disk ● zvětší se místo pro diskovou cache – zakázání odkládacího souboru paradoxně horší

14 Adresace virtuální paměti ● segmentace ● fyzická adresa = segment + offset – proces pracuje jen s offsetem – segment spravuje operační systém ● trpí fragmentací volného místa ● stránkování ● virtuální adresa → tabulka stránek → fyzická adresa – poměrně komplikovaný systém – dnes majoritně používán (Windows, Linux na PC) ● řeší fragmentaci, lepší optimalizace (RAM × disk)

15 Organizace paměti ● organizace paměti procesu ● text → jen pro čtení (kód programu, konstanty) ● halda → dynamicky alokovaná data – new() ● zásobník → volání funkcí, lokální proměnné ● organizace paměti v operačním systému ● v paměti je jádro a (běžící) proces ● v IA-32 je málo místa (4 GiB) – využívání triků → PAE – x86_64 problém řeší, ale jen pro 64bitové OS

16 32bitový Linux → 3+1 ● kernel (jádro systému) ● syscall nevyžaduje remapování ● vyžaduje ho model 4+4 ● mmap ● knihovny, mapované soubory ● heap ● dynamicky alokovaná paměť ● text ● program, konstanty

17 32bitové Windows → 2+2 ● standardní mapování pro 32bitové jádra ● jednoduchá kontrola (jádro vs. userspace) ● proces maximálně 2 GiB ● oblast na 2 GiB lze využít jako cache ● alternativa 3+1 ● parametr jádra při startu ● speciálně kompilovaná aplikace (je jich málo)

18 Garbage collector ● správa paměti procesu ● součást běhového prostředí procesu ● usnadňuje programování ● ale složitější ladění ● zpomaluje běh programu ● uvolňování nepoužívané paměti ● probíhá automaticky za běhu programu – typicky po určité době, využití generací ● sledují se reference na objekt (data) – vytvoření počitadla odkazů na objekt – vlastně sleduje úniky paměti (memory leak)

19 IA-32 a PAE ● rozšíření adresovatelnosti na 64 GiB ● platí jen pro celkovou dostupnou paměť – využívání stránek 4kiB nebo 2MiB ● limit pro 4 GiB zůstává zachován – nemění se velikost adresy → zachována kompatibilitu ● možnost využití NX bitu (je-li implementován) ● nevýhody ● zvětšení záznamu v tabulce stránek z 32 na 64 bitů – markantní zvýšení režie tabulky stránek – částečně řešeno pomocí použití 3 úrovní tabulek místo 2 ● zvýšení režie změny kontextu

20 Přidělování veškeré volné paměti ● 1973 – CP/M ● jádro na konci paměti – problém → různé množství RAM v různých počítačích – při umístění na jinou adresu strojový kód nefunguje ● absolutní skoky nebo adresace dat neodpovídá skutečnosti – pro každou velikost RAM jiná verze jádra (32, 48, 64kiB) – nebo relokace ● ISIS II. (Intel 1977) ● nejprve OS → relokují se programy ● DOS (1979 jako QDOS) ● specialita: rezidentní programy

21 Paměť CP/M ● ochrana paměti ● procesor typicky bez HW podpory – bez ochrany pamět i ● jinak mezní registr – hranici nelze překročit ● CPU → vnitřní přerušení ● ISR uvnitř OS ● program ukončen – vyžaduje privilegovaný režim ● multitasking ● jedině celý proces nahrát na disk ● a pak zpět → časově náročné jádro OS program a data systémová oblast 0 100H 64 kiB

22 Mezní registr ● nejjednodušší ochrana paměti ● nutná hardwarová podpora v CPU ● jeden (pro CP/M) nebo dva registry (pro MFT) ● vyžaduje privilegovaný režim ● nastavení registru je privilegovaná instrukce ● proces → neprivilegovaný stav CPU – pokus o přístup do paměti za mezním registrem → – → vyvolání vnitřního přerušení ● obsluha přerušení (ISR) je v jádře OS – OS úlohu ukončí (chyba „porušení ochrany paměti“)

23 Rezidentní program ● specialita DOSu ● TSR → Teminate and Stay Resident – program se ukončí, ale zůstane v paměti ● náhrada absence podpory multitaskingu v DOSu ● TSR se váže na přerušení či služby DOSu – aktivace při stisku klávesy, tiku časovače, zápisu na disk... ● jádro DOSu není reentrantní – jen jeden proces může volat službu DOSu – TSR musí čekat (naštěstí je to možné detekovat) ● velmi rozšířené – obsluha myši, národní klávesnice, ale i VIRY

24 Přidělování pevných bloků paměti ● multitasking vyžaduje více procesů v RAM ● 1967 – rozšíření MFT pro OS/360 – Multiprograming with Fixed number of Tasks ● paměť je při startu pevně rozdělena na bloky – 1 MB např. na 256 kB pro OS a dále bloky pro procesy (1×256, 2×128, 3×64 a 2×32 kiB), jiné dělení → restart ● výhoda: jednoduché ● nevýhody: – program musí deklarovat předem své požadavky – plýtvání pamětí (velikost > proces) – fragmentace → v součtu paměť je, ale nelze spustit ● ochrana paměti: mezní registry nebo zámky a klíče

25 Metoda zámků a klíčů ● běžně používaná ochrana paměti ● paměť je rozdělena na stránky (např. 4kB) ● každé stránce je přiděleno číslo (tj. zámek) ● procesor má speciální registr (tj. klíč) ● procesor smí použít jen paměť, kde klíč=zámek ● jádro používá univerzální klíč 0 (není omezení) ● změna registru (klíče) je privilegovaná instrukce ● proces běží v neprivilegovaném stavu ● zámky jsou v paměti, kam proces nemůže ● nepovolený přístup → vnitřní přerušení → ISR v OS


Stáhnout ppt "Operační systémy Správa paměti © Milan Keršláger 27.9.2016"

Podobné prezentace


Reklamy Google