Presentation is loading. Please wait.

Presentation is loading. Please wait.

Správa pamäti.

Similar presentations


Presentation on theme: "Správa pamäti."— Presentation transcript:

1 Správa pamäti

2 Ciele Poskytnúť podrobný opis rôznych spôsobov organizácie hardveru pamäti Prediskutovať rôzne techniky správy pamäti vrátane stránkovania a segmentovania Poskytnúť podrobný opis procesora Intel Pentium, ktorý podporuje aj čisté segmentovanie aj segmentovanie so stránkovaním

3 Program, ktorý sa má vykonávať, musí byť zavedený z disku do hlavnej pamäti
Aby program mohol byť vykonaný, musí nad ním byť vytvorený proces a musí mu byť pridelená pamäť Hlavná (=operačná) pamäť a registre sú jediné pamäti, ku ktorým procesor (CPU) môže pristupovať priamo Prístup k registru trvá jeden hodinový takt alebo aj menej Hlavná pamäť môže spotrebovať aj viac hodinových taktov Pamäť cache sa nachádza medzi hlavnou pamäťou a registrami procesora (CPU) Ochrana pamäti je vyžadovaná, aby bola zaistená správna činnosť

4 Rozlišujeme: FAP – fyzický adresový priestor - pamäť fyzicky prítomná v počítači - adresový priestor fyzických adries pamäti (spoločný pre všetky procesy i jadro) LAP – logický adresový priestor - pamäť ako abstrakcia, na ktorú sa programy odvolávajú pri adresácii - virtuálny adresový priestor, s ktorým pracuje procesor pri vykonávaní kódu (každý proces i jadro majú svoj)

5 Bázový (relokačný) register a limitný register
Pár registrov: bázový (relokačný) register a limitný register definujú logický adresový priestor operačný systém báza

6 Pridelenie adries (=address binding) sa môže vykonávať troma spôsobmi:
Počas prekladu programu - vznikne absolútny kód. Program sa dá zaviesť len na pevne určenú adresu v pamäti (.COM programy v MS-DOSe) Počas zavedenia programu do pamäti - Relokovateľné (=premiestniteľné) adresy sa modifikujú podľa umiestnenia prog-ramu v pamäti. Počas behu (vykonávania) programu – vyžaduje hardverovú podporu

7 Fázy spracovania používateľského programu
Fáza prekladu Fáza zavedenia Fáza vykonávania

8 Jednotka správy pamäti (Memory-Management Unit-MMU)
Hardvérové zariadenie, ktoré transformuje logickú adresu na fyzickú adresu Hodnota uložená v relokačnom registri je pripočítaná ku každej adrese generovanej používateľským procesom v čase, keď je adresa posielaná do pamäti a to sa deje pri Čítaní inštrukcie programu (fetch) Čítaní dát (load) Zapisovaní dát (store) Používateľský program narába s logickými adresami. Nikdy nevidí reálne fyzické adresy

9 Dynamická relokácia (premiestňovanie) použitím relokačného registra
register logická adresa fyzická adresa Pamäť

10 Spôsoby efektívneho využívania primárnej (operačnej) pamäti na úrovni práce s používateľskými programami Dynamické zavedenie (dynamic loading) programov Dynamické zostavovanie (dynamic linking). Prekrývanie (overlay). Odkladanie stránok na disk (paging).

11 Dynamické zavedenie (Dynamic Loading)
Procedúra sa nenačíta z disku do pamäti, kým nie je poprvýkrát volaná z programu. Lepšie využitie pamäti; nepoužívaná procedúra sa nikdy nezavedie DL je užitočné, keď je potrebné narábať s veľkými množstvami kódu v nie často sa vyskytujúcich prípadoch Nie je vyžadovaná žiadna špeciálna podpora od operačného systému

12 Dynamické zostavovanie (Dynamic Linking)
Zostavovanie odložené až do fázy vykonávania programu Malý kúsok kódu - stub - použitý, aby lokalizoval vhodnú knižničnú procedúru rezidentnú v pamäti Stub nahradí seba samého adresou procedúry a vykoná procedúru Operačný systém zistí, či procedúra nie je používaná iným procesom Dynamické zostavovanie je vhodné najmä pre knižnice programov Tento systém je známy aj pod názvom zdieľané knižnice (shared libraries)

