10. boä nhôù aûo

55
Khoa Coâng Ngheä Thoâng Tin – Ñaïi Hoïc Baùch Khoa Tp HCM 10.1 10. Boä nhôù aûo

Upload: larissa-keith

Post on 01-Jan-2016

33 views

Category:

Documents


1 download

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 Presentation

TRANSCRIPT

Khoa Coâng Ngheä Thoâng Tin – Ñaïi Hoïc Baùch Khoa Tp HCM 10.1

10. Boä nhôù aûo

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.9

Ñieàu khieån page-fault

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.20

Belady’s anomaly

Khoa Coâng Ngheä Thoâng Tin – Ñaïi Hoïc Baùch Khoa Tp HCM 10.21

Ví duï veà Belady’s anomaly

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.23

Giaûi thuaät clock (second-chance)

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.33

Moâ hình Working Set (tt)

Khoa Coâng Ngheä Thoâng Tin – Ñaïi Hoïc Baùch Khoa Tp HCM 10.34

Minh hoïa moâ hình Working Set

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.39

Cô cheá phaân trang coù TLB

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.46

Memory-mapped files

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.50

Hieän thöïc segmentation (tt)

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.52

So saùnh paging vaø segmentation

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,...

Khoa Coâng Ngheä Thoâng Tin – Ñaïi Hoïc Baùch Khoa Tp HCM 10.55

Sô ñoà chuyeån ñoåi ñòa chæ