You are on page 1of 43

Přidělování pamě0 II

Mgr. Josef Horálek, Ph.D.


Techniky přidělování paměti

= Přidělování jediné souvislé oblas4 pamě4


= Přidělování pamě4 po sekcích
= Dynamické přemisťování sekcí
= Stránkování
= Stránkování na žádost
= Segmentace
= Segmentace a stránkování na žádost
Stránkování

= Na stejné úseky se rozdělí


= adresový prostor – stránky;
= operační paměť – fyzické stránky, stránkové rámy;
= každou stránku pak lze vložit do libovolného bloku;
= stránky jsou logicky souvislé vzhledem k uživatelskému
programu;
= odpovídající bloky na sebe nemusí navazovat;
= transformace žádný vliv na uživatelskou úlohu;
= pro každou stránku musí být vyhrazen samostatný registr;
= efektivnost celé technologie značně ovlivňuje velikost stránky;
= stránkování řeší problém fragmentace bez fyzických přesunů;
Stránkování

= Čtyři funkce modulu přidělování paměB


= sledování stavu se provádí pomocí tabulek;
= rozhodování o přidělování paměH provádí plánovač úloh;
= přidělení paměH;
= stránky se zavedou do přiřazených bloků;
= aktualizují se záznamy v tabulce stránek a tabulce bloku;
= uvolnění paměH;
= v tabulce bloku se odpovídající záznamy uvedou do stavu volný;
Stránkování

Úloha 1 stránka blok


0 0
0 4 Operační
1000 systém 1000
1 7
2000 2000

3000
Úloha 2 Volný blok
0 4000
0 1
1000 5000
1 3
2000 6000
2 5
3000 7000
3 6
4000 8000

9000
Volný blok
10 000
Stránkování

= OS se stará o 3 základní tabulky:


= tabulka úloh (Job Table);
= tabulka bloku (Memory block table);
= tabulka stránek (Page Memory Table);
Struktura položky tabulky
stránek

= číslo rámce stránky


= úkolem je mapování stránky je právě vydat tuto hodnotu k offsetu
= přítomný/nepřítomný bit
= platnosG položky (pokud hodnota 1, lze stránku použít)
= ochranné bity
= určují, jaké druhy přístupu jsou povoleny
= Využívány tři bity, kdy každý bit definuje read, write, execute stránky
= Modifikovaný bit
= určuje, zda byla stránka upravena nebo ne
= to znamená, že se můžeme pokusit o zápis na stránku
= pokud je stránka upravena, pak kdykoli bychom ji měli nahradit nějakou jinou
stránkou, upravené informace by měly být uloženy na pevném disku
= tento bit je nastaven hardwarem na jedničku pro zápis na stránku, která se
používá, aby se zabránilo zápisu při výměně
Struktura položky tabulky
stránek

= referenční bit
= se nastaví vždy, když odkazuje na stránku, ať už pro čtení nebo zápis
= hodnota tohoto bitu pomáhá operačnímu systému vybrat stránku, která by
měla být vyřazena v případě, že dojde k chybě stránky
= stránky, které se nepoužívají jsou lepšími kandidáty než stránky, které jsou
využívány často
= deakHvace ukládání stránky do mezipaměH
= funkce důležitá pro stránky, které se mapují na registry zařízení
= pokud operační systém vyčkává ve smyčce a čeká, až nějaké vstupní/výstupní zařízení
zareaguje na zadaný příkaz, je nezbytné, aby hardware stále načítal slovo ze zařízení a
nepoužíval starou kopii v mezipaměE
= Rmto bitem lze ukládání do mezipaměG vypnout
= stroje, které mají oddělený I/O prostor a nepoužívají mapování I/O paměE tento bit
nepotřebují.
Stránkování
Stránkování

