Számítógépek felépítése 6. előadás virtuális tárkezelés Dr. Istenes Zoltán ELTE-TTK 6. előadás tartalma • • • • • Memória hierarchia Tárolókezelő egység Virtuális tárkezelés (logikai-fizikai címek) Szegmentálás Lapozás.

Download Report

Transcript Számítógépek felépítése 6. előadás virtuális tárkezelés Dr. Istenes Zoltán ELTE-TTK 6. előadás tartalma • • • • • Memória hierarchia Tárolókezelő egység Virtuális tárkezelés (logikai-fizikai címek) Szegmentálás Lapozás.

Számítógépek felépítése
6. előadás
virtuális tárkezelés
Dr. Istenes Zoltán
ELTE-TTK
1
6. előadás tartalma
•
•
•
•
•
Memória hierarchia
Tárolókezelő egység
Virtuális tárkezelés (logikai-fizikai címek)
Szegmentálás
Lapozás
2
Memória
Feladata :
adatok (több / kevesebb) tárolása
(hosszabb / rövidebb ideig)
3
CPU - Memória
címsín
Processzor
Memória
adatsín
4
Tárolókezelő egység
MMU - Memory Management Unit
5
Tárolókezelés feladatai
• a CPU által megcímzett címen lévő érték elérése
• tárhierarchia hatékony működtetése : virtuálislogikai címek kezelése, lapozás, szegmentálás
• memória „szétosztása”
(több program, több felhasználó között...)
• „védelem”
– rendszer programok a felhasználótól
– felhasználók adatai
– felhasználók programjai (de közös eljárások)
6
Overlay technika (átlapolásos technika)
Probléma : nagy program, kis memória
program
data
p
p1
p2
p3
Program feldarabolása,
csak a szükséges darab(ok) a memóriában
memória
data
p
data
p
data
p
p1
p2
p3
idő
7
Virtuális tárkezelés
8
Cím, címtartomány, címszélesség
címtartomány = 2címszélesség
memória
címek
Címszélesség
cím
Címtartomány
memória
értékek
000000
000001
000010
000011
...
...
011010
...
10010110
...
111111
érték
9
Logikai - fizikai címek
Logikai cím(tartomány)
Fizikai cím(tartomány)
a CPU által címezhető,
programban használható
központi memória mérete...
logikai - fizikai címek
megfeleltetése ?!
10
MMU
program
i
központi
memória
logikai
cím
MMU
fizikai
cím
j
fizikai
címtartomány
logikai
címtartomány
11
Szegmentálás (segmentation)
12
Szegmensek képzése
program
data1
data2
p0
p1
stack
szegmens =
nem rögzített méretű adatblokk
szegmensek
cím meghatározása
=
szegmens meghatározása
+
szegmensen belüli „eltolás”
meghatározása
13
Szegmentált memória kezelés
logikai cím:
szegmensszám eltolás
s
d
szegmenstábla
báziscím hossz
fizikai cím:
báziscím
+
eltolás
összehasonlító
engedélyező
14
Szegmens elhelyezési stratégiák
p2
p0
Szegmens betöltési (elhelyezési)
módszerek (stratégiák) :
? • első szabad hely (first fit)
• következő szabad hely (next fit)
p1
• legjobb hely (best fit)
• legrosszabb hely (worst fit)
15
„Szemétgyűjtés”
(garbage collection, „memória kompaktálás”)
p4
p0
?
p0
p2
p1
p2
p1
szegmensek
szemétgyűjtés
nagyon időigényes !
16
Lapozás (paging)
17
Lapok képzése
lapok = azonos, rögzített méretű adatblokkok
logikai címtartomány és a
fizikai címtartomány
felosztása lapokra
fizikai
címtartomány
logikai
címtartomány
18
Lapok megfeleltetése
„logikai lapok”
„fizikai lapok”
MMU
?
19
Címkiszámítás (lapszám, eltolás)
cím:
lapszám (k)
lapszám
eltolás (d)
0.
i bit
j bit
1.
n = 2i
m = 2j
0.
k.
n.
d. lapon belüli „eltolás”
m.
20
Logikai-fizikai címképzés
logikai cím
q
d
„lap leképző eljárás”
„MMU”
fizikai cím
p
d
21
Logikai-fizikai címképzés
logikai cím
q
d
„laptábla”
p
fizikai cím
p
d
22
Logikai-fizikai címképzés
logikai cím
q
„jelenléti bit” :
lap a memóriában van
vagy háttértárolón
d
1
0
0
p 1
0
...
...
...
...
...
„laptábla”
háttértárolón a cím
fizikai cím
p
d
23
Lapcímzés (példa1)
Adatok :
• logikai címtartomány : 15 bit
• központi memória : 8 Kbyte
• lapméret : 211 byte
• háttértároló : 32 Kbyte
Kérdés :
• mekkora a laptábla mérete ?
24
Lapcímzés (példa1 megoldás)
•
•
•
•
lapméret : 211 byte = 2 Kbyte
logikai címtartomány : 15 bit = 32 Kbyte = 16 lap
központi memória : 8 Kbyte = 4 lap
laptábla :
– 16 sor (a logikai lapokhoz)
– soronként 16 bit (2 byte)
• 1 jelenléti bit,
• 2 bit (a fizikai lapszám) vagy 15 bit (a háttértároló)
• laptábla mérete : 32 byte
25
Lapozási mechanizmus
Ha a lap nincs a memóriában :
laphiba (page fault) -> megszakítás ->
háttértárolóból a lap betöltése
Ha nincs hely a memóriában :
helyettesítési eljárás...
(„egy lap” eltávolítása a memóriából...)
?
26
Helyettesítési eljárások
Melyik lapot kell cserélni (eltávolítani) ?
• optimal : „amire legkevésbé lesz szükség”...
• legrégebben bentlévő (FIFO)
• legrégebbi nem használt
• legkevésbé használt (LRU - Least Recently Used)
• ...
Megvalósítás bonyolultsága ?
27
Optimális laphelyettesítés (példa)
• Lapkérelmek : 2,3,2,4,6,2,5,6,1,4,6
• Optimális helyettesítés
2
-
3
2
-
2
2
3
-
4
2
3
ok
6
2
3
4
2
2
6
4
5
2
6
4
ok
6
5
6
4
1
5
6
4
ok
„találati arány” (hit ratio) = 5/11
4
1
6
4
6
1
6
4
ok
28
1
6
4
ok
FIFO laphelyettesítés (példa)
• Lapkérelmek : 2,3,2,4,6,2,5,6,1,4,6
• FIFO helyettesítés
2
-
3
2
-
2
2
3
-
4
2
3
ok
6
2
3
4
2
6
3
4
5
6
2
4
6
6
2
5
1
6
2
5
ok
„találati arány” (hit ratio) = 2/11
4
1
2
5
6
1
4
5
1
4
6
29
LRU laphelyettesítés (példa)
• Lapkérelmek : 2,3,2,4,6,2,5,6,1,4,6
• LRU helyettesítés
2
-
3
2
-
2
2
3
-
4
2
3
ok
6
2
3
4
2
2
6
4
5
2
6
4
ok
6
2
6
5
1
2
6
5
ok
„találati arány” (hit ratio) = 4/11
4
1
6
5
6
1
6
4
1
6
4
ok
30
Lapcímzés (példa2)
Adatok :
• logikai címtartomány : 32 bit
• központi memória : 8 Mbyte
• lapméret : 4 Kbyte
Kérdés :
• mekkora a laptábla mérete ?
31
Lapcímzés (példa2 megoldás)
•
•
•
•
lapméret : 4 Kbyte = 12 bit
logikai címtartomány : 32 bit = 4 Gbyte
központi memória : 8 Mbyte = 23 bit
laptábla :
– 32-12=20 azaz 220 sor (a logikai lapokhoz)
– soronként 12 bit (2 byte)
• 1 jelenléti bit,
• 11 (a fizikai lapszám)
• laptábla mérete 220 x 2 byte = 2 Mbyte !!!
?
32
Egyéb lehetőségek...
• Szegmentált lapcímzés kezelés...
(szegmentálás + lapozás)
• Translation Lookaside Buffer...
(a legutóbbi logikai-fizikai
(lap)címmegfelelés tárolása cache-ban)
33
Egyéb tulajdonságok...
•
•
•
•
•
„overhead”
„working set”
„demand paging”...
„trashing” - multiprogramozás
Belady anomália
34
Összefoglalás
35