13 Odkladanie (na disk) (Swapping)
Proces môže byť dočasne odložený(presunutý) z pamäti do záložnej pamäti a potom presunutý naspäť do hlavnej pamäti, aby pokračovalo jeho vykonávanie. Záložná (sekundárna) pamäť – je rýchly dostatočne veľký disk na ukladanie kópií všetkých obrazov pamäti pre všetkých používateľov; musí poskytovať priamy prístup k týmto obrazom pamäti Väčšiu časť času odkladania tvorí čas presunu; celkový čas presunu je priamo úmerný veľkosti pamäti, ktorá sa odkladá (presúva) Modifikované verzie odkladania sa nachádzajú v mnohých operačných systémoch (napr. UNIX, Linux, and Windows) Systém udržiava front procesov pripravených na vykonávanie, ktoré majú svoj obraz pamäti na disku

14 Schematický pohľad na odkladanie (Swapping)
operačný systém používateľský priestor záložná pamäť hlavná pamäť

15 Odkladanie na disk (Swapping)
- priebeh v čase Plynutie času Operačný systém Operačný systém Operačný systém Operačný systém Operačný systém Operačný systém Operačný systém Pridelenie pamäti sa mení, keď procesy: prichádzajú do pamäti 2. opúšťajú pamäť Šrafované plochy predstavujú nepoužitú pamäť.

16 Súvislé prideľovanie pamäti (Contiguous Allocation)
Hlavná pamäť je zvyčajne rozdelená na 2 časti: Rezidentný operačný systém je spravidla uložený v dolnej pamäti (nižšie hodnoty adries) spolu s vektorom prerušenia Používateľské procesy sú udržiavané v hornej pamäti Relokačný register je použitý, aby ochránil používateľské procesy navzájom a aby ochránil pred zmenou kód a dáta operačného systému pred pozmenením Bázový (relokačný) register obsahuje hodnotu najnižšej fyzickej adresy Hraničný register (Limit register) obsahuje rozsah logických adries – t.j. každá logická adresa musí byť menšia než hodnota v hraničnom registri MMU mapuje logickú adresu dynamicky

17 Hardvérová ochrana adries bázovým a hraničným registrom
SW prerušenie a správa monitoru OS: Chyba adresovania pamäť

18 Súvislé prideľovanie Contiguous Allocation
Prideľovanie viacerých súvislých úsekov Diera – blok voľnej pamäti; diery rôznych veľkosti sú roztrúsené po pamäti Keď príde proces, pridelí sa mu pamäť z diery dostatočne veľkej na jeho uloženie Operačný systém udržuje informáciu o: a) pridelených úsekoch b) voľných úsekoch (dierach) OS OS OS OS proces 5 proces 5 proces 5 proces 5 proces 9 proces 9 proces 8 proces 10 proces 2 proces 2 proces 2 proces 2

19 Príklad: Monoprogramový OS bez odkladania (swapping)
a bez stránkovania Operačný systém v ROM Ovládacie programy v ROM Používateľský program Používateľský program Používateľský program Operačný systém v RAM Operačný systém v RAM 3 jednoduché spôsoby organizácie pamäti pri OS s jedným používateľským procesom

20 Príklad: Multiprogramový OS s pevnou veľkosťou rámcov
Viacnásobné vstupné fronty Rámec 4 Rámec 4 Rámec 3 Jediný vstupný front Rámec 3 Rámec 2 Rámec 2 Rámec 1 Rámec 1 Operačný systém Operačný systém Pevná veľkosť pamäťových rámcov: a) Oddelené vstupné fronty pre každý rámec b) Jediný vstupný front

21 Prideľovanie úsekov pamäti s premenlivou dĺžkou Dynamic Storage-Allocation Problem
Algoritmy na uspokojenie požiadavky na pamäťový úsek o veľkosti n zo zoznamu voľných úsekov: First-fit (=prvý vhodný): proces sa umiestni do prvého úseku, ktorý je dostatočne veľký. Best-fit (=najlepšie vyhovujúci): procesu sa pridelí najmenší úsek, do ktorého sa zmestí. Musí sa prehľadať celý zoznam úsekov v prípade, že zoznam nie je usporiadaný podľa veľkosti úsekov. Vytvára najmenšie Produces the smallest leftover hole Worst-fit (najhoršie vyhovujúci): proces sa umiestni do najväčšieho voľného úseku. (kvôli tomu sa musí prehľadať celý zoznam úsekov.) Vytvára najväčšie Produces the largest leftover hole Algoritmy first-fit a best-fit sú lepšie než algoritmus worst-fit, ak je rozhodujúca rýchlosť a využitie pamäti.