= Výhody:
= eliminuje fragmentaci;
= umožňuje zvýšit počet úloh, pro které lze vytvořit paměťové
prostory současně;
= lepší využiR procesoru a operační paměG;
= eliminuje se režie zhušťování;
= Nevýhody:
= technické prostředky pro transformaci stránek zvyšují obvykle
cenu výpočetního systému a současně snižují jeho rychlost;
= uchovávání tabulek zabírá část operační paměH;
= současně se zvyšuje režie (čas procesoru) o dobu potřebnou k
udržování těchto tabulek;
Techniky přidělování pamě8

= Přidělování jediné souvislé oblas4 pamě4


= Přidělování pamě4 po sekcích
= Dynamické přemisťování sekcí
= Stránkování
= Stránkování na žádost
= Segmentace
= Segmentace a stránkování na žádost
Stránkování na žádost

= Dosud
= úloha mohla být zpracována jen tehdy, když ji byla přidělena
paměť pro celý adresový prostor;
= časté nevyužité volné oblasti;
= Řešení
= veliké paměti;
= simulace rozsáhlé paměti
= virtuální paměť
= stránkování na žádost
= segmentace paměti.
Memory Management Unit
(MMU)

= MMU je součást mikroprocesoru


= umožňuje přístup do virtuální paměH
= zajišťuje především překlad virtuální adresy na fyzickou
adresu
= ochranu paměH
= v závislosH na architektuře zajišťuje přepínání mezi
paměťovými buňkami
MMU a virtuální adresa
Mapování virtuální adresy
Stránkování na žádost

Page 0

Page 1

Page 2

Memory
map

Real
memory

Page n External
memory
Virtual
memory
Swapování

= Swapování označuje jednoduchý mechanismus pro výměnu


procesů z hlavní paměF do sekundární paměF, nejčastěji na disk
= jedná se pouze o dočasné přesunu1
= výměna je prováděna jádrem operačního systému
= swapování je velmi důležité v případě, kdy máme plnou paměť a nelze
spusCt další program, jelikož pro něj není dostatek volného prostoru v
paměC
= Tento mechanismus se dá shrnout třemi body:
= 1. Operační systém uloží celou paměť na disk
= 2. Operační systém přivede nový program do paměC
= 3. Operační systém spus1 nový program
= na disk se ve většině případů odkládají nečinné procesy, které
nejsou aktuálně spuštěny, proto není zapotřebí je uchovávat v
paměH
Swapování
Stránkování na žádost

=Většina programů během svého konkrétního průběhu


využívá jen malou část svého adresového prostoru,
protože:
= uživatelské programy pro ošetření chyb se užijí jen když k
chybě dojde;
= logické větve vylučují současný průběh alternaHvních čásS
programu;
= mnoha tabulkám (staHckým paměťovým strukturám) je
přiděleno pevné množství adresového prostoru, které se ne
vždy využije;
= souběh mnoha podprogramů se časově vylučuje;
Stránkování na žádost

= Možné problémy
= program se odvolává na oblast adresového prostoru, která
není zavedena v operační paměH;
= strategie rozhodování, které stránky mají být uchovány v
operační paměH;
= Technické řešení
= rozšíření tabulky stránek o stavový bit;
= false - stránka je v operační paměG;
= true - stránka není v operační paměG;
Stránkování na žádost

= Při naplánování zpracování úlohy je do operační paměB


zavedena pouze první „startovací“ stránka;
= ostatní jsou pak zaváděny na žádost;
= nepotřebné stránky se do pamě4 vůbec nedostanou;
= Možné komplikace
= co v okamžiku, kdy není paměťový prostor pro zavedení další
stránky;
= řeší se pomocí výměny stránek;
= u stránkování na žádost je třeba rozšířit technické vybavení o
tři důležité funkce:
= stavový bit v tabulce stránek;
= rozšíření mechanismu přerušení o výpadek stránky;
= záznam o používání stránky;
Stránkování na žádost

= Čtyři funkce modulu přidělování paměti


