Bài giảng Hệ điều hành - Chương 7: Virtual Memory - Thoại Nam
7.Virtual Memory
Cô cheá phaân trang vaø phaân ñoaïn
Cô cheá boä nhôù aûo
Caùc chieán löôïc quaûn lyù
– Fetch Policy
– Placement policy
– Page replacement policy
Caáp phaùt frame cho process
Thrashing
-X.1-
Khoa Coâng Ngheä Thoâng Tin – Ñaïi Hoïc Baùch Khoa Tp.HCM
Cô cheá phaân trang (paging)
Cô cheá phaân trang cho pheùp khoâng gian ñòa chæ thöïc (physical
address space) cuûa moät process coù theå khoâng lieân tuïc nhau.
Boä nhôù thöïc ñöôïc chia thaønh caùc khoái kích thöôùc coá ñònh baèng nhau
goïi laø frame.
– Thoâng thöôøng kích thöôùc cuûa frame laø luõy thöøa cuûa 2, töø khoaûng 512
byte ñeán 16MB
Boä nhôù luaän lyù (logical memory) cuõng ñöôïc chia thaønh khoái cuøng
kích thöôùc goïi laø trang nhôù (page).
H
aùnh xaï ñòa chæ aûo, luaän lyù thaønh ñòa chæ thöïc (address translation
scheme)
– Moãi process coù moät baûng phaân trang ñöôïc quaûn lyù baèng moät con troû löu
giöõ trong PCB. Coâng vieäc naïp baûng phaân trang vaøo heä thoáng (do CPU
dispatcher thöïc hieän) laø moät phaàn cuûa chuyeån ngöõ caûnh
Cô cheá phaân trang khieán boä nhôù bò phaân maûnh noäi, tuy nhieân laïi
khaéc phuïc ñöôïc phaân maûnh ngoaïi.
-X.2-
Khoa Coâng Ngheä Thoâng Tin – Ñaïi Hoïc Baùch Khoa Tp.HCM
1
Cô cheá phaân trang (t.t)
fram e
number
0
1
2
page0
page1
page2
page3
1
4
3
5
0
1
2
3
page0
page2
page1
page3
3
4
5
pagetable
logicalmemory
physicalmemory
-X.3-
Khoa Coâng Ngheä Thoâng Tin – Ñaïi Hoïc Baùch Khoa Tp.HCM
Moâ hình chuyeån ñoåi ñòa chæ
Ñòa chæ nhôù do CPU taïo ra (logical address) goàm coù:
– Page number (p) – ñöôïc duøng laøm chæ muïc doø tìm trong baûng
phaân trang. Moãi muïc trong baûng phaân trang chöùa ñòa chæ cô sôû
(hay chæ soá frame) cuûa trang töông öùng trong boä nhôù thöïc.
– Page offset (d) – ñöôïc keát hôïp vôùi ñòa chæ cô sôû (base address)
ñeå ñònh vò moät ñòa chæ thöïc.
Neáu kích thöôùc cuûa khoâng gian ñòa chæ aûo laø 2m, kích
t
pageoffset
d
pagenumber
p
n bits
m-n bits
(ñònh vò töø 0 ÷ 2m-n -1)
(ñònh vò töø 0 ÷ 2n-1)
Do ñoù, baûng phaân trang seõ coù toång coäng 2m/2n = 2m-n muïc
-X.4-
Khoa Coâng Ngheä Thoâng Tin – Ñaïi Hoïc Baùch Khoa Tp.HCM
2
Paging Hardware
f
physical
address
logical
f000… 0000
f111… 1111
address
d
f
d
CPU
p
p
f
physical
memory
Neáu kích thöôùc cuûa khoâng
gian nhôù thöïc laø 2l bytes,
pagetable
thì moãi muïc cuûa baûng phaân
framenumber frameoffset
f(l-nbits) d(nbits)
trang coù l-n bits
-X.5-
Khoa Coâng Ngheä Thoâng Tin – Ñaïi Hoïc Baùch Khoa Tp.HCM
Chuyeån ñoåi boä nhôù vôùi paging
-X.6-
Khoa Coâng Ngheä Thoâng Tin – Ñaïi Hoïc Baùch Khoa Tp.HCM
3
Hieän thöïc baûng phaân trang
Baûng phaân trang ñöôïc löu giöõ trong boä nhôù chính (kernel
memory)
– Moãi process coù moät baûng phaân trang
– Thanh ghi page-table base (PTBR) troû ñeán baûng phaân trang
– Thanh ghi page-table length (PTLR) bieåu thi kích thöôùc cuûa baûng
phaân trang (vaø duøng ñeå baûo veä boä nhôù)
Moãi taùc vuï truy caäp döõ lieäu/leänh caàn hai thao taùc truy
xuaát vuøng nhôù
– Moät thao taùc truy xuaát baûng phaân trang (page number: p) vaø moät
thao taùc truy xuaát döõ lieäu/leänh (page offset: d – displacement)
– Thöôøng duøng moät boä phaän cache phaàn cöùng coù toác ñoä truy xuaát
vaø tìm kieám cao, goïi laø thanh ghi keát hôïp (associative register)
hoaëc translation look-aside buffers (TLBs)
-X.7-
Khoa Coâng Ngheä Thoâng Tin – Ñaïi Hoïc Baùch Khoa Tp.HCM
Associative Register (hardware)
Thanh ghi keát hôïp (associative register): hoã trôï tìm kieám
truy xuaát döõ lieäu ñoàng thôøi vôùi toác ñoä cöïc nhanh.
Soá muïc cuûa TLB
Page#
Frame#
khoaûng 8 ÷ 2048
TLB laø “cache” cuûa
baûng phaân trang
åõ
Khi TLB bò ñaày,
thay theá baèng LRU
AÙnh xaï ñòa chæ aûo (A’, A’’)
–Neáu A’ naèm trong TLB (HIT)⇒ laáy ngay ñöôïc chæ soá frame ⇒ tieát
kieäm ñöôïc ~ 10% thôøi gian tìm kieám.
–Ngöôïc laïi (MISS), phaûi tìm chæ soá frame töø baûng phaân trang nhö
bình thöôøng.
-X.8-
Khoa Coâng Ngheä Thoâng Tin – Ñaïi Hoïc Baùch Khoa Tp.HCM
4
Paging Hardware vôùi TLB
-X.9-
Khoa Coâng Ngheä Thoâng Tin – Ñaïi Hoïc Baùch Khoa Tp.HCM
Effective Access Time (EAT)
Thôøi gian tìm kieám (associative lookup): ε (ñôn vò)
Thôøi gian moät chu kyø truy xuaát boä nhôù: x (ñôn vò)
Hit Ratio – tæ leä phaàn traêm thôøi gian moät chæ soá trang
ñöôïc tìm thaáy (HIT) trong TLB; tæ leä vôùi soá thanh ghi keát
hôïp cuûa TLB.
– Kí hieäu hit ratio = α
Thôøi gian laáy ñöôïc trang
– Khi trang khoâng coù trong TLB (MISS) ε + 2x
Thôøi gian truy xuaát hieäu duïng - Effective Access Time
(EAT)
EAT = (x + ε)α + (2x + ε)(1 – α)
= (2–α) * x + ε
-X.10-
Khoa Coâng Ngheä Thoâng Tin – Ñaïi Hoïc Baùch Khoa Tp.HCM
5
Effective Access Time (t.t)
Ví duï 1
Ví duï 2
– Associate lookup = 20
– Memory access = 100
– Hit ratio = 0.8
– Associate lookup = 20
– Memory access = 100
– Hit ratio = 0.98
– EAT = (100 + 20) * 0.98 +
– EAT = (100 + 20) * 0.8 +
(200 + 20) * 0.2
(200 + 20) * 0.02
= 1.2 * 100 + 20
= 140
= 1.02 * 100 + 20
= 122
22% slow inmemory
accesstime
40% slow inmemory
accesstime
-X.11-
Khoa Coâng Ngheä Thoâng Tin – Ñaïi Hoïc Baùch Khoa Tp.HCM
Baûo veä boä nhôù
Vieäc baûo veä boä nhôù ñöôïc hieän thöïc baèng caùch gaén vôùi
frame caùc bit baûo veä (protection bits). Caùc bit naøy bieåu
thò caùc thuoäc tính sau
– read-only, read-write, execute-only
Ngoaøi ra, coøn coù moät valid/invalid bit gaén vôùi moãi muïc
trong baûng phaân trang
an
nhôù ñòa chæ aûo cuûa process, do ñoù laø moät trang hôïp leä.
– “invalid”: cho bieát laø trang boä nhôù töông öùng khoâng naèm trong
khoâng gian nhôù ñòa chæ aûo cuûa process, do ñoù laø moät trang baát
hôïp leä.
-X.12-
Khoa Coâng Ngheä Thoâng Tin – Ñaïi Hoïc Baùch Khoa Tp.HCM
6
Baûo veä baèng Valid/Invalid bit
00000
0
framenumber
valid-invalidbit
page0
page1
page2
page3
page4
page5
page6
page7
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
2
3
4
7
8
9
0
0
v
v
v
v
v
v
i
page0
page1
page2
10468
12287
page3
page4
page5
...
i
pagen
ª Moãi trang nhôù coù kích thöôùc 2K = 2048
ª Process coù kích thöôùc 10,468 ⇒ phaân maûnh noäi ôû page 5
⇒ caùc ñòa chæ > 12287 laø caùc ñòa chæ invalid.
ª Duøng PTLR ñeå kieåm tra kích thöôùc baûng phaân trang
-X.13-
Khoa Coâng Ngheä Thoâng Tin – Ñaïi Hoïc Baùch Khoa Tp.HCM
Hierarchical Page Table
Caùc heä thoáng hieän ñaïi ñeàu hoã trôï khoâng gian ñòa chæ aûo
raát lôùn (232 ñeán 264).
– Kích thöôùc trang nhôù laø 4KB (= 212) ⇒ baûng phaân trang seõ coù ~
232/212 = 220 = 1MB.
– Giaû söû moãi phaàn töû laø moät con troû 32 bit thì moãi process caàn
4MB cho baûng phaân trang /
Màûaân
trang quaûn lyù caùc vuøng khoâng gian boä nhôù aûo khaùc
nhau – baûng ña möùc (multilevel paging table).
Cô cheá taïo baûng phaân trang 2-möùc (two-level page
table), hay coøn ñöôïc goïi laø forward-mapped page table
trong heä thoáng Intel Pentium®-II
-X.14-
Khoa Coâng Ngheä Thoâng Tin – Ñaïi Hoïc Baùch Khoa Tp.HCM
7
Moâ hình baûng 2-möùc (two-level)
-X.15-
Khoa Coâng Ngheä Thoâng Tin – Ñaïi Hoïc Baùch Khoa Tp.HCM
Phaân trang 2-möùc
Moät ñòa chæ luaän lyù (treân heä thoáng 32-bit vôùi trang nhôù 4K)
ñöôïc chia thaønh caùc phaàn sau:
– Page number: 20 bit
page#
offset
12bit
Neáu moãi muïc 4 byte
⇒ 220 * 4 byte = 4 MB
– Page offset: 12 bit
20bit
Baûng phaân trang cuõng bò chia nhoû neân page number
c
– 10-bit page number
pageoffset
pagenumber
– 10-bit page offset
p1
p2
d
10bit
12bit
10bit
Vì vaäy,moät ñòa luaän lyù seõ nhö hình veõ beân
– p1: chæ muïc cuûa baûng ngoaøi (outer page table)-möùc 1
– p2 : ñoä dôøi (displacement) ôû trong trang möùc 2 (xaùc ñònh bôûi *p1)
-X.16-
Khoa Coâng Ngheä Thoâng Tin – Ñaïi Hoïc Baùch Khoa Tp.HCM
8
Sô ñoà aùnh xaï ñòa chæ
Sô ñoà aùnh xaï ñòa chæ (address-translation scheme) cho
kieán truùc baûng phaân trang 2 möùc, 32-bit ñòa chæ
MemoryAddress:A
A
-X.17-
Khoa Coâng Ngheä Thoâng Tin – Ñaïi Hoïc Baùch Khoa Tp.HCM
Phaân trang ña möùc (multilevel)
Khoâng gian ñòa chæ luaän lyù 64-bit vôùi trang nhôù 4K
– Trong sô ñoà phaân trang 2-möùc, soá muïc cuûa baûng phaân trang =
252 (264/212 = 252) ⇒ quaù lôùn. Thöïc hieän töông töï moâ hình 2 möùc,
phaân chia thaønh baûng 3, 4,..., n-möùc
pagenumber pageoffset
52 12
pagenumber pageoffset
42 10 12
22 1010 10
32
10 10
2
2
… …
– Heä thoáng SPARC 32-bit hoã trôï cô cheá 3-möùc coøn caùc heä thoáng
Motorolla 68030 32 bit hoã trôï cô cheá 4-möùc. Heä thoáng 64bit
UltraSPARC thì duøng baûng phaân trang 7-möùc
– Hieäu suaát cuûa heä thoáng phaân trang ña möùc ?
-X.18-
Khoa Coâng Ngheä Thoâng Tin – Ñaïi Hoïc Baùch Khoa Tp.HCM
9
Baûng baêm (hashed page table)
Duøng yù töôûng cuûa baûng baêm ñeå giaûm bôùt khoâng gian
baûng phaân trang, taêng toác ñoä tìm kieám trang.
– Raát phoå bieán trong caùc heä thoáng lôùn hôn 32 bit ñòa chæ.
Ñeå giaûi quyeát ñuïng ñoä, moãi phaàn töû cuûa baûng phaân trang
quaûn lyù moät danh saùch lieân keát. Moãi phaàn töû danh saùch
chöùa chæ soá trang aûo vaø chæ soá frame töông öùng.
– Chæ soá trang aûo (virtual page number) ñöôïc bieán ñoåi qua haøm
baêm thaønh moät hashed value. Caùc thoâng tin nhö chæ soá trang aûo
vaø chæ soá frame seõ ñöôïc löu vaøo danh saùch lieân keát taïi vò trí öùng
vôùi hashed value.
Giaûi thuaät doø tìm trang:
– Chæ soá trang aûo ñöôïc bieán ñoåi thaønh hashed value (vôùi cuøng haøm
baêm nhö treân). Hashed value ñöôïc duøng ñeå tìm ra phaàn töû töông
öùng trong baûng phaân trang. Sau ñoù, doø tìm trong danh saùch lieân
keát vôùi chæ soá trang aûo ñeå trích ruùt ra ñöôïc frame töông öùng.
-X.19-
Khoa Coâng Ngheä Thoâng Tin – Ñaïi Hoïc Baùch Khoa Tp.HCM
Hashed Page Tables
Caùc heä thoáng 64-bit ñòa chæ thöôøng duøng clustered page table, i.e.
moãi muïc trong hash table tham chieáu ñeán nhieàu trang (~ 16 trang)
thay vì 1 trang.
-X.20-
Khoa Coâng Ngheä Thoâng Tin – Ñaïi Hoïc Baùch Khoa Tp.HCM
10
Chia seû caùc trang nhôù
Process1
ed1
0
1
data1
data3
ed1
0
3
4
6
1
2
ed2
ed3
1
2
3
Process2
ed1
3
4
ed2
0
3
4
6
7
data1
5
ed2
1
2
3
6
ed3
ed3
7
data2
ed1
ed2
data2
0
3
8
4
6
2
1
2
3
9
ed2
10
data3
Process3
-X.21-
Khoa Coâng Ngheä Thoâng Tin – Ñaïi Hoïc Baùch Khoa Tp.HCM
Phaân ñoaïn (segmentation)
Nhìn laïi cô cheá phaân trang
– user-view (khoâng gian ñòa chæ aûo) taùch bieät vôùi khoâng gian boä
nhôù thöïc. Cô cheá phaân trang thöïc hieän pheùp aùnh xaï user-view
vaøo boä nhôù thöïc.
Trong thöïc teá, döôùi goùc nhìn cuûa user, moät chöông trình
caáu thaønh töø nhieàu phaân ñoaïn (segment). Moãi phaân
ñoaïn laø moät ñôn vò luaän lyù, ví duï nhö:
Cô cheá phaân ñoaïn laø moâ hình quaûn lyù boä nhôù hoã trôï
user-view
– Khoâng gian ñòa chæ aûo laø moät taäp caùc phaân ñoaïn (segment), moãi
phaân ñoaïn coù teân vaø kích thöôùc rieâng.
– Moät ñòa chæ luaän lyù ñöôïc ñònh vò baèng teân phaân ñoaïn vaø ñoä dôøi
(offset) beân trong phaân ñoaïn ñoù (so saùnh vôùi phaân trang ???)
-X.22-
Khoa Coâng Ngheä Thoâng Tin – Ñaïi Hoïc Baùch Khoa Tp.HCM
11
User-view cuûa moät chöông trình
Thoâng thöôøng, moät chöông trình
ñöôïc bieân dòch. Trình bieân dòch
stack
procedure
seõ töï ñoäng xaây döïng caùc
segment.
symbol
table
Ví duï, trình bieân dòch Pascal seõ
taïo ra caùc segment sau:
function
sqrt
– Global variables
mainprogram
– Procedure call stack
– Procedure/function code
– Local variable
Trình loader seõ gaùn moãi
segment moät soá ñònh danh
Logicaladdressspace
rieâng.
-X.23-
Khoa Coâng Ngheä Thoâng Tin – Ñaïi Hoïc Baùch Khoa Tp.HCM
Moâ hình cô cheá phaân ñoïan
physicalmemoryspace
userspace
1
1
4
2
3
3
4
2
-X.24-
Khoa Coâng Ngheä Thoâng Tin – Ñaïi Hoïc Baùch Khoa Tp.HCM
12
Toå chöùc cuûa cô cheá phaân ñoaïn
Ñòa chæ luaän lyù laø moät caëp giaù trò
<segment-number, offset>
Baûng phaân ñoaïn (segment table)
– base – chöùa ñòa chæ khôûi ñaàu cuûa phaân ñoaïn trong boä nhôù
– limit – xaùc ñònh kích thöôùc cuûa phaân ñoaïn
Segment-table base register (STBR): troû ñeán vò trí baûng
phaân ñoaïn trong boä nhôù
Segment-table length register (STLR): soá segment cuûa
chöông trình
⇒ Moät chæ soá segment s laø hôïp leä neáu s < STLR
-X.25-
Khoa Coâng Ngheä Thoâng Tin – Ñaïi Hoïc Baùch Khoa Tp.HCM
Moät ví duï veà cô cheá phaân ñoaïn
stack
1400
procedure
segment0
2400
3200
segment3
limit base
1000 1400
400 6300
400 4300
0
1
2
4
segment0
symbol
table
segment3
t2
segment4
4700
1000 4700
segment
table
segment1
segment2
5700
6300
6700
segment1
Logicaladdressspace
physicalmemoryspace
-X.26-
Khoa Coâng Ngheä Thoâng Tin – Ñaïi Hoïc Baùch Khoa Tp.HCM
13
Phaàn cöùng hoã trôï phaân ñoaïn
segment
s
table
limit base
s
d
CPU
yes
physical
memory
<
+
no
trap;addressingerror
-X.27-
Khoa Coâng Ngheä Thoâng Tin – Ñaïi Hoïc Baùch Khoa Tp.HCM
Chuyeån ñoåi boä nhôù phaân ñoaïn
-X.28-
Khoa Coâng Ngheä Thoâng Tin – Ñaïi Hoïc Baùch Khoa Tp.HCM
14
Chia seû caùc phaân ñoaïn
limit
25286 43062
4425 68348
base
editor
43062
data1
0
1
segment1
editor
data1
segment0
segmenttable
processP1
Logicaladdressspace
processP1
68348
72773
editor
data2
limit
25286 43062
8850 90003
base
90003
98553
0
1
data2
segment1
segment0
segmenttable
processP2
Logicaladdressspace
processP2
physicalmemory
-X.29-
Khoa Coâng Ngheä Thoâng Tin – Ñaïi Hoïc Baùch Khoa Tp.HCM
Nhìn laïi paging vaø segmentation
Caùc tham chieáu ñeán boä nhôù ñöôïc chuyeån ñoåi ñoäng
thaønh ñòa chæ thöïc luùc process ñang thöïc thi
Moät process coù theå ñöôïc chi thaønh caùc phaàn nhoû (page
hay segment); caùc phaàn naøy ñöôïc naïp vaøo caùc vò trí
khoâng lieân tuïc trong boä nhôù chính
Nhaän xeùt quan troïng: khoâng phaûi taát caùc caùc phaàn cuûa
moät processs caàn thieát phaûi ñöôïc naïp vaøo boä nhôù chính
t
Ví duï
– Ñoaïn maõ ñieàu khieån caùc loãi hieám khi xaûy ra
– Caùc arrays, list, tables ñöôïc caáp phaùt boä nhôù (caáp phaùt tónh)
nhieàu hôn yeâu caàu caàn thieát
– Moät soá tính naêng ít khi ñöôïc duøng cuûa moät chöông trình
– Ngay caû khi toaøn boä chöông trình ñeàu caàn duøng thì … coù theå
khoâng caàn duøng toaøn boä cuøng moät luùc
-X.30-
Khoa Coâng Ngheä Thoâng Tin – Ñaïi Hoïc Baùch Khoa Tp.HCM
15
Quaù trình thöïc thi cuûa process
OS naïp moät soá phaàn cuûa chöông trình vaøo boä nhôù
Moãi baûng phaân trang/ñoaïn coù theâm moät present bit cho
bieát phaàn töông öùng coù naèm trong boä nhôù chính hay
khoâng.
Khi coù moät tham chieáu naèm trong phaàn khoâng coù trong
boä nhôù chính (present bit = 0) thì moät ngaét ñöôïc kích
hoaït goïi laø memory fault
Process chuyeån veà traïng thaùi Blocking
OS phaùt ra moät yeâu caàu ñoïc ñóa ñeå naïp phaàn ñöôïc
tham chieáu vaøo boä nhôù chính vaø trong khi ñoù, moät
process khaùc ñöôïc chieám quyeàn thöïc thi
Sau khi I/O hoaøn taát, moät ngaét ñöôïc kích hoaït, baùo cho
OS chuyeån process töông öùng veà traïng thaùi Ready
-X.31-
Khoa Coâng Ngheä Thoâng Tin – Ñaïi Hoïc Baùch Khoa Tp.HCM
Öu ñieåm cuûa boä nhôù aûo
Soá löôïng process trong boä nhôù nhieàu hôn
Moät process coù theå thöïc thi ngay caû khi kích thöôùc cuûa
noù lôùn hôn boä nhôù thöïc
Boä nhôù tham chieáu bôûi moät ñòa chæ luaän lyù ñöôïc goïi laø
boä nhôù aûo (virtual memory)
– Bao goàm boä nhôù thöïc + moät phaàn boä nhôù thöù caáp (ñóa cöùng,...)
– Nhaèm ñaït hieäu quaû cao, caùc dòch vuï file system thöôøng ñöôïc boû
khoái cuûa heä thoáng file.
– Thoâng thöôøng phaàn boä nhôù aûo ñöôïc löu tröõ ôû moät vuøng ñaëc
bieät goïi laø khoâng gian traùo ñoåi (swap space). Ví duï file system
swap trong Unix/Linux, file pagefile.sys trong Windows2K
Vieäc chuyeån ñoåi töø ñòa chæ luaän lyù thaønh ñòa chæ thöïc ñöôïc thöïc hieän
vôùi söï hoã trôï cuûa phaàn cöùng (memory management hardware)
-X.32-
Khoa Coâng Ngheä Thoâng Tin – Ñaïi Hoïc Baùch Khoa Tp.HCM
16
Yeâu caàu ñoái vôùi boä nhôù aûo
Phaàn cöùng memory management phaûi hoã trôï paging
vaø/hoaëc segmentation
OS phaûi quaûn lyù söï di chuyeån cuûa trang/ñoaïn giöõa boä
nhôù chính vaø boä nhôù thöù caáp
Trong phaïm vi chöông naøy, chuùng ta thaûo luaän veà söï hoã
trôï caáp phaàn cöùng tröôùc, sau ñoù laø caùc giaûi thuaät cuûa heä
ñieàu haønh
Söï hoã trôï cuûa phaàn cöùng ñoái vôùi phaân trang vaø phaân
ñoaïn ñaõ ñöôïc khaûo saùt ôû chöông 9. Chæ coù moät ñieåm
khaùc bieät laø moãi muïc (entry) cuûa baûng phaân trang/ñoaïn
coù theâm caùc bit traïng thaùi ñaëc bieät
– Present bit = 1⇒ hôïp leä vaø in-memory; = 0 ⇒ not-in-memory
hoaëc khoâng hôïp leä
– Modified bit: trang/ñoaïn coù thay ñoåi keå töø khi ñöôïc naïp vaøo hay
khoâng
-X.33-
Khoa Coâng Ngheä Thoâng Tin – Ñaïi Hoïc Baùch Khoa Tp.HCM
Ñieàu khieån page fault
-X.34-
Khoa Coâng Ngheä Thoâng Tin – Ñaïi Hoïc Baùch Khoa Tp.HCM
17
Keát hôïp trang vaø ñoaïn
Nhaèm keát hôïp caùc öu ñieåm ñoàng thôøi haïn cheá caùc khuyeát ñieåm cuûa
hai moâ hình phaân trang vaø phaân ñoaïn
Coù raát nhieàu moâ hình keát hôïp. Sau ñaây laø moät moâ hình ñôn giaûn
Moãi process seõ coù:
– Moät baûng phaân ñoaïn
– Nhieàu baûng phaân trang: moãi phaân ñoaïn coù moät baûng phaân trang
Moät ñòa chæ luaän lyù (ñòa chæ aûo) bao goàm:
– segment number: laø chæ muïc cuûa moät phaàn töû trong baûng phaân ñoaïn,
phaàn töû naøy chöùa ñòa chæ cô sôû (base address) cuûa baûng phaân trang
trong phaân ñoaïn ñoù
– page number: laø chæ muïc trong baûng phaân trang, duøng ñeå tính ra chæ soá
frame trong boä nhôù thöïc töông öùng
– offset: duøng ñeå ñònh vò moät vò trí nhôù trong frame noùi treân.
-X.35-
Khoa Coâng Ngheä Thoâng Tin – Ñaïi Hoïc Baùch Khoa Tp.HCM
Sô ñoà chuyeån ñoåi ñòa chæ
-X.36-
Khoa Coâng Ngheä Thoâng Tin – Ñaïi Hoïc Baùch Khoa Tp.HCM
18
Moâ hình keát hôïp ñôn giaûn
Segment Base: ñòa chæ thöïc cuûa baûng phaân trang
Present bit vaø modified bits chæ toàn taïi trong baûng phaân
trang
Caùc thoâng tin baûo veä vaø chia seû vuøng nhôù thöôøng naèm
trong baûng phaân ñoaïn
– Ví duï: read-only/read-write bit, ...
-X.37-
Khoa Coâng Ngheä Thoâng Tin – Ñaïi Hoïc Baùch Khoa Tp.HCM
Caùc giaûi thuaät cuûa OS
OS cung caáp caùc thö vieän quaûn lyù boä nhôù aûo.
Caùc chöông trình quaûn lyù boä nhôù aûo cuûa OS phuï thuoäc
vaøo söï hoã trôï cuûa phaàn cöùng trong vieäc phaân trang,
phaân ñoaïn hoaëc keát hôïp caû hai.
Raát ít heä thoáng söû duïng cô cheá phaân ñoaïn thuaàn tuùy maø
thoâng thöôøng seõ söû duïng moâ hình keát hôïp trong ñoù caùc
segment ñöôïc aùp duïng cô cheá phaân trang. Nhö vaäy, vaán
ñuû
yeáu höôùng ñeán ñoái töôïng laø trang nhôù.
– Fetch policy
– Placement policy
– Replacement policy
Muïc tieâu cuûa caùc giaûi thuaät naøy laø giaûm thieåu page fault
-X.38-
Khoa Coâng Ngheä Thoâng Tin – Ñaïi Hoïc Baùch Khoa Tp.HCM
19
Fetch & placement policy
Fetch Policy
– Xaùc ñònh thôøi ñieåm neân naïp trang nhôù vaøo boä nhôù. Coù hai chieán
löôïc thoâng duïng
– Demand paging: chæ naïp trang vaøo boä nhôù chính khi vaø chæ khi coù
tham chieáu ñeán trang ñoù (i.e.: chæ naïp theo yeâu caàu maø thoâi)
Khi process môùi thöïc thi thì coù nhieàu page fault nhöng sau ñoù soá
page fault seõ giaûm daàn
– Pre-paging naïp tröôùc caùc trang nhôù: döïa treân tính locality
Placement policy
– Xaùc ñònh vò trí ñaët moät trang nhôù cuûa process trong boä nhôù thöïc
– Vôùi heä thoáng segmentation thuaàn tuùy: first-fit, next fit...
– Vôùi heä thoáng paging hoaëc keát hôïp pagin/segmentation:
Phaàn cöùng quaûn lyù boä nhôù quyeát ñònh vò trí ñaët trang, tuy
nhieân vì caùc trang nhôù coù kích thöôùc nhö nhau neân khoâng
gaëp phaûi khoù khaên gì
-X.39-
Khoa Coâng Ngheä Thoâng Tin – Ñaïi Hoïc Baùch Khoa Tp.HCM
Replacement Policy
Giaûi quyeát vaán ñeà choïn löïa moät trang trong boä nhôù
chính seõ bò thay theá khi coù moät trang môùi caàn naïp vaøo
boä nhôù chính. Tình huoáng naøy xaûy ra khi boä chính ñaày
(khoâng coøn frame troáng naøo)
Khoâng phaûi toaøn boä trang trong boä nhôù ñeàu coù theå ñöôïc
thay, coù moät soá frames bò locked
– Ña soá caùc kernel löu giöõ caùc thoâng tin ñieàu khieån vaø caùc caáu
Caùc giaûi thuaät thay theá trang
– Least recently used (LRU)
– First-in, first-out (FIFO)
– Clock
Caùc giaûi thuaät thay theá trang phuï thuoäc vaøo resident set
(soá frame caáp cho moãi process)
-X.40-
Khoa Coâng Ngheä Thoâng Tin – Ñaïi Hoïc Baùch Khoa Tp.HCM
20
Tải về để xem bản đầy đủ
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Hệ điều hành - Chương 7: Virtual Memory - Thoại Nam", để tải tài liệu gốc về máy hãy click vào nút Download ở trên
File đính kèm:
bai_giang_he_dieu_hanh_chuong_7_virtual_memory_thoai_nam.pdf

