56
Operačné systémy Ústav informatiky

Operačné systémy

  • Upload
    torn

  • View
    73

  • Download
    7

Embed Size (px)

DESCRIPTION

Operačné systémy. Ústav informatiky. Kapitola : Správa pamäti. 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 - PowerPoint PPT Presentation

Citation preview

Page 1: Operačné systémy

Operačné systémy

Ústav informatiky

Page 2: Operačné systémy

Kapitola: Správa pamäti

Page 3: Operačné systémy

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

Page 4: Operačné systémy

• 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ť

Page 5: Operačné systémy

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)

Page 6: Operačné systémy

Bázový (relokačný) register a limitný registerPár registrov: bázový (relokačný) register a limitný register

definujú logický adresový priestor

operačnýsystém

báza

Page 7: Operačné systémy

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

Page 8: Operačné systémy

Fázy spracovania používateľského programu

Fáza prekladu

Fáza zavedenia

Fáza vykonávania

Page 9: Operačné systémy

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

Page 10: Operačné systémy

Dynamická relokácia (premiestňovanie) použitím relokačného registra

Pamäť

relokačný register

logickáadresa

fyzickáadresa

Page 11: Operačné systémy

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).

Page 12: Operačné systémy

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

Page 13: Operačné systémy

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)

Page 14: Operačné systémy

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

Page 15: Operačné systémy

Schematický pohľad na odkladanie (Swapping)

hlavná pamäť

záložná pamäť

operačnýsystém

používateľskýpriestor

Page 16: Operačné systémy

Odkladanie na disk (Swapping)- priebeh v čase

Pridelenie pamäti sa mení, keď procesy: 1. prichádzajú do pamäti 2. opúšťajú pamäť

Šrafované plochy predstavujú nepoužitú pamäť.

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

Plynutie času

Page 17: Operačné systémy

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

Page 18: Operačné systémy

Hardvérová ochrana adries bázovým a hraničným registrom

pamäťSW prerušenie a správa monitoru OS:Chyba adresovania

Page 19: Operačné systémy

Súvislé prideľovanieContiguous 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

proces 5

proces 8

proces 2

OS

proces 5

proces 2

OS

proces 5

proces 2

OS

proces 5

proces 9

proces 2

proces 9

proces 10

Page 20: Operačné systémy

Príklad: Monoprogramový OS bez odkladania (swapping) a bez stránkovania

3 jednoduché spôsoby organizácie pamäti pri OS s jedným používateľským procesom

Používateľskýprogram

Používateľskýprogram

Používateľskýprogram

Operačnýsystémv RAM

Operačnýsystémv RAM

Operačnýsystémv ROM

Ovládacieprogramy v ROM

Page 21: Operačné systémy

Pevná veľkosť pamäťových rámcov: a) Oddelené vstupné fronty pre každý rámec b) Jediný vstupný front

Príklad: Multiprogramový OS s pevnou veľkosťou rámcov

Rámec 1

Rámec 2

Rámec 3

Rámec 4

Rámec 1

Rámec 2

Rámec 3

Rámec 4

Operačnýsystém

Operačnýsystém

Viacnásobnévstupné fronty

Jedinývstupný front

Page 22: Operačné systémy

Prideľovanie úsekov pamäti s premenlivou dĺžkouDynamic Storage-Allocation Problem

• 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 na uspokojenie požiadavky na pamäťový úsek o veľkosti n zo zoznamu voľných úsekov:

Algoritmy first-fit a best-fit sú lepšie než algoritmus worst-fit, ak je rozhodujúca rýchlosť a využitie pamäti.

Page 23: Operačné systémy

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.

Spojovaný zoznam

Prideľovací algoritmus

Začiatok zoznamu

Page 24: Operačné systémy

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.

Začiatok zoznamu

Spojovaný zoznam

Prideľovací algoritmus

Page 25: Operačné systémy

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.

Spojovaný zoznam

Prideľovací algoritmus

Začiatok zoznamu

Page 26: Operačné systémy

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

Page 27: Operačné systémy

StránkovaniePaging

• 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ž 8 192 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é

Page 28: Operačné systémy

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 dm - n n

Page 29: Operačné systémy

Princíp stránkovania

fyzická pamäťtabuľka stránok

logická adresa fyzická adresa

Page 30: Operačné systémy

Model stránkovania logickej a fyzickej pamäti

fyzická pamäť

logická pamäť

tabuľka stránok

číslorámca

Page 31: Operačné systémy

Príklad stránkovania

32-bajtová pamäť a 4-bajtové stránky

logická pamäť

fyzická pamäť

tabuľka stránok

Page 32: Operačné systémy

PRÍKLAD NA STRÁNKOVANIE

Logická adresa má dĺžku 16 bitovFyzická adresa má dĺžku 20 bitovStránky a rámce majú veľkosť 4 KBTabuľ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 789910 a veľkosť pamäti používanej procesom

Riešenie:

Veľkosť stránky/rámca = 4 KB = 4096 bitov = 212 bitov => d ~ 12 bitovLA ~ 16 bitov; d ~ 12 bitov => p ~ 4 bityFA ~ 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= 789910 d= 7899-4096=380310

789910 = 0001 1110 1101 1011 2 => f = 205 p = 1 d=3803 10

Fyzická adresa = 205 x 4096 + 3803 = 843 483

Page 33: Operačné systémy

Obrázok k príkladu na predchádzajúcej snímke

fyzická pamäťtabuľka stránok

logická adresa:789910 =0001 1110 1101 1011 2

p = 1 d=3803 10

f = 205; d=3803 10

fyzická adresa:205 x 4096 + 3803

= 843 48310

1100 1101 1110 1101 10112

p = 1

f = 205

fyzická adresa: 205 x 4096 + 3803 = 843 48310 = 1100 1101 1110 1101 10112

1100 1101 1110 1101 10112

Page 34: Operačné systémy

Voľné rámce:a) pred pridelením b) po pridelení

pred pridelením po pridelení

zoznam voľných rámcov zoznam voľných rámcov

tabuľka stránok procesu

nový proces nový proces

Page 35: Operačné systémy

Implementácia tabuľky stránokHardvé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

Page 36: Operačné systémy

Stránkovací hardvér s TLB

logická adresa

fyzická adresa

fyzická pamäť

tabuľka stránok

číslo stránky

číslo rámca

Page 37: Operačné systémy

Ochrana pamätiMemory 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

Page 38: Operačné systémy

Bit platná (v) alebo neplatná (i) v tabuľke stránok

číslo rámca

tabuľka stránok

Bit: v - platná i - neplatná

Page 39: Operačné systémy

2-úrovňové stránkovanie

tabuľka stránok

vonkajšia tabuľka stránok

pamäť

Page 40: Operačné systémy

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

Page 41: Operačné systémy

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

Page 42: Operačné systémy

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

Page 43: Operačné systémy

Používateľský pohľad na program

procedúra

zásobník

Tabuľka symbolov

Funkcia sqrt

Hlavný program

Logický adresový priestor

Page 44: Operačné systémy

Logický pohľad na segmentáciu

1

3

2

4

1

4

2

3

Používateľský priestor Fyzická pamäť

Page 45: Operačné systémy

Architektúra segmentácieSegmentation 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

Page 46: Operačné systémy

Princíp segmentácie

Fyzická pamäť

tabuľka segmentov

chyba adresácie

Page 47: Operačné systémy

Príklad segmentácie

Logický adresový priestor

Tabuľka segmentov

fyzická pamäť

procedúra zásobník

Tabuľkasymbolov

Hlavnýprogram

Page 48: Operačné systémy

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

Page 49: Operačné systémy

Preklad logickej adresy na fyzickú v Pentiu

logickáadresa

lineárnaadresa

fyzickáadresa

Číslo stránky Posuv v stránke

segmentačnájednotka

stránkovaciajednotka

fyzickápamäť

Page 50: Operačné systémy

Segmentácia v Intel Pentiu

logická adresa

Tabuľka deskriptorov

32-bitová lineárna adresa

Deskriptor segmentu

Page 51: Operačné systémy

Stránkovacia architektúra Pentia

Page 52: Operačné systémy

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= 789910 určte s, d, a platnú fyzickú adresu FA.

Riešenie:LA ~ 16 bitov; d ~ 12 bitov => s ~ 4 bity

Logická adresa= 789910 = 0001 1110 1101 1011 2 s = 1 d=3803 10

Hodnoty v TS: ((l=300, b=10132), (4000, 12000), (500, 3324), (1400, 1450))s = 1; d=3803 10 => sme v segmente VELKE_POLEd=3803 10 < l=4000 => platná adresa,

Fyzická adresa = 12000 + 3803 = 15803

Page 53: Operačné systémy

PRÍKLAD: Princíp segmentácieObrázok k príkladu na predchádzajúcej snímke

Fyzická pamäť

tabuľka segmentov

chyba adresácie

dĺžka začiatok

0 300 10132

1 4000 12000

2 500 3324

3 1400 1450

s = 1

Fyzická adresa =

12000 + 3803 = 15803

d=3803 10 4000

40004000

d=3803 10

Logická adresa= 789910 = 0001 1110 1101 1011 2 s = 1 d=3803 10

Page 54: Operačné systémy

Ú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.

Page 55: Operačné systémy

Ú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.

Page 56: Operačné systémy

Ú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á adresab) Určte z koľkých bitov pozostáva fyzická adresa

Odpoveď:

a.logická adresa má: 13 bitov

8 stránok × 1024 slov = 8192 ~ 213

b.fyzická adresa má: 15 bitov

32 rámcov × 1024 slov = 32768 ~ 215