71
Chương 9: Bộ nhớ ảo Hoàng Thị Thúy Vy Phạm Thị Phương Nguyễn Đức Phan

Ch9

Embed Size (px)

Citation preview

No Slide TitleOperating System Concepts with Java – 7th Edition, Nov 15, 2006
Chng 9: B nh o
Hoàng Th Thúy Vy
Operating System Concepts with Java – 7th Edition, Nov 15, 2006
Chng 9: B nh o
Th cp
S trì tr (Thrashing)
B nh ánh x tp tin(Memory-Mapped Files)
Nhng ánh giá khác
9.*
Operating System Concepts with Java – 7th Edition, Nov 15, 2006
Mc tiêu:
Ch ra li ích ca b nh o
Gii thích các khái nim v nhu cu phân trang,nhng thut toán thay th trang,và s phân chia các khung trang.
Tho lun nguyên tc thit lp mô hình làm vic.
9.*
Operating System Concepts with Java – 7th Edition, Nov 15, 2006
Th cp
B nh o_b nh logic c phân cp t b nh vt lý
Mt phn chng trình thc hin phi c np vào b nh
Vì th không gian a ch logic phi ln hn nhiu so vi không gian a ch vt lý
Không gian a ch cho phép c chia s bi nhiu tin trình
Cho phép to ra các tin trình mt cách có hiu qu
B nh o có th c thc hin thông qua 2 k thut:
Phân trang theo yêu cu(kt hp vi swap).
Phân on theo yêu cu(kt hp vi swap).
9.*
Operating System Concepts with Java – 7th Edition, Nov 15, 2006
B nh o ln hn b nh vt lý

B nh vt lý
Operating System Concepts with Java – 7th Edition, Nov 15, 2006
Không gian a ch o
9.*
Operating System Concepts with Java – 7th Edition, Nov 15, 2006
Th vin chia s s dng b nh o
Các trang chia s
Operating System Concepts with Java – 7th Edition, Nov 15, 2006
Phân trang theo yêu cu
Ch np mt trang vào b nh khi nó cn thit
Ít nhu cu vào ra hn
Chim ít b nh hn
X lý nhanh hn
Có th x lý c nhiu tin trình hn cùng 1 lúc
Trang cn thit tham chiu n nó
Tham chiu không hp l hu b
Không có trong b nh a vào b nh
Lazy swapper-B hoán v li – ch a mt trang vào b nh khi nó cn thit
Vic hoán i thc hin vi tng trang riêng l c gi là pager(B phân trang)
9.*
Operating System Concepts with Java – 7th Edition, Nov 15, 2006
Qúa trình trao i mt trang b nh vi không gian a bên cnh
Chuyn b nh c phân trang ti không gian a liên tc
9.*
Operating System Concepts with Java – 7th Edition, Nov 15, 2006
Valid-Invalid Bit
Mi li vào bng trang u c liên kt vi 1 bit valid_invalid (hp l_không hp l) (v in-memory, i not-in-memory)
Ban u thì bit valid_invalid c thit lp là i trên tt c các im vào
Ví d v 1 bng trang:
Trong khi c a ch,nu bit valid_invalid li vào bng trang là i li trang
v
v
v
v
i
i
i
Operating System Concepts with Java – 7th Edition, Nov 15, 2006
Bng trang khi mt s trang không có trong b nh chính
9.*
Operating System Concepts with Java – 7th Edition, Nov 15, 2006
Li trang
Nu có tham chiu n mt trang, ln u tiên tham chiu n trang ó s c gi li OS :
li trang
H iu hành s tìm kim nhng trang khác quyt nh:
Tham chiu không hp l hu b
Không có trong b nh
Ly khung trang trng
Cp nht li bng trang
Thit lp li bit hp l = v
Khi ng li ch th gây ra li trang trên.
9.*
Operating System Concepts with Java – 7th Edition, Nov 15, 2006
Lô trang (Cont.)
Di chuyn khi
9.*
Operating System Concepts with Java – 7th Edition, Nov 15, 2006
Các bc gii quyt mt li trang
9.*
Operating System Concepts with Java – 7th Edition, Nov 15, 2006
S hot ng ca phân trang theo yêu cu
T l li trang nm trong khong 0 p 1.0
Nu p = 0 :không có li trang.
Nu p = 1, mi tham chiu là 1 li.
Effective Access Time (EAT):thi gian truy nhp
có hiu qu)
+ p (tham chiu gp li trang
+ a trang ra
+ np trang vào
9.*
Operating System Concepts with Java – 7th Edition, Nov 15, 2006
Ví d v phân trang theo yêu cu
Thi gian truy nhp b nh = 200 ns
Thi gian trung bình cha li trang = 8 ms
EAT = (1 – p) x 200 + p (8 ms)
= (1 – p x 200 + p x 8,000,000
= 200 + p x 7,999,800
Nu 1 trang li vì s truy cp vt quá 1000 thì
EAT = 8.2 mcs.
9.*
Operating System Concepts with Java – 7th Edition, Nov 15, 2006
To ra tin trình
B nh o cho phép các tin ích khác trong khi to ra tin trình:
-Copy-on-write .
9.*
Operating System Concepts with Java – 7th Edition, Nov 15, 2006
Copy-on-write
Copy-on-Write (COW) cho phép c tin trình cha và con vào lúc ban u có th chia s các trang nh nhau trong b nh.
Nu 1 trong 2 tin trình sa i 1 trang chia s, thì ó ch là trang ã c copy.
COW cho phép to ra nhiu tin trình có hiu qu nh là ch sa i các trang ã c copy.
Trang trng c cp phát t 1 khi các trang trng bên ngoài.
9.*
Operating System Concepts with Java – 7th Edition, Nov 15, 2006
Tin trình 1 trc khi sa i
trang C
Operating System Concepts with Java – 7th Edition, Nov 15, 2006
Tin trình 1 sau khi sa i
trang C
Operating System Concepts with Java – 7th Edition, Nov 15, 2006
iu gì s xy ra nu không có khung trang trng?
Trang thay th– tìm kim các trang trong b nh ,nu trang ó không cn thit ti thi im hin ti thì a ra b nh ngoài (swap-out)
Thut toán
Thc hin – hng ti 1 thut toán có ti thiu s li trang.
Cùng 1 trang có th c a vào b nh vài ln
9.*
Operating System Concepts with Java – 7th Edition, Nov 15, 2006
Thay th trang
Ngn chn vic phân chia tràn b nh bng các th tc phc v cho vic sa li trang k c trang thay th.
S dng modify (dirty) bit hn ch vic chuyn i các trang trên – ch sa i nhng trang ã c ghi lên a
Trang thay th hoàn tt vic phân chia gia b nh o và b nh vt lý –b nh o ln hn có th c cp phát trên b nh vt lý nh hn.
9.*
Operating System Concepts with Java – 7th Edition, Nov 15, 2006
Nhu cu thay th trang
9.*
Operating System Concepts with Java – 7th Edition, Nov 15, 2006
Thay th trang c s
Tìm v trí ca trang cn tìm trên a
Tìm 1 trang trng:
- Nu có khung trang trng,s dng nó
- Nu không có khung trang trng,s dng thut toán trang thay th chn ra 1 khung trang tho mãn
Np trang va tìm thy vào khung trang trng; cp nht li trang và bng trang.
Tái kích hot tin trình.
9.*
Operating System Concepts with Java – 7th Edition, Nov 15, 2006
Thay th trang
Operating System Concepts with Java – 7th Edition, Nov 15, 2006
Thut toán thay th trang
Cn có t l li trang thp nht
ánh giá thut gii bng vic chy nó trên 1 chui s kin tham chiu b nh (chui tham chiu) và tính s li trang trong chui này
Trong tt c các ví d, chui tham chiu là
1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5
9.*
Operating System Concepts with Java – 7th Edition, Nov 15, 2006
th biu din s li trang i vi s khung trang
9.*
Operating System Concepts with Java – 7th Edition, Nov 15, 2006
Thut toán vào trc ra trc (FIFO)
Chui tham chiu: 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5
3 khung trang (3 trang c np vào b nh mi thi im ca tin trình)
4 khung trang
1
2
3
1
2
3
4
1
2
5
3
4
Operating System Concepts with Java – 7th Edition, Nov 15, 2006
Thut toán thay th trang FIFO
9.*
Operating System Concepts with Java – 7th Edition, Nov 15, 2006
FIFO minh ha cho nghch lý Belady
ng cong li trang cho thay th trên chui tham kho
9.*
Operating System Concepts with Java – 7th Edition, Nov 15, 2006
Thut toán Optinal (ti u)
Trang c chn thay th là trang s lâu c s dng nht trong tng lai
4 khung trang ví d
1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5
Ta bit iu này bng cách nào?
Dùng thc o bng vic thc hin các thut toán
1
2
3
4
Operating System Concepts with Java – 7th Edition, Nov 15, 2006
Thut toán thay th trang Optimal (ti u)
9.*
Operating System Concepts with Java – 7th Edition, Nov 15, 2006
Thut toán Least Recently Used (LRU)
Chui tham chiu: 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5
S dng b m counter
Mi entry (im vào) trang có 1 b m; mi ln trang c tham chiu thông qua entry này, sao chép ng h vào b m counter
Khi cn thay th 1 trang, nhìn vào b m counter quyt nh thay th trang nào
5
2
4
3
1
2
3
4
1
2
5
4
1
2
5
3
1
2
4
3
9.*
Operating System Concepts with Java – 7th Edition, Nov 15, 2006
Thut toán thay th trang LRU
9.*
Operating System Concepts with Java – 7th Edition, Nov 15, 2006
Thut toán LRU (tip)
S dng Stack – lu tr stack s hiu ca các trang vi 1 hình thc liên kt kép:
Trang tham chiu:
òi hi 6 con tr phi thay i
Không cn tìm kim trang thay th
9.*
Operating System Concepts with Java – 7th Edition, Nov 15, 2006
S dng 1 stack ghi li ln tham chiu gn ây nht ca trang
9.*
Operating System Concepts with Java – 7th Edition, Nov 15, 2006
Thut toán tính gn úng LRU
Bit tham chiu
Vi mi trang kt hp vi 1 bít, ban u = 0
Khi 1 trang c tham chiu, bit c t bng 1
thay th trang mà bit tham chiu bng 0 (nu nó tn ti)
Ta không bit th t, tuy nhiên
Kh nng th 2
t li ng h
Nu trang c thay th (trong th t s dng) có bit tham chiu = 1 thì:
t bit tham chiu bng 0
Ly trang ra khi b nh
Thay th trang tip theo (trong th t s dng), vi cùng 1 quy tc
9.*
Operating System Concepts with Java – 7th Edition, Nov 15, 2006
Thut toán thay th trang : kh nng th 2 ( s dng clock)
9.*
Operating System Concepts with Java – 7th Edition, Nov 15, 2006
Thut toán m
Lu li b m counter s ln mà mi trang c tham chiu
Thut toán LFU: thay th trang có b m counter nh nht
Thut toán MFU: cn c vào i s ca trang có b m counter nh nht mà dng nh chc chn là c a vào và cha c s dng
9.*
Operating System Concepts with Java – 7th Edition, Nov 15, 2006
Cp phát khung trang
Mi tin trình cn 1 s trang ti thiu
Ví d: IBM 370 – 6 trang iu khin các lnh di chuyn SS MOVE:
Các lnh 6 bytes, có th kéo dài qua 2 trang
2 trang iu khin from
2 trang iu khin to
2 chính sách cp phát ch yu:
Cp phát tnh (fixed allocation)
Cp phát u tiên (priority allocation)
9.*
Operating System Concepts with Java – 7th Edition, Nov 15, 2006
Cp phát tnh (Fixed Allocation)
Cp phát bng nhau – ví d, nu có 100 khung trang và 5 tin trình, cp phát cho mi tin trình 20 khung trang.
Cp phát tng ng–cp phát tùy theo kích thc ca tin trình
9.*
Operating System Concepts with Java – 7th Edition, Nov 15, 2006
Cp phát u tiên (Priority Allocation)
S dng k hoch cp phát u tiên, s dng quyn u tiên
Nu tin trình Pi phát ra 1 li trang,
Chn thay th 1 trang trong tt c khung trang ca nó
Chn thay th 1 khung trang t 1 tin trình vi u tiên thp nht
9.*
Operating System Concepts with Java – 7th Edition, Nov 15, 2006
Cp phát toàn cc và cc b
(Global vs. Local Allocation)
Thay th toàn cc (Global replacement) – tin trình chn 1 khung trang thay th t tp hp tt c các khung trang; tin trình có th chn 1 khung t tin trình khác
Thay th cc b (Local replacement) – mi tin trình ch chn 1 khung trang t tp hp các khung trang c cp phát ca nó
9.*
Operating System Concepts with Java – 7th Edition, Nov 15, 2006
S trì tr (Thrashing)
Nu 1 tin trình không có trang, thì li trang phát ra rt cao. iu chnh:
Vic s dng CPU chm (hin tng trì tr h thng)
H iu hành ngh rng nó cn phi tng thêm mc a chng
Thêm tin trình khác vào h thng
tht bi (Thrashing) 1 tin trình ang bn swap trang vào và ra
9.*
Operating System Concepts with Java – 7th Edition, Nov 15, 2006
S trì tr (tip)
Operating System Concepts with Java – 7th Edition, Nov 15, 2006
Yêu cu phân trang và s trì tr
Vì sao phi òi hi phân trang làm vic?
Mô hình v trí
Tin trình chuyn t 1 v trí này n 1 v trí khác
Các v trí có th è lên nhau
Vì sao xy ra tht bi?
kích thc ca v trí > toàn b kích thc ca b nh
9.*
Operating System Concepts with Java – 7th Edition, Nov 15, 2006
V trí trong 1 mô hình tham chiu b nh
9.*
Operating System Concepts with Java – 7th Edition, Nov 15, 2006
Mô hình tp làm vic
mô hình làm vic ca s c nh mt s trang tài liu tham chiu Example: 10,000 lnh,hng dn
WSSi (mô hình làm vic ca tin trình Pi) =
tng s trang tham chiu gn nht (thay i trong thi gian)
Nu quá nh s ko cha ng c toàn b các a phng
Nu quá ln s ch cha ng c 1 s a phng
Nu = s cha ng toàn b chng trình
D = WSSi tng nhu cu khung
Nu D > m Trì tr (Thrashing)
Chính sách nu D > m, ình ch 1 trong các tin trình
9.*
Operating System Concepts with Java – 7th Edition, Nov 15, 2006
Mô hình thit lp làm vic
Tham chiu bng trang
Operating System Concepts with Java – 7th Edition, Nov 15, 2006
Theo dõi vic qun lý ch làm vic
Gn ging vi khong thi gian + mt chút tham chiu
Example: = 10,000
Thi gian ngt sau mi 5000 n v thi gian
Gi trong b nh 2 bits cho mi trang
Mi ln ngt thì sao chép và t ra giá tr tt c các tham chiu bng 0
Nu mt trong nhng bits trong b nh = 1 làm vic ch thit lp trang
Ti sao ko hoàn toàn chính xác?
Nâng cao cht lng = 10 bits và ngt sau mi 1000 n v thi gian
9.*
Operating System Concepts with Java – 7th Edition, Nov 15, 2006
Lc tn s trang li
Chng minh t l li trang “có th chp nhn”
Nu t l quá thp, tin trình s mt khung
Nu t l quá cao, tin trình s ln khung
Gii hn cao
Operating System Concepts with Java – 7th Edition, Nov 15, 2006
B nh ánh x tp tin
B nh ánh x tp tin I/O cho phép các tp I/O c i x nh s truy cp b nh thng trình bng ánh x mt khi a n 1 trang trong b nh
Mt file c ban u s dng trang yêu cu. Mt phn kik c trang ca file dc c t file h thng vào trang vt lý. Tp tin n sau c/ghi n/t dc i x nh truy cp b nh thông thng
Truy nhp tp tin file I/O thông qua b nh n gin hn c() ghi() li gi h thng
Mt s tin trình cng cho phép tham chiu n cùng mt tp tin trong trang trên b nh dc chia s
9.*
Operating System Concepts with Java – 7th Edition, Nov 15, 2006
B nh ánh x tp tin
B nh o A
B nh o B
B nh vt lý
Operating System Concepts with Java – 7th Edition, Nov 15, 2006
B nh ánh x tp tin trong Windows
B nh chia s
9.*
Operating System Concepts with Java – 7th Edition, Nov 15, 2006
B nh ánh x tp tin trong JAVA
9.*
Operating System Concepts with Java – 7th Edition, Nov 15, 2006
Phân b nhân b nh
X lý khác nhau bi ngi dùng b nh
Thng phân b t mt vùng b nh t do
Nhân yêu cu b nh có nhng cu trúc vi kích c khác nhau
Mt s nhân b nh cn phi t k nhau
9.*
Operating System Concepts with Java – 7th Edition, Nov 15, 2006
H thng bn bè
Phân b b nh phân on nht quán vi kích thc c nh ca các trang vt lý k nhau
Vic cp phát b nh s dng b cp phát ly tha 2
Kích thc khi nh c cp phát s là ly tha 2
Kích thc ó s là kích thc ly tha 2 cao nht gn ó
Trong trng hp không b nh cp phát thì nó s chia 2
C tip tc nh vy cho n khi b nh cp phát
9.*
Operating System Concepts with Java – 7th Edition, Nov 15, 2006
B cp phát h thng bn bè
Các trang vt lý k nhau
9.*
Operating System Concepts with Java – 7th Edition, Nov 15, 2006
B cp phát Slab
Chin lc luân phiên
Slab là mt hay nhiu trang vt lý k nhau
Cache bao gm mt hoc nhiu slabs
Cache n cho mi cu trúc d liu ht nhân duy nht
Mi cache c ph y bi nhng i tng – mt ví d c th ca cu trúc d liu
Khi cache c to ra, các i tng in vào s c ánh du còn trng
Khi cu trúc c lu, các i tng c ánh du ã s dng
Nu mt slab ã y các i tng, i tng tip theo s c phân b vào mt slab rng
Nu không có slab rng, slab mi s c to ra
Các quyn li bao gm s không phân mnh, nhanh chóng làm hài lòng yêu cu ca b nh
9.*
Operating System Concepts with Java – 7th Edition, Nov 15, 2006
Cp phát slab
Nhân i tng
9.*
Operating System Concepts with Java – 7th Edition, Nov 15, 2006
Các vn khác-Phân Trang trc
Phân trang trc
gim bt mt s lng ln li trang ti thi im tin trình khi ng
Tt c các trang trc hoc mt s trang ca tin trình s cn n, trc khi chúng c tham chiu
Nhng nu nhng trang trc không c s dng, thit b vào/ra và b nh s b lãng phí
Gi s s trang c chun b trc và α nhng trang này ang c s dng
S tiêu tn s * α lu nhng li trang, > hay< hn chi phí ca vic chun b trang trc
Có s * (1- α) nhng trang không cn thit?
α gn bng 0 chun b trang trc s tht bi
9.*
Operating System Concepts with Java – 7th Edition, Nov 15, 2006
Các vn khác- Kích thc trang
La chn kích thc trang phi xem xét n:
S phân on
Kích thc bng
V trí
Operating System Concepts with Java – 7th Edition, Nov 15, 2006
Các vn khác – Phm vi TLB
Phm vi TLB – S lng b nh có th truy cp t TLB
Phm vi TLB = (kích thc TLB) X (kích thc trang)
Theo ý tng, mô hình tp làm vic trong mi tin trình s c lu tr trong TLB
Mt khác s có nhng li trang mc cao
Tng kích thc trang
iu này dn n vic tng s phân on không nh tt c các ng dng òi hi kích thc trang ln
Cung cp nhiu trang kích thc
iu này cho phép các ng dng yêu cu kích thc trang ln c hi s dng chúng mà không phi tng s phân on
TLB – Translation lookaside buffer – B m chuyn hóa riêng
9.*
Operating System Concepts with Java – 7th Edition, Nov 15, 2006
Các vn khác – Cu trúc chng trình
Cu trúc chng trình
Program 1
data[i,j] = 0;
Program 2
data[i,j] = 0;
128 li trang
Operating System Concepts with Java – 7th Edition, Nov 15, 2006
Các vn khác – Neo thit b vào ra
Neo thit b vào ra – ôi lúc cn neo mt s trang trong b nh
Xem xét thit b vào ra – Các trang c s dng cho vic sao chép mt trang t mt thit b c neo bng vic la chn thu hi bi mt thun toán thay th trang
9.*
Operating System Concepts with Java – 7th Edition, Nov 15, 2006
Lý Do Ti Sao Khung trang s dng cho thit b vào ra phi trong b nh
a
B m
Operating System Concepts with Java – 7th Edition, Nov 15, 2006
Mt s h iu hành ví d
Windows XP
Operating System Concepts with Java – 7th Edition, Nov 15, 2006
Windows XP
S dng nhu cu trang vi k thut clustering.K thut Clustering brings in pages surrounding the faulting page.
Các tin trình c phân công làm vic ch ti thiu và ti a
Làm vic ch ti thiu là vi s trang nh nht trong tin trình c m bo có trong b nh
Mt tin trình có th c phân công nh nhiu trang nó làm vic ch ti a
Khi s lng b nh trng trong h thng rt xung di ngng, ch làm vic t ng sp xp c thc hin khôi phc s lng b nh trng
Ch làm vic sp xp loi b các tin trình ã vt quá trong ch làm vic ti thiu
9.*
Operating System Concepts with Java – 7th Edition, Nov 15, 2006
Solaris
Duy trì mt dach sách các trang trng gán các li tin trình
Lotsfree – ngng tham s (s lng b nh trng) bt u phân trang
Desfree – ngng tham s tng s phân trang
Minfree – ngng tham s bt u swapping
Phân trang c thc hin bi tin trình pageout
Pageout kim tra các trang bng cách sa i thut toán ng h
Scanrate là t l các trang c kim tra. Nó nm trong khong slowscan n fastscan
Pageout c gi thng xuyên hn tùy thuc vào s lng b nh trng sn có
9.*
Operating System Concepts with Java – 7th Edition, Nov 15, 2006
Solaris 2 Quét Trang
Operating System Concepts with Java – 7th Edition, Nov 15, 2006
Kt thúc chng 9