informatika i. · informatika i. bmeviiiab08 memóriakezelés ii. – virtuális tárkezelés...

26
INFORMATIKA I. BMEVIIIAB08 Memóriakezelés II. Memóriakezelés II. Virtuális tárkezelés Virtuális tárkezelés Memóriakezelés II. Memóriakezelés II. Virtuális tárkezelés Virtuális tárkezelés Alkalmazások Operációs rendszer Fordító Kernel (F W) CPU I/O Memória Integrált áramkörök Tranzisztorok Gépi utasítások (ISA)

Upload: others

Post on 30-Apr-2020

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: INFORMATIKA I. · INFORMATIKA I. BMEVIIIAB08 Memóriakezelés II. – Virtuális tárkezelés Alkalmazások Operációs rendszer Fordító Kernel (FW) CPU I/O Memória

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)

Page 2: INFORMATIKA I. · INFORMATIKA I. BMEVIIIAB08 Memóriakezelés II. – Virtuális tárkezelés Alkalmazások Operációs rendszer Fordító Kernel (FW) CPU I/O Memória

• 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

Page 3: INFORMATIKA I. · INFORMATIKA I. BMEVIIIAB08 Memóriakezelés II. – Virtuális tárkezelés Alkalmazások Operációs rendszer Fordító Kernel (FW) CPU I/O Memória

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

Page 4: INFORMATIKA I. · INFORMATIKA I. BMEVIIIAB08 Memóriakezelés II. – Virtuális tárkezelés Alkalmazások Operációs rendszer Fordító Kernel (FW) CPU I/O Memória

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

Page 5: INFORMATIKA I. · INFORMATIKA I. BMEVIIIAB08 Memóriakezelés II. – Virtuális tárkezelés Alkalmazások Operációs rendszer Fordító Kernel (FW) CPU I/O Memória

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

Page 6: INFORMATIKA I. · INFORMATIKA I. BMEVIIIAB08 Memóriakezelés II. – Virtuális tárkezelés Alkalmazások Operációs rendszer Fordító Kernel (FW) CPU I/O Memória

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

Page 7: INFORMATIKA I. · INFORMATIKA I. BMEVIIIAB08 Memóriakezelés II. – Virtuális tárkezelés Alkalmazások Operációs rendszer Fordító Kernel (FW) CPU I/O Memória

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

Page 8: INFORMATIKA I. · INFORMATIKA I. BMEVIIIAB08 Memóriakezelés II. – Virtuális tárkezelés Alkalmazások Operációs rendszer Fordító Kernel (FW) CPU I/O Memória

� 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

Page 9: INFORMATIKA I. · INFORMATIKA I. BMEVIIIAB08 Memóriakezelés II. – Virtuális tárkezelés Alkalmazások Operációs rendszer Fordító Kernel (FW) CPU I/O Memória

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

Page 10: INFORMATIKA I. · INFORMATIKA I. BMEVIIIAB08 Memóriakezelés II. – Virtuális tárkezelés Alkalmazások Operációs rendszer Fordító Kernel (FW) CPU I/O Memória

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

Page 11: INFORMATIKA I. · INFORMATIKA I. BMEVIIIAB08 Memóriakezelés II. – Virtuális tárkezelés Alkalmazások Operációs rendszer Fordító Kernel (FW) CPU I/O Memória

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

Page 12: INFORMATIKA I. · INFORMATIKA I. BMEVIIIAB08 Memóriakezelés II. – Virtuális tárkezelés Alkalmazások Operációs rendszer Fordító Kernel (FW) CPU I/O Memória

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

Page 13: INFORMATIKA I. · INFORMATIKA I. BMEVIIIAB08 Memóriakezelés II. – Virtuális tárkezelés Alkalmazások Operációs rendszer Fordító Kernel (FW) CPU I/O Memória

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

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

Page 14: INFORMATIKA I. · INFORMATIKA I. BMEVIIIAB08 Memóriakezelés II. – Virtuális tárkezelés Alkalmazások Operációs rendszer Fordító Kernel (FW) CPU I/O Memória

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

Page 15: INFORMATIKA I. · INFORMATIKA I. BMEVIIIAB08 Memóriakezelés II. – Virtuális tárkezelés Alkalmazások Operációs rendszer Fordító Kernel (FW) CPU I/O Memória

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

Page 16: INFORMATIKA I. · INFORMATIKA I. BMEVIIIAB08 Memóriakezelés II. – Virtuális tárkezelés Alkalmazások Operációs rendszer Fordító Kernel (FW) CPU I/O Memória

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

Page 17: INFORMATIKA I. · INFORMATIKA I. BMEVIIIAB08 Memóriakezelés II. – Virtuális tárkezelés Alkalmazások Operációs rendszer Fordító Kernel (FW) CPU I/O Memória

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

Page 18: INFORMATIKA I. · INFORMATIKA I. BMEVIIIAB08 Memóriakezelés II. – Virtuális tárkezelés Alkalmazások Operációs rendszer Fordító Kernel (FW) CPU I/O Memória

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

Page 19: INFORMATIKA I. · INFORMATIKA I. BMEVIIIAB08 Memóriakezelés II. – Virtuális tárkezelés Alkalmazások Operációs rendszer Fordító Kernel (FW) CPU I/O Memória

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

Page 20: INFORMATIKA I. · INFORMATIKA I. BMEVIIIAB08 Memóriakezelés II. – Virtuális tárkezelés Alkalmazások Operációs rendszer Fordító Kernel (FW) CPU I/O Memória

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

Page 21: INFORMATIKA I. · INFORMATIKA I. BMEVIIIAB08 Memóriakezelés II. – Virtuális tárkezelés Alkalmazások Operációs rendszer Fordító Kernel (FW) CPU I/O Memória

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

Page 22: INFORMATIKA I. · INFORMATIKA I. BMEVIIIAB08 Memóriakezelés II. – Virtuális tárkezelés Alkalmazások Operációs rendszer Fordító Kernel (FW) CPU I/O Memória

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

Page 23: INFORMATIKA I. · INFORMATIKA I. BMEVIIIAB08 Memóriakezelés II. – Virtuális tárkezelés Alkalmazások Operációs rendszer Fordító Kernel (FW) CPU I/O Memória

Ö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

Page 24: INFORMATIKA I. · INFORMATIKA I. BMEVIIIAB08 Memóriakezelés II. – Virtuális tárkezelés Alkalmazások Operációs rendszer Fordító Kernel (FW) CPU I/O Memória

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

Page 25: INFORMATIKA I. · INFORMATIKA I. BMEVIIIAB08 Memóriakezelés II. – Virtuális tárkezelés Alkalmazások Operációs rendszer Fordító Kernel (FW) CPU I/O Memória

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

Page 26: INFORMATIKA I. · INFORMATIKA I. BMEVIIIAB08 Memóriakezelés II. – Virtuális tárkezelés Alkalmazások Operációs rendszer Fordító Kernel (FW) CPU I/O Memória

Ö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