Bài giảng Hệ điều hành nâng cao - Chương 10: Bộ nhớ ảo - Trần Hạnh Nhi
BAØI 10 : BOÄ NHÔÙ AÛO
OS
test.exe
0x3000
0x7000
test.exe
jump 0x5000
jump 0x2000
0x3000
(base)
0x1000
◼ Cho ñeán nay : Naïp toaøn boä tieán trình vaøo boä nhô roài thöïc
hieän noù...
◼
◼
◼
Chaäm, laõng phí boä nhôù
Neáu kích thöôùc tieán trình lôùn hôn dung löông boä nhôù chính ?
Löu yù : taïi 1 thôøi ñieåm chæ coù moät chæ thò ñöôïc thöïc hieän
1
Giaûi phaùp
Real memory
Real memory
Page0
Page0
Page1
Page2
emacs
emacs
t1
t2
Time
▪ Naïp töøng phaàn chöông trình khi caàn thieát
▪ Demand paging
2
Cô cheá
▪ Söû duïng boä nhôù phuï ñeå löu tröõ taïm thôøi caùc trang chöa söû duïng
▪ Ai chòu traùch nhieäm chuyeån ñoåi ?
▪ Laäp trình vieân Overlay
▪ Heä ñieàu haønh : Boä nhôù aûo Virtual Memory)
DISK
P
3
RAM
Boä nhôù aûo = “lôøi noùi doái vó ñaïi“
▪ Ngöôøi duøng : sôû höõu boä nhôù “voâ haïn”, “rieâng bieät”
▪ Heä ñieàu haønh : “thaàm laëng” thöïc hieän quaù trình swapping
10% RAM
+
90% DISK
Memory address
DISK
4
RAM
Thöïc hieän Boä nhôù aûo
▪ Baûng trang : theâm 1 bit valid/invalid ñeå nhaän dieän trang
ñaõ hay chöa ñöôïc naïp vaøo RAM
Frame valid/invalid
17 1
4183 0
177 1
5721 0
Disk
Mem
▪ Truy xuaát ñeán moät trang chöa ñöôïc naïp vaøo boä nhôù :
loãi trang (page fault)
5
Xöû lyù loãi trang
xaùc ñònh vò trí löu trang treân ñóa
3
OS
loãi trang
2
3’
M
truy xuaát
swap out
1
trang naïn nhaân
i
naïp M
6
Baûng trang
taùi kích hoaït
tieán trình
frame troáng
mang trang
caàn truy xuaát
vaøo boä nhôù
5
4
Boä nhôù aûo
caäp nhaät
baûng trang
Boä nhôù vaät lyù
6
Caùc caâu hoûi
1. Choïn trang naïn nhaân ? => Chieán löôïc thay theá trang
2. Choïn trang naøo ñeå naïp ? => Chieán löôïc naïp
7
Chieán löôïc thay theá trang
victim
add
◼ FIFO: trang “giaø” nhaát
◼
Coâng baèng ?
◼
Khoâng xeùt ñeán tính suû duïng !
victim
◼ TOÁI ÖU : trang laâu söû duïng ñeán
nhaát trong töông lai
AGBDCABCABCGABC
◼
Taàn suaát loãi trang thaáp nhaát
Khoâng khaû thi !
Cur page
victim
◼
◼ LRU :trang laâu nhaát chöa söû
AGBDCABCABCGABC
duïng ñeán trong quaù khöù
Cur page
◼
Döï ñoaùn töông lai LRU = MIN ?
8
Chieán löôïc naïp
◼ Demand paging : naïp trang ñöôïc yeâu caàu
◼
◼
◼
Khi naøo ?
Naïp sau : taàn suaát loãi trang cao ? => pure demand paging
Naïp tröôùc : laøm sao bieát ? =>prepaging
ld page
...
ld init pages
ld page
ld page
init pages = ?
9
Thrashing = aûo töôûng suïp ñoå !
◼ Caùc tieán trình trong heä thoáng yeâu caàu boä nhôù nhieàu hôn khaû
naêng cung caáp cuûa heä thoáng !
P3
P2
P1
Real mem
▪ Taát caû tieán trình ñaàu baän roän xöû lyù loãi trang !
▪ IO hoaït ñoäng 100 %, CPU raûnh !
▪ Heä thoáng ngöøng treä
10
Nguyeân nhaân Thrashing
1. Tieán trình khoâng taùi söû duïng boä nhôù (quaù khöù != töông lai)
2. Tieán trình taùi söû duïng boä nhôù, nhöng vôùi kích thöôc lôùn hôn
3. Quaù nhieàu tieán trình trong heä thoáng
▪ Chæ coù theå kieåm soaùt thrashing do nguyeân nhaân 3.
11
Giaûi quyeát thrasing vôùi moâ hình Working set
▪ Working set = taäp hôïp caùc trang tieán trình ñang truy xuaát taïi
1 thôøi ñieåm.
▪ Heä ñieàu haønh :
▪ Chæ naïp moät tieán trình khi coù ñuû khung trang töï do cho
working set cuûa noù.
▪ Kieåm soaùt möùc ñoä ña chöông cuûa heä thoáng : Neáu toång soá
khung trang yeâu caàu cuûa caùc tieán trình trong heä thoáng
vöôït quaù caùc khung trang coù theå söû duïng, choïn moät tieán
trình ñeå taïm döøng, ngöôïc laïi, khi toång working set beù hôn
soá khung trang töï do, naïp theâm tieán trình.
12
Bạn đang xem tài liệu "Bài giảng Hệ điều hành nâng cao - Chương 10: Bộ nhớ ảo - Trần Hạnh Nhi", để 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_nang_cao_chuong_10_bo_nho_ao_tran_han.ppt