informatika i. · informatika i. bmeviiiab08 memóriakezelés ii. – virtuális tárkezelés...
TRANSCRIPT
INFORMATIKA I.BMEVIIIAB08
Memóriakezelés II. Memóriakezelés II. –– Virtuális tárkezelésVirtuális tárkezelésMemóriakezelés II. Memóriakezelés II. –– Virtuális tárkezelésVirtuális tárkezelés
Alkalmazások
Operációs rendszer
Fordító Kernel (FW)
CPU I/O
Memória
Integrált áramkörök
Tranzisztorok
Gépi utasítások (ISA)
• Alapvetı megoldandó problémák�Kicsi a logikailag megcímezhetı tárkapacitás
– A teljes program, vagy adatállomány nem fér el a „címtérben”
�Bıvíteni kell a fizikailag megcímezhetı memóriát
�Nem lehet, vagy nem célszerő a megcímezhetı tárat
Memória kapacitás-igény kezelése
Nem lehet, vagy nem célszerő a megcímezhetı tárat teljes egészében realizálni
– Adott program, vagy adatállomány nem fér el a fizikailag megvalósított memóriában
– Adott programnak futnia kell a - gépenként eltérı -fizikai memória méretétıl függetlenül is
�Virtuális tárkezelés
�Támogatást kell nyújtani az operációs rendszerneka tárkezeléshez és a védelem megoldásához
2Memóriakezelés II. – Virtuális tárkezelésVIIIAB08 /Számítógép Architektúrák © Dr. Móczár Géza
Tömbkapcsolásos memóriabıvítés� Egy I/O ként mőködı dekódoló n-bıl egy tömböt engedélyez
Kis logikai és fizikai címkapacitás
…. Enn-1 En1 En0
Tömb kiválasztó
logika
0. memória
tömb
Cím sín
1. memória
tömb
n-1. memória
tömb
n→→→→1 dekódoló
….
….
VIIIAB08 /Számítógép Architektúrák © Dr. Móczár Géza 3Memóriakezelés II. – Virtuális tárkezelés
CPU
Adat sín
Vezérlı sín
Közös memória
■ Elınyök: - Nagyon egyszerő, olcsó megvalósítás- Gyors (az adott tömb OUT utasítással átkapcsolható )
■ Hátrányok: - Durva, merev memória felosztás - Átkapcsoláshoz, IT kezeléshez használt rész mindig aktív
Kis logikai címkapacitásIndexelt leképezés (Külsı regisztertömb alkalmazásával)
� Logikai cím fizikai cím összerendelés egy regiszter tartalmával� I/O-ként írható regisztertömb� rögzített mérető blokkok /lapok/ �egyszerre 2i lap aktív� A lapon belüli címzés az eltolás /ofszet/
LAP
Eltolás /d bit/ Index /i bit/
Logikai cím 0. lap byte0
0. lap byte1 0. lap byte2
Fizikai Memória
/Fiz. Címtér/ 2n lap /n>d/
offs
zet
Memóriakezelés II. – Virtuális tárkezelés 4
Attr. (n-1) 0
0 0 0………… 0 1 0 1
Regiszter tömb /(I/O ként írható) Blokk /lap/ címzésre
attr. n bit 0 1 2
2i-1
Lap cím/n bit/ offszet /d bit/
fizikai cím /(n+d) bit> logikai cím bit/
2i-1. lap
1
2
0. lap
Logikai Címtér
2. lap
1. lap
4. lap
5
3. lap
2n-1. lap
0. lap 0. lap byte2d-2
0. lap byte2d-1
/n>d/
2i-logikai lap
VIIIAB08 /Számítógép Architektúrák © Dr. Móczár Géza
Kis logikai címkapacitás - Indexelt leképezés
– Elınyök:
Egyszerő, gyors logikai�fizikai címátalakítás
Rugalmas (programok a tárolóban szabadon, laponként mozgathatók)
– Hátrányok:
Bonyolultabb, mint a tömbkapcsoló
Közösen használt részeknek (pl. I/O, IT-k)mindig aktívnak kell lennie
Memóriakezelés II. – Virtuális tárkezelés 5
/pl.: 0. regiszter helyett konstans 0 cím /
Bázisregiszter alkalmazása Fizikai cím = (bázisregiszter tartalom+logikai cím)Egyszerő, ha a CPU tartalmaz ilyen speciális regisztert
Kevés regiszter esetén durva felosztás
VIIIAB08/Számítógép Architektúrák © Dr. Móczár Géza
Kis logikai címkapacitás
Felhasználói szintő Overlay szervezés�A felhasználói program háttértárolóról egy megadott
memóriaszegmensre rendre új programrészletet, vagy adatot töltNehézkes, a hiba elleni védelem nehezen megoldható
Esettanulmány�i8086/88-nál a CPU tartalmaz bázisregisztereket
(szegmensregiszterek)
Memóriakezelés II. – Virtuális tárkezelés 6
(szegmensregiszterek)�átmenet a logikai cím és a fizikai tárbıvítés között címtartomány 1MB
8086/88 PC-nél gyakran alkalmazott megoldás- a memória bıvítésére - a tömbkapcsolásés az overlay együttes alkalmazása, védelem!
VIIIAB08/Számítógép Architektúrák © Dr. Móczár Géza
A processzor teljes címtartományát (logikai cím) kiterjeszti a háttértárolóra is � virtuális címtér
• Megoldandó feladatok�Minden virtuális blokkhoz tartozzon egy leíró /OM-ben/
�Virtuális címtér�fizikai címtér transzformáció/összerendelés/
�Memóriakezelı egység (MMU) � HW és/vagy SW
– Átviteli igény jelzése az operációs rendszer /OR/ felé
Virtuális tárkezelés
– Átviteli igény jelzése az operációs rendszer /OR/ felé– OR betölti az információt a háttértárolóról – Leíró tábla kitöltés �OR. � SW – Címtranszformáció MMU HW
�Felhasználó felé transzparens+védelem
�Kialakítás : Lap/szegmens - szervezéső virtuális tárkezelés
7Memóriakezelés II. – Virtuális tárkezelésVIIIAB08/Számítógép Architektúrák © Dr. Móczár Géza
� Fix mérető lapok
� Transzformációs tábla /laptábla/ az OM-ben
� Lapleíró: lap kezdıcím, lapra vonatkozó attribútumok
Lapszervezéső virtuális tárkezelés
Virtuális lap sorszáma lapon belüli eltolás
i. lapleíró kiválasztása
Index Eltolás LTP /PTP/
OM
Lap
táb
la
Virtuális cím
8Memóriakezelés II. – Virtuális tárkezelés
Attributum
Lap
táb
la
/PT
/
Lap kezdıcím Eltolás
Lap
ok
Lap
/pag
e/
szó kiválasztása a lapon belül/eltolás/
Fizikai cím cím
VIIIAB08/Számítógép Architektúrák © Dr. Móczár Géza
Lapszervezéső virtuális tárkezelés
Lap hiba /page fault/ -lap nincs bent kezelése
Index /i bit/
Virtuális cím
0……………….. 0 0 0
Laptábla /LT/ (Page table
/PT/) 0
2. lap
1. lap
4
3. lap
0. lap
Fizikai Memória
/Fiz. címtér/
P D A
Virtuális címtér
2.Virtuális lap 2
4
Virtuális lap sorszám
Háttér tároló /HT/
Eltolás /d bit/
Laphiba kezelése X, Y, Z a Lap
tartalmának a címe a háttértárolón
Memóriakezelés II. – Virtuális tárkezelés 9
1 0 1 0……………….. 0 0 0
0 0 0 YYYYYYYYYYYY
01 0 0 0 0 0… (ZZZ) 0 1 0 1
0……………… 0 0 1
0 1 2
2i-1
Lap kezdıcím Eltolás /offszet/
fizikai cím /(n+d) bit/
XXXXXXXXXXXX
5
2n-1. lap
2.Virtuális lap
Op.Rendszer
1
2
3
3:Betöltés a fizikai memóriába
4:PT kitöltése, P bit beállítása
6:Újra/tovább indítás
0 0 0
1:Laphiba /page fault/ jelzés
2:OR a tartalmat HT-n való helyeként értelmezi
VIIIAB08 /Számítógép Architektúrák © Dr. Móczár Géza
TLB /Laptábla gyorsító tár (cache) alkalmazása
V. cím Fiz. cím
Lapszervezéső virtuális tárkezelés
Megoldandó problémák�Sebesség /ne kelljen mindig többször az OM-hez fordulni/
– Laptábla tartalmát egy erre a célra kiépített gyorsító tárban (TLB Translation Lookaside Buffer) (cache) tartani
M
M U
CPU
TL
B
OP
ER
ATÍ
VM
EM
ÓR
IA
Fizikai cím HIT esetén /TLB-ben/ Fizikai cím MISS esetén /laptáblában/
V. cím
Lap
táb
la
Memóriakezelés II. – Virtuális tárkezelés 10VIIIAB08 /Számítógép Architektúrák © Dr. Móczár Géza
Lapszervezéső virtuális tárkezelés- Sebesség
TLB hatása a CACHE mőködésére
CPU
TL
B
OP
ER
AT
ÍVM
EM
ÓR
IA
CACHE a TLB után
CA
CH
E
Fiz
ikai
cím
re
Virtuális cím Fizikai cím
Memóriakezelés II. – Virtuális tárkezelés 11
CPU
TL
B
OP
ER
AT
ÍVM
EM
ÓR
IA
CA
CH
EF
izik
ai
■ A CACHE tartalom keresés csak a TLB keresés után indul���� Lassabb���� Egyszerőbb megvalósítás
VIIIAB08 /Számítógép Architektúrák © Dr. Móczár Géza
Lapszervezéső virtuális tárkezelés- Sebesség
TLB hatása a CACHE mőködésére
CPU
TL
B
OP
ER
AT
ÍVM
EM
ÓR
IA
CACHE a TLB elıtt
CA
CH
E
Vir
tuál
is
cím
re
Virtuális cím Fizikai cím
Memóriakezelés II. – Virtuális tárkezelés 12
CPU
TL
B
OP
ER
AT
ÍVM
EM
ÓR
IA
CA
CH
EV
irtu
ális
cím
■ A CACHE-ben és a TLB-ben egyszerre keres����Gyors� probléma: ha V1és V2 ugyanarra a fizikai címre mutat�
CACHE-ben V1 és V2 példány van (melyiket írtuk át - adat egyezés ?!)
VIIIAB08/Számítógép Architektúrák © Dr. Móczár Géza
Kétlépcsıs laptábla szervezés
Eltolás LS2 LS1 31 22 21 12 11 0
OP mem
Virtuális cím
Lapszervezéső virtuális tárkezelés- Megoldandó problémák
�Laptábla mérete
Minden virtuális laphoz tartozik egy leíró (pl.:lapméret 4KB, a leíró 4byte �4GB címtérhez ∑4MB lenne az egylépcsıs laptábla mérete!)
■ Több lépcsıs laptábla�Laptábla könyvtár�laptábla �lap
Reg.
Laptábla könyvtár mutató reg.
Lap
táb
la
kö
nyv
tár
OP mem
HT
LS1
OP mem
LS
2
0.L
aptá
bla
n
.Lap
táb
la
102
3.L
T
HT
HT
HT
OP mem
i.LAP
j.LAP
1023. LAP
Elt
olá
s
D31 D0
0
1023
1023
0
D31 D0 D31 D0
13
Csak a könyvtár van állandóan az OM-ben, a laptáblák szükség szerint cserélhetık, behozhatók a háttértárolóról (idı!)
VIIIAB08 /Számítógép Architektúrák © Dr. Móczár Géza
4k lapméret, 2 lépcsı (IA32e)32 bites lineáris cím
1414VIIIAB08 /Számítógép Architektúrák © Dr. Pilászy György Memóriakezelés II. – Virtuális tárkezelés
Fizikai memória elvi maximuma: 4GB
1024db 32 bites laptábla bejegyzés
1024db 32 bites laptábla könyvtár bejegyzés
32 bites kezdıcím (könyvtárhoz)
4k
4k
Laptábla minimális mérete:Egy lépcsı, 4k esetén: 4MBKét lépcsı esetén: 8kB
4k lapméret, 4 lépcsı (IA32e)48 bites lineáris cím
1515VIIIAB08/Számítógép Architektúrák © Dr. Pilászy György Memóriakezelés II. – Virtuális tárkezelés
Fizikai memóriacím max. bitszáma a CPUID regiszterben érhetı el! Típusonként változikElvi maximum: 52 bit!
Laptábla minimális mérete:Ha 48bites cím és 4k lapméret mellett egy lépcsıs lenne: 512GB!4 lépcsı esetén: 4x4k=32kB
2M lapméret, 2 lépcsı (IA32e)
1616VIIIAB08/Számítógép Architektúrák © Dr. Pilászy György Memóriakezelés II. – Virtuális tárkezelés
Fizikai memóriacím max. bitszáma a CPUID regiszterben érhetı el! Típusonként változikElvi maximum: 52 bit!
64 bites bejegyzések64 bites bejegyzések
2M lapméret, 48 bites cím (IA32e)
1717VIIIAB08 /Számítógép Architektúrák © Dr. Pilászy György Memóriakezelés II. – Virtuális tárkezelés
Fizikai memóriacím max. bitszáma a CPUID regiszterben érhetı el! Típusonként változikElvi maximum: 52 bit!
64 bites bejegyzések 64 bites bejegyzések
4M lapméret, 1 lépcsı (IA32e)
1818VIIIAB08 /Számítógép Architektúrák © Dr. Pilászy György Memóriakezelés II. – Virtuális tárkezelés
Fizikai memóriacím max. bitszáma a CPUID regiszterben érhetı el! Típusonként változikElvi maximum: 40 bit!32 bites bejegyzések
1GB lapméret (IA32e)
1919VIIIAB08 /Számítógép Architektúrák © Dr. Pilászy György Memóriakezelés II. – Virtuális tárkezelés
Fizikai memóriacím max. bitszáma a CPUID regiszterben érhetı el! Típusonként változikElvi maximum: 52 bit!
64 bites bejegyzések
Lapszervezéső virtuális tárkezelés- Megoldandó problémák
� Behozatali - csere - írási algoritmusok (ld. Op. rendszer)
• Szegmensszervezéső virtuális tárkezelés
� A logikai objektumokhoz /pl.: program, adat, egyéb/ változó mérető memóriarészeket /szegmenseket/ használunk
� Címfordítás hasonló, mint a lapozásnál■ Egy szegmens összefüggı /folytonos/ fizikai
Memóriakezelés II. – Virtuális tárkezelés 20
■ Egy szegmens összefüggı /folytonos/ fizikaitárterületet igényel
- Szegmens hosszát is meg kell adni �védelem!
- Címszámítás aritmetikai összeadás �bonyolultabb hw.
� Egy felhasználót /alkalmazást/ a hozzá tartozó teljes, ıt leíró környezetével /context/ -itt kötet- együtt kezeljük
VIIIAB04 /Számítógép Architektúrák © Dr. Móczár Géza
Szegmensszervezéső virtuális tárkezelés
Szegmensszervezéső tárkezelı - címtranszformáció/kétlépcsıs/
Virtuális cím
Eltolás Szegmens Kötet Könyvtár mutató
Operatív memória
+ Szegmens leírótábla
könyvtár
Attr. SLTP
Memóriakezelés II. – Virtuális tárkezelés 21
memória
SLTábla mutató
Attr. SLTP
+
Attr. SLT
Attr. Báziscím Hossz
+
Sze
gm
ense
k
Sze
gm
ens
Operatív memória
VIIIAB08 /Számítógép Architektúrák © Dr. Móczár Géza
SzegmensszervezésElınyök:
- Jobban illeszkedik a „programozási szemlélethez”
- Hatásos védelem alakítható ki
- A felhasználó számára transzparens
Hátrányok:
Összehasonlítás /Szegmensszervezés-lapszervezés/
Hátrányok:
- Az eltérı méretek miatt memória szétesés /fragmentation/ jöhet létre
- Bonyolultabb szegmens–csere algoritmusok kellenek
22Memóriakezelés II. – Virtuális tárkezelésVIIIAB08 /Számítógép Architektúrák © Dr. Pilászy György
Összehasonlítás /Szegmensszervezés-lapszervezés/
Lapszervezés
Elınyök:- A fix lapméret jól illeszthetı a háttértár szektor méretéhez- Elkerülhetı a memória „szétesés” - A címtranszformáció nem igényel aritmetikát- Nagy objektumoknál (pl.: program memória szegmens)
a fizikai tárban nem kell folytonos tárterület �
Memóriakezelés II. – Virtuális tárkezelés 23
a fizikai tárban nem kell folytonos tárterület �- Jól kihasználható a fizikai tárterület
- A felhasználó számára transzparens
Hátrányok:- Ha csak lapozás van, csökken a védelem lehetısége- Belsı szétesés (pl.: lapméret 4096 byte, kell 5000 byte)
Szegmentált lapszervezéső virtuális tárkezelésA két módszert egyesíti�(lásd IA32 processzoroknál)
VIIIAB08 /Számítógép Architektúrák © Dr. Pilászy György
Szegmentálás, logikai cím� lineáris cím (IA32e)
Logikai cím:16bit szegmens + 32 bit eltolás, de az eredmény is 32 bitesVagy cím:16bit szegmens + 64 bit eltolás, de az eredmény is 64 bites(64 bites módban nincs fizikailag implementálva mint a 64 bit!)
242424VIIIAB04 /Számítógép Architektúrák © Dr. Pilászy György Memóriakezelés II. – Virtuális tárkezelés
Szegmentálás+lapszervezés (IA32e)
25
Szegmentálás Lapszervezés
25VIIIAB04 /Számítógép Architektúrák © Dr. Pilászy György Memóriakezelés II. – Virtuális tárkezelés
Összefoglalás
• Tömbkapcsolásos memória bıvítés
• Indexregiszteres memória bıvítés
• Bázisregiszter alkalmazása
• Felhasználói szintő overlay • Felhasználói szintő overlay
• Virtuális tárkezelés
• Szegmens szervezés
• Lapszervezés
• Szegmentált lapszervezés
2626VIIIAB04 /Számítógép Architektúrák © Dr. Pilászy György Memóriakezelés II. – Virtuális tárkezelés