22 Prideľovací algoritmus
Spojovaný zoznam Prideľovací algoritmus Začiatok zoznamu Prideľovacia funkcia: Nájdi prvý voľný úsek (dieru) taký, aby bola splnená podmienka: S  Ui Hodnotenie: Je výhodné, ak voľné úseky sú udržiavané v poradí ich adries.

23 Prideľovací algoritmus
Spojovaný zoznam Prideľovací algoritmus Začiatok zoznamu Voľné úseky sú v zozname usporiadané podľa veľkosti v rastúcej postupnosti. U1  U2  U3   Un Prideľovacia funkcia: Nájdi najmenšie Ui také, aby spĺňalo podmienku, že S  Ui Hodnotenie: Najmešie plytvanie pamäťovým priestorom, ale necháva veľa malých nepoužiteľných dier.

24 Prideľovací algoritmus
Spojovaný zoznam Prideľovací algoritmus Začiatok zoznamu Voľné úseky sú v zozname usporiadané podľa veľkosti v klesajúcej postupnosti. U1  U2  U3  ...  Un Prideľovacia funkcia: Nájdi najväčšie Ui také, aby spĺňalo podmienku, že S  Ui Hodnotenie: Najväčšie plytvanie pamäťovým priestorom.

25 Vonkajšia a vnútorná fragmentácia
Vonkajšia fragmentácia – celkový voľný pamäťový priestor je dostatočne veľký, ale nie je spojitý Vnútorná fragmentácia – pridelená pamäť môže byť o trochu väčšia než požadovaná veľkosť pamäti; tento rozdiel veľkosti je vo vnútri úseku, ale sa nevyužíva

26 Stránkovanie Paging Logický adresový priestor procesu môže byť nesúvislý. Fyzická pamäť je rozdelená do blokov pevnej veľkosti, ktoré sa nazývajú rámce (frames). Veľkosť blokov je mocninou čísla 2. (512 bajtov, 1 KB, 2 KB, 4 KB až bajtov= 8 KB) Logická pamäť je rozdelená na bloky rovnakej veľkosti, ktoré sa nazývajú stránky (pages) Udržiava sa informácia o všetkých voľných rámcoch Spustenie programu o veľkosti n stránok vyžaduje nájsť n voľných rámcov a zaviesť program do hlavnej pamäti Nastavenie tabuľky stránok, aby sa dali prekladať logické adresy na fyzické

27 Schéma prekladu adries
Adresa generovaná procesorom je rozdelená na: Číslo stránky (p) – sa používa ako index v tabuľke stránok. V tabuľke stránok sa nachádzajú odpovedajúce počiatočná adresa každej stránky vo fyzickej pamäti. Posuv v rámci stránky (d) (offset)– kombinovaný s počiatočnou adresou stránky definuje fyzickú adresu, ktorá sa posiela do pamäťovej jednotky Pre daný logický adresový priestor 2m a veľkosť stránky 2n Číslo stránky Posuv v stránke p d m - n n

28 Princíp stránkovania logická adresa fyzická adresa fyzická pamäť
tabuľka stránok

29 Model stránkovania logickej a fyzickej pamäti
číslo rámca tabuľka stránok logická pamäť fyzická pamäť

30 32-bajtová pamäť a 4-bajtové stránky
Príklad stránkovania tabuľka stránok logická pamäť fyzická pamäť 32-bajtová pamäť a 4-bajtové stránky

31 Fyzická adresa = 205 x 4096 + 3803 = 843 483 Príklad na stránkovanie
Logická adresa má dĺžku 16 bitov Fyzická adresa má dĺžku 20 bitov Stránky a rámce majú veľkosť 4 KB Tabuľka stránok obsahuje položky: 100, 205, 33, 27, I, I, I, ..., I (I – značí neplatnú stránku) Úloha: Určte p, d, f, pre logickú adresu a veľkosť pamäti používanej procesom Riešenie: Veľkosť stránky/rámca = 4 KB = 4096 bitov = 212 bitov => d ~ 12 bitov LA ~ 16 bitov; d ~ 12 bitov => p ~ 4 bity FA ~ 20 bitov; d ~ 12 bitov => f ~ 8 bitov Položky TS: 100, 205, 33, 27, I, I, ... , I => proces používa 4 x 4KB= 16 KB pamäti Logická adresa= d= =380310 = => f = 205 p = d= Fyzická adresa = 205 x =

32 Obrázok k príkladu na predchádzajúcej snímke
f = 205; d= fyzická adresa: 205 x = logická adresa: = p = d= p = 1 f = 205 fyzická pamäť tabuľka stránok fyzická adresa: 205 x = =