= jsou při stránkování na žádost složitější a flexibilnější;
= sledování stavu paměti;
= sledování tabulek (PMTS,MBT, FMT);
= rozhodování o přidělení paměti;
= částečně provádí plánovač úloh;
= přidělování paměti
= je nutné najít vhodný blok paměti pro startovací stránku a změnit
stavový bit bloku;
= uvolňování paměti
= není-li vhodný blok paměti k dispozici, musí být některý z obsazených
uvolněn;
Stránkování na žádost

= Ošetření výpadku stránky:


= paměť je přidělována a odebírána i během provádění úlohy
pomocí mechanismu přerušení;
= při stránkování na žádost velmi úzce spolupracuje programové
a technické vybavení;
= první část vývojového diagramu se provádí nejčastěji;
= implementována jako součást technického vybaveni pro transformaci
adres;
= druhá část je přerušovací modul v OS;
Stránkování na žádost
Začni zpracování Přejdi k další
instrukcí instrukci

Generuj adresu dat


Výběr dat z pamě- a
dokončení instrukce
Vypoč> číslo
stránky
Vyber stránku k
odstranění z paměti
Je k tato
stránka
v Nastav tabulky
paměti? bloků a stránek

Došlo ke
Je k změně Zapiš stránku zpět
dispozici na na disk
volný stránce?
blok?

Zjis> potřebné číslo


stránky

Vezmi adresu na disku z Nastav tabulky bloků a Znovuzahájení


Č- stránku
tabulky souborů stránek přerušení instrukce
Chyba stránky - příklad
Stránkování na žádost

= Přítomnost stránky v paměB se zjišťuje podle


indikačního bitu v odpovídající položce tabulky stránek
= 0 - stránka je v paměH;
= 1 - stránka není v paměH.
= u systému s nepřímým adresováním na několika úrovních může nastat
v podstatě neomezený počet výpadků stránek během vykonání jedné
instrukce;
= při ošetření výpadku stránky mohou nastat až dvě I/O operace;
= během nich je možné přidělit procesor jiné úloze, ale vyžaduje to rozšířit stavy
bloků o další položku přenos (in transit);
Stránkování na žádost
Algoritmy programového vybaveni

= Řešení problémů „vyber stránku k odstranění z paměti“:


= nahradí se vždy stránka v bloku 3. (tj. první blok za OS);
= velmi jednoduché a velmi neefektivní;
= mohl by vést až k zahlceni systému;
= FIFO (First In - First Out)
= LRU (Least Recently Used)
= nejdéle nepoužita
Vnitřní mapování MMU
Zrychlení stránkování

= Možné problémy, které je potřeba řešit v případě


virtuální paměti
= 1. Mapování z virtuální adresy na fyzickou adresu musí být
rychlé
= důsledek toho, že mapování virtuální adresy na fyzickou musí být
provedeno při každém odkazování na paměť
= všechny instrukce pocházejí z paměti a mnoho instrukcí odkazuje na
operandy v paměti
= je nutné udělat jeden nebo více odkazů na tabulku stránek za instrukci
= musí se zabránit tomu, aby se pomalá rychlost mapování nestala
velkým problémem.
Obecné řešení 1

= Nejjednodušší design
= mít tabulku jedné stránky sestávající z řady rychlých
hardwarových registrů s jedním záznamem pro virtuální
stránku v mezipaměH, která je indexována podle čísla virtuální
stránky, jak již zde bylo představeno
= když je proces spuštěn, operační systém načte registry s
tabulkou stránek procesu převzatou z kopie uložené v hlavní
paměH
= během vykonávání procesu nejsou pro tabulku stránek
potřeba žádné další odkazy na paměť
= tato metoda je přímá a nevyžaduje žádné další odkazy na
paměť během mapování
= nevýhodou je její nákladnost, pokud je tabulka stránek větší
Obecné řešení 2

= druhý design
= celá tabulka stránek že může být přímo v paměH
= všechny hardwarové potřeby pak tvoří jediný registr, který
odkazuje na začátek tabulky stránek
= tento design umožňuje změnu virtuální mapy na fyzickou
mapu při přepnuS kontextu opětovným načtením jednoho
registru
= nevýhoda je v tom, že vyžaduje jeden nebo více odkazů na
paměť ke čtení položek tabulky stránek během provádění
každé instrukce, což je velmi pomalé
Translation lookaside buffer

= TLB
= hardwarové zařízení pro mapování virtuálních adres na fyzické
adresy bez nutnosH procházet tabulku stránek
= speciální hardwarová cache v MMU
= má za úkol řešení hlavního problému, kterému se budeme věnovat, a
to je zrychlení stránkování
Fungování TLB

= virtuální stránka je dána MMU k překladu


= hardware zkontroluje, zda je číslo virtuální stránky v TLB a
porovná je paralelně se všemi položkami
= pokud je nalezena shoda a přístup není porušen ochranným bitem, je
rámec stránky převzat z TLB, aniž by se muselo pracovat a odkazovat na
tabulku stránek
= v případě, že se instrukce snaží zapsat na stránku, kde je ochranný bit
pouze pro čtení, je vygenerována chyba a přístup zamítnut
= pokud virtuální stránka není nalezena v TLB, MMU detekuje chybu (angl.
miss)
= provede klasické vyhledávání pomocí tabulky stránek
= následně je prohozena jedna položka v TLB a je nahrazena právě
vyhledanou položkou pomocí tabulky stránek
= v případě příštího přístupu k této stránce bude již proveden přístup v TLB
= odstraněná položka je zkopírována zpět do tabulky stránek
SoRwarová správa TLB

= SoRwarová správa TLB se ukáže jako efekSvní, pokud je v


TLB velký počet záznamů
= hlavní zisk je zde v podobě jednoduššího MMU, který uvolní značné
množství prostoru na čipu CPU pro mezipaměť a další funkce, které
mohou zlepšit výkon stroje
= aby operační systém snížil počet ztrát TLB, může zjis4t, které
stránky se budou používat a předem pro ně načíst položky v TLB
= Při použiZ so[warové správy TLB může dojíst k dvěma
druhům chyb (resp. ztrát, angl. miss)
= k měkké ztrátě (angl. SoR miss) dojde, pokud odkazovaná stránka
není v TLB, ale nachází se v pamě4 v tabulce stránek
= zde je za potřebí vyřešit aktualizaci položky v TLB
= k tvrdé ztrátě (angl. Hard miss) dojde, když odkazovaná stránka není
v TLB ani v tabulce stránek v pamě4
= zde je zapotřebí přístup na disk, kde získáme požadovanou stránku
= je logické, že řešení tvrdé ztráty je několikrát pomalejší než měkká ztráta
SoRwarová správa TLB

= SoRwarová správa TLB se ukáže jako efekSvní, pokud je v


TLB velký počet záznamů
= hlavní zisk je zde v podobě jednoduššího MMU, který uvolní značné
množství prostoru na čipu CPU pro mezipaměť a další funkce, které
mohou zlepšit výkon stroje
= aby operační systém snížil počet ztrát TLB, může zjis4t, které
stránky se budou používat a předem pro ně načíst položky v TLB
= Při použiZ so[warové správy TLB může dojíst k dvěma
druhům chyb (resp. ztrát, angl. miss)
= k měkké ztrátě (angl. SoR miss) dojde, pokud odkazovaná stránka
není v TLB, ale nachází se v pamě4 v tabulce stránek
= zde je za potřebí vyřešit aktualizaci položky v TLB
= k tvrdé ztrátě (angl. Hard miss) dojde, když odkazovaná stránka není
v TLB ani v tabulce stránek v pamě4
= zde je zapotřebí přístup na disk, kde získáme požadovanou stránku
= je logické, že řešení tvrdé ztráty je několikrát pomalejší než měkká ztráta
Zrychlení stránkování

= Možné problémy, které je potřeba řešit v případě


virtuální paměB
= 2. Čím větší je virtuální adresní prostor, Hm větší je tabulka
stránek
= Důsledek toho, že většina počítačů využívá alespoň 64bitové
virtuální adresy
= řekněme například, že na 32bitovém adresním prostoru budeme mít
stránky o velikost 4 kB. Těchto stránek bude milion
= z toho vyplývá, že tabulka stránek bude obsahovat právě milion
záznamů
= každý proces potřebuje mít vlastní tabulku stránek, jelikož každý
proces má svůj vlastní adresní prostor
= pokud si toto představíme pro 64bitový adresní prostor, dostaneme se
do obrovských čísel
Řešení víceúrovňovou tabulkou
stránek

= Víceúrovňové tabulky zabraňují tomu, aby byly všechny


tabulky stránek stále uchovávány v paměti
= zejména by neměly být uchovávány ty, které nejsou potřeba
= jde tedy hlavně o to, že proces používá pouze podmnožinu
adres svého virtuálního adresního prostoru, tudíž by stačilo
mít v paměti pouze ty položky z tabulky stránek, které bude
operační systém potřebovat k překladu
Řešení víceúrovňovou tabulkou
stránek
Řešení Převrácená tabulka
stránek

= V tomto návrhu je v paměB jeden záznam na rámec


stránky oproB předchozímu, kde byl jeden záznam na
stránku virtuálního adresového prostoru
= například máme 64bitovou virtuální adresu, stránky o velikosH
4 kB a operačním paměť RAM o velikosH 1 GB
= převrácená tabulka bude vyžadovat 262 144 záznamů. Záznam
zde sleduje, který proces, či virtuální stránka, je umístěna v
rámci stránek
Řešení Převrácená tabulka
stránek

= Převrácené tabulky stránek výhodu v šetření


obrovského množství prostoru, pokud je virtuální
adresní prostor větší než fyzická paměť, mají i velkou
nevýhodu
= překlad z virtuální adresy na fyzickou adresu je však
mnohem složitější
= když proces X odkazuje na virtuální stránku P, tak hardware již
nemůže najít fyzickou stránku pomocí indexu stránky P do
tabulky stránek, jako to bylo uváděno doteď
= změna je taková, že záznam hledá v celé převrácené tabulce
stránek. Kromě toho musí být hledání provedeno u každého
odkazu na paměť, nejen při chybě stránek, která nastane,
pokud není stránka obsažená v tabulce stránek
Řešení Převrácená tabulka
stránek

= Z tohoto problému se dostaneme pomocí použiZ TLB


= pokud TLB pojme všechny často používané stránky, může dojít
k překladu adres stejně rychle jako u běžných tabulek stránek.
Při chybě TLB, kdy není nalezena požadovaná stránka musí být
prohledána celá převrácená tabulka stránek
= Jedním způsobem, jak toto hledání provést je pomocí
hashovací tabulky
= všechny virtuální stránky aktuálně v paměH, které mají
stejnou hodnotu hash jsou zřetězeny dohromady
= pokud má hashovací tabulka tolik slotů, kolik je fyzických
stránek, bude průměrný řetězec dlouhý pouze jeden záznam,
což výrazně zvýší mapování
= jakmile je nalezeno číslo rámce stránky, je do TLB zadán nový
(virtuální, fyzický) pár
Řešení Převrácená tabulka
stránek
= Převrácená tabulka stránek je běžná na 64bitových strojích,
protože čím je větší velikost stránky, Sm bude větší počet
záznamů tabulky stránek
= Pokud budeme mít 4MB (2!!) stránky a 64bitové virtuální adresy,
bude potřeba 2"! záznamů tabulky stránek
Děkuji za pozornost…

You might also like