10. boä nhôù aûo
DESCRIPTION
10. Boä nhôù aûo. Ñaùnh giaù moâ hình simple paging/segmentation. Simple paging/segmentation Caùc tham chieáu ñeán boä nhôù laø luaän lyù, ñöôïc chuyeån ñoåi ñoäng thaønh ñòa chæ thöïc luùc quaù trình thöïc thi - PowerPoint PPT PresentationTRANSCRIPT
Khoa Coâng Ngheä Thoâng Tin – Ñaïi Hoïc Baùch Khoa Tp HCM 10.2
Ñaùnh giaù moâ hình simple paging/segmentation
Simple paging/segmentation– Caùc tham chieáu ñeán boä nhôù laø luaän lyù, ñöôïc chuyeån
ñoåi ñoäng thaønh ñòa chæ thöïc luùc quaù trình thöïc thi– Moät process coù theå ñöôïc chia thaønh caùc phaàn nhoû (page
hay segment) vaø naïp vaøo caùc vò trí khoâng lieân tuïc trong boä nhôù chính
Nhaän xeùt – caùc phaàn cuûa moät chöông trình khoâng nhaát thieát phaûi
naïp vaøo boä nhôù chính taïi cuøng moät thôøi ñieåm 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ì vaãn
khoâng caàn duøng toaøn boä cuøng moät luùc
Khoa Coâng Ngheä Thoâng Tin – Ñaïi Hoïc Baùch Khoa Tp HCM 10.3
Söï thöïc thi vôùi boä nhôù aûo cuûa process
Heä ñieàu haønh chæ naïp moät phaàn nhoû cuûa chöông trình vaøo boä nhôù
Khi coù moät leänh tham chieáu ñeán phaàn khoâng coù trong boä nhôù chính thì moät ngaét meàm ñöôïc kích hoaït goïi laø memory fault (page fault, segmentation fault)
Heä ñieàu haønh chuyeån process veà traïng thaùi blocked
Heä ñieàu haønh 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. Trong khi ñoù, moät quaù trình khaùc ñöôïc chieám quyeàn thöïc thi.
Sau khi ñoïc ghi ñóa hoaøn taát, moät ngaét meàm ñöôïc kích hoaït, baùo cho heä ñieàu haønh ñeå chuyeån process töông öùng trôû laïi traïng thaùi ready
Khoa Coâng Ngheä Thoâng Tin – Ñaïi Hoïc Baùch Khoa Tp HCM 10.4
Cô cheá boä nhôù aûo Khoâng gian nhôù tham chieáu bôûi moät ñòa chæ luaän lyù
ñöôïc goïi laø boä nhôù aûo (virtual memory)– Coù theå hình dung khoâng gian nhôù aûo bao goàm boä nhôù
thöïc vaø boä nhôù thöù caáp.– Nhaèm ñaït hieäu quaû cao, caùc dòch vuï file system thöôøng
ñöôïc boû qua; ñoïc/ghi ñóa tröïc tieáp vôùi caùc khoái döõ lieäu lôùn hôn so vôùi 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 W2K/XP
Nguyeân lyù cuïc boä (locality principle) laø cô sôû chuû yeáu cuûa cô cheá boä nhôù aûo.
Öu ñieåm cuûa cô cheá boä nhôù aûo?
Khoa Coâng Ngheä Thoâng Tin – Ñaïi Hoïc Baùch Khoa Tp HCM 10.5
Cô cheá boä nhôù aûo
CPU package
CPU
MemoryDisk
controller
Bus
The CPU sends virtualaddresses to the MMU
MMU (Memory Management Unit)
The MMU sends physicaladdresses to the memory
Khoa Coâng Ngheä Thoâng Tin – Ñaïi Hoïc Baùch Khoa Tp HCM 10.6
Ví duï cô cheá boä nhôù aûo (paging)
– Leänh MOV REG,0 MMU page #0 frame #2 ñòa chæ thöïc laø 8192
– Leänh MOV REG, 8192 MMU page #2 frame #6 ñòa chæ thöïc laø 24576 (=24K)
– Leänh MOV REG, 20500 = 20K + 20 MMU page #5 frame #3 ñòa chæ thöïc laø 12K + 20 = 12308
– Leänh MOV REG, 32780 = 32K + 12 MMU page #8 ?
Khoa Coâng Ngheä Thoâng Tin – Ñaïi Hoïc Baùch Khoa Tp HCM 10.7
Toå chöùc beân trong cuûa MMU
page = 4K
16 pages
Khoa Coâng Ngheä Thoâng Tin – Ñaïi Hoïc Baùch Khoa Tp HCM 10.8
Hieän thöïc cô cheá boä nhôù aûo
Ñeå cô cheá boä nhôù aûo laøm vieäc hieäu quaû, heä thoáng caàn thoûa hai phaàn sau– Phaûi coù söï hoã trôï cuûa phaàn cöùng cho cô cheá phaân
trang hay phaân ñoaïn– Heä ñieàu haønh caàn coù boä phaän quaûn lyù vieäc
hoaùn chuyeån caùc trang/ñoaïn giöõa boä nhôù thöù caáp vaø boä nhôù thöïc.
Hieän thöïc cô cheá boä nhôù aûo– Demand paging– Segmentation– Hybrid (paging vaø segmentation)
Khoa Coâng Ngheä Thoâng Tin – Ñaïi Hoïc Baùch Khoa Tp HCM 10.10
Cô cheá demand paging (tt)
page 0
page 1
page 2
Virtual Memory(4GB)
Memory Map(Page Table)
Physical Memory(32~512MB)
Backing storeModified-bit
Present-bit
Khoa Coâng Ngheä Thoâng Tin – Ñaïi Hoïc Baùch Khoa Tp HCM 10.11
Tham chieáu trong demand paging
A
B
C
Virtual Memory(4GB)
0 0
2 1 1
0 0 1
0 0
0 0
0 0
C
A
Memory Map(Page Table)
Physical Memory(32 – 512 MB)
Backing storeModified-bit
Present-bit
AA BB
CC DD
EE FF
Khoa Coâng Ngheä Thoâng Tin – Ñaïi Hoïc Baùch Khoa Tp HCM 10.12
Page fault trong demand paging
A
B
MOV R3, X
D
E
F
Virtual Memory(4GB)
0 0
2 1 1
0 0 1
0 0
0 0
0 0
C
A
Memory Map(Page Table)
Physical Memory(32 – 512 MB)
Backing store
AA BB
CC DD
EE FF
Modified-bit
Present-bit
paging routine
paging routine
Khoa Coâng Ngheä Thoâng Tin – Ñaïi Hoïc Baùch Khoa Tp HCM 10.13
Page fault (tt)
A
B
MOV R3, X
D
E
F
Virtual Memory(4GB)
0 0
2 1 1
3 0 1
0 0
4 0 1
0 0
C
A
E
Memory Map(Page Table)
Physical Memory(32 – 512 MB)
Backing storeModified-bit
Present-bit
paging routine
paging routine
AA BB
CC DD
EE FF
Khoa Coâng Ngheä Thoâng Tin – Ñaïi Hoïc Baùch Khoa Tp HCM 10.14
Hieän thöïc demand paging Hieäu suaát demand paging
– Goïi p = xaùc suaát xaûy ra page fault
– Thôøi gian truy caäp hieäu duïng (effective access time) EA
EA = (1 p) memory_access + p fault_access
– fault_access = page fault overhead + swap page out + swap page in + restart overhead.
– Hieäu suaát caøng cao khi leänh truy caäp boä nhôù ít gaây ra page fault
Chieán löôïc naïp (fetch policy)– demand paging– pre-paging (hay anticipated paging)
Khoa Coâng Ngheä Thoâng Tin – Ñaïi Hoïc Baùch Khoa Tp HCM 10.15
Hieän thöïc demand paging (tt)
Khi xaûy ra page fault, heä ñieàu haønh thöïc hieän caùc böôùc sau1. chuyeån traïng thaùi process sang blocked
2. choïn moät trang ñeå thay theá (page replacement algorithm)
3. ñaùnh daáu invalid trang ñöôïc choïn
4. khôûi ñoäng vieäc naïp trang môùi vaøo boä nhôù (disk I/O)
5. chuyeån thöïc thi cho process khaùc trong luùc I/O ñang thöïc hieän
6. nhaän interrupt baùo I/O hoaøn taát (i.e. ñaõ naïp xong trang nhôù môùi)
7. caäp nhaät entry töông öùng trong page table (hay memory map)
8. chuyeån traïng thaùi process veà ready
Khi boä nhôù chính coù choã troáng vaø chuùng ta tieán haønh naïp vaøo ñoù moät trang nhôù page fault. Tuy nhieân, khi so saùnh caùc giaûi thuaät thì chuùng ta coù theå boû qua soá page-fault khôûi ñaàu vì ñaïi löôïng naøy nhö nhau ñoái vôùi moïi giaûi thuaät
Khoa Coâng Ngheä Thoâng Tin – Ñaïi Hoïc Baùch Khoa Tp HCM 10.16
Page replacement algorithm Giaûi thuaät thay theá trang
– MIN (a.k.a OPT)– Least Recently Used (LRU)– First-In, First-Out (FIFO)– Clock (second-chance)– Not Recently Used (NRU)
Caùc giaûi thuaät thay theá trang phuï thuoäc vaøo resident set (soá frame caáp cho moãi process)
Muïc tieâu: giaûm thieåu page-fault Ví duï: thöù töï tham chieáu caùc ñòa chæ nhôù (vôùi page size =
100):
0200, 0332, 0201, 0112, 0502, 0203, 0404, 0501, 0311, 0202, 0503, 0204, ...
Vaäy, thöù töï caùc trang nhôù ñöôïc tham chieáu laø
2 3 2 1 5 2 4 5 3 2 5 2 chuoãi tham chieáu boä nhôù
Giaû söû resident set = 3
Khoa Coâng Ngheä Thoâng Tin – Ñaïi Hoïc Baùch Khoa Tp HCM 10.17
Giaûi thuaät MIN (a.k.a OPT) Giaûi thuaät MIN hay optimal (OPT)
– Thay theá trang nhôù ñöôïc tham chieáu treã nhaát trong töông lai– Moãi trang nhôù ñöôïc gaén nhaõn laø moät soá nguyeân khoâng
aâm, coù giaù trò baèng soá leänh ñöôïc seõ thöïc thi tröôùc khi tham chieáu ñeán trang ñoù.
– Trang nhôù coù nhaõn lôùn nhaát seõ bò thay theá– Toái öu soá page faults– Khoâng theå hieän thöïc ñöôïc. Vì sao?
Khoa Coâng Ngheä Thoâng Tin – Ñaïi Hoïc Baùch Khoa Tp HCM 10.18
Least Recently Used (LRU) Thay theá trang nhôù khoâng ñöôïc tham chieáu laâu nhaát Trong baûng phaân trang, moãi trang ñöôïc ghi nhaän thôøi ñieåm ñöôïc tham
chieáu Trang LRU laø trang nhôù coù giaù trò thôøi gian tham chieáu nhoû nhaát (toán
chi phí tìm trang LRU moãi khi coù page fault) LRU caàn söï hoã trôï cuûa phaàn cöùng vaø toán chi phí cao cho vieäc tìm
kieám.
Khoa Coâng Ngheä Thoâng Tin – Ñaïi Hoïc Baùch Khoa Tp HCM 10.19
Giaûi thuaät FIFO Xem caùc frame ñöôïc caáp phaùt cho process nhö laø
circular buffer– Trang nhôù cuõ nhaát seõ ñöôïc thay theá: first-in, first-out
Khoa Coâng Ngheä Thoâng Tin – Ñaïi Hoïc Baùch Khoa Tp HCM 10.22
Giaûi thuaät clock (second-chance)
YÙ töôûng töông töï FIFO nhöng cho cô hoäi thöù hai Giaûi thuaät
– Resident set cuûa moãi process ñöôïc hieän thöïc daïng circular buffer
– Khi moät trang ñöôïc thay theá, con troû seõ chæ ñeán frame keá tieáp trong circular buffer
– Moãi frame coù moät use-bit. Bit naøy ñöôïc thieát laäp trò 1 khi Trang nhôù ñöôïc naïp laàn ñaàu vaøo frame Coù tham chieáu tôùi ñòa chæ thuoäc trang chöùa trong
frame – Khi caàn thay theá moät trang nhôù, trang nhôù naèm treân
frame ñaàu tieân coù use bit baèng 0 seõ ñöôïc thay theá. Trong suoát quaù trình tìm trang nhôù thay theá, giaûi
thuaät clock seõ reset veà giaù trò 0 caùc use-bit cuûa frame treân ñöôøng ñi qua.
Khoa Coâng Ngheä Thoâng Tin – Ñaïi Hoïc Baùch Khoa Tp HCM 10.24
So saùnh clock, FIFO vaø LRU
Daáu *: use bit töông öùng ñöôïc thieát laäp trò 1 Giaûi thuaät Clock baûo veä caùc trang thöôøng ñöôïc tham chieáu
baèng caùch thieát laäp use bit baèng 1 vôùi moãi laàn tham chieáu Moät soá keát quaû thöïc nghieäm cho thaáy clock coù hieäu suaát
gaàn vôùi LRU
Khoa Coâng Ngheä Thoâng Tin – Ñaïi Hoïc Baùch Khoa Tp HCM 10.25
Giaûi thuaät NRU - Not Recently Used
Moãi muïc trong page table coù theâm 2 bit laø M (modified) vaø R (referenced: read, write)– Khôûi ñaàu: R = M = 0– Khi trang nhôù ñöôïc tham chieáu thì thieát laäp R = 1– Khi coù thay ñoåi noäi dung trang nhôù thì thieát laäp M = 1– Ñònh kyø (e.g. clock tick ~ 20ms) heä ñieàu haønh seõ xoùa
bit R (i.e. R = 0). Taïi sao?– Khi coù page fault xaûy ra, heä ñieàu haønh xem xeùt taát
caû trang nhôù vaø chia thaønh 4 loaïi döïa treân giaù trò cuûa R vaø M Loaïi 1: khoâng tham chieáu (R=0), khoâng caäp nhaät
(M=0) Loaïi 2: khoâng tham chieáu (R=0), coù caäp nhaät (M=1) Loaïi 3: coù tham chieáu (R=1), khoâng caäp nhaät (M=0) Loaïi 4: coù tham chieáu (R=1), coù caäp nhaät (M=1)
– NRU seõ thay trang nhôù ñaàu tieân ôû loaïi nhoû hôn tröôùc.
Khoa Coâng Ngheä Thoâng Tin – Ñaïi Hoïc Baùch Khoa Tp HCM 10.26
Kích thöôùc trang nhôù (page size)
Computer Page size Units
Atlas 512 48-bit word
Multics 1K 36-bit word
IBM 370 2K/4K 8-bit byte
VAX 512 8-bit byte
IBM AS/400 512 8-bit byte
Intel 486 (PCs) 4K 8-bit byte
Intel Pentium 4K/4M 8-bit byte
Motorola 68040 (Macintosh) 4K 8-bit byte
Caùc yeáu toá aûnh höôûng– Söï phaân maûnh– Kích thöôùc baûng phaân trang– Kích thöôùc block ñoïc/ghi ñóa
Khoa Coâng Ngheä Thoâng Tin – Ñaïi Hoïc Baùch Khoa Tp HCM 10.27
Hieän thöïc demand paging (tt)
Kích thöôùc resident set (RS) – OS quyeát ñònh caáp cho moãi process bao nhieâu frame?– Caáp phaùt tónh (fixed-allocation)– Caáp phaùt ñoäng (variable-allocation)
N
pag
e fa
ult
rate
resident set size
W
Khoa Coâng Ngheä Thoâng Tin – Ñaïi Hoïc Baùch Khoa Tp HCM 10.28
Caáp phaùt tónh Baèng nhau – Ví duï, coù 100 frame vaø 5
process moãi process ñöôïc 20 frame Theo tæ leä – döïa vaøo kích thöôùc process
mS
sp for allocation a
frames of number total m
sS
p process of sizes
iii
i
ii
5964137
127
564137
10
127
10
64
2
1
2
a
a
s
s
m
i
Khoa Coâng Ngheä Thoâng Tin – Ñaïi Hoïc Baùch Khoa Tp HCM 10.29
Hieän thöïc demand paging (tt)
Taàm vöïc thay theá trang (replacement scope)– Local vs. Global
Keát hôïp – Fixed-allocation + local replacement– Fixed-allocation + global replacement (?)– Variable-allocation + local replacement (WinNT)– Variable-allocation + global replacement (UNIX SystemV R4)
Khoa Coâng Ngheä Thoâng Tin – Ñaïi Hoïc Baùch Khoa Tp HCM 10.30
Hieän thöïc demand paging (tt)
Thrashing– Neáu moät process khoâng coù ñuû soá frame caàn thieát tæ
suaát page-fault raát cao. Ví duï: moät voøng laëp N laàn, moãi laàn tham chieáu ñeán ñòa chæ naèm trong 4 trang nhôù trong khi ñoù process chæ ñöôïc caáp 3 frames.
1 2 34 2 34 1 34 1 23 1 2
Löôïc ñoà thrashing
Khoa Coâng Ngheä Thoâng Tin – Ñaïi Hoïc Baùch Khoa Tp HCM 10.31
Moâ hình locality Ñeå haïn cheá thrashing, chuùng ta phaûi cung caáp cho process
caøng “ñuû” frame caøng toát? döïa treân moâ hình locality
Moâ hình locality – locality laø moät taäp caùc trang thöôøng hay ñöôïc tham chieáu
cuøng nhau (chuoãi con tham chieáu caùc trang naøy thöôøng xuaát hieän)
– Moät chöông trình thöôøng goàm nhieàu locality vaø trong quaù trình thöïc thi, process seõ chuyeån töø locality naøy sang locality khaùc
Ví duï khi moät thuû tuïc ñöôïc goïi thì seõ coù moät locality môùi. Trong locality naøy, tham chieáu boä nhôù bao goàm leänh cuûa thuû tuïc, bieán cuïc boä vaø moät phaàn bieán toaøn cuïc. Khi thuû tuïc keát thuùc, process seõ thoaùt khoûi locality naøy
Vì sao hieän töôïng thrashing xuaát hieän ? size_of_locality > memory size
Khoa Coâng Ngheä Thoâng Tin – Ñaïi Hoïc Baùch Khoa Tp HCM 10.32
Moâ hình Working Set Döïa treân giaû thieát veà locality
Ñònh nghóa working-set window
WSi , working set cuûa process Pi , laø taäp caùc trang ñöôïc tham chieáu trong khoaûng quaù nhoû khoâng ñuû bao phuû toaøn boä locality. quaù lôùn phuû laáp nhieàu locality. bao goàm toaøn boä chöông trình.
D = kích thöôùc cuûa WSi
– D > soá frame cuûa heä thoáng xaûy ra thrashing
Khoa Coâng Ngheä Thoâng Tin – Ñaïi Hoïc Baùch Khoa Tp HCM 10.35
Moâ hình taàn suaát page-fault
Duøng taàn suaát page-fault frequency ñeå ñieàu chænh möùc ñoä page-fault rate.
Taàn suaát quaù thaáp process coù quaù nhieàu frame, giaûm bôùt.
Taàn suaát quaù cao process caàn theâm frame.
Khoa Coâng Ngheä Thoâng Tin – Ñaïi Hoïc Baùch Khoa Tp HCM 10.36
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 vôùi nhieàu muïc
(entry)– Thanh ghi page-table base (PTBR) troû ñeán baûng phaân
trang– Thanh ghi page-table length (PTLR) = kích thöôùc cuûa
baûng phaân trang (vaø duøng ñeå baûo veä boä nhôù)
Moät entry tieâu bieåu cuûa page table
Khoa Coâng Ngheä Thoâng Tin – Ñaïi Hoïc Baùch Khoa Tp HCM 10.37
Hieän thöïc baûng phaân trang
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ôù– Döõ lieäu/leänh ñöôïc ñònh vò baèng ñòa chæ aûo A(p, d)
Thao taùc truy xuaát ñònh vò trong page table p f Thao taùc truy xuaát döõ lieäu/leänh = f + d
– Phaàn cöùng hoã trôï cache toác ñoä cao - associative register hay translation look-aside buffers (TLBs)
Khoa Coâng Ngheä Thoâng Tin – Ñaïi Hoïc Baùch Khoa Tp HCM 10.38
TLB a.k.a associative registers
TLB (translation look-aside buffers): 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 khoaûng 8
2048
Khi coù chuyeån ngöõ caûnh, TLB
bò xoùa
TLB laø “cache” cuûa baûng phaân
trang
Khi TLB bò ñaày, thay theá baèng
LRU
Khoa Coâng Ngheä Thoâng Tin – Ñaïi Hoïc Baùch Khoa Tp HCM 10.40
Hierarchical page table Caùc heä thoáng hieän ñaïi coù khoâng gian ñòa chæ raát lôùn (232 hay
264). – Kích thöôùc trang nhôù laø 4KB baûng phaân trang ~ 232/212 = 1M entries
– Entry coù kích thöôùc 32-bit moãi process caàn 4MB Moät giaûi phaùp ñöôïc ñaët ra laø chia thaønh nhieàu baûng phaân
trang baûng phaân trang ña möùc (multilevel paging table).– Intel Pentium-II coù cô cheá taïo baûng phaân trang 2-möùc (two-level page
table), hay coøn goïi laø forward-mapped page table
A
Khoa Coâng Ngheä Thoâng Tin – Ñaïi Hoïc Baùch Khoa Tp HCM 10.41
Baûng phaân trang 2-möùc Ñòa chæ luaän lyù treân heä
thoáng 32-bit, trang nhôù 4K– Page # (p): 20 bit– Offset (d): 12 bit
Page number goàm 2 phaàn:– 10-bit page number – 10-bit page offset
20 bit
page # offset12 bit
p2
page # offset
dp1
10 bit10 bit 12 bit
Khoa Coâng Ngheä Thoâng Tin – Ñaïi Hoïc Baùch Khoa Tp HCM 10.42
Phaân trang ña möùc (multilevel)
Khoâng gian ñòa chæ luaän lyù 64-bit vôùi trang nhôù 4K – Soá muïc cuûa baûng phaân trang = 252 . – Thöïc hieän töông töï, phaân chia thaønh baûng 3, 4,..., n-möùc
– SPARC 32-bit - cô cheá 3-möùc, UltraSPARC 64-bit 7-möùc– Motorolla 68030 32-bit - cô cheá 4-möùc. – Hieäu suaát?
page number page offset
52 12
page number page offset
42 10 12
page number page offset
32 10 10 2
page number page offset
22 10 10 10 2
……
Khoa Coâng Ngheä Thoâng Tin – Ñaïi Hoïc Baùch Khoa Tp HCM 10.43
Inverted page table
Ví du PowerPC, IBM RISK 6000
Khoa Coâng Ngheä Thoâng Tin – Ñaïi Hoïc Baùch Khoa Tp HCM 10.44
Chia seû caùc trang nhôùProcess 1
ed 1
ed 2
ed 3
data 1
ed 1
ed 2
ed 2
data 3
Process 3
3
4
6
2
0
1
2
3
3
4
6
1
0
1
2
3
Process 2
ed 1
ed 2
ed 3
data 2
3
4
6
7
0
1
2
3
0
1 data 1
2 data 3
3 ed 1
4 ed 2
5
6 ed 3
7 data 2
8
9
10
Khoa Coâng Ngheä Thoâng Tin – Ñaïi Hoïc Baùch Khoa Tp HCM 10.45
Moät soá vaán ñeà trong demand paging
Cô cheá Copy-on-Write (COW) – cho pheùp process boá vaø con chia seû trang nhôù luùc
process con môùi ñöôïc taïo ra Caùc trang ñoù ñaùnh daáu write-protected. Taïi sao?
– Neáu moät trong caùc process caäp nhaät trang chia seû copy thaønh caùc trang nhôù rieâng cho moãi process
Memory-mapped file I/O – Khi moät file ñöôïc môû daïng memory-mapped duøng
demand paging naïp theo ñôn vò trang nhôù– Duøng leänh truy xuaát boä nhôù ñeå truy xuaát file thay vì
duøng system calls nhö read(), write() – Cho pheùp nhieàu process chia seû mapped-file
Khoa Coâng Ngheä Thoâng Tin – Ñaïi Hoïc Baùch Khoa Tp HCM 10.47
Moät soá vaán ñeà trong demand paging
Caáu truùc chöông trình vaø page faults– int A[1024][1024];– Moãi haøng löu trong moät trang nhôù
– Ví duï 1 for (j = 0; j < 1024; j++)for (i = 0; i < 1024; i++)
A[i, j] = 0;1024 x 1024 page faults
– Ví duï 2 for (i = 0; i < 1024; i++)for (j = 0; j < 1024; j++)
A[i, j] = 0;1024 page faults
– Column-major vs. row-major?
Khoa Coâng Ngheä Thoâng Tin – Ñaïi Hoïc Baùch Khoa Tp HCM 10.48
Moät soá vaán ñeà trong demand paging
Frames duøng I/O vaø locked page
Khoa Coâng Ngheä Thoâng Tin – Ñaïi Hoïc Baùch Khoa Tp HCM 10.49
Hieän thöïc segmentation Ñòa chæ luaän lyù laø moät caëp giaù trò
A(s, d) = A(segment-number, offset) Moãi process coù baûng phaân ñoaïn (segment table)
– base – limit – valid-bit
Segment-table base register: troû ñeán vò trí baûng phaân ñoaïn trong boä nhôù
Segment-table length register (STLR): toång soá segment – moät chæ soá segment s laø hôïp leä iff s < STLR
Segment placement policy– best-fit, first-fit, next-fit, worst-fit,...
Segment replacement policy (?)
Khoa Coâng Ngheä Thoâng Tin – Ñaïi Hoïc Baùch Khoa Tp HCM 10.51
Chia seû caùc phaân ñoaïn
editordata 1
segment 0segment 1
Logical address space process P1
editordata 2
segment 0segment 1
Logical address space process P2
limit base
0 25286 43062
1 4425 68348
segment table process P1
limit base
0 25286 43062
1 8850 90003
segment table process P2
editor
data 1
data 2
physical memory
43062
72773
68348
90003
98553
Khoa Coâng Ngheä Thoâng Tin – Ñaïi Hoïc Baùch Khoa Tp HCM 10.53
Hybrid (paging + segmentation)
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
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.
Khoa Coâng Ngheä Thoâng Tin – Ñaïi Hoïc Baùch Khoa Tp HCM 10.54
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-bit chæ coù 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,...