33 Voľné rámce: a) pred pridelením b) po pridelení
zoznam voľných rámcov zoznam voľných rámcov nový proces nový proces tabuľka stránok procesu pred pridelením po pridelení

34 Implementácia tabuľky stránok Hardvérová podpora stránkovania
Tabuľka stránok je uložená v hlavnej pamäti Register tabuľky stránok (Page-table base register = PTBR) obsahuje adresu v pamäti, kde sa nachádza tabuľka stránok Register dĺžky tabuľky stránok (Page-table length register PRLR) obsahuje informáciu o veľkosti tabuľky stránok V tejto schéme každý prístup k dátam alebo inštrukcii vyžaduje 2 prístupy k pamäti. Jeden pre prístup k tabuľke stránok a jeden pre prístup k dátam resp. inštrukcii. Dvojnásobný počet prístupov k pamäti môže byť riešený použitím špeciálnej rýchlej asociatívnej pamäti, ktorá sa nazýva asociatívna pamäť cache alebo translačné bufre: associative memory or translation look-aside buffers (TLBs)Bs store address-space identifiers (ASIDs) in each TLB entry – uniquely identifies each process to provide address-space protection for that process

35 Stránkovací hardvér s TLB
logická adresa číslo stránky číslo rámca fyzická adresa fyzická pamäť tabuľka stránok

36 Ochrana pamäti Memory Protection
Ochrana pamäti sa uskutočňuje pomocou bitov, ktoré sú pripojené ku každému rámcu. Bit Platná/Neplatná stránka je pripojený ku každej položke tabuľky stránok: Platná (valid) – znamená, že stránka je v logickom adresnom priestore procesu a je teda platná Neplatná (invalid) – znamená, že stránka nie je v logickom adresnom priestore procesu

37 Bit platná (v) alebo neplatná (i) v tabuľke stránok
v - platná i - neplatná číslo rámca tabuľka stránok

38 2-úrovňové stránkovanie
vonkajšia tabuľka stránok tabuľka stránok pamäť

39 Príklad 2 – úrovňového stránkovania
Logická adresa (na 32-bitovom počítači s veľkosťou stránky 1 KB ) je rozdelená na: Číslo stránky pozostáva z 22 bitov Posuv v stránke pozostáva z 10 bitov Keďže tabuľka stránok je stránkovaná , číslo stránky je ďalej rozdelené na: Na 12-bitové číslo stránky Na 10-bitový posuv v stránke (page offset) Logická adresa má potom nasledujúci tvar: kde p1 je index do vonkajšej tabuľky stránok p2 je posuv v stránke vonkajšej tabuľky stránok Číslo stránky Posuv v stránke p1 p2 d 12 10 10

40 Prevod adries pre 2 – úrovňové stránkovanie
logická adresa vonkajšia tabuľka stránok tabuľka tabuľky stránok požadovaná stránka

41 Segmentácia Prístup k správe pamäti, ktorý podporuje používateľský pohľad na pamäť Program je súbor segmentov. Segment je logická jednotka ako napríklad: hlavný program, procedúra, funkcia, metóda, objekt, lokálne premenné, globálne premenné, blok common , zásobník (stack), tabuľka symbolov, polia

42 Používateľský pohľad na program
zásobník procedúra Tabuľka symbolov Funkcia sqrt Hlavný program Logický adresový priestor

43 Logický pohľad na segmentáciu
1 4 2 3 1 2 3 4 Fyzická pamäť Používateľský priestor

44 Architektúra segmentácie Segmentation Architecture
Logická adresa pozostáva z dvoch častí <číslo segmentu, posuv v segmente>, Tabuľka segmentov – mapuje dvojrozmerné fyzické adresy; každá tabuľka má 2 položky: Začiatok (base) – obsahuje začiatočnú fyzickú adresu, kde je segment uložený v pamäti Dĺžka (limit) – určuje dĺžku segmentu Register začiatku tabuľky segmentov (Segment-table base register - STBR) – ukazuje na tabuľku segmentov Register dĺžky tabuľky segmentov (Segment-table length register - STLR) – informuje o počte segmentov použitých programom; číslo segmentu s je platné, ak s < STLR

45 Princíp segmentácie tabuľka segmentov Trap: chyba adresácie
Fyzická pamäť

46 Logický adresový priestor
Príklad segmentácie procedúra zásobník Tabuľka symbolov Hlavný program Tabuľka segmentov Logický adresový priestor fyzická pamäť

47 Príklad: Intel Pentium
Podporuje segmentáciu aj segmentáciu so stránkovaním CPU generuje logickú adresu odovzdávanú segmentačnej jednotke, ktorá vytvára lineárne adresy Lineárna adresa je odovzdávaná do stránkovacej jednotky, ktorá generuje fyzickú adresu v hlavnej pamäti stránkovacie jednotky vytvárajú ekvivalent MMU

48 Preklad logickej adresy na fyzickú v Pentiu
adresa lineárna adresa fyzická adresa segmentačná jednotka stránkovacia jednotka fyzická pamäť Číslo stránky Posuv v stránke

49 Segmentácia v Intel Pentiu
logická adresa Tabuľka deskriptorov Deskriptor segmentu 32-bitová lineárna adresa

50 Stránkovacia architektúra Pentia

51 Fyzická adresa = 12000 + 3803 = 15803 Príklad na segmentáciu
Majme 4 segmenty (očíslované 0,1,2,3): HL_PROG, VELKE_POLE, MAT_FUNKCIE, ZASOBNIK s hodnotami TS ((l=300, b=10132), (4000, 12000), (500, 3324), (1400, 1450)). Logická adresa má dĺžku 16 bitov; z toho s ~ 4 bity; d ~ 12 bitov Úloha: Pre logickú adresu LA= určte s, d, a platnú fyzickú adresu FA. Riešenie: LA ~ 16 bitov; d ~ 12 bitov => s ~ 4 bity Logická adresa= = s = d= Hodnoty v TS: ((l=300, b=10132), (4000, 12000), (500, 3324), (1400, 1450)) s = 1; d= => sme v segmente VELKE_POLE d= < l=4000 => platná adresa, Fyzická adresa = = 15803

52 Príklad: Princíp segmentácie Obrázok k príkladu na predchádzajúcej snímke
Fyzická adresa = = 15803 dĺžka začiatok 300 10132 1 4000 12000 2 500 3324 3 1400 1450 s = 1 4000 tabuľka segmentov Logická adresa= = s = d= d=  4000 d= chyba adresácie Fyzická pamäť

53 ÚLOHA: Vymenujte 2 rozdiely medzi logickou a fyzickou adresou
Odpoveď: 1. Logická adresa neodkazuje na aktuálnu existujúcu adresu; Odkazuje skôr na abstraktnú adresu v abstraktnom adresovom priestore. Fyzická adresa odkazuje na aktuálnu fyzickú adresu v pamäti. 2. Logická adresa je generovaná procesorom(CPU) a je preložená na fyzickú adresu pomocou jednotky správy pamäti (MMU). T.j. fyzické adresy sú generované jednotkou správy pamäti.

54 Prediskutujte výhody a nevýhody takejto schémy. Odpoveď:
ÚLOHA: Uvažujte systém, v ktorom program môže byť rozdelený na 2 časti: Kód programu a dáta. Procesor (CPU) vie, či chce inštrukciu (instruction fetch) alebo dáta (data fetch or store). Preto musia existovať 2 páry bázových (relokačných) a limitných registrov: jeden pár pre inštrukcie a jeden pár pre dáta. Pár registrov určený pre inštrukcie je automaticky typu read-only, takže programy môžu byť zdieľané rozdielnymi používateľmi. Prediskutujte výhody a nevýhody takejto schémy. Odpoveď: Hlavná výhoda tejto schémy: je to efektívny mechanizmus na zdieľanie kódu a dát. Napríklad v pamäti je potrebné udržiavať len jednu kópiu editora alebo kompilátora a tento kód môže byť zdieľaný všetkými procesmi vyžadujúcimi prístup ku kódu editora a kompilátora. Ďalšia výhoda je ochrana kódu pred chybnou modifikáciou. Jedinou nevýhodou je, že kód a dáta musia byť oddelené, čo je zvyčajne dodržané v kóde generovanom kompilátorom.

55 ÚLOHA: Uvažujte logický adresový priestor s 8-mi stránkami. Každá stránka má veľkosť 1024 slov. Tento priestor je mapovaný do fyzickej pamäti pozostávajúcej z 32 rámcov. a) Určte z koľkých bitov pozostáva logická adresa b) Určte z koľkých bitov pozostáva fyzická adresa Odpoveď: logická adresa má: 13 bitov 8 stránok × 1024 slov = ~ fyzická adresa má: 15 bitov 32 rámcov × 1024 slov = ~


Download ppt "Správa pamäti."

Similar presentations


Ads by Google