Tải bản đầy đủ (.pdf) (28 trang)

Nguyên lý hệ điều hành chương 3 Quản lý bộ nhớ

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.65 MB, 28 trang )

Giáo trình Nguyên lý hu hành – KS. Trn Ngc Thái,  môn Tin hc – i hc DL Hi Phòng
Tài liu lu hành ni b - 1 -
CHNG 3: QUN LÝ B NH
Chng này s giúp các bn hình dung nhng vn  cn quan tâm khi thit k module qun lý b nh
ca Hu hành . Mt s mô hình t chc b nh cng c gii thiu và phân tích u, khuyt m
 các bn có th hiu c cách thc cp phát và thu hi b nh din ra nh th nào
B nh chính là thit b lu tr duy nht thông qua ó CPU có th trao i thông tin vi môi trng
ngoài, do vy nhu cu t chc, qun lý b nh là mt trong nhng nhim v trng tâm hàng u ca h
iu hành . B nh chính c t chc nh mt mng mt chiu các t nh (word), mi t nh có mt
a ch . Vic trao i thông tin vi môi trng ngoài c thc hin thông qua các thao tác c hoc
ghi d liu vào mt a ch c th nào ó trong b nh.
Hu ht các hu hành hin i u cho phép cha nhim nhm nâng cao hiu sut s dng
CPU. Tuy nhiên k thut này li làm ny sinh nhu cu chia s b nh gia các tin trình khác nhau .
Vn  nm  ch : « b nh thì hu hn và các yêu cu b nh thì vô hn ».
Hu hành chu trách nhim cp phát vùng nh cho các tin trình có yêu cu.  thc hin tt nhim
v này, hu hành cn phi xem xét nhiu khía cnh :
S tng ng gia a ch logic và a ch vt lý (physic) : làm cách nào  chuyn i mt a ch
ng trng (symbolic) trong chng trình thành mt a ch thc trong b nh chính?
Qun lý b nh vt lý: làm cách nào  m rng b nh có sn nhm lu trc nhiu tin trình
ng thi?
Chia s thông tin: làm th nào  cho phép hai tin trình có th chia s thông tin trong b nh?
Bo v: làm th nào  ngn chn các tin trình xâm phm n vùng nhc cp phát cho tin
trình khác?
Các gii pháp qun lý b nh ph thuc rt nhiu vào c tính phn cng và tri qua nhiu giai n
ci tin  tr thành nhng gip pháp khá tha áng nh hin nay.
3.1 Bi cnh
Thông thng, mt chng trình c lu tr trên a nh mt tp tin nh phân có th x lý.  thc
hin chng trình, cn np chng trình vaò b nh chính, to lp tin trình tng ng  x lý .
Hàng i nhp h thng là tp hp các chng trình trên a ang chc np vào b nh tin
hành x lý.
Các a ch trong chng trình ngun là a ch tng trng , vì th, mt chng trình phi tri qua


nhiu giai n x lý  chuyn i các a ch này thành các a ch tuyt i trong b nh chính.
Có th thc hin kt buc các ch th và d liu vi các a ch b nh vào mt trong nhng thi m
sau :
Thi m biên dch: nu ti thi m biên dch, có th bit v trí mà tin trình s thng trú trong b
nh, trình biên dch có th phát sinh ngay mã vi các a ch tuyt i. Tuy nhiên, nu v sau có s
thay i v trí thng trú lúc u ca chng trình, cn phi biên dch li chng trình.
Giáo trình Nguyên lý hu hành – KS. Trn Ngc Thái,  môn Tin hc – i hc DL Hi Phòng
Tài liu lu hành ni b - 2 -
Thi m np : nu ti thi m biên dch, cha th bit v trí mà tin trình s thng trú trong b
nh, trình biên dch cn phát sinh mã tng i (translatable). S liên kt a chc trì hoãn n thi
im chng trình c np vào b nh, lúc này các a ch tng i sc chuyn thành a ch
tuyt i do ã bit v trí bt u lu tr tin trình. Khi có s thay i v trí lu tr, ch cn np li
chng trình  tính toán li các a ch tuyt i, mà không cn biên dch li.
Thi m x lý : nu có nhu cu di chuyn tin trình t vùng nh này sang vùng nh khác trong quá
trình tin trình x lý, thì thi m kt buc a ch phi trì hoãn n tn thi m x lý.  thc hin
kt buc a ch vào thi m x lý, cn s dng c ch phn cng c bit.
3.2 Không gian a ch và không gian vt lý
Mt trong nhng hng tip cn trung tâm nhm t chc qun lý b nh mt cách hiu qa là a ra
khái nim không gian a chc xây dng trên không gian nh vt lý, vic tách ri hai không gian
này giúp hu hành d dàng xây dng các c ch và chin lc qun lý b nh hu hiu :
a ch logic – còn gi là a cho , là tt c các a ch do b x lý to ra.
a ch vt lý - là a ch thc t mà trình qun lý b nh nhìn thy và thao tác.
Không gian a ch – là tp hp tt c các a ch o phát sinh bi mt chng trình.
Không gian vt lý – là tp hp tt c các a ch vt lý tng ng vi các a cho.
a cho và a ch vt lý là nh nhau trong phng thc kt buc a ch vào thi m biên dch
cng nh vào thi m np. Nhng có s khác bit gia a cho và a ch vt lý trong phng thc
kt buc vào thi m x lý.
MMU (memory-management unit) là mt c ch phn cng c s dng  thc hin chuyn i a
cho thành a ch vt lý vào thi m x lý.
Chng trình ca ngi s dng ch thao tác trên các a cho, không bao gi nhìn thy các a ch

vt lý . a ch tht sng vi v trí ca d liu trong bô nh chc xác nh khi thc hin truy xut
n d liu.
3.3 Cp phát liên tc
3.3.1. Mô hình Linker_Loader
Ý tng : Tin trình c np vào mt vùng nh liên tc  ln  cha toàn b tin trình. Ti thi
im biên dch các a ch bên trong tin trình vn là a ch tng i. Ti thi m np, Hu
hành s tr va ch bt u np tin trình, và tính toán  chuyn các a ch tng i va ch
tuyt i trong b nh vt lý theo công thc a ch vt lý = a ch bt u + a ch tng i.
Giáo trình Nguyên lý hu hành – KS. Trn Ngc Thái,  môn Tin hc – i hc DL Hi Phòng
Tài liu lu hành ni b - 3 -
3.3.2. Mô hình Base &Bound
Ý tng : Tin trình c np vào mt vùng nh liên tc  ln  cha toàn b tin trình. Ti thi
im biên dch các a ch bên trong tin trình vn là a ch tng i. Tuy nhiên b túc vào cu trúc
phn cng ca máy tính mt thanh ghi nn (base register) và mt thanh ghi gii hn (bound register).
Khi mt tin trình c cp phát vùng nh, np vào thanh ghi nn a ch bt u ca phân vùng c
cp phát cho tin trình, và np vào thanh ghi gii hn kích thc ca tin trình. Sau ó, mi a ch b
nhc phát sinh s tng c cng vi a ch cha trong thanh ghi nn  cho ra a ch tuyt
i trong b nh, các a ch cng c i chiu vi thanh ghi gii hn  bo m tin trình không
truy xut ngoài phm vi phân vùng c cp cho nó.
Hai thanh ghi h tr chuyn i a ch
Mt u im ca vic s dng thanh ghi nn là có th di chuyn các chng trình trong b nh sau
khi chúng bt u x lý, mi khi tin trình c di chuyn n mt v trí mi, ch cn np li giá tr
cho thanh ghi nn, các a ch tuyt i sc phát sinh li mà không cn cp nht các a ch tng
i trong chng trình
Chu ng hin tng phân mnh ngoi vi( external fragmentation ) : khi các tin trình ln lt vào
và ra khi h thng, dn dn xut hin các khe h gia các tin trình. ây là các khe hc to ra do
kích thc ca tin trình mi c np nh hn kích thc vùng nh mi c gii phóng bi mt tin
trình ã kt thúc và ra khi h thng. Hin tng này có th dn n tình hung tng vùng nh trng
 tho mãn yêu cu, nhng các vùng nh này li không liên tc ! Ngi ta có th áp dng k thut
« dn b nh » (memory compaction )  kt hp các mnh b nh nh ri rc thành mt vùng nh ln

liên tc. Tuy nhiên, k thut này òi hi nhiu thi gian x lý, ngoài ra, s kt buc a ch phi thc
hin vào thi m x lý, vì các tin trình có th b di chuyn trong quá trình dn b nh.
Giáo trình Nguyên lý hu hành – KS. Trn Ngc Thái,  môn Tin hc – i hc DL Hi Phòng
Tài liu lu hành ni b - 4 -
Phân mnh ngoi vi
Vn  ny sinh khi kích thc ca tin trình tng trng trong qúa trình x lý mà không còn vùng
nh trng gn k m rng vùng nh cho tin trình. Có hai cách gii quyt:
Di ch tin trình : di chuyn tin trình n mt vùng nh khác  ln  tha mãn nhu cu tng
trng ca tin trình.
Cp phát d vùng nh cho tin trình : cp phát d phòng cho tin trình mt vùng nh ln hn yêu cu
ban u ca tin trình.
Mt tin trình cn c np vào b nh x lý. Trong các phng thc t chc trên ây, mt tin
trình luôn c lu tr trong b nh sut quá trình x lý ca nó. Tuy nhiên, trong trng hp tin trình
b khóa, hoc tin trình s dng ht thi gian CPU dành cho nó, nó có thc chuyn tm thi ra b
nh ph và sau này c np tr li vào b nh chính  tip tc x lý.
Các cách t chc b nh trên ây u phi chu ng tình trng b nh b phân mnh vì chúng u
tip cn theo kiu cp phát mt vùng nh liên tc cho tin trình. Nhã tho lun, có th s dng k
thut dn b nh loi b s phân mnh ngoi vi, nhng chi phí thc hin rt cao. Mt gii pháp
khác hu hiu hn là cho phép không gian a ch vt lý ca tin trình không liên tc, ngha là có th
cp phát cho tin trình nhng vùng nh t do bt k, không cn liên tc.
3.4. Cp phát không liên tc
3.4.1. Phân on (Segmentation)
Ý tng: quan nim không gian a ch là mt tp các phân on (segments) – các phân on là
nhng phn b nh kích thc khác nhau và có liên h logic vi nhau. Mi phân n có mt tên gi
(s hiu phân n) và mt  dài. Ngi dùng s thit lp mi a ch vi hai giá tr : <s hiu phân
on, offset>.
Giáo trình Nguyên lý hu hành – KS. Trn Ngc Thái,  môn Tin hc – i hc DL Hi Phòng
Tài liu lu hành ni b - 5 -
Hình 4.17 Mô hình phân on b nh
 ch MMU trong k thut phân n:

Cn phi xây dng mt ánh x chuyn i các a ch 2 chiu c ngi dùng nh ngha thành a
ch vt lý mt chiu. S chuyn i này c thc hin qua mt bng phân n. Mi thành phn
trong bng phân n bao gm mt thanh ghi nn và mt thanh ghi gii hn. Thanh ghi nn lu tra
ch vt lý ni bt u phân n trong b nh, trong khi thanh ghi gii hn c t chiu dài ca phân
on.
Chuyn i a ch:
Mi a cho là mt b <s,d> :
s hiu phân on s : c s dng nh ch mc n bng phân n
a ch tng i d : có giá tr trong khong t 0 n gii hn chiu dài ca phân n. Nu a ch
ng i hp l, nó sc cng vi giá tr cha trong thanh ghi nn  phát sinh a ch vt lý tng
ng.
Hình 4.18 C ch phn cng h tr k thut phân on
Giáo trình Nguyên lý hu hành – KS. Trn Ngc Thái,  môn Tin hc – i hc DL Hi Phòng
Tài liu lu hành ni b - 6 -
Hình 4.19 H thng phân n
Cài t bng phân on:
Có th s dng các thanh ghi  lu tr bng phân n nu s lng phân n nh. Trong trng
hp chng trình bao gm quá nhiu phân n, bng phân n phi c lu trong b nh chính.
Mt thanh ghi nn bng phân n (STBR) chn a ch bt u ca bng phân n. Vì s lng
phân on s dng trong mt chng trình bin ng, cn s dng thêm mt thanh ghi c t kích
thc bng phân n (STLR).
Vi mt a ch logic <s,d>, trc tiên s hiu phân n sc kim tra tính hp l (s <STLR). K
tip, cng giá tr s vi STBR  có c a cha ch ca phn t th s trong bng phân n
(STBR+s). i ch vt lý cui cùng là (STBR+s + d)
Hình 4.20 S dng STBR, STLR và bng phân n
Bo v: Mt u im c bit ca c ch phân n là kh nng c t thuc tính bo v cho mi
phân on. Vì mi phân n biu din cho mt phn ca chng trình vi ng ngha c ngi
dùng xác nh, ngi s dng có th bit c mt phân n cha ng nhng gì bên trong, do vy
h có thc t các thuc tính bo v thích hp cho tng phân n.
 ch phn cng ph trách chuyn i a ch b nh s kim tra các bit bo vc gán vi mi

phn t trong bng phân n  ngn chn các thao tác truy xut bt hp ln phân n tng ng.
Giáo trình Nguyên lý hu hành – KS. Trn Ngc Thái,  môn Tin hc – i hc DL Hi Phòng
Tài liu lu hành ni b - 7 -
Chia s phân n: Mt u im khác ca k thut phân n là kh nng chia s mc  phân
on. Nh kh nng này, các tin trình có th chia s vi nhau tng phn chng trình ( ví d các th
tc, hàm), không nht thit phi chia s toàn b chng trình nh trng hp phân trang. Mi tin trình
có mt bng phân n riêng, mt phân n c chia s khi các phn t trong bng phân n ca
hai tin trình khác nhau cùng chn mt v trí vt lý duy nht.
Hình 4.21 Chia s code trong h phân n
Phi gii quyt vn  cp phát ng: làm th nào  tha mãn mt yêu cu vùng nh kích thc N ?
Cn phi chn vùng nh nào trong danh sách vùng nh t do  cp phát ? Nh vy cn phi ghi nh
hin trng b nh có th cp phát úng. Có hai phng pháp qun lý ch yu :
Qun lý bng mt bng các bit : b nhc chia thành các n v cp phát, mi n vc phn
ánh bng mt bit trong bng các bit, mt bit nhn giá tr 0 nu n v b nh tng ng ang t do, và
nhn giá tr 1 nu n v tng ng ã c cp phát cho mt tin trình. Khi cn np mt tin trình có
kích thc kn v, cn phi tìm trong bng các bit mt dãy con k bit nhn giá tr 0. ây là mt gii
pháp n gin, nhng thc hin chm nên ít c s dng.
Hình 4.5 Qun lý b nh bng bng các bit
Qun lý bng danh sách: T chc mt danh sách các phân n ã cp phát và phân on t do, mt
phân on có th là mt tin trình (P) hay vùng nh trng gia hai tin trình (H).
Giáo trình Nguyên lý hu hành – KS. Trn Ngc Thái,  môn Tin hc – i hc DL Hi Phòng
Tài liu lu hành ni b - 8 -
Hình 4.6 Qun lý b nh bng danh sách
Các thut toán thông dng  chn mt phân on t do trong danh sách  cp phát cho tin trình là :
First-fit: cp phát phân n t do u tiên  ln.
Best-fit: cp phát phân n t do nh nht nhng  ln  thõa mãn nhu cu.
Worst-fit : cp phát phân n t do ln nht.
Trong h thng s dng k thut phân n , hin tng phân mnh ngoi vi li xut hin khi các
khi nh t do u quá nh, không  cha mt phân n.
3.4.2. Phân trang ( Paging)

Ý tng:
Phân b nh vt lý thành các khi (block) có kích thc cnh và bng nhau, gi là khung trang
(page frame). Không gian a ch cng c chia thành các khi có cùng kích thc vi khung trang,
và c gi là trang (page). Khi cn np mt tin trình  x lý, các trang ca tin trình sc np
vào nhng khung trang còn trng. Mt tin trình kích thc N trang s yêu cu N khung trang t do.
Hình 4.8 Mô hình b nh phân trang
 ch MMU trong k thut phân trang:
 ch phn cng h tr thc hin chuyn i a ch trong c ch phân trang là bng trang (pages
table). Mi phn t trong bng trang cho bit các a ch bt u ca v trí lu tr trang tng ng
trong b nh vt lý ( s hiu khung trang trong b nh vt lý ang cha trang ).
Chuyn i a ch:
Mi a ch phát sinh bi CPU c chia thành hai phn:
s hiu trang (p): s dng nh ch mc n phn t tng ng trong bng trang.
a ch tng i trong trang (d): kt hp vi a ch bt u ca trang  to ra a ch vt lý mà trình
qun lý b nh s dng.
Giáo trình Nguyên lý hu hành – KS. Trn Ngc Thái,  môn Tin hc – i hc DL Hi Phòng
Tài liu lu hành ni b - 9 -
Kích thc ca trang do phn cng qui nh.  d phân tích a cho thành s hiu trang và a ch
ng i, kích thc ca mt trang thông thng là mt ly tha ca 2 (bin i trong phm vi 512
bytes và 8192 bytes). Nu kích thc ca không gian a ch là 2
m
và kích thc trang là 2
n
, thì m-n
bits cao ca a cho s biu din s hiu trang, và n bits thp cho bit a ch tng i trong trang.
p d
m-n n
Cài t bng trang:
Trong trng hp n gin nht, bng trang mt tp các thanh ghi c s dng  cài t bng trang.
Tuy nhiên vic s dng thanh ghi ch phù hp vi các bng trang có kích thc nh, nu bng trang có

kích thc ln, nó phi c lu tr trong b nh chính, và s dng mt thanh ghi  lu a ch bt
u lu tr bng trang (PTBR).
Theo cách t chc này, mi truy xut n d liu hay ch thu òi hi hai ln truy xut b nh :
mt cho truy xut n bng trang và mt cho bn thân d liu!
Hình 4.10 Mô hình b nh phân trang
Giáo trình Nguyên lý hu hành – KS. Trn Ngc Thái,  môn Tin hc – i hc DL Hi Phòng
Tài liu lu hành ni b - 10 -
Hình 4.11 S dng thanh ghi nn trn bng trang
Có th né tránh bt vic truy xut b nh hai ln bng cách s dng thêm mt vùng nhc bit ,
vi tc  truy xut nhanh và cho phép tìm kim song song, vùng nh cache nh này thng c gi
là b nh kt hp (TLBs). Mi thanh ghi trong b nh kt hp gm mt t khóa và mt giá tr, khi a
n b nh kt hp mt i tng cn tìm, i tng này sc so sánh cùng lúc vi các t khóa
trong b nh kt hp  tìm ra phn t tng ng. Nhc tính này mà vic tìm kim trên b nh kt
hp c thc hin rt nhanh, nhng chi phí phn cng li cao.
Trong k thut phân trang, TLBs c s dng  lu tr các trang b nhc truy cp gn hin
ti nht. Khi CPU phát sinh mt a ch, s hiu trang ca a ch sc so sánh vi các phn t trong
TLBs, nu có trang tng ng trong TLBs, thì s xác nh c ngay s hiu khung trang tng ng,
nu không mi cn thc hin thao tác tìm kim trong bng trang.
T chc bng trang:
Mi hu hành có mt phng pháp riêng  t chc lu tr bng trang. a s các hu hành cp
cho mi tin trình mt bng trang. Tuy nhiên phng pháp này không th chp nhn c nu hu
hành cho phép qun lý mt không gian a ch có dung lng quá (2
32
, 2
64
): trong các h thng nh
th, bn thân bng trang òi hi mt vùng nh qúa ln! Có hai gii pháp cho vn  này:
Phân trang a cp: phân chia bng trang thành các phn nh, bn thân bng trang cng sc phân
trang
Giáo trình Nguyên lý hu hành – KS. Trn Ngc Thái,  môn Tin hc – i hc DL Hi Phòng

Tài liu lu hành ni b - 11 -
Bng trang nghch o: s dng duy nht mt bng trang nghch o cho tt c các tin trình . Mi
phn t trong bng trang nghch o phn ánh mt khung trang trong b nh bao gm a ch logic
ca mt trang ang c lu tr trong b nh vt lý ti khung trang này, cùng vi thông tin v tin
trình ang c s hu trang. Mi a cho khi ó là mt b ba <idp, p, d >
Trong ó : idp là nh danh ca tin trình
p là s hiu trang
d là a ch tng i trong trang
Mi phn t trong bng trang nghch o là mt cp <idp, p >. Khi mt tham kho n b nhc
phát sinh, mt phn a cho là <idp, p > c a n cho trình qun lý b nh tìm phn t tng
ng trong bng trang nghch o, nu tìm thy, a ch vt lý <i,d> sc phát sinh. Trong các trng
hp khác, xem nh tham kho b nhã truy xut mt a ch bt hp l.
Bo v:
 ch bo v trong h thng phân trang c thc hin vi các bit bo vc gn vi mi khung
trang. Thông thng , các bit này c lu trong bng trang , vì mi truy xut n b nhu phi
tham kho n bng trang  phát sinh a ch vt lý, khi ó, h thng có th kim tra các thao tác truy
xut trên khung trang tng ng có hp l vi thuc tính bo v ca nó không.
Ngoài ra, mt bit ph tri c thêm vào trong cu trúc mt phn t ca bng trang : bit hp l-bt hp
l (valid-invalid).
Giáo trình Nguyên lý hu hành – KS. Trn Ngc Thái,  môn Tin hc – i hc DL Hi Phòng
Tài liu lu hành ni b - 12 -
Hp l : trang tng ng thuc v không gian a ch ca tin trình.
Bt hp l : trang tng ng không nm trong không gian a ch ca tin trình, iu này có ngha tin
trình ã truy xut n mt a ch không c phép.
Hình 4.15 Cu trúc mt phn t trong bng trang
Chia s b nh trong c ch phân trang:
Mt u im ca c ch phân trang là cho phép chia s các trang gia các tin trình.Trong trng hp
này, s chia sc thc hin bng cách ánh x nhiu a ch logic vào mt a ch vt lý duy nht. Có
th áp dng k thut này  cho phép có tin trình chia s mt vùng code chung: nu có nhiu tin
trình ca cùng mt chng trình, ch cn lu tr mt n code ca chng trình này trong b nh, các

tin trình s có th cùng truy xut n các trang cha code chung này. Lu ý  có th chia s mt
on code, n code này phi có thuc tính reenterable (cho phép mt bn sao ca chng trình c
s dng ng thi bi nhiu tác v).
K thut phân trang loi bc hin tng phân mnh ngoi vi : mi khung trang u có thc
cp phát cho mt tin trình nào ó có yêu cu. Tuy nhiên hin tng phân mnh ni vi vn có th xy
ra khi kích thc ca tin trình không úng bng bi s ca kích thc mt trang, khi ó, trang cui
cùng s không c s dng ht.
Mt khiá cnh tích cc rt quan trng khác ca k thut phân trang là s phân bit rch ròi góc nhìn
ca ngi dùng và ca b phn qun lý b nh vt lý:
Góc nhìn ca ngi s dng: mt tin trình ca ngi dùng nhìn thy b nh nh là mt không gian
liên tc, ng nht và ch cha duy nht bn thân tin trình này.
Góc nhìn ca b nh vt lý: mt tin trình ca ngi s dng c lu tr phân tán khp b nh vt
lý, trong b nh vt lý ng thi cng cha nhng tin trình khác.
Phn cng m nhim vic chuyn i a ch logic thành a ch vt lý . S chuyn i này là trong
sut i vi ngi s dng.
Giáo trình Nguyên lý hu hành – KS. Trn Ngc Thái,  môn Tin hc – i hc DL Hi Phòng
Tài liu lu hành ni b - 13 -
 u tr các thông tin chi tit v quá trình cp phát b nh, hu hành s dng mt bng khung
trang, mà mi phn t mô t tình trng ca mt khung trang vt lý : t do hay c cp phát cho mt
tin trình nào ó .
u ý rng s phân trang không phn ánh úng cách thc ngi s dng cm nhn v b nh.
Ngi s dng nhìn thy b nh nh mt tp các i tng ca cng trình (segments, các th
vin ) và mt tp các i tng d liu (bin toàn cc, stack, vùng nh chia s ). Vn t ra là cn
tìm mt cách thc biu din b nh sao cho có th cung cp cho ngi dùng mt cách nhìn gn vi
quan im logic ca h hn và ó là k thut phân n
K thut phân n thõa mãn c nhu cu th hin cu trúc logic ca chng trình nhng nó dn
n tình hung phi cp phát các khi nh có kích thc khác nhau cho các phân n trong b nh
vt lý. u này làm rc ri vn  hn rt nhiu so vi vic cp phát các trang có kích thc tnh.Mt
gii pháp dung hoà là kt hp c hai k thut phân trang và phân on : chúng ta tin hành phân trang
các phân on.

3.4.3. Phân on kt hp phân trang (Paged segmentation)
Ý tng: Không gian a ch là mt tp các phân n, mi phân n c chia thành nhiu trang.
Khi mt tin trình c a vào h thng, hu hành s cp phát cho tin trình các trang cn thit 
cha  các phân on ca tin trình.
 ch MMU trong k thut phân n kt hp phân trang:
 h tr k thut phân n, cn có mt bng phân n, nhng gi ây mi phân n cn có mt
bng trang phân bit.
Chuyn i a ch:
Mi a ch logic là mt b ba: <s,p,d>
s hiu phân n (s): s dng nh ch mc n phn t tng ng trong bng phân n.
s hiu trang (p): s dng nh ch mc n phn t tng ng trong bng trang ca phân n.
a ch tng i trong trang (d): kt hp vi a ch bt u ca trang  to ra a ch vt lý mà
trình qun lý b nh s dng.
Giáo trình Nguyên lý hu hành – KS. Trn Ngc Thái,  môn Tin hc – i hc DL Hi Phòng
Tài liu lu hành ni b - 14 -
Hình 4.22 Mô hình phân on k hp phân trang
Tt c các mô hình t chc b nh trên ây u có khuynh hng cp phát cho tin trình toàn b các
trang yêu cu trc khi tht s x lý. Vì b nh vt lý có kích thc rt gii hn, u này dn n hai
im bt tin sau :
Kích thc tin trình b gii hn bi kích thc ca b nh vt lý.
Khó có th bo trì nhiu tin trình cùng lúc trong b nh, và nh vy khó nâng cao mc a chng
ca h thng.
Tóm tt
Có nhiu cách tip cn khác nhau  t chc quãn lý b nh, nhng tu chung mong t n các mc
tiêu sau :
Có tháp ng c y  các nhu cu b nh ca chng trình vi mt b nh vt lý gii hn
Giáo trình Nguyên lý hu hành – KS. Trn Ngc Thái,  môn Tin hc – i hc DL Hi Phòng
Tài liu lu hành ni b - 15 -
Quá trình chuyn i a ch, t chc cp phát b nh là trong sut vi ngi dùng, và có kh nng
tái nh v.

Tn dng hiu qu b nh ( ít có vùng nh không s dng c)
B nhc bo v tt
Có kh nng chia s b nh gia các tin trình
Mt s cách tip cn t chc b nh chính
Cp phát liên tc : có th cp phát các vùng nh liên tc cho các tin trình trong nhng phân vùng có
kích thc cnh hay bin ng. m yu ca cách tip cn này là kích thc các chng trình có
th dc x lý b gii hn bi các kích thc ca khi nh liên tc có th s dng. Các hin tng
phân mnh ngoi vi, ni vi u có th xut hin
Cp phát không liên tc : có th cp phát các vùng nh không liên tc cho mt tin trình. Hai k thut
thng c áp dng là phân trang và phân on. K thut phân trang cho phép loi bõ hin tng
phân mnh ngoi vi, k thut phân n loi b hin tng phân mnh ni vi, nhng phi gii quyt
vn  cp phát ng.
Cng c bài hc
Các câu hi cn tr li c sau bài hc này :
1. Nhim v qun lý b nh bao gm các công vic nào ? Giai on nào do hu hành thc hin ,
giai on nào cn s tr giúp ca phn cng?
2. Các khái nim : phân mnh ni vi, phân mnh ngoi vi, bài toán cp phát ng,  ch logic,  ch
physic
3. Phân tích u khuyt ca các mô hình t chc b nh.
3.5. B nho
B nh o là mt k thut hin i giúp cho ngi dùng c gii phóng hoàn toàn khi mi bn tâm
v gii hn b nh. Ý tng, u im và nhng vn  liên quan n vic t chc b nho sc
trình bày trong bài hc này.
3.5.1 Dn nhp
Nu t toàn th không gian a ch vào b nh vt lý, thì kích thc ca chng trình b gii hn bi
kích thc b nh vt lý.
Thc t, trong nhiu trng hp, chúng ta không cn phi np toàn b chng trình vào b nh vt lý
cùng mt lúc, vì ti mt thi m ch có mt ch th ca tin trình c x lý. Ví d, các chng trình
u có mt n code x lý li, nhng on code này hu nh rt ít khi c s dng vì him khi xy
ra li, trong trng hp này, không cn thit phi np n code x lý li tu.

T nhn xét trên, mt gii pháp c  xut là cho phép thc hin mt chng trình chc np
tng phn vào b nh vt lý. Ý tng chính ca gii pháp này là ti mi thi m ch lu tr trong b
nh vt lý các ch th và d liu ca chng trình cn thit cho vic thi hành ti thi m ó. Khi cn
n các ch th khác, nhng ch th mi sc np vào b nh, ti v trí trc ó b chim gi bi các
Giáo trình Nguyên lý hu hành – KS. Trn Ngc Thái,  môn Tin hc – i hc DL Hi Phòng
Tài liu lu hành ni b - 16 -
ch th nay không còn cn n na. Vi gii pháp này, mt chng trình có th ln hn kích thc ca
vùng nh cp phát cho nó.
Mt cách  thc hin ý tng ca gii pháp trên ây là s dng k thut overlay. K thut overlay
không òi hi bt k s tr giúp c bit nào ca hu hành , nhng trái li, lp trình viên phi bit
cách lp trình theo cu trúc overlay, và iu này òi hi khá nhiu công sc.
 gii phóng lp trình viên khi các suy t v gii hn ca b nh, mà cng không tng thêm khó
khn cho công vic lp trình ca h, ngi ta nghn các k thut tng, cho phép x lý mt
chng trình có kích thc ln ch vi mt vùng nh có kích thc nh . Gii pháp c tìm thy vi
khái nim b nho (virtual memory).
3.5.1.1. nh ngha
B nho là mt k thut cho phép x lý mt tin trình không c np toàn b vào b nh vt lý. B
nho mô hình hoá b nh nh mt bng lu tr rt ln và ng nht, tách bit hn khái nim không
gian a ch và không gian vt lý. Ngi s dng ch nhìn thy và làm vic trong không gian a cho,
vic chuyn i sang không gian vt lý do hu hành thc hin vi s tr giúp ca các c ch phn
cng c th.
Cn kt hp k thut swappingn chuyn các phn ca chng trình vào-ra gia b nh chính và b
nh ph khi cn thit.
Nh vic tách bit b nho và b nh vt lý, có th t chc mt b nho có kích thc ln hn b
nh vt lý.
B nho cho phép gim nh công vic ca lp trình viên vì h không cn bn tâm n gii hn ca
vùng nh vt lý, cng nh không cn t chc chng trình theo cu trúc overlays.
Hình 2.24 B nho
3.5.1.2. Cài t b nho
B nho thng c thc hin vi k thut phân trang theo yêu cu (demand paging). Cng có th

s dng k thut phân on theo yêu cu ( demand segmentation) cài t b nho, tuy nhiên vic
cp phát và thay th các phân n phc tp hn thao tác trên trang, vì kích thc không bng nhau
ca các on.
Phân trang theo yêu cu ( demand paging)
Giáo trình Nguyên lý hu hành – KS. Trn Ngc Thái,  môn Tin hc – i hc DL Hi Phòng
Tài liu lu hành ni b - 17 -
Mt h thng phân trang theo yêu cu là h thng s dng k thut phân trang kt hp vi k thut
swapping. Mt tin trình c xem nh mt tp các trang, thng trú trên b nh ph ( thng là a).
Khi cn x lý, tin trình sc np vào b nh chính. Nhng thay vì np toàn b chng trình, ch
nhng trang cn thit trong thi m hin ti mi c np vào b nh. Nh vy mt trang chc
np vào b nh chính khi có yêu cu.
Vi mô hình này, cn cung cp mt c ch phn cng giúp phân bit các trang ang  trong b nh
chính và các trang trên a. Có th s dng li bit valid-invalid nhng vi ng ngha mi:
valid : trang tng ng là hp l và ang  trong b nh chính .
invalid : hoc trang bt hp l (không thuc v không gian a ch ca tin trình) hoc trang hp l
nhng ang c lu trên b nh ph.
Mt phn t trong bng trang m t cho mt trang không nm trong b nh chính, sc ánh du
invalid và cha a ch ca trang trên b nh ph.
 ch phn cng :
 ch phn cng h tr k thut phân trang theo yêu cu là s kt hp ca c ch h tr k thut
phân trang và k thut swapping:
Bng trang: Cu trúc bng trang phi cho phép phn ánh tình trng ca mt trang là ang nm trong
b nh chính hay b nh ph.
B nh ph: B nh ph lu tr nhng trang không c np vào b nh chính. B nh ph thng
c s dng là a, và vùng không gian a dùng  lu tr tm các trang trong k thut swapping
c gi là không gian swapping.
Hình 2.24 Bng trang vi mt s trang trên b nh ph
Li trang
Giáo trình Nguyên lý hu hành – KS. Trn Ngc Thái,  môn Tin hc – i hc DL Hi Phòng
Tài liu lu hành ni b - 18 -

Truy xut n mt trang c ánh du bt hp l s làm phát sinh mt li trang (page fault). Khi dò
tìm trong bng trang  ly các thông tin cn thit cho vic chuyn i a ch, nu nhn thy trang
ang c yêu cu truy xut là bt hp l, c ch phn cng s phát sinh mt ngt  báo cho hu
hành. Hu hành s x lý li trang nh sau :
Kim tra truy xut n b nh là hp l hay bt hp l
Nu truy xut bt hp l : kt thúc tin trình
Ngc li : n bc 3
Tìm v trí cha trang mun truy xut trên a.
Tìm mt khung trang trng trong b nh chính :
Nu tìm thy : n bc 5
Nu không còn khung trang trng, chn mt khung trang « nn nhân » và chuyn trang « nn nhân »
ra b nh ph (lu ni dung ca trang ang chim gi khung trang này lên a), cp nht bng trang
ng ng ri n bc 5
Chuyn trang mun truy xut t b nh ph vào b nh chính : np trang cn truy xut vào khung
trang trng ã chn (hay va mi làm trng ) ; cp nht ni dung bng trang, bng khung trang tng
ng.
Tái kích hot tin trình ngi s dng.
Hình 2.26 Các giai on x lý li trang
3.5.2. Thay th trang
Khi xy ra mt li trang, cn phi mang trang vng mt vào b nh . Nu không có mt khung trang
nào trng, hu hành cn thc hin công vic thay th trang – chn mt trang ang nm trong b
nh mà không c s dng ti thi m hin ti và chuyn nó ra không gian swapping trên a 
gii phóng mt khung trang dành ch np trang cn truy xut vào b nh.
Giáo trình Nguyên lý hu hành – KS. Trn Ngc Thái,  môn Tin hc – i hc DL Hi Phòng
Tài liu lu hành ni b - 19 -
Nh vy nu không có khung trang trng, thì mi khi xy ra li trang cn phi thc hin hai thao tác
chuyn trang : chuyn mt trang ra b nh ph và np mt trang khác vào b nh chính. Có th gim
bt s ln chuyn trang bng cách s dng thêm mt bit cp nht (dirty bit). Bit này c gn vi mi
trang  phn ánh tình trng trang có b cp nht hay không : giá tr ca bit c c ch phn cng t
là 1 mi ln có mt tc ghi vào trang,  ghi nhn ni dung trang có b sa i. Khi cn thay th

mt trang, nu bit cp nht có giá tr là 1 thì trang cn c lu li trên a, ngc li, nu bit cp nht
là 0, ngha là trang không b thay i, thì không cn lu tr trang tr li a.
s hiu trang
bit valid-invalid dirty
bit
Hình 4.27 Cu trúc mt phn t trong bng trang
S thay th trang là cn thit cho k thut phân trang theo yêu cu. Nh c ch này, h thng có th
hoàn toàn tách ri b nho và b nh vt lý, cung cp cho lp trình viên mt b nho rt ln trên
mt b nh vt lý có th bé hn rt nhiu ln.
3.5.2.1. S thi hành phân trang theo yêu cu
Vic áp dng k thut phân trang theo yêu cu có thnh hng mnh n tình hình hot ng ca h
thng.
Ga s p là xác sut xy ra mt li trang (0≤ p ≤ 1):
p = 0 : không có li trang nào
p = 1 : mi truy xut s phát sinh mt li trang
Thi gian tht s cn  thc hin mt truy xut b nh (TEA) là:
TEA = (1-p)ma + p (tdp) [+ swap out ] + swap in + tái kích hot
Trong công thc này, ma là thi gian truy xut b nh, tdp thi gian x lý li trang.
Có th thy rng,  duy trì  mt mc  chp nhn c s chm tr trong hot ng ca h thng
do phân trang, cn phi duy trì t l phát sinh li trang thp.
n na,  cài t k thut phân trang theo yêu cu, cn phi gii quyt hai vn  chính yu : xây
dng mt thut toán cp phát khung trang, và thut toán thay th trang.
3.5.2.2. Các thut toán thay th trang
Vn  chính khi thay th trang là chn la mt trang « nn nhân »  chuyn ra b nh ph. Có nhiu
thut toán thay th trang khác nhau, nhng tt c cùng chung mt mc tiêu : chn trang « nn nhân »
là trang mà sau khi thay th s gây ra ít li trang nht.
Có thánh giá hiu qa ca mt thut toán bng cách x lý trên mt chui các a ch cn truy xut
và tính toán s lng li trang phát sinh.
Giáo trình Nguyên lý hu hành – KS. Trn Ngc Thái,  môn Tin hc – i hc DL Hi Phòng
Tài liu lu hành ni b - 20 -

Ví d: Gi s theo vt x lý ca mt tin trình và nhn thy tin trình thc hin truy xut các a ch
theo th t sau :
0100, 0432, 0101, 0162, 0102, 0103, 0104, 0101, 0611, 0102, 0103,0104, 0101, 0610, 0102, 0103,
0104, 0101, 0609, 0102, 0105
Nu có kích thc ca mt trang là 100 bytes, có th vit li chui truy xut trên gin lc hn nh sau
:
1, 4, 1, 6, 1, 6, 1, 6, 1
 xác nh s các li trang xy ra khi s dng mt thut toán thay th trang nào ó trên mt chui
truy xut c th, còn cn phi bit s lng khung trang s dng trong h thng.
 minh ho các thut toán thay th trang s trình bày, chui truy xut c s dng là :
7, 0, 1, 2, 0, 3, 0, 4, 2, 3, 0, 3, 2, 1, 2, 0, 1, 7, 0, 1
3.5.2.2.1. Thut toán FIFO
Tip cn: Ghi nhn thi m mt trang c mang vào b nh chính. Khi cn thay th trang, trang 
trong b nh lâu nht sc chn
Ví d : s dng 3 khung trang , ban u c 3 u trng :
7 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0 1 7 0 1
7 7 7 2 2 2 2 4 4 4 0 0 0 0 0 0 0 7 7 7
0 0 0 0 3 3 3 2 2 2 2 2 1 1 1 1 1 0 0
1 1 1 1 0 0 0 3 3 3 3 3 2 2 2 2 2 1
* * * * * * * * * * * * * * *
Ghi chú : * : có li trang
 áp dng thut toán FIFO, thc t không nht thit phi ghi nhn thi m mi trang c np vào
b nh, mà ch cn t chc qun lý các trang trong b nh trong mt danh sách FIFO, khi ó trang u
danh sách sc chn  thay th.
Thut toán they th trang FIFO d hiu, d cài t. Tuy nhiên khi thc hin không phi lúc nào cng
có kt qa tt : trang c chn  thay th có th là trang chc nhiu d liu cn thit, thng xuyên
c s dng nên c np sm, do vy khi b chuyn ra b nh ph s nhanh chóng gây ra li trang.
S lng li trang xy ra s tng lên khi s lng khung trang s dng tng. Hin tng này gi là
nghch lý Belady.
Ví d

: 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5
S dng 3 khung trang , s có 9 li trang phát sinh
1 2 3 4 1 2 5 1 2 3 4 5
Giáo trình Nguyên lý hu hành – KS. Trn Ngc Thái,  môn Tin hc – i hc DL Hi Phòng
Tài liu lu hành ni b - 21 -
1 1 1 4 4 4 5 5 5 5 5 5
2 2 2 1 1 1 1 1 3 3 3
3 3 3 2 2 2 2 2 4 4
* * * * * * * * *
S dng 4 khung trang , s có 10 li trang phát sinh
1 2 3 4 1 2 5 1 2 3 4 5
1 1 1 1 1 1 5 5 5 5 4 4
2 2 2 2 2 2 1 1 1 1 5
3 3 3 3 3 3 2 2 2 2
4 4 4 4 4 4 3 3 3
* * * * * * * * * *
3.5.2.2.2. Thut toán ti u
Tip cn: Thay th trang s lâu c s dng nht trong tng lai.
Ví d : s dng 3 khung trang, khi u u trng:
7 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0 1 7 0 1
7 7 7 2 2 2 2 2 2 2 2 2 2 2 2 2 2 7 7 7
0 0 0 0 0 0 4 4 4 0 0 0 0 0 0 0 0 0 0
1 1 1 3 3 3 3 3 3 3 3 1 1 1 1 1 1 1
* * * * * * * * *
Thut toán này bo m s lng li trang phát sinh là thp nht , nó cng không gánh chu nghch lý
Belady, tuy nhiên, ây là mt thut toán không kh thi trong thc t, vì không th bit trc chui truy
xut ca tin trình!
3.5.2.2.3. Thut toán « Lâu nht cha s dng » ( Least-recently-used LRU)
Tip cn: Vi mi trang, ghi nhn thi m cui cùng trang c truy cp, trang c chn  thay
th s là trang lâu nht cha c truy xut.

Ví d: s dng 3 khung trang, khi u u trng:
7 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0 1 7 0 1
7 7 7 2 2 2 2 4 4 4 0 0 0 1 1 1 1 1 1 1
0 0 0 0 0 0 0 0 3 3 3 3 3 3 0 0 0 0 0
1 1 1 3 3 3 2 2 2 2 2 2 2 2 2 7 7 7
Giáo trình Nguyên lý hu hành – KS. Trn Ngc Thái,  môn Tin hc – i hc DL Hi Phòng
Tài liu lu hành ni b - 22 -
* * * * * * * * * * * *
Thut toán FIFO s dng thi m np  chn trang thay th, thut toán ti u li dùng thi m
trang sc s dng, vì thi m này không th xác nh trc nên thut toán LRU phi dùng thi
im cui cùng trang c truy xut – dùng quá kh gn  doán tng lai.
Thut toán này òi hi phi c c ch phn cng h tr xác nh mt th t cho các trang theo
thi m truy xut cui cùng. Có th cài t theo mt trong hai cách :
S dng bm:
thêm vào cu trúc ca mi phn t trong bng trang mt trng ghi nhn thi m truy xut mi nht,
và thêm vào cu trúc ca CPU mt bm.
mi ln có s truy xut b nh, giá tr ca counter tng lên 1.
Mi ln thc hin truy xut n mt trang, giá tr ca counter c ghi nhn vào trng thi m truy
xut mi nht ca phn t tng ng vi trang trong bng trang.
thay th trang có giá tr trng thi m truy xut mi nht là nh nht.
S dng stack:
t chc mt stack lu tr các s hiu trang
mi khi thc hin mt truy xut n mt trang, s hiu ca trang sc xóa khi v trí hin hành
trong stack và a lên u stack.
trang nh stack là trang c truy xut gn nht, và trang áy stack là trang lâu nht cha c s
dng.
3.5.2.2.4. Các thut toán xp x LRU
Có ít h thng c cung cp  các h tr phn cng  cài t c thut toán LRU tht s. Tuy
nhiên, nhiu h thng c trang b thêm mt bit tham kho ( reference):
mt bit reference, c khi gán là 0, c gn vi mt phn t trong bng trang.

bit reference ca mt trang c phn cng t giá tr 1 mi ln trang tng ng c truy cp, và
c phn cng gán tr v 0 sau tng chu k qui nh trc.
Sau tng chu k qui nh trc, kim tra giá tr ca các bit reference, có th xác nh c trang nào
ã c truy xut n và trang nào không, sau khi ã kim tra xong, các bit reference c phn cng
gán tr v 0 .
vi bit reference, có th bit c trang nào ã c truy xut, nhng không bit c th t truy
xut. Thông tin không y  này dn n nhiu thut toán xp x LRU khác nhau.
s hiu trang
bit valid-invalid dirty bit bit reference
Hình 4.28 Cu trúc mt phn t trong bng trang
Giáo trình Nguyên lý hu hành – KS. Trn Ngc Thái,  môn Tin hc – i hc DL Hi Phòng
Tài liu lu hành ni b - 23 -
a) Thut toán vi các bit reference ph tr
Tip cn: Có th thu thp thêm nhiu thông tin v th t truy xut hn bng cách lu tr các bit
references sau tng khong thi gian u n:
vi mi trang, s dng thêm 8 bit lch s (history)trong bng trang
sau tng khong thi gian nht nh (thng là100 millisecondes), mt ngt ng hc phát sinh,
và quyn u khin c chuyn cho hu hành. Hu hành t bit reference ca mi trang vào
bit cao nht trong 8 bit ph tr catrang ó bng cách y các bit khác sang phi 1 v trí, b luôn bit
thp nht.
nh vy 8 bit thêm vào này s l u tr tình hình truy xut n trang trong 8 chu k cui cùng.
nu gía tr ca 8 bit là 00000000, thì trang tng ng ã không c dùng n sut 8 chu k cui
cùng, ngc li nu nó c dùng n ít nht 1 ln trong mi chu k, thì 8 bit ph tr s là 11111111.
Mt trang mà 8 bit ph tr có giá tr11000100 sc truy xut gn thi m hin ti hn trang có 8
bit ph tr là 01110111.
nu xét 8 bit ph tr này nh mt s nguyên không du, thì trang LRU là trang có s ph tr nh nht.
Ví d :
0 0 1 0 0 0 1 1 1 0
HR =11000100
HR =11100010

HR =01110001
S lng các bit lch s có th thay i tùy theo phn cng, và phi c chn sao cho vic cp nht là
nhanh nht có th.
b) Thut toán « c hi th hai »
Tip cn: S dng mt bit reference duy nht. Thut toán c s vn là FIFO, tuy nhiên khi chn c
mt trang theo tiêu chun FIFO, kim tra bit reference ca trang ó :
Nu giá tr ca bit reference là 0, thay th trang ã chn.
Ngc li, cho trang này mt c hi th hai, và chn trang FIFO tip theo.
Khi mt trang c cho c hi th hai, giá tr ca bit reference c t li là 0, và thi m vào
Ready List c cp nht li là thi m hin ti.
Mt trang ã c cho c hi th hai s không b thay th trc khi h thng ã thay th ht nhng
trang khác. Hn na, nu trang thng xuyên c s dng, bit reference ca nó s duy trì c giá tr
1, và trang hu nh không bao gi b thay th.
Có th cài t thut toán «  hi th hai » vi mt xâu vòng.
Giáo trình Nguyên lý hu hành – KS. Trn Ngc Thái,  môn Tin hc – i hc DL Hi Phòng
Tài liu lu hành ni b - 24 -
Hình 2.29 Thut toán thay th trang <<c hi th hai >>
c) Thut toán «  hi th hai » nâng cao (Not Recently Used - NRU)
Tip cn : xem các bit reference và dirty bit nh mt cp có th t .
Vi hai bit này, có th có 4 t hp to thành 4 lp sau :
(0,0) không truy xut, không sa i: ây là trang tt nht  thay th.
(0,1) không truy xut gn ây, nhng ã b sa i: trng hp này không tht tt, vì trang cn c
u tr li trc khi thay th.
(1,0) c truy xut gn ây, nhng không b sa i: trang có th nhanh chóng c tip tc c s
dng.
(1,1) c truy xut gn ây, và b sa i: trang có th nhanh chóng c tip tc c s dng, và
trc khi thay th cn phi c lu tr li.
lp 1 có  u tiên thp nht, và lp 4 có  u tiên cao nht.
mt trang s thuc v mt trong bn lp trên, tu vào bit reference và dirty bit ca trang ó.
trang c chn  thay th là trang u tiên tìm thy trong lp có  u tiên thp nht và khác rng.

d) Các thut toán thng kê
Tip cn: s dng mt bin m lu tr s ln truy xut n mt trang, và phát trin hai thut toán
sau :
Thut toán LFU: thay th trang có giá tr bin m nh nht, ngha là trang ít c s dng nht.
Giáo trình Nguyên lý hu hành – KS. Trn Ngc Thái,  môn Tin hc – i hc DL Hi Phòng
Tài liu lu hành ni b - 25 -
Thut toán MFU: thay th trang có giá tr bin m ln nht, ngha là trang c s dng nhiu nht
(most frequently used).
3.5.3. Cp phát khung trang
Vn t ra là làm th nào  cp phát mt vùng nh t do có kích thc cnh cho các tin trình
khác nhau?
Trong trng hp n gin nht ca b nho là hn nhim, có th cp phát cho tin trình duy nht
ca ngi dùng tt c các khung trang trng.
Vn  ny sinh khi kt hp k thut phân trang theo yêu cu vi sa chng : cn phi duy trì nhiu
tin trình trong b nh cùng lúc, vy mi tin trình sc cp bao nhiêu khung trang.
S khung trang ti thiu:
Vi mi tin trình, cn phi cp phát mt s khung trang ti thiu nào ó  tin trình có th hot ng.
S khung trang ti thiu này c quy nh bi kin trúc ca ca mt ch th.Khi mt li trang xy ra
trc khi ch th hin hành hoàn tt, ch thó cn c tái khi ng, lúc ó cn có  các khung
trang  np tt c các trang mà mt ch th duy nht có th truy xut.
S khung trang ti thiu c qui nh bi kin trúc máy tính, trong khi s khung trang ti a c xác
nh bi dung lng b nh vt lý có th s dng.
Các thut toán cp phát khung trang
Có hai hng tip cn:
Cp phát cnh:
Cp phát công bng: nu có m khung trang và n tin trình, mi tin trình c cp m /n khung trang.
Cp phát theo t l: tùy vào kích thc ca tin trình  cp phát s khung trang :
si = kích thc ca b nho cho tin trình pi
S = Σ si
m = s lng tng cng khung trang có th s dng

Cp phát ai khung trang cho tin trình pi: ai = (si / S) m
Cp phát theo  u tiên : s dng ý tng cp phát theo t l, nhng nhng s lng khung trang cp
cho tin trình ph thuc vào  u tiên ca tin trình, hn là ph thuc kích thc tin trình:
Nu tin trình pi phát sinh mt li trang, chn mt trong các khung trang ca nó  thay th, hoc chn
mt khung trang ca tin trình khác vi  u tiên thp hn  thay th.
Thay th trang toàn cc hay cc b
Có th phân các thut toán thay th trang thành hai lp chính:

×