Operan systmy stav informatiky Kapitola Sprva pamti Ciele

  • Slides: 56
Download presentation
Operačné systémy Ústav informatiky

Operačné systémy Ústav informatiky

Kapitola: Správa pamäti

Kapitola: Správa pamäti

Ciele • Poskytnúť podrobný opis rôznych spôsobov organizácie hardveru pamäti • Prediskutovať rôzne techniky

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

 • Program, ktorý sa má vykonávať, musí byť zavedený z disku do hlavnej

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

Rozlišujeme: • FAP – fyzický adresový priestor - pamäť fyzicky prítomná v počítači -

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)

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

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

Pridelenie adries (=address binding) sa môže vykonávať troma spôsobmi: • Počas prekladu programu -

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 programu v pamäti. • Počas behu (vykonávania) programu – vyžaduje hardverovú podporu

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

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

Jednotka správy pamäti (Memory-Management Unit-MMU) • Hardvérové zariadenie, ktoré transformuje logickú adresu na fyzickú

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

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

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

Spôsoby efektívneho využívania primárnej (operačnej) pamäti na úrovni práce s používateľskými programami • •

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

Dynamické zavedenie (Dynamic Loading) • Procedúra sa nenačíta z disku do pamäti, kým nie

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

Dynamické zostavovanie (Dynamic Linking) • Zostavovanie odložené až do fázy vykonávania programu • Malý

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)

Odkladanie (na disk) (Swapping) • Proces môže byť dočasne odložený(presunutý) z pamäti do záložnej

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

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

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

Odkladanie na disk (Swapping) - priebeh v čase Plynutie času Operačný Operačný systém systém

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

Súvislé prideľovanie pamäti (Contiguous Allocation) • Hlavná pamäť je zvyčajne rozdelená na 2 časti:

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

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

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

Súvislé prideľovanie Contiguous Allocation • Prideľovanie viacerých súvislých úsekov – Diera – blok voľnej

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 proces 5 proces 9 proces 8 proces 2 proces 10 proces 2

Príklad: Monoprogramový OS bez odkladania (swapping) a bez stránkovania Používateľský program Operačný systém v

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

Príklad: Multiprogramový OS s pevnou veľkosťou rámcov Viacnásobné vstupné fronty Rámec 4 Rámec 3

Príklad: Multiprogramový OS s pevnou veľkosťou rámcov Viacnásobné vstupné fronty Rámec 4 Rámec 3 Rámec 4 Jediný vstupný front Rámec 3 Rámec 2 Rámec 1 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

Prideľovanie úsekov pamäti s premenlivou dĺžkou Dynamic Storage-Allocation Problem Algoritmy na uspokojenie požiadavky na

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.

Spojovaný zoznam Prideľovací algoritmus Začiatok zoznamu Prideľovacia funkcia: Nájdi prvý voľný úsek (dieru) taký,

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.

Spojovaný zoznam Prideľovací algoritmus Začiatok zoznamu Voľné úseky sú v zozname usporiadané podľa veľkosti

Spojovaný zoznam Prideľovací algoritmus Začiatok zoznamu Voľné úseky sú v zozname usporiadané podľa veľkosti v rastúcej postupnosti. U 1 U 2 U 3 . . . 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.

Spojovaný zoznam Prideľovací algoritmus Začiatok zoznamu Voľné úseky sú v zozname usporiadané podľa veľkosti

Spojovaný zoznam Prideľovací algoritmus Začiatok zoznamu Voľné úseky sú v zozname usporiadané podľa veľkosti v klesajúcej postupnosti. U 1 U 2 U 3 . . . 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.

Vonkajšia a vnútorná fragmentácia • Vonkajšia fragmentácia – celkový voľný pamäťový priestor je dostatočne

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

Stránkovanie Paging • Logický adresový priestor procesu môže byť nesúvislý. • Fyzická pamäť je

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ž 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é

Schéma prekladu adries • Adresa generovaná procesorom je rozdelená na: – Číslo stránky (p)

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 Číslo stránky Posuv v stránke p d m-n n – Pre daný logický adresový priestor 2 m a veľkosť stránky 2 n

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

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

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

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

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

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

PRÍKLAD NA STRÁNKOVANIE Logická adresa má dĺžku 16 bitov Fyzická adresa má dĺžku 20

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 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 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 4 KB= 16 Logická adresa= 789910 d= 7899 -4096=380310 789910 = 0001 1110 1101 1011 2 p=1 d=3803 10 => f = 205 Fyzická adresa = 205 x 4096 + 3803 = 843 483 KB pamäti

Obrázok k príkladu na predchádzajúcej snímke f = 205; d=3803 10 logická adresa: 789910

Obrázok k príkladu na predchádzajúcej snímke f = 205; d=3803 10 logická adresa: 789910 = 0001 1110 1101 1011 2 p = 1 d=3803 10 fyzická adresa: 205 x 4096 + 3803 = 843 48310 1101 1110 1101 10112 1100 1101 1110 1101 10112 p=1 f = 205 fyzická pamäť tabuľka stránok fyzická adresa: 205 x 4096 + 3803 = 843 48310 = 1100 1101 1110 1101 10112

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

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

Implementácia tabuľky stránok Hardvérová podpora stránkovania • Tabuľka stránok je uložená v hlavnej pamäti

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

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

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

Ochrana pamäti Memory Protection • Ochrana pamäti sa uskutočňuje pomocou bitov, ktoré sú pripojené

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

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

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

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

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

Príklad 2 – úrovňového stránkovania • • • Logická adresa (na 32 -bitovom počítači

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: Číslo stránky Posuv v stránke p 1 p 2 d 12 10 10 kde p 1 je index do vonkajšej tabuľky stránok p 2 je posuv v stránke vonkajšej tabuľky stránok

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

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

Segmentácia • Prístup k správe pamäti, ktorý podporuje používateľský pohľad na pamäť • Program

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

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

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

Logický pohľad na segmentáciu 1 4 1 2 3 4 2 3 Používateľský priestor

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

Architektúra segmentácie Segmentation Architecture • • Logická adresa pozostáva z dvoch častí <číslo segmentu,

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

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

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

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

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

PRÍKLAD: Intel Pentium • Podporuje segmentáciu aj segmentáciu so stránkovaním • CPU generuje logickú

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

Preklad logickej adresy na fyzickú v Pentiu logická adresa segmentačná jednotka Číslo stránky lineárna

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

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

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

Stránkovacia architektúra Pentia

Stránkovacia architektúra Pentia

PRÍKLAD NA SEGMENTÁCIU Majme 4 segmenty (očíslované 0, 1, 2, 3): HL_PROG, VELKE_POLE, MAT_FUNKCIE,

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_POLE d=3803 10 < l=4000 => platná adresa, Fyzická adresa = 12000 + 3803 = 15803

PRÍKLAD: Princíp segmentácie Obrázok k príkladu na predchádzajúcej snímke s=1 4000 dĺžka začiatok 0

PRÍKLAD: Princíp segmentácie Obrázok k príkladu na predchádzajúcej snímke s=1 4000 dĺžka začiatok 0 300 10132 1 4000 12000 2 500 3324 3 1400 1450 Fyzická adresa = 12000 + 3803 = 15803 tabuľka segmentov Logická adresa= 789910 = 0001 1110 1101 1011 2 s=1 d=3803 10 4000 d=3803 10 chyba adresácie Fyzická pamäť

ÚLOHA: Vymenujte 2 rozdiely medzi logickou a fyzickou adresou Odpoveď: 1. Logická adresa neodkazuje

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

ÚLOHA: Uvažujte systém, v ktorom program môže byť rozdelený na 2 časti: Kód programu

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

ÚLOHA: Uvažujte logický adresový priestor s 8 -mi stránkami. Každá stránka má veľkosť 1024

Ú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ď: 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