03 Memory
03 Memory
1
QLBN trong m« h×nh ®a nhiÖm
Tû lÖ % thêi gian dïng CPU
120.0
100.0
80.0
80% chê vµo ra
60.0 50% chê vµo ra
40.0 20% chê vµo ra
20.0
0.0
0 1 2 3 4 5 6 7 8 9 10 11
Sè l−îng tiÕn tr×nh
2
§èi víi m« h×nh xö lý l«
TiÕn tr×nh
2.0 phót 0.9 0.8 0.3
1
0.3 0.9
3
0
10 15 20 22 27.6 28.2 31.7
Thêi gian b¾t ®Çu cña tiÕn tr×nh,
tÝnh tõ thêi ®iÓm tiÕn tr×nh 1
Sè l−îng tiÕn tr×nh
4 10:20 2
3
Ph©n bæ bé nhí
•TiÕn tr×nh A ®−îc n¹p
•TiÕn tr×nh B ®−îc n¹p
C C C •TiÕn tr×nh C ®−îc n¹p
•TiÕn tr×nh A kÕt thóc
B B B B
4
Kh«ng gian phô
stack
cña B
HÖ ®iÒu
hµnh
5
Qu¶n lý b»ng b¶n ®å bit
A B C
6
Qu¶n lý b»ng DSMN
A B C
P 0 6 H 6 4 P 10 8 H 18 2 P 20 5 H 25 10
7
Th.to¸n QLBN víi DSMN
• First fit:chän khèi rçi phï hîp ®Çu tiªn
• Next fit: chän khèi rçi phï hîp ®Çu tiªn tiÕp theo
• Best fit: chän khèi rçi võa nhÊt
• Worst fit: chän khèi rçi thõa th·i nhÊt
• Quick fit:L−u 2 danh s¸ch: Holes vµ Processes
8
Qu¶n lý b»ng ph©n khèi
A 128 256 512
A B 64 256 512
A B 64 C 128 512
9
Ph©n tÝch hiÖu suÊt ho¸n ®æi
• LuËt 50%: tiÕn tr×nh n»m gi÷a bé nhí sÏ cã kho¶ng 50% sè lÇn
n»m c¹nh tiÕn tr×nh kh¸c vµ 50% sè lÇn n»m c¹nh khèi rçi.
• Víi n tiÕn tr×nh, cã kho¶ng n/2 khçi rçi
• Gäi f lµ tû lÖ bé nhí lµ khèi rçi; s lµ kÝch th−íc trung b×nh cña n
tiÕn tr×nh, ks lµ kÝch th−íc khèi rçi trung b×nh (k>0); m lµ sè bytes
bé nhí
• (n/2)ks = m – ns, suy ra m = ns(1+k/2), vµ:
• f = (nks/2)/m=k/(k+2)
• VÝ dô: k=1/2, f=20%
10
Memory Management Unit
CPU
Bé Bé
nhí nhí
trong ngoµi
MMU
11
Bé nhí ¶o
0-4K 2
4-8K 1 0-4K
•KÝch th−íc bé nhí
8-12K 6 4-8K
vËt lý: 32KB
12-16K 0 8-12K
16-20K 4 12-16K •KÝch th−íc bé nhí
20-24K 3 16-20K ¶o: 64KB
24-28K x 20-24K
28-32K x 24-28K
•§é lín cña mçi
32-36K x 28-32K
trang bé nhí: 4KB
36-40K 5 bé nhí •C¸c trang ‘x’ lµ c¸c
40-44K x thùc
trang hiÖn kh«ng
44-48K 7
®−îc ¸nh x¹ vµo bé
48-52K x
nhí vËt lý
52-56K x
56-60K x
60-64K x
bé nhí ¶o
12
¸nh x¹ ®Þa chØ ¶o vµ thùc
®Þa chØ 16 bit, ®¸nh ®−îc 64KB
0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0
010 1
001 1 •4 bits ®Çu cña ®Þa chØ ¶o lµ chØ sè tíi
110 1 110 b¶ng ph©n trang. C¸c bits cßn l¹i lµ
000 1 ®Þa chØ offset trong vïng bé nhí vËt
B¶ng 100 1 lý
chØ 011 1
sè 000 0
•3 bits trong b¶ng ph©n trang ®−îc
ph©n 000 0 ghÐp víi ®Þa chØ offset t¹o thµnh ®Þa
trang 000 0 chØ tuyÖt ®èi trong bé nhí vËt lý (15
101 1 bits -> 32KB)
000 0
111 1
•Bit present=0/1 trong b¶ng ph©n
000 0 trang: ®¸nh dÊu sù tån t¹i cña trang
000 0 trong bé nhí
000 0
000 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0
¸nh x¹ 2 møc
1
2
3
4
5
•Yªu cÇu ph©n trang: nhanh vµ nhá .....
1023
•§Þa chØ ¶o gåm 3 phÇn: 2 chØ sè, 1 offset
•ChØ cÇn l−u 4 b¶ng trong bé nhí thay v× 0 0
1 1
tÊt c¶ 1024 (3 b¶ng con øng víi: code,
2 2
data, stack) 3 3
4 4
5 5
pointer1 pointer1 offset
..... .....
1023 1023
0
referenced
1
present /
Modified
caching
disable
absent
protection 2
page frame number
(3 bit)
3
4
Mét dßng chØ sè tíi trang bé nhí thùc 5
.....
1023
14
Associative memory
valid virtual Modified Protectio Page
entry page n frame
1 140 1 RW 31
1 20 0 RX 38
1 130 1 RW 29
1 129 1 RW 62
1 19 0 RX 50
1 21 0 RX 45
1 860 1 RW 14
1 861 1 RW 75
Thao t¸c so s¸nh trªn associative memory ®−îc thùc hiÖn song song bëi
phÇn cøng trªn tÊt c¶ c¸c dßng
15
Page replacement
A •Dùa vµo ph−¬ng ph¸p Not
K B
Recently Used (NRU)
•Tæ chøc c¸c khèi bé nhí dïng bëi
J C c¸c tiÕn tr×nh theo danh s¸ch mãc
nèi vßng
•Xo¸ bÝt ‘Referenced’ vµ quay 1
I D
vßng, nÕu ch−a ®−îc ®Æt l¹i b»ng 1
th× khèi ®ã lµ NRU, cã thÓ swap ra
H E •Cã thÓ ph©n lo¹i theo líp
•Not referenced, not modified
G F
E •Not referenced, modified
•Referenced, not modified
•Referenced, modified
16
LRU nhê phÇn cøng
0 1 1 1 0 0 1 1 0 0 0 1
0 0 0 0 1 0 1 1 1 0 0 1
0 0 0 0 0 0 0 0 1 1 0 1
0 0 0 0 0 0 0 0 0 0 0 0
17
NFU nhê phÇn mÒm
1 0 1 0 1 1 1 0 1 0 1 1 1 0 1 0 1 1 1 0 1 0 1 1 0 1 1 0 0 0
page
10000000 11000000 111000000 11110000 01111000
0
page
00000000 10000000 11000000 01100000 10110000
1
page
10000000 01000000 00100000 00010000 10001000
2
page
00000000 00000000 10000000 01000000 00100000
3
page
10000000 11000000 01100000 10110000 01011000
4
page
10000000 01000000 10100000 01010000 00101000
5
NFU: Not Frequently Used. Mçi thanh ghi øng víi mét khèi bé nhí. Mçi nhÞp ®ång hå,
dÞch ph¶i mét ®¬n vÞ. §iÒn bit 1 vµo bªn tr¸i nÕu khèi ®−îc dïng gi÷a 2 nhÞp võa qua.
18
Ph©n chia theo segment
•Gi¶ thiÕt tiÕn tr×nh cÇn 4 b¶ng riªng biÖt, lu«n ph¸t triÓn vÒ kÝch th−íc
•Ph−¬ng ph¸p ph©n trang kh«ng cho phÐp dÔ dµng më réng
•Gi¶i ph¸p: ph©n ®o¹n
19
So s¸nh ph©n trang/®o¹n
Tiªu chØ tiªu so s¸nh Ph©n trang Ph©n ®o¹n
KiÓu cña
Limit
Base 24-31 G D 0 P DPL segment vµ b¶o Base 16-23
16-19
vÖ
21
TÝnh ®Þa chØ 32-bit
§Þa chØ offset
selector
descriptor
Base address
+
Limit
C¸c tr−êng kh¸c
•§Þa chØ 32 bit thu ®−îc cã thÓ ®−îc dïng nh− lµ ®Þa chØ tuyÖt
®èi trong bé nhí hoÆc lµ ®Þa chØ ¶o trong bé nhí ¶o
•Intel 386 cho phÐp ho¹t ®éng theo chÕ ®é thuÇn segment,
thuÇn ph©n trang
22
Ph©n trang trong Intel 386
Dir Page
Offset
Trang t×m ®−îc
Môc t×m ®−îc tõ t×m ®−îc
23
B¶o vÖ nhiÒu møc
•C¸c thñ tôc trong cïng mét
møc cã thÓ gäi trùc tiÕp lÉn
nhau
Kernel •ViÖc gäi thñ tôc tõ møc ngoµi
vµo møc trong ph¶i th«ng
sys qua kh¸i niÖm “cæng” – t.lµ
Lib chØ ®−îc gäi nh÷ng thñ tôc
user ®−îc phÐp vµ ®−îc qu¶n lý
•Kh¸i “cæng” lµ t−¬ng tù nh−
Møc 0: nh©n hÖ thèng kh¸i niÖm bÉy vµ ng¾t.
Møc 1: Gäi thñ tôc hÖ thèng
Møc 2: Th− viÖn dïng chung
Møc 3: Ch−¬ng tr×nh ng−êi dïng
24