You are on page 1of 237

CNG MN HC

MN: H IU HNH
M MN HC: TH338
S VHT: 3
HC K: 6
GING VIN: NGUYN PH TRNG

I MC CH YU CU
Gip sinh vin hiu c vai tr ca h iu hnh v c ch hot ng ca h iu
hnh.
Cch thit k h iu hnh
Cch ng dng cc c ch trong vic thit k cc h iu hnh hin i
II KIN THC NN CN THIT

Mc yu cu
STT Ni dung kin thc nn
Tin quyt
Vn dng khi
nim/ m hnh
Vn dng k nng/
phng php
1 Kin trc my tnh x

III KIN THC TON CN THIT

STT Ni dung kin thc Mc yu cu
Hiu
Khi
nim
Vn dng
Cng thc/
nh l
Chng minh
Cng thc/
nh l
Vn dng
Phng php
1 Gii thut x
2 Ngn ng Pascal v C x

IV TM TT NI DUNG MN HC
M t cc im chnh yu ca h iu hnh
Vai tr v nng lc ca h iu hnh trong h thng my tnh.
Nhng vn pht sinh trong qu trnh thit k h iu hnh cng nh nhng tip
cn khc nhau c dng phn tch v gii quyt nhng vn .
Xem xt nhng chin lc h iu hnh ph bin v cch chng tc ng n nhng
dch v ca cc h iu hnh hin i.
V CNG CHI TIT CC CHNG
CHNG I - TNG QUAN V H IU HNH1
I.1 Mc tiu
I.2 Gii thiu
I.3 H iu hnh l g?
I.4 H thng mainframe
I.5 H bn (Desktop system)
I.6 H a x l
I.7 H phn tn
I.8 H thng nhm (Clustered Systems)
I.9 H thi thc
I.10 H xch tay
I.11 Tm tt
CHNG II - CU TRC H IU HNH
II.1 Mc ch
II.2 Gii thiu
II.3 Cc thnh phn h thng
II.4 Cc dch v h iu hnh
II.5 Li gi h thng
II.6 Cc chng trnh h thng
II.7 Cu trc h thng
II.8 My o
II.9 Tm tt
CHNG III - QU TRNH
III.1 Mc ch
III.2 Gii thiu
III.3 Khi nim qu trnh
III.4 Lp thi biu qu trnh
III.5 Thao tc trn qu trnh
III.6 Giao tip lin qu trnh
III.7 Tm tt
CHNG IV - NH THI BIU CPU
IV.1 Mc tiu
IV.2 Gii thiu
IV.3 Cc khi nim c bn
IV.4 Cc tiu chun nh thi
IV.5 Cc gii thut nh thi
IV.6 nh thi biu a b x l
IV.7 nh thi thi gian thc
IV.8 nh gi gii thut
IV.9 Tm tt
CHNG V - NG B HO QU TRNH
V.1 Mc tiu
V.2 Gii thiu
V.3 Tng quan
V.4 Vn vng tng trc
V.5 Gii php
V.6 Cc bi ton ng b ho nguyn thu
V.7 Tm tt
CHNG VI - DEADLOCK
VI.1 Mc ch
VI.2 Gii thiu
VI.3 M hnh h thng
VI.4 c im deadlock
VI.5 Cc phng php x l deadlock
VI.6 Ngn chn deadlock
VI.7 Trnh deadlock
VI.8 Pht hin Deadlock
VI.9 Phc hi deadlock
VI.10 Tm tt
CHNG VII - QUN L B NH
VII.1 Mc ch
VII.2 Gii thiu
VII.3 t vn
VII.4 Hon v
VII.5 Cp pht b nh lin tc
VII.6 Cp pht khng lin tc
VII.7 Tm tt
CHNG VIII - B NH O
VIII.1 Mc ch
VIII.2 Gii thiu
VIII.3 Kin thc nn
VIII.4 Phn trang theo yu cu
VIII.5 Thay th trang
VIII.6 Cp pht khung trang
VIII.7 Tr tr ton h thng
VIII.8 Cc vn khc
VIII.9 Tm tt
CHNG IX - H THNG TP TIN
IX.1 Mc ch
IX.2 Gii thiu
IX.3 Khi nim tp tin
IX.4 Cc phng php truy xut
IX.5 Cu trc th mc
IX.6 Gn h thng tp tin
IX.7 Chia s tp tin
IX.8 Bo v
IX.9 Tm tt
CHNG X - CI T H THNG TP TIN
X.1 Mc ch
X.2 Gii thiu
X.3 Cu trc h thng tp tin
X.4 Ci t h thng tp tin
X.5 Ci t th mc
X.6 Cc phng php cp pht
X.7 Qun l khng gian trng
X.8 Tm tt
CHNG XI - QUN L H THNG NHP/XUTT
XI.1 Mc ch
XI.2 Gii thiu
XI.3 Cc khi nim c bn
XI.4 Phn cng nhp/xut
XI.5 Giao din nhp/xut ng dng
XI.6 H thng con nhp/xut ca nhn (kernel I/O subsytem)
XI.7 Chuyn nhp/xut ti hot ng phn cng
XI.8 Nng lc
XI.9 Tm tt
VI TI LIU THAM KHO
1. [Jean Bacon & Tim Harris], Operating Systems, Addison-Wesley, 2003.
2. [Nguyn Hong Vit], Bi ging H iu Hnh, Khoa CNTT-H Cn Th, 1998
3. [Silberschatz, Galvin, Gagne], Operating System Concepts, John Wiley & Sons,
2003
4. [L Khc Nhin n, Hong Kim], Gio trnh Nhp mn h iu hnh, i hc
Khoa hc T nhin, 2003.
5. [Trn Hnh Nhi, Hong Kim], Gio trnh h iu hnh nng cao, i hc Khoa
hc T nhin,1999.



VI.1.1 DUYT B MN
Ngy 23 thng 04 nm 2004
CN B BIN SON



Nguyn Ph Trng

i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

TNG QUAN V H IU HNH
I Mc tiu
Sau khi hc xong chng ny, ngi hc nm c nhng kin thc sau:
o Hiu vai tr ca h iu hnh trong h thng my tnh
o Bit cc giai on pht trin ca h iu hnh
o Hiu s khc bit ca cc h iu hnh qua tng giai on
o Hiu cch gii quyt cc vn pht sinh trong tng h iu hnh
II Gii thiu
H iu hnh l mt chng trnh qun l phn cng my tnh. N cung cp nn
tng cho cc chng trnh ng dng v ng vai tr trung gian giao tip gia ngi
dng my tnh v phn cng ca my tnh . H iu hnh thit lp cho cc tc v
ny rt a dng. Mt vi h iu hnh thit k tin dng trong khi mt s khc thit k
hiu qu hoc kt hp c hai.
hiu h iu hnh l g, trc ht chng ta phi hiu chng c pht trin
nh th no. Trong chng ny chng ta im li s pht trin ca h iu hnh t
nhng h th nghim u tin ti nhng h a chng v chia thi. Thng qua nhng
giai on khc nhau chng ta s thy cch thc m nhng thnh phn ca h iu
hnh c ci tin nh nhng gii php t nhin cho nhng vn trong nhng h
thng my tnh ban u. Xem xt nhng l do pha sau s pht trin ca h iu hnh
cho chng ta mt nh gi v nhng tc v g h iu hnh lm v cch h iu hnh
thc hin chng.
III H iu hnh l g?
Mt h iu hnh l mt thnh phn quan trng ca mi h thng my tnh. Mt h
thng my tnh c th c chia thnh bn thnh phn: phn cng, h iu hnh, cc
chng trnh ng dng v ngi dng.
o Phn cng (Hardware): bao gm b x l trung tm (CPU), b nh, thit
b xut/nhp,..cung cp ti nguyn c bn cho h thng.
o Cc chng trnh ng dng (application programs): trnh bin dch
(compiler), trnh son tho vn bn (text editor), h c s d liu (database
system), trnh duyt Web,..nh ngha cch m trong cc ti nguyn
c s dng gii quyt yu cu ca ngi dng.
o Ngi dng (user): c nhiu loi ngi dng khc nhau, thc hin nhng
yu cu khc nhau, do s c nhiu ng dng khc nhau.
o H iu hnh (operating system): hay cn gi l chng trnh h thng,
iu khin v hp tc vic s dng phn cng gia nhng chng trnh
ng dng khc nhau cho nhng ngi dng khc nhau. H iu hnh c
th c khm ph t hai pha: ngi dng v h thng.




Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang 1

i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0












Hnh 0-1 Tm nhn tru tng cc thnh phn ca mt h thng my tnh
III.1 Tm nhn ngi dng
Tm nhn ngi dng ca my tnh rt a dng bi giao din c dng. Hu
ht nhng ngi dng my tnh ngi trc my tnh c nhn gm c mn hnh, bn
phm, chut v b x l h thng (system unit). Mt h thng nh th c thit k
cho mt ngi dng c quyn s dng ti nguyn ca n ti u ho cng vic m
ngi dng ang thc hin. Trong trng hp ny, h iu hnh c thit k d dng
cho vic s dng vi s quan tm v nng lc nhng khng quan ti vic s dng ti
nguyn. Nng lc thc hin l quan trng vi ngi dng nhng khng l vn nu
hu ht h thng ang rnh, ch tc xut/nhp chm t pha ngi dng.
Vi ngi dng ngi ti thit b u cui (terminal) c ni kt ti my tnh
ln (mainframe) hay my tnh tm trung (minicomputer). Nhng ngi khc ang
truy xut cng my tnh thng qua cc thit b u cui khc. Nhng ngi dng ny
chia s cc ti nguyn v c th trao i thng tin. H iu hnh c thit k ti
u ho vic s dng ti nguyn- m bo rng tt c thi gian sn dng ca CPU,
b nh v thit b xut nhp c s dng hu hiu v khng c nhn ngi dng s
dng c quyn ti nguyn hn l chia s cng bng.

System and Application Programs
User1 User2 UserN
. . .
compliler text editor database
t
. . .
Operating System

Hardware
Nhng ngi dng khc ngi ti trm lm vic, c ni kt ti mng ca cc
trm lm vic khc v my ch. Nhng ngi dng ny c ti nguyn tn hin l trm
lm vic ca mnh nhng h cng chia s cc ti nguyn trn mng v cc my ch-
tp tin, tnh ton v cc my phc v in. Do , h iu hnh ca h c thit k
tho hip gia kh nng s dng c nhn v vic tn dng ti nguyn.
Gn y, s a dng ca my tnh xch tay tr thnh thi trang cho nhng
ngi lm vic trong lnh vc cng ngh thng tin. Cc thit b ny c s dng ch
bi c nhn ngi dng. Mt vi my tnh ny c ni mng hoc ni trc tip bng
dy hay thng qua cc modem khng dy. Do s gii hn v nng lng (in) v
giao din, chng thc hin tng i t cc thao tc xa. H iu hnh c thit k
ch yu cho vic s dng c nhn nhng nng lc thc hin trn thi gian sng ca
pin cng l yu t quan trng.
Mt s my tnh c rt t hay khng c tm nhn ngi dng. Th d, cc my
tnh c nhng vo cc thit b gia nh v xe t c th c mt bng s v cc n
hin th trng thi m, tt nhng hu ht chng v cc h iu hnh c thit k
chy m khng cn giao tip.
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang 2

i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

III.2 Tm nhn h thng
T quan im ca my tnh, h iu hnh l chng trnh gn gi vi phn
cng. Chng ta c th thy mt h iu hnh nh b cp pht ti nguyn. H thng
my tnh c nhiu ti nguyn - phn cng v phn mm - m c th c yu cu
gii quyt mt vn : thi gian CPU, khng gian b nh, khng gian lu tr tp tin,
cc thit b xut/nhp,..H iu hnh hot ng nh b qun l ti nguyn. ng u
vi mt lng ln cc yu cu c th xung t v ti nguyn, h iu hnh phi quyt
nh cch cp pht ti nguyn ti nhng chng trnh c th v ngi dng c th
iu hnh h thng my tnh hu hiu v cng bng.
Mt tm nhn khc ca h iu hnh nhn mnh s cn thit iu khin cc
thit b xut/nhp khc nhau v chng trnh ngi dng. Mt h iu hnh l mt
chng trnh iu khin. Chng trnh iu khin qun l s thc thi ca cc chng
trnh ngi dng ngn chn li v vic s dng khng hp l my tnh. N c bit
quan tm vi nhng thao tc v iu khin cc thit b nhp/xut.
Nhn chung, khng c nh ngha hon ton y v h iu hnh. Cc h
iu hnh tn ti v chng l cch hp l gii quyt vn to ra mt h thng my
tnh c th s dng. Mc tiu c bn ca h thng my tnh l thc thi chng trnh
ngi dng v gii quyt vn ngi dng d dng hn. Hng n mc tiu ny,
phn cng my tnh c xy dng. Tuy nhin, ch n thun l phn cng th khng
d s dng v pht trin cc chng trnh ng dng. Cc chng trnh khc nhau ny
i hi nhng thao tc chung no , chng hn nh iu khin thit b xut/nhp.
Sau , nhng chc nng chung v iu khin v cp pht ti nguyn c t li vi
nhau vo mt b phn phn mm gi l h iu hnh.
Cng khng c nh ngha bao qut no c chp nhn xc nh phn g
thuc v h iu hnh, phn g khng. Mt quan im n gin l mi th lin quan
khi chng ta ra lnh h iu hnh nn c xem xt. Tuy nhin, nhng yu cu v b
nh v nhng c im bn trong rt khc nhau trong tng h thng. Mt nh ngha
bao qut hn v h iu hnh l mt chng trnh chy lin tc trn my tnh (thng
gi l nhn kernel), nhng chng trnh cn li thuc v chng trnh ng dng.
III.3 Mc tiu h thng
nh ngha nhng g h iu hnh lm th d hn xc nh h iu hnh l g.
Mc ch chnh ca h iu hnh l d dng s dng. V s tn ti ca h iu hnh
h tr nhiu cho my tnh trong vic p ng cc ng dng ca ngi dng. Tm nhn
ny c bit r rng hn khi nhn h iu hnh trn cc my tnh c nhn.
Mc tiu th hai ca h iu hnh l iu hnh hu hin h thng my tnh.
Mc tiu ny c bit quan trng cho cc h thng ln, c chia s, nhiu ngi
dng. Nhng h thng tiu biu ny kh t, khai thc hiu qu nht cc h thng ny
lun l iu mong mun. Tuy nhin, hai mc tiu tin dng v hu hiu i khi mu
thun nhau. Trong qu kh, xem xt tnh hu hiu thng quan trng hn tnh tin
dng. Do , l thuyt h iu hnh tp trung nhiu vo vic ti u ho s dng ti
nguyn tnh ton. H iu hnh cng pht trin dn theo thi gian. Th d, UNIX bt
u vi bn phm v my in nh giao din ca n gii hn tnh tin dng i vi
ngi dng. Qua thi gian, phn cng thay i v UNIX c gn vo phn cng mi
vi giao din thn thin vi ngi dng hn. Nhiu giao din ngi dng ho
GUIs (graphical user interfaces) c b sung cho php tin dng hn vi ngi dng
trong khi vn quan tm tnh hiu qu.
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang 3

i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

Thit k h iu hnh l mt cng vic phc tp. Ngi thit k gp phi
nhiu s tho hip trong thit k v ci t. Nhiu ngi tham gia khng ch mang
n h iu hnh nhng li im m cn lin tc xem xt v nng cp.
thy r nhng h iu hnh l g v nhng g h iu hnh lm, chng ta xem xt
cch chng pht trin trong bn mi lm nm qua. Bng cch ln theo s tin trin,
chng ta c th xc nh nhng thnh phn ca h iu hnh v thy cch thc v l
do h iu hnh pht trin nh chng c.
H iu hnh v kin trc my tnh c mi quan h khng kht nhau. d
dng s dng phn cng, h iu hnh c pht trin. Sau , cc ngi dng h
iu hnh ngh nhng chuyn i trong thit k phn cng n gin chng.
Nhn li lch s ngn ngi ny, ch trng cch gii quyt nhng vn v h iu
hnh gii thiu nhng c im phn cng.
IV H thng mainframe
Nhng h thng my tnh mainframe l nhng my tnh u tin c dng
x l ng dng thng mi v khoa hc. Trong phn ny, chng ta ln theo s pht
trin ca h thng mainframe t cc h thng b (batch systems), my tnh ch
chy mt-v ch mt -ng dng, ti cc h chia s thi gian (time-shared systems), m
cho php ngi dng giao tip vi h thng my tnh.
IV.1 H thng b
Nhng my tnh thi k u l nhng my cc ln chy t mt thit b cui
(console). Nhng thit b nhp thng l nhng b c th v cc a bng t. Cc
thit b xut thng thng thng l nhng my in dng (line printers), cc a t v
cc phiu c l. Ngi dng khng giao tip trc tip vi cc h thng my tnh.
Thay vo , ngi dng chun b mt cng vic- cha chng trnh, d liu v cc
thng tin iu khin v tnh t nhin ca cng vic-v gi n n ngi iu hnh
my tnh. Cng vic ny thng c thc hin trong cc phiu c l. Ti nhng
thi im sau (sau vi pht, gi hay ngy), d liu xut xut hin. D liu xut
cha kt qu chng trnh cng nh kt xut b nh cui cng v ni dung cc thanh
ghi cho vic g ri.
H iu hnh trong cc my tnh thi k u ny tng i n gin. Tc v
chnh l chuyn iu khin t ng t mt cng vic ny sang cng vic khc. H
iu hnh lun c thng tr trong b nh.










H iu hnh


Vng chng
trnh ngi
dng
Hnh 0-2 Sp xp b nh cho mt h thng b n gin
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang 4

i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

tng tc vic x l, ngi iu hnh b cc cng vic c cng yu cu v
chy chng thng qua my tnh nh mt nhm. Do , cc lp trnh vin s a
chng trnh ca h cho ngi iu hnh. Ngi iu hnh s sp xp chng trnh
thnh nhng b vi cng yu cu v khi my tnh sn dng s chy mi b ny. D
liu xut t mi cng vic s gi li cho lp trnh vin tng ng.
Trong mi trng thc thi ny, CPU lun rnh v tc ca cc thit b
xut/nhp dng c thc cht chm hn tc ca cc thit b in. Ngay c mt CPU
chm (vi hng ngn ch th lnh c thc thi trn giy) cng ch lm vic trong vi
phn trm giy. Thm vo , mt b c th nhanh c th c 1200 th trong thi
gian 1 pht (hay 20 th trn giy). Do , s khc bit gia tc CPU v thit b
xut/nhp ca n c th l 3 ln hay nhiu hn. D nhin theo thi gian, s tin b
trong cng ngh dn n s ra i nhng thit b nhp/xut nhanh hn. Tuy nhin, tc
CPU tng ti mt t l ln hn v th vn khng nhng khng c gii quyt
m cn lm tng.
Gii thiu cng ngh a cho php h iu hnh gi tt c cng vic trn mt
a hn trong mt b c th tun t. Vi vic truy xut trc tip ti nhiu cng vic,
h iu hnh c th thc hin nh thi cng vic, s dng ti nguyn v thc hin
cc tc v hu hiu.
IV.2 H a chng
Mt kha cnh quan trng nht ca nh thi cng vic l kh nng a chng.
Thng thng, mt ngi dng gi CPU hay cc thit b xut/nhp lun bn. a
chng gia tng kh nng s dng CPU bng cch t chc cc cng vic CPU lun
c mt cng vic thc thi.
tng ca k thut a chng c th minh ho nh sau: H iu hnh gi
nhiu cng vic trong b nh ti mt thi im. Tp hp cc cng vic ny l tp con
ca cc cng vic c gi trong vng cng vic-bi v s lng cc cng vic c th
c gi cng lc trong b nh thng nh hn s cng vic c th c trong vng
m. H iu hnh s ly v bt u thc thi mt trong cc cng vic c trong b nh.
Cui cng, cng vic phi ch mt vi tc v nh mt thao tc xut/nhp hon
thnh. Trong h thng n chng, CPU s ch trng thi ri. Trong h thng a
chng, h iu hnh s chuyn sang thc thi cng vic khc. Cui cng, cng vic
u tin kt thc vic ch v nhn CPU tr li. Ch cn t nht mt cng vic cn thc
thi, CPU s khng bao gi trng thi ri.













Hnh 0-3 Sp xp b nh cho h a chng

H iu hnh

Cng vic 1

Cng vic 2
Cng vic 3
Cng vic 4
512K
0
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang 5

i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

a chng l mt trng hp u tin khi h iu hnh phi thc hin quyt nh cho
nhng ngi dng. Do , h iu hnh a chng tng i tinh vi. Tt c cng vic
a vo h thng c gi trong vng cng vic. Vng ny cha tt c qu trnh nh
v trn a ch c cp pht b nh chnh. Nu nhiu cng vic sn sng c mang
vo b nh v nu khng khng gian cho tt c th h iu hnh phi chn mt
trong chng. Khi h iu hnh chn mt cng vic t vng cng vic, n np cng
vic vo b nh thc thi. C nhiu chng trnh trong b nh ti cng thi im
yu cu phi c s qun l b nh. Ngoi ra, nu nhiu cng vic sn sng chy cng
thi im, h thng phi chn mt trong chng. Thc hin quyt nh ny l nh thi
CPU. Cui cng, nhiu cng vic chy ng hnh i hi hot ng ca chng c th
nh hng ti mt cng vic khc th b hn ch trong tt c giai on ca h iu
hnh bao gm nh thi qu trnh, lu tr a, qun l b nh.
IV.3 H chia thi
H thng b-a chng cung cp mt mi trng ni m nhiu ti nguyn
khc nhau (chng hn nh CPU, b nh, cc thit b ngoi vi) c s dng hiu qu.
Tuy nhin, n khng cung cp giao tip ngi dng vi h thng my tnh. Chia thi
(hay a nhim) l s m rng lun l ca a chng. CPU thc thi nhiu cng vic
bng cch chuyn i qua li gia chng, nhng nhng chuyn i xy ra qu thng
xuyn ngi dng c th giao tip vi mi chng trnh trong khi chy.
Mt h thng my tnh giao tip (interactive computer) hay thc hnh (hands-
on computer system) cung cp giao tip trc tuyn gia ngi dng v h thng.
Ngi dng cho nhng ch th ti h iu hnh hay trc tip ti mt chng trnh, s
dng bn phm hay chut v ch nhn kt qu tc th. Do , thi gian p ng nn
ngn-in hnh trong phm vi 1 giy hay t hn.
Mt h thng chia thi cho php nhiu ngi dng chia s my tnh cng mt
thi im. V mi hot ng hay lnh trong h chia thi c phc v ngn, ch mt t
thi gian CPU c yu cu cho mi ngi dng. Khi h thng nhanh chng chuyn
t mt ngi dng ny sang ngi dng k, mi ngi dng c cho cm gic rng
ton b h thng my tnh c tn hin cho mnh, nhng tht s my tnh ang
c chia s cho nhiu ngi dng.
Mt h iu hnh chia thi s dng nh thi CPU v a chng cung cp
mi ngi dng vi mt phn nh ca my tnh chia thi. Mi ngi dng c t nht
mt chng trnh ring trong b nh. Mt chng trnh c np vo trong b nh v
thc thi thng c gi l mt qu trnh. Khi mt qu trnh thc thi, in hnh n
thc thi ch ti mt thi im ngn trc khi n kt thc hay cn thc hin xut/nhp.
Xut/nhp c th c giao tip; ngha l d liu xut hin th trn mn hnh cho
ngi dng v d liu nhp t bn phm, chut hay thit b khc. V giao tip
xut/nhp ch yu chy tc ngi dng, n c th mt mt khong thi gian
di hon thnh. Th d, d liu nhp c th b gii hn bi tc nhp ca ngi
dng; 7 k t trn giy l nhanh i vi ngi dng, nhng qu chm so vi my tnh.
Thay v CPU rnh khi ngi dng nhp liu, h iu hnh s nhanh chng chuyn
CPU ti mt chng trnh khc.
H iu hnh chia thi phc tp hn nhiu so vi h iu hnh a chng.
Trong c hai dng, nhiu cng vic c gi cng lc trong b nh v th h thng
phi c c ch qun l b nh v bo v. t c thi gian p ng hp l, cc
cng vic c th c hon v vo ra b nh chnh. Mt phng php chung t
mc tiu ny l b nh o, l k thut cho php vic thc thi ca mt cng vic c th
khng hon ton trong b nh. u im chnh ca c ch b nh o l cc chng
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang 6

i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

trnh c th ln hn b nh vt l. Ngoi ra, n tru tng ho b nh chnh thnh
mng lu tr ln v ng nht, chia b nh lun l nh c thy bi ngi dng t
b nh vt l. S sp xp ny gii phng lp trnh vin quan tm n gii hn lu tr
ca b nh.
Cc h chia thi cng phi cung cp mt h thng tp tin. H thng tp tin
nh v trn mt tp hp a; do qun l a phi c cung cp. H chia thi cng
cung cp c ch cho vic thc thi ng hnh, yu cu c ch nh thi CPU tinh vi.
m bo th t thc thi, h thng phi cung cp cc c ch cho vic ng b ho
v giao tip cng vic, v c th m bo rng cc cng vic khng b deadlock, ch
i cng vic khc mi mi.
tng chia thi c gii thiu trong nhng nm 1960, nhng v h chia
thi l phc tp v rt t xy dng, chng khng ph bin cho ti nhng nm
1970. Mc d x l theo b vn c thc hin nhng hu ht h thng ngy nay l
chia thi. Do , a chng v chia thi l nhng ch trung tm ca h iu hnh
hin i v chng l ch trng tm ca gio trnh ny.
V H bn (Desktop system)
My tnh c nhn (PC) xut hin vo nhng nm 1970. Trong sut thp nin
u, CPU trong PC thiu cc c im cn thit bo v h iu hnh t chng
trnh ngi dng. Do , cc h iu hnh PC khng l a ngi dng hoc a nhim.
Tuy nhin, cc mc tiu ca h iu hnh ny thay i theo thi gian; thay v ti u
ho vic s dng CPU v thit b ngoi vi, cc h thng chn la ti u ho s tin
dng v p ng ngi dng. Cc h thng ny gm cc PC chy cc h iu hnh
Microsoft Windows v Apple Macintosh. H iu hnh MS-DOS t Microsoft c
thay th bng nhiu n bn ca Microsoft Windows v IBM nng cp MS-DOS
thnh h a nhim OS/2. H iu hnh Apple Macintosh c gn nhiu phn cng
hin i hn v ngy nay cha nhiu c im mi nh b nh o v a nhim. Vi
s pht hnh MacOS X, li ca h iu hnh ngy nay da trn Mach v FreeBSD
UNIX cho s m rng, nng lc v c im nhng n vn gi li giao din ho
ngi dng GUI. LINUX, mt h iu hnh tng t nh UNIX sn dng cho my
PC tr nn ph bin gn y.
H iu hnh cho cc my tnh ny c nhng thun li trong nhiu cch t s
pht trin ca h iu hnh cho mainframes. My vi tnh (microcomputer) lp tc c
th c chp nhn mt s cng ngh c pht trin cho h iu hnh ln hn.
Thm vo , chi ph phn cng cho my vi tnh thp cc c nhn c th mt
mnh s dng my tnh, v s dng CPU khng cn quan trng na. Do , nhng
quyt nh thit k c thc hin trong h iu hnh cho mainframes c th khng
hp l cho cc h thng nh hn.
Nhng quyt nh thit k khc vn c p dng. Th d, trc ht bo v h
thng tp tin khng cn thit trn my c nhn. Tuy nhin, hin nay cc my tnh ny
thng c ni vo cc my tnh khc qua mng cc b hay Internet. Khi nhng
my tnh khc v ngi dng khc c th truy xut cc tp tin ny trn mt PC, bo v
tp tin mt ln na cng tr thnh mt c im cn thit ca h iu hnh. S thiu
bo v to iu kin d dng cho nhng chng trnh him ph hu d liu trn
nhng h thng nh MS-DOS v h iu hnh Macintosh. Cc chng trnh ny c
th t nhn bn v pht tn nhanh chng bng c ch worm hay virus v lm t lit
mng ca cc cng ty hay thm ch mng ton cu. c im chia thi c ci tin
nh b nh bo v v quyn tp tin l cha bo v mt h thng t s tn cng.
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang 7

i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

VI H a x l
Hu ht cc h thng ngy nay l cc h thng n x l; ngha l ch c mt
CPU chnh. Tuy nhin, cc h thng a x l (hay cn gi l h song song hay h kt
ni cht) c pht trin rt quan trng. Cc h thng nh th c nhiu hn mt b x
l trong giao tip gn, chia s bus my tnh, ng h, i khi cn l b nh hay thit
b ngoi vi.
H thng a x l c ba u im chnh:
o Thng lng c gia tng: bng cch tng s lng b x l, chng ta
hy vng thc hin nhiu cng vic hn vi thi gian t hn. T l gia s
tng tc vi N b x l khng l N; ng hn n nh hn N. Trong khi
nhiu b x l cng tc trn mt cng vic, mt lng chi ph phi chu
trong vic gi cc thnh phn lm vic ph hp. Chi ph ny cng vi chi
ph cnh tranh ti nguyn c chia s, lm gim kt qu c mong i
t nhng b x l b sung. Tng t nh mt nhm gm N lp trnh vin
lm vic vi nhau khng dn n kt qu cng vic ang t c tng N
ln.
o Tnh kinh t ca vic m rng: h thng a x l c th tit kim nhiu
chi ph hn h thng n b x l, bi v chng c th chia s ngoi vi,
thit b lu tr v in. Nu nhiu chng trnh iu hnh trn cng tp
hp d liu th lu tr d liu trn mt a v tt c b x l chia s
chng s r hn l c nhiu my tnh vi a cc b v nhiu bn sao d
liu.
o Kh nng tin cy c gia tng: nu cc chc nng c phn b hp l
gia cc b x l th li trn mt b x l s khng dng h thng, ch
nng lc b gim. Nu chng ta c 10 b x l v c 1 b x l b s c th
mi b x l trong 9 b x l cn li phi chia s ca cng vic ca b x
l b li. Do , ton b h thng ch gim 10% nng lc hn l dng hot
ng. Cc h thng c thit k nh th c gi l h thng c kh nng
chu li (fault tolerant).
Vic iu hnh vn tip tc trong s hin din ca li yu cu mt c ch cho
php li c pht hin, chun on v sa li nu c th. H thng Tandem s dng
s nhn i phn cng v phn mm m bo s iu hnh vn tip tc mc d c
li xy ra. H thng ny cha hai b x l, mi b x l c b nh cc b ring. Cc
b x l c ni kt bi mt bus. Mt b x l chnh v b x l kia l d phng.
C hai bn sao c gi mi b x l: mt l chnh v mt l d phng. Ti cc
im kim tra (checkpoints) trong vic thc thi ca h thng, thng tin trng thi ca
mi cng vic-gm mt bn sao hnh nh b nh-c chp t my chnh ti my d
phng. Nu mt li c pht hin, bn sao d phng c kch hot v c khi
ng li t im kim tra mi nht. Gii php ny t v n bao gm vic nhn i
phn cng.
Cc h thng a x l thng dng nht hin nay s dng a x l i xng
(symmetric multiprocessing-SMP). Trong h thng ny mi b x l chy bn sao
ca h iu hnh v nhng bn sao ny giao tip vi cc bn sao khc khi cn. Vi h
thng s dng a x l bt i xng (asymmetric multiprocessing). Trong h thng
ny mi b x l c gn mt cng vic xc nh. Mt b x l ch iu khin h
thng; nhng b x l cn li hoc ch b x l ch ra ch th hoc c nhng tc v
c nh ngha trc. C ch ny nh ngha mi quan h ch-t. B x l chnh lp
thi biu v cp pht cng vic ti cc b x l t.
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang 8

i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

a x l i xng c ngha tt c b x l l ngang hng; khng c mi quan
h ch-t tn ti gia cc b x l. Hnh I-4 minh ho mt kin trc a x l i xng
in hnh. Mt th d ca a x l i xng l n bn ca Encore ca UNIX cho my
tnh Multimax. My tnh ny c th c cu hnh nh n ang thc hin nhiu b x
l, tt c b x l u chy bn sao ca UNIX. u im ca m hnh ny l nhiu qu
trnh c th chy cng mt lc - N qu trnh c th chy nu c N CPU- khng gy ra
s gim st to ln v nng lc. Tuy nhin, chng ta phi iu khin cn thn
xut/nhp m bo rng d liu dn ti b x l tng ng. V cc CPU l ring
r, mt CPU c th ang rnh trong khi CPU khc qu ti dn n vic s dng khng
hu hiu ti nguyn ca h thng. S khng hiu qu ny c th trnh c nu cc
b x l chia s cc cu trc d liu. Mt h thng a x l ca dng ny s cho php
cc qu trnh v ti nguyn nh b nh - c chia s t ng gia cc qu trnh
khc nhau v c th lm gim s khc bit gia cc b x l. Hu nh tt c h iu
hnh hin i - gm Windows NT, Solaris, Digital UNIX, OS/2 v LINUX - hin nay
cung cp s h tr a x l i xng.

Hnh 0-4 Kin trc a x l i xng
S khc bit gia a x l i xng v bt i xng c th l do phn cng
hoc phn mm. Phn cng c bit c th khc nhau trn nhiu b x l, hoc phn
mm c th c vit cho php ch mt ch v nhiu t. Th d, SunOS n bn 4
cung cp a x l khng i xng, ngc li, n bn 5 (Solaris 2) l i xng trn
cng phn cng.
Khi cc b vi x l tr nn r hn v mnh hn cc chc nng b sung ca h
iu hnh l chuyn ti b x l t. Th d, tng i d thm b vi x l vi b
nh ring qun l h thng a. B vi x l c th nhn mt chui cc yu cu t
b nh chnh v ci t hng i a ring v gii thut nh thi. S sp xp ny lm
gim chi ph nh thi a ca CPU. PC cha mt b vi x l trong bn phm
chuyn nhng phm nng thnh m gi ti CPU. Thc t, vic s dng cc b vi
x l tr nn qu ph bin n ni m a x l khng cn c xem xt.
VII H phn tn
Mt mng, trong thut ng n gin nht, l mt ng dn truyn thng gia
hai hay nhiu h thng. H phn tn ph thuc vo mng vi nhng kh nng ca n.
Bng cch cho php truyn thng, h phn tn c th chia s cc tc v tnh ton v
cung cp nhiu chc nng ti ngi dng.
Cc mng vi s a dng v giao thc c dng, khong cch gia cc nt v
phng tin truyn. TCP/IP l giao thc mng ph bin nht mc d ATM v cc
giao thc khc c s dng rng ri. Tng t, h iu hnh h tr s a dng v
giao thc. Hu ht cc h iu hnh h tr TCP/IP, gm Windows v UNIX. Mt s
h iu hnh khc h tr cc giao thc ring ph hp vi yu cu ca chng. i vi
mt h iu hnh, mt giao thc mng ch cn mt thit b giao din th d: mt
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang 9

i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

card mng-vi mt trnh iu khin thit b qun l n v mt phn mm ng
gi d liu trong giao thc giao tip gi n v m gi nhn n.
Mng thng da trn cc khong cch gia cc nt. Mt mng cc b (LAN-
Local Area Network) tn ti trong phm vi mt phng, mt tng, hay mt to nh.
Mt mng din rng (Wide-Area Network) thng tn ti gia cc to nh, cc thnh
ph, cc quc gia. Mt cng ty ton cu c th c mt mng din rng ni kt ti
cc vn phng ca n. Cc mng ny c th chy vi mt hay nhiu giao thc. S tin
b lin tc ca cng ngh mi hnh thnh nhiu dng mng khc nhau. Th d, mng
th (MAN-Metropolitan Area Network) cng lin kt cc to nh trong cng mt
thnh ph. Cc thit b BlueTooth giao tip qua mt khong cch ngn khong vi b
(feet), ch yu to ra mt mng phm vi nh (small-area network).
Cc phng tin truyn thng lm cc mng tng i khc nhau. Chng gm
cp ng, cp quang, truyn khng dy gia v tinh, cc a vi sng (microware
dishes) v sng radio. Khi cc thit b tnh ton c ni kt ti cc in thoi di
ng, chng to ra mt mng. Thm ch rt nhiu giao tip hng ngoi dy ngn c
th c dng cho mng. Ti cp c bn, bt c khi no cc my tnh giao tip
chng s dng hay to ra mt mng. Cc mng ny cng rt khc nhau v nng lc v
kh nng tin cy.
VII.1 H khch hng-my phc v
Mt PC c th tr nn nhanh hn, mnh hn, r hn nu ngi thit k thay i rt xa
t kin trc h thng tp trung. Cc thit b u cui c ni kt ti cc h tp trung
hin nay ang c thay th bi cc PC. Tng ng, chc nng giao din ngi dng
c dng qun l trc tip bi cc h tp trung ang c qun l tng dn bi cc
PC. Do , cc h tp trung ngy nay hot ng nh h my phc v tho mn cc
yu cu pht sinh bi h thng khch hng. c im chung ca h khch hng- my
phc v c m t trong hnh-I-5:


Hnh 0-5 Cu trc chung ca h khch hng-my phc v
Cc h my ch c th c phn loi rng ri nh my phc v tnh ton v my
phc v tp tin
o H my phc v tnh ton (Compute-server systems): cung cp giao din
m khch hng c th gi cc yu cu thc hin hot ng. Chng thc
thi hot ng v gi kt qu cho khch hng.
o H my phc v tp tin (File-server systems ): cung cp mt giao din h
thng tp tin ni khch hng c th to, cp nht, c v xo tp tin.


Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang 10

i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

VII.2 H ngang hng
S pht trin ca mng my tnh-c bit l Internet v Word Wide Web
(WWW)-c nh hng su sc n s pht trin gn y ca h iu hnh. Khi PC
c gii thiu vo nhng nm 1970, chng c thit k cho vic s dng c nhn
v thng c xem nh l cc my tnh n l (standalone computer). Vi vic bt
u s dng Internet ph bin v rng ri vo nhng nm 1980 vi e-mail, ftp,
gopher, nhiu PC c ni vo mng my tnh. Vi s gii thiu dch v Web vo
gia nhng nm 1990, ni kt mng tr thnh mt thnh phn quan trng ca mt h
thng mng my tnh.
Gn nh tt c my tnh PC hin i v cc trm lm vic c th chy trnh
duyt Web truy xut ti liu siu vn bn trn Web. Cc h iu hnh (nh
Windows, OS/2, MacOS v UNIX) hin nay cng cha phn mm h thng (nh
TCP/IP v PPP) cho php mt my tnh truy xut Internet qua mt mng cc b hay
ni kt qua ng in thoi. Nhiu h iu hnh cha trnh duyt Web cng nh
khch hng v my phc v e-mail, ng nhp t xa, v ftp.
Tng phn vi cc h thng kt ni cht c tho lun trong phn I.6, mng
my tnh c dng trong cc ng dng ny gm tp hp cc b x l khng chia s
b nh hay ng h. Thay vo , mi b x l c b nh cc b ring. B x l giao
tip vi b x l khc thng qua cc ng truyn thng nh cc bus tc cao hay
cc ng in thoi. Cc h thng ny thng c xem nh cc h thng kt ni
lng (hay h thng phn tn).
Vi h iu hnh thc hin khi nim mng hn l ch trng cung cp ni kt
mng. Mt h iu hnh mng l mt h iu hnh cung cp cc c tnh nh chia s
tp tin qua mng, n cha mt c ch giao tip cho php cc qu trnh khc nhau trn
cc my khc nhau trao i thng ip. Mt my tnh chy mt h iu hnh mng
hot ng t tr t tt c my tnh khc trn mng, mc d n nhn thc s hin din
ca mng v c th giao tip vi cc my tnh c ni mng khc. Mt h iu hnh
phn tn l mt mi trng t t tr hn: Cc h iu hnh phn tn giao tip gn
cung cp mt hnh nh m ch mt h iu hnh n l iu khin mng.
VIII H thng nhm (Clustered Systems)
Tng t cc h song song, h thng nhm tp hp nhiu CPUs vi nhau
thc hin cng vic tnh ton. Tuy nhin, h thng nhm khc h thng song song
im chng c hp thnh t hai hay nhiu h thng n c kt hp vi nhau.
nh ngha ca thut ng nhm (clustered) l khng c th. nh ngha thng thng
c th chp nhn l cc my tnh nhm chia s vic lu tr v c lin kt gn qua
LAN.
Nhm thng c thc hin cung cp kh nng sn dng cao. Mt lp phn
mm nhm chy trn cc nt nhm (cluster nodes). Mi nt c th kim sot mt hay
nhiu hn mt nt (qua mng LAN). Nu my b kim sot gp s c, my kim sot
c th ly quyn s hu vic lu tr ca n v khi ng li (cc) ng dng m chng
ang chy trn my b s c. My b s c vn cha hot ng nhng ngi dng v
khch hng ca ng dng ch thy mt s gin on ngn ca dch v.
Trong nhm bt i xng (asymmetric clustering), mt my trong ch d phng
nng (hot standby) trong khi cc my khc ang chy cc ng dng. My d phng
khng l g c ngoi tr theo di server hot ng. Nu server b li, my ch d
phng nng tr thnh server hot ng. Trong ch i xng (symmetric mode), hai
hay nhiu my ch ang chy ng dng v chng ang kim sot ln nhau. Ch
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang 11

i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

ny ch trng tnh hiu qu khi n s dng tt c phn cng sn c. N thc hin yu
cu nhiu hn mt ng dng sn dng chy.
Cc hnh thc khc ca nhm gm cc nhm song song (parallel clusters) v
nhm qua mt WAN. Cc nhm song song cho php nhiu my ch truy xut cng d
liu trn thit b lu tr c chia s. V hu ht cc h iu hnh h tr ngho nn
vic truy xut d liu ng thi bi nhiu my ch, cc nhm song song thng c
thc hin bi cc n bn phn mm c bit v s pht hnh ca cc ng dng c
bit. Th d, Oracle Parallel Server l mt n bn c s d liu ca Oracle, v lp
phn mm ghi vt vic truy xut ti a c chia s. Mi my c truy xut y ti
d liu trong c s d liu.
Mc d c nhiu ci tin trong tnh ton phn tn, hu ht cc h thng khng
cung cp cc h thng tp tin phn tn mc ch chung (general-purpose distributed
file systems). Do , hu ht cc nhm khng cho php truy xut c chia s ti d
liu trn a. Cho mc ch ny, cc h thng tp tin phn tn phi cung cp iu
khin truy xut v kho cc tp tin m bo khng c cc thao tc xung t xy ra.
Loi dch v ny thng c gi l b qun l kho phn tn (distributed lock
manager-DLM).
Cng ngh nhm ang nhanh chng thay i. Nhng nh hng nhm gm
cc nhm ton cc, trong cc my c th nh v bt c ni no trn th gii (hay
bt c ni no mt WAN t ti). Cc d n nh th vn l ch cho nghin cu v
pht trin.
Vic s dng h thng nhm v cc c tnh nn m rng nh mng vng lu
tr (storage-area networks-SANs) chim u th. SANs cho php gn d dng nhiu
my ch ti nhiu n v lu tr. Cc nhm hin ti thng b gii hn ti hai hay
bn my ch do s phc tp ca ni kt cc my ch ti thit b lu tr c chia s.
IX H thi thc
Mt dng khc ca h iu hnh c mc ch c bit l h thi thc (real-time
system). H thi thc c dng khi cc yu cu thi gian kht khe c t trn thao
tc ca mt b x l hay dng d liu; do , n thng c dng nh mt thit b
iu khin trong mt ng dng tn hin. Cc b cm bin mang d liu ti my tnh.
My tnh phi phn tch d liu v c th thch ng cc iu khin hiu chnh cc
d liu nhp cm bin. Cc h thng iu khin cc th nghim khoa hc, h thng
nh ho y t, h thng iu khin cng ngh v cc h thng hin th,... Cc h thng
phun du ng c t, cc b iu khin dng c trong nh, h thng v kh cng l
cc h thng thi thc.
Mt h thng thi thc c s rng buc c nh, r rng. X l phi c thc
hin trong phm vi cc rng buc c nh ngha hay h thng s tht bi. Mt h
thi thc thc hin ng chc nng ch nu n tr v kt qu ng trong thi gian
rng buc. Tng phn vi yu cu ny trong h chia thi, n mong mun
(nhng khng bt buc) p ng nhanh, hay i vi h thng b, n khng c rng
buc thi gian g c.
H thi thc c hai dng: cng v mm. H thi thc cng m bo rng cc
tc v ti hn c hon thnh ng gi. Mc tiu ny i hi tt c tr hon trong h
thng b gii hn, t vic ly li d liu c lu tr thi gian h iu hnh hon
thnh bt c yu cu cho n. Cc rng buc thi gian nh th ra lnh cc phng tin
sn c trong h thi thc cng. Thit b lu tr ph ca bt c th hng no thng b
gii hn hay b mt vi d liu ang c lu trong b nh lu tr ngn hn (short-
term memory) hay trong b nh ch c (ROM). Hu ht cc h iu hnh hin i
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang 12

i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

khng cung cp c im ny v chng c khuynh hng tch ri ngi dng t phn
cng v s tch ri ny dn n lng thi gian khng xc nh m thao tc s mt.
Th d, b nh o hu nh cha bao gi thy trong h thi thc. Do , nhng h thi
thc cng xung t vi thao tc ca h chia thi v hai h ny khng th an xen
nhau. V khng c h iu hnh a mc ch c h tr chc nng thi thc cng;
chng ta khng tp trung vi loi h thng ny trong chng ny.
Mt loi thi thc t hn ch hn l h thi thc mm, tc v thi thc ti
hn c u tin hn cc tc v khc v duy tr u tin cho n khi chng hon
thnh. Nh trong h thi thc cng, s tr hon nhn (kernel) ca h iu hnh tr
hon yu cu c gii hn. Mt tc v thi thc khng th gi vic ch khng xc
nh i vi nhn thc thi. Thi thc mm l mc tiu c th t c v c th
c an xen vi cc loi h thng khc. Tuy nhin, h thi thc mm c nhng tin
ch gii hn hn h thi thc cng. V khng h tr tt cho thi im ti hn, nn h
thi thc mm d gy ri ro khi dng cho vic kim sot cng ngh v t ng ho.
Tuy nhin, chng c ch trong nhiu lnh vc nh a phng tin, thc t o, d n
khoa hc tin tin-nh khm ph trong lng i dng v khm ph hnh tinh. Nhng
h thng ny cn nhng c im h iu hnh tin tin m khng c h tr bi h
thi thc cng. V vic s dng chc nng thi thc mm c m rng nn chng ta
ang tm cch a chng vo trong hu ht cc h iu hnh hin ti, gm cc n bn
chnh thc ca UNIX.
X H xch tay
H xch tay gm cc my h tr c nhn dng k thut s (personal digital
assistants-PDAs) nh Palm hay in thoi di ng (cellular telephone) vi ni kt ti
mng nh Internet. Nhng ngi pht trin h xch tay v ng dng gp phi nhiu
th thch, nht l s gii hn v kch thc ca thit b. Th d, mt PDA in hnh
cao khong 5 inches v rng khong 3 inches v trng lng ca n t hn 0.5 pound.
Do s gii hn v kch thc ny, hu ht cc thit b xch tay c b nh nh gm cc
b x l thp v mn hnh hin th nh. By gi chng ta s xem xt mi s gii hn
ny.
Nhiu thit b xch tay c dung lng b nh 512KB v 8 MB (ngc li, cc
my PC hay trm lm vic c hng trm MB b nh). Do , h iu hnh v cc ng
dng phi qun l b nh hiu qu. iu ny gm tr v tt c b nh c cp pht
ti b qun l b nh mt khi b nh khng cn c dng na. Hin nay, nhiu thit
b xch tay khng dng k thut b nh o do buc ngi pht trin chng trnh
lm vic trong phm vi gii hn ca b nh vt l.
Vn th hai quan tm n ngi pht trin cc thit b xch tay l tc ca
b x l c dng trong thit b. Cc b x l i vi hu ht cc thit b xch tay
thng chy vi tc ch bng mt phn tc ca mt b x l trong my PC. Cc
b x l nhanh hn yu cu in nng nhiu hn. cha mt b x l nhanh hn
bn trong thit b xch tay nn yu cu nhiu pin hn hn v phi c np li thng
xuyn. ti thiu ho kch thc ca cc thit b xch tay i hi b x l nh hn,
chm hn tiu th t in nng hn. Do , h iu hnh v cc ng dng phi c
thit k khng i hi s dng nhiu b x l.
Vn cui cng gy kh khn cho ngi thit k chng trnh cho cc thit b
xch tay l mn hnh hin th nh. Trong khi mt mn hnh cho my tnh nh kch
thc c th 21 inches, mn hnh cho thit b xch tay thng c din tch khng qu
3 inches. Nhng tc v quen thuc nh c e-mail hay hin th cc trang web, phi
c c ng vo mn hnh nh hn. Mt phng php hin th ni dung cc trang
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang 13

i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

web l ct xn web (web clipping), ch mt tp hp nh trang web c phn
pht v hin th trn thit b xch tay.
Mt s thit b xch tay c th dng cng ngh khng dy nh BlueTooth, cho
php truy xut t xa ti e-mail v trnh duyt web. Cc in thoi di ng vi ni kt
Internet thuc loi ny. Tuy nhin, nhiu PDAs hin ti khng cung cp truy xut
khng dy. ti d liu xung cc thit b ny, trc tin ngi dng ti d liu
xung PC hay trm v sau ti d liu xung PDA. Mt s PDA cho php d liu
chp trc tip t mt thit b ny ti thit b khc dng lin kt hng ngoi. Nhn
chung, cc gii hn trong chc nng ca PDA c cn bng bi nhng tin dng v
linh ng ca chng. Vic s dng chng tip tc m rng khi cc ni kt mng tr
nn sn dng v cc chn la khc nh my nh v MP3 players, m rng tin ch
ca chng.
XI Tm tt
H iu hnh c pht trin hn 45 nm qua vi hai mc ch chnh. Mc ch
th nht, h iu hnh c gng lp thi biu cc hot ng tnh ton m bo nng
lc thc hin ca h thng l tt. Mc ch th hai, n cung cp mt mi trng tin
dng pht trin v thc thi chng trnh. Ban u, h thng my tnh c dng t
mt mn hnh v bn phm (thit b u cui). Cc phn mm nh b hp ng
(assembler), b np (loader), b lin kt (linkers) v cc trnh bin dch (compiler) ci
tin s tin dng ca vic lp trnh h thng nhng cng yu cu thi gian thit lp
ng k. gim thi gian thit lp, cc phng tin thu ngi iu hnh v cc
cng vic tung t c b.
Cc h thng x l theo l cho php sp xp cng vic t ng bi h iu hnh
v ci tin rt nhiu vic tn dng ton b my tnh. My tnh khng cn phi ch cc
thao tc ca ngi dng. Tuy nhin, vic tn dng CPU vn cn thp v tc ca
thit b xut nhp thp hn nhiu so vi tc ca CPU. Thao tc ngoi vi (off-line
operation) ca cc thit b chm cung cp mt phng tin s dng nhiu h thng b
c ti bng t (reader-to-tape) v bng t ti my in (tape-to-printer) cho mt CPU.
ci tin ton b nng lc thc hin ca h thng my tnh, ngi pht trin gii
thiu khi nim a chng m nhiu cng vic c th c gi cng lc trong b
nh ti cng mt thi im. CPU c chuyn qua li gia chng gia tng vic tn
dng CPU v gim ton b thi gian c yu cu thc thi cc cng vic.
a chng cng cho php chia s thi gian. H iu hnh chia s thi gian cho php
nhiu ngi dng (t mt ti vi trm) s dng h thng my tnh giao tip ti cng
mt thi im.
PC l my vi tnh; chng xem nh nh hn v r hn h thng mainframe.
Cc h iu hnh cho cc my tnh ny li hn vic pht trin h iu hnh cho my
tnh mainframe trong nhiu cch. Tuy nhin, v mi c nhn l ngi dng duy nht
s dng my tnh nn vic tn dng CPU khng cn l mi quan tm ch yu. Do ,
mt vi quyt nh thit k c thc hin cho h iu hnh cho my mainframe c
th khng ph hp cho c h thng nh v ln, hin nay khi cc PCs c th c ni
kt ti cc my tnh khc v ngi dng thng qua mng v Web.
Cc h song song c nhiu hn mt CPU trong giao tip gn; cc CPU chia s bus
my tnh v i khi chia s b nh v cc thit b ngoi vi. Nhng h thng nh th c
th cung cp thng lng v kh nng tin cy tng. Cc h thng phn tn cho php
chia s ti nguyn trn nhng my ch c phn tn v mt a l. Cc h thng
c nhm cho php nhiu my thc hin vic tnh ton trn d liu c cha trn
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang 14

i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

thit b lu tr chia s v vic tnh ton tip tc trong trng hp li ca tp hp
con cc thnh vin nhm.
Mt h thi thc cng thng c dng nh mt thit b iu khin trong
mt ng dng tn hin. Mt h iu hnh thi thc cng c rng buc hon ton xc
nh v thi gian c nh. X l phi c thc hin trong cc rng buc c xc
nh hoc h thng s b li. Cc h thng thi thc mm c rng buc thi gian t
nghim khc hn v khng h tr thi biu ti hn.
Gn y s tc ng ca Internet v World Wide Web khuyn khch s pht
trin ca cc h iu hnh hin i. Cc h iu hnh ny cha cc trnh duyt Web,
mng v phn mm truyn thng nh l cc c im tch hp.
Chng ta th hin tin trnh lun l ca s pht h iu hnh, c nh
hng bi s bao gm cc c im trong phn cng CPU c yu cu cho chc
nng tin tin. Xu hng ny c th c thy ngy nay trong cuc cch mng ca
PC, vi phn cng ngy mt r hn v ang c ci tin cho php ci tin cc
c im.
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang 15

i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

CU TRC H IU HNH
I Mc ch
Sau khi hc xong chng ny, ngi hc nm c nhng kin thc sau:
o Hiu h iu hnh t ba kha cnh: ngi dng, ngi lp trnh v ngi
thit k
o Hiu cc dch v m h iu hnhcung cp
o Bit cc phng php c dng thit k kin trc h iu hnh
II Gii thiu
H iu hnh cung cp mi trng cho cc chng trnh thc thi. Ni ti, cc h
iu hnh rt khc bit nhau v kin trc, chng c t chc cng vi cc dng khc
nhau. Thit k mt h iu hnh mi l mt cng vic quan trng. Cc mc ch ca
h thng phi c nh ngha r rng trc khi thit k bt u. Kiu h thng mong
mun l c s cho vic chn la gia cc gii thut v chin lc khc nhau.
H iu hnh c th c nhn t nhiu li im khc nhau. Ngi ny xem xt
cc dch v m h iu hnh cung cp. Ngi kia quan tm n giao din m h iu
hnh mang li cho ngi dng v ngi lp trnh. Ngi khc li phn r h thng
thnh nhng thnh phn v cc mi quan h bn trong ca chng. Trong chng ny
chng ta tm hiu c ba kha cnh ca h iu hnh, th hin ba quan im ca ngi
dng, ngi lp trnh v ngi thit k h iu hnh. Chng ta xem xt cc dch v
m h iu hnh cung cp, cch chng c cung cp v cc phng php khc nhau
c dng cho vic thit k h iu hnh.
III Cc thnh phn h thng
Chng ta c th to ra mt h thng ln v phc tp nh h iu hnh ch khi
phn chia h iu hnh thnh nhng phn nh hn. Mi phn nn l mt thnh phn
c m t r rng ca h thng, vi xut, nhp v cc chc nng c nh ngha
cn thn. Tuy nhin, nhiu h thng hin i chia s mc tiu h tr cc thnh phn
h thng c lit k sau y:
III.1 Qun l qu trnh
Mt chng trnh khng lm g tr khi cc ch th ca n c thc thi bi
mt CPU. Mt qu trnh c th c xem nh mt chng ang thc thi, nhng nh
ngha ca n s m rng khi chng ta khm ph chi tit hn. Mt chng trnh ngi
dng c chia thi chng hn nh mt trnh bin dch l mt qu trnh. Mt chng
trnh x l vn bn ang c thc thi bi mt ngi dng trn mt PC cng l mt
qu trnh. Mt tc v h thng, nh gi d liu xut ra my in cng c xem l mt
qu trnh. By gi chng ta c th xem xt mt qu trnh l mt cng vic hay chng
trnh chia thi, nhng chng ta s nghin cu khi nim ny tng qut hn trong cc
chng sau.
Mt qu trnh cn cc ti nguyn xc nh-gm thi gian CPU, b nh, tp tin,
cc thit b xut/nhp- hon thnh tc v ca n. Cc ti nguyn ny c cp cho
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang

18
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

qu trnh khi n c to ra, hay c cp pht ti n khi n ang chy. Ngoi ra, cc
ti nguyn vt l v lun l khc nhau m qu trnh nhn c khi n c to, d
liu khi to khc nhau (hay nhp) c th c truyn qua. Th d, xem xt mt qu
trnh c chc nng hin th trng thi ca mt tp tin trn mn hnh ca mt thit b
u cui. Qu trnh ny s c cho d liu vo l tn ca tp tin, v s thc thi cc
ch th thch hp v cc li gi h thng t c v xut trn thit b cui thng tin
mong mun. Khi qu trnh ny kt thc, h iu hnh s i li bt c ti nguyn no
c th dng li.
Chng ta nhn mnh mt chng trnh chnh n khng phi l mt qu trnh;
mt chng trnh l mt thc th th ng, nh l ni dung ca tp tin c lu trn
a, tri li mt qu trnh l mt thc th hot ng, vi mt b m chng trnh xc
nh ch th k tip thc thi. Vic thc thi ca qu trnh phi l tun t. CPU thc
thi mt ch th ca qu trnh sau khi thc thi mt ch thc trc cho n khi qu
trnh hon thnh. Ngoi ra, ti bt k thi im no, ti a mt ch th c thc thi
cho qu trnh. Do , mc d hai qu trnh c th c lin kt vi cng mt qu
trnh, v th chng c xem nh hai chui thc thi ring. Thng thng c mt
chng trnh sinh ra nhiu qu trnh khi n thc thi.
Mt qu trnh l mt n v cng vic trong h thng. Mt h thng cha tp
cc qu trnh, mt vi qu trnh ny l cc qu trnh h iu hnh (thc thi m h
thng) v cc qu trnh cn li l cc qu trnh ngi dng (chng thc thi m ngi
dng). Tt c cc qu trnh ny c tim nng thc thi ng hnh bng cch a hp
CPU gia cc qu trnh.
H iu hnh c nhim v cho cc hot ng sau khi cp n chc nng
qun l qu trnh:
o To v xo cc qu trnh ngi dng v h thng
o Tm dng v thc thi tip qu trnh
o Cung cp cc c ch ng b ho qu trnh
o Cung cp cc c ch giao tip qu trnh
o Cung cp c ch qun l deadlock
III.2 Qun l b nh chnh
B nh chnh l trung tm iu hnh ca mt my tnh hin i. B nh chnh
l mt mng cc t (words) hay bytes c kch thc ln t hng trm ngn ti hng t.
Mi t hay byte c a ch ring. B nh chnh l mt kho cha d liu c kh nng
truy xut nhanh c chia s bi CPU v cc thit b xut/nhp. B x l trung tm
c cc ch th t b nh trong chu k ly ch th, n c v vit d liu t b nh
chnh trong chu k ly d liu. B nh chnh thng l thit b lu tr ln m CPU c
th nh a ch v truy xut trc tip. Th d, i vi CPU x l d liu t a, d
liu trc tin c chuyn ti b nh chnh bi li gi xut/nhp c sinh ra bi
CPU. Tng t, cc ch th phi trong b nh cho CPU thc thi chng.
i vi mt chng trnh c thc thi, n phi c nh x cc a ch v
c np vo b nh. Khi chng trnh thc thi, n truy xut cc ch th chng trnh
v d liu t b nh bng cch to ra cc a ch tuyt i ny. Cui cng, chng
trnh kt thc, khng gian b nh ca n c khai bo sn, v chng trnh c th
c np v thc thi.
ci tin vic s dng CPU v tc p ng ca my tnh cho ngi dng,
chng ta phi gi nhiu chng trnh vo b nh. Nhiu c ch qun l b nh khc
nhau c dng v tnh hiu qu ca cc gii thut ph thuc vo tng trng hp c
th. Chn mt c ch qun l b nh cho mt h thng xc nh ph thuc vo nhiu
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang

19
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

yu t-c bit trn thit k phn cng ca h thng. Mi gii thut i hi s h tr
phn cng ca n.
H iu hnh c nhim v cho cc hot ng sau khi cp ti vic qun l
b nh
o Gi vt v phn no ca b nh hin ang c dng v qu trnh no
ang dng.
o Quyt nh qu trnh no c np vo b nh khi khng gian b nh
tr nn sn dng.
o Cp pht v thu hi khng gian b nh khi c yu cu.
III.3 Qun l tp tin
Qun l tp tin l mt trong nhng thnh phn c th nhn thy nht ca h
iu hnh. My tnh c th lu thng tin trn nhiu loi phng tin lu tr vt l
khc nhau. Bng t, a t, a quang l nhng phng tin thng dng nht. Mi
phng tin ny c c im v t chc ring. Mi phng tin c iu khin bi
mt thit b, nh mt a hay bng t. Cc thuc tnh ny bao gm tc truy
xut, dung lng, tc truyn d liu v phng php truy xut (tun t hay ngu
nhin).
Nh vo vic s dng thun li h thng my tnh, h iu hnh cung cp tm
nhn lun l ca vic lu tr thng tin ng nht. H iu hnh tru tng ho cc
thuc tnh vt l ca cc thit b lu tr nh ngha mt n v lu tr lun l l tp
tin. H iu hnh nh x cc tp tin trn cc thit b lu tr vt l, v truy xut cc tp
tin ny bng cc thit b lu tr.
Tp tin l tp hp thng tin c quan h c nh ngha bi ngi to. Thng
thng, cc tp tin biu din chng trnh v d liu. Cc tp tin d liu c th l s,
ch ci, ch s. Cc tp tin c dng bt k (th d, cc tp tin vn bn) hay c th
c nh dng c cu trc (th d, cc trng c nh). Mt tp tin cha mt chui
cc bits, bytes, cc dng hay cc mu tin m ngha ca n c nh ngha bi
ngi to. Khi nim tp tin l mt khi nim cc k thng dng.
H iu hnh ci t mt khi nim tru tng ca tp tin bng cch qun l
phng tin lu tr nh a, bng t v cc thit b iu khin chng. Cc tp tin cng
thng c t chc trong cc th mc d dng s dng chng. Cui cng, khi
nhiu ngi dng truy xut tp tin, chng ta mun kim sot ai v trong cch g (th
d: c, vit, chn,..) cc tp tin c th c truy xut.
H iu hnh c nhim v thc hin cc hot ng trong vic qun l h thng
tp tin:
o To v xo tp tin
o To v xo th mc
o H tr cc hm nguyn thu thao tc tp tin v th mc
o nh x cc tp tin trn cc thit b lu tr ph
o Sao lu d phng tp tin trn cc phng tin lu tr nh
III.4 Qun l h thng xut/nhp
Mt trong nhng mc ch ca h iu hnh l che giu s khc bit ca cc thit b
phn cng t ngi dng. Th d, trong UNIX s khc bit ca cc thit b xut/nhp
b che giu t phn chnh ca h iu hnh bi cc h thng con xut/nhp. H thng
con xut/nhp cha:
o Thnh phn qun l b nh cha vng m (buffering), lu tr
(caching) v spooling (vng cha).
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang

20
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

o Giao din trnh iu khin thit b chung.
o Trnh iu khin cho cc thit b xc nh.
Ch trnh iu khin thit b bit s khc bit ca cc thit b xc nh m n c gn
III.5 Qun l vic lu tr ph
Mc ch chnh ca mt h thng my tnh l thc thi cc chng trnh.
Nhng chng trnh ny vi d liu chng truy xut phi nm trong b nh chnh hay
lu tr chnh trong qu trnh thc thi. V b nh chnh qu nh lu tt c d liu v
chng trnh v v d liu qun l b mt khi mt in, h thng my tnh phi cung
cp vic lu tr ph lu d phng b nh chnh. Hu ht cc h thng my tnh
hin i dng a nh phng tin lu tr trc tuyn cho c chng trnh v d liu.
Hu ht cc chng trnh gm trnh bin dch, trnh dch hp ng, th tc sp xp,
trnh son tho v trnh nh dng c lu trn a cho ti khi c np vo trong
b nh v sau dng a khi c hai ngun v ch ca vic x l. Do , qun l
hp l vic lu tr a c vai tr quan trng i vi mt h thng my tnh.
H iu hnh c nhim v thc hin cc hot ng sau trong vic qun l a:
o Qun l khng gian trng
o Cp pht lu tr
o nh thi a
V lu tr ph c dng thng xuyn nn n phi c dng mt cch hiu
qu. Tc ton b ca cc thao tc ca my tnh c th xoay quanh tc h thng
con a v cc gii thut thao tc trn h thng con .
III.6 Mng
H phn tn l tp hp cc b x l, chng khng chia s b nh, cc thit b
ngoi vi hay ng h. Thay vo mi b x l c b nh, ng h v cc b x l
giao tip vi nhau thng qua cc ng giao tip nh bus tc cao hay mng. Cc
b x l trong h thng phn tn khc nhau v kch thc v chc nng. Chng c th
cha cc b vi x l, trm lm vic, my vi tnh v cc h thng my tnh thng
thng.
Cc b x l trong h thng c ni vi nhau thng qua mng truyn thng
c th c cu hnh trong nhiu cch khc nhau. Mng c th c ni kt mt phn
hay ton b. Thit k mng truyn thng phi xem xt vch ng thng ip v cc
chin lc ni kt, v cc vn cnh tranh hay bo mt.
H thng phn tn tp hp nhng h thng vt l ring r, c th c kin trc khng
ng nht thnh mt h thng cht ch, cung cp ngi dng vi truy xut ti cc ti
nguyn khc nhau m h thng duy tr. Truy xut ti cc ti nguyn chia s cho php
tng tc tnh ton, chc nng, kh nng sn dng ca d liu, kh nng tin cy. H
iu hnh thng tng qut ho vic truy xut mng nh mt dng truy xut tp tin,
vi nhng chi tit mng c cha trong trnh iu khin thit b ca giao din mng.
Cc giao thc to mt h thng phn tn c th c mt nh hng to ln trn tin ch
v tnh ph bin ca h thng . S i mi ca World Wide Web to ra mt
phng php truy xut mi cho thng tin chia s. N ci tin giao thc truyn tp
tin (File Transfer Protocol-FTP) v h thng tp tin mng (Network File System-NFS)
c bng cch xo yu cu cho mt ngi dng ng nhp trc khi ngi dng
c php dng ti nguyn xa. nh ngha mt giao thc mi, giao thc truyn siu
vn bn (hypertext transfer protocol-http), dng trong giao tip gia mt trnh phc v
web v trnh duyt web. Trnh duyt web ch cn gi yu cu thng tin ti mt trnh
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang

21
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

phc v web ca my xa, thng tin (vn bn, ho, lin kt ti nhng thng tin
khc) c tr v.
III.7 H thng bo v
Nu mt h thng my tnh c nhiu ngi dng v cho php thc thi ng
hnh ca nhiu qu trnh, th cc qu trnh khc nhau phi c bo v t cc hot
ng ca qu trnh khc. Cho mc ch ny, cc c ch m bo rng cc tp tin, phn
on b nh, CPU, v cc ti nguyn khc c th c iu hnh ch bi cc qu trnh
c quyn ph hp t h iu hnh.
Th d, phn cng nh a ch b nh m bo rng mt qu trnh c th thc
thi ch trong khng gian a ch ca chnh n. B nh thi m bo rng khng c
qu trnh no c th t c iu khin ca CPU m cui cng khng tr li iu
khin. Cc thanh ghi iu khin thit b khng th truy xut ti ngi dng v th tnh
ng n ca cc thit b ngoi vi khc nhau c bo v.
Bo v l mt c ch iu khin truy xut ca cc chng trnh, qu trnh
hay ngi dng ti ti nguyn c nh ngha bi mt h thng my tnh. C ch
ny phi cung cp phng tin c t cc iu khin c p t v phng tin
cho vic p buc.
Bo v c th ci tin kh nng tin cy bng cch pht hin cc li tim tng
ti cc giao din gia cc h thng con thnh phn. Pht hin cc li giao din sm
thng c th ngn chn nguy c nh hng ti h thng con bi mt h thng con
khc. Ti nguyn khng c bo v khng th ngn chn vic s dng bi ngi
dng khng c quyn. H thng hng bo v (protection-oriented system) cung cp
mt phng tin phn bit gia vic dng c quyn v khng c quyn.
III.8 H thng thng dch lnh
Mt trong nhng chng trnh h thng quan trng nht i vi h iu hnh
l trnh thng dch lnh. N l giao din gia ngi dng v h iu hnh. Mt vi h
iu hnh cha trnh thng dch lnh trong nhn (kernel). Cc h iu hnh khc nhau
nh MS-DOS v UNIX xem trnh thng dch lnh nh mt chng trnh c bit
ang chy khi mt cng vic c khi to hay khi ngi dng ng nhp ln u
tin (trn cc h thng chia thi).
Nhiu lnh (commands) c cung cp ti h iu hnh bi cc lnh iu
khin (control statements). Khi mt cng vic mi c bt u trong h thng b,
hay khi mt ngi dng ng nhp ti h thng chia thi, mt chng trnh c v
thng dch cc cu lnh iu khin c thc thi t ng. Chng trnh ny cn c
gi trnh thng dch th iu khin (control-card interpreter) hay trnh thng dch
dng lnh v thng c bit nh shell. Chc nng ca n n gin l: ly cu lnh
tip theo v thc thi n.
Cc h iu hnh thng khc nhau trong vng shell, vi mt trnh thng dch
lnh thn thin vi ngi dng lm cho h thng c th chp nhp nhiu hn i vi
ngi dng. Mt dng giao din thn thin ngi dng l h thng trnh n-ca s
trn c s chut (mouse-based window-and-menu system) c dng trong
Macintosh v Microsoft Windows. Chut c di chuyn ti v tr con tr chut trn
nh hay biu tng trn mn hnh biu din cc chng trnh, tp tin, v cc hm h
thng. Ph thuc vo v tr con tr chut, nhn mt nt trn chut c th np mt
chng trnh, chn mt tp tin hay th mc hay ko xung mt trnh n cha cc
cu lnh. Cc shell mnh hn, phc tp hn v kh hc hn c nh gi cao bi
mt s ngi dng khc. Trong nhng shell ny, cc lnh c nh vo t bn phm
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang

22
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

c hin th trn mn hnh hay in ra thit b u cui, vi phm enter (hay return) ch
rng mt lnh hon thnh v sn sng c thc thi. Shell ca MS-DOS v UNIX
iu hnh theo cch ny.
Cc cu lnh gii quyt vic to v qun l qu trnh, qun l xut/nhp, qun l
vic lu tr ph, qun l b nh chnh, truy xut h thng tp tin, bo v v mng.
IV Cc dch v h iu hnh
H iu hnh cung cp mt mi trng cho vic thc thi cc chng trnh. N
cung cp cc dch v xc nh ti chng trnh v ti ngi dng ca cc chng
trnh . D nhin, cc dch v c cung cp khc nhau t h iu hnh ny vi h
iu hnh kia nhng chng c th xc nh cc lp chung. Cc dch v h iu hnh
c cung cp s tin dng cho ngi lp trnh thc hin tc v lp trnh d dng.

o Thc thi chng trnh: h thng phi c th np chng trnh vo b nh v
chy chng trnh . Chng trnh phi c th kt thc vic thc thi ca n
bnh thng hay khng bnh thng (hin th li).
o Thao tc xut/nhp: mt chng trnh ang chy c th yu cu xut/nhp.
Xut/nhp ny c th lin quan ti tp tin hay thit b xut/nhp. i vi cc
thit b c th, cc chc nng c bit c th c mong mun (nh quay li
t u mt bng t, hay xo mn hnh). i vi tnh hiu qu v tnh bo
v, ngi dng thng khng th iu khin cc thit b xut/nhp trc tip.
Do , h iu hnh phi cung cp mt phng tin thc hin xut/nhp..
o Thao tc h thng tp tin: h thng tp tin c s quan tm c bit. Cc
chng trnh cn c t v vit ti cc tp tin. Chng trnh cng cn to v
xo tp tin bng tn.
o Giao tip: trong nhiu trng hp, mt qu trnh cn trao i thng tin vi
cc qu trnh khc. Giao tip nh th c th xy ra trong hai cch chnh.
Cch u tin xy ra gia cc qu trnh c thc thi trn cng my tnh;
cch th hai xy ra gia hai qu trnh ang c thc thi trn cc my tnh
khc nhau c kt ni vi nhau bi mt mng my tnh. Cc giao tip c
th c thc hin bng b nh c chia s, hay bng k thut truyn
thng ip, trong cc gi tin c di chuyn gia cc qu trnh bi h
iu hnh.
o Pht hin li: h iu hnh lin tc yu cu nhn bit cc li c th pht
sinh. Cc li c th xy ra trong CPU v phn cng b nh (nh li b nh
hay li v in), trong cc thit b xut/nhp (nh li chn l trn bng t,
li ni kt mng, ht giy in) v trong chng trnh ngi dng (nh trn s
hc, c gng truy xut mt v tr b nh khng hp l, dng qu nhiu thi
gian CPU). i vi mi loi li, h iu hnh nn thc hin mt hot ng
hp l m bo tnh ton ng v khng i.

Ngoi ra, mt tp chc nng khc ca h iu hnh tn ti khng gip ngi
dng, nhng m bo cc iu hnh hu hiu ca chnh h thng. Cc h thng vi
nhiu ngi dng c th t tnh hu hiu bng cch chia s ti nguyn my tnh gia
cc ngi dng.
o Cp pht ti nguyn: khi nhiu ngi dng ng nhp vo h thng hay
nhiu cng vic ang chy cng lc, ti nguyn phi c cp ti mi ngi
dng. Nhiu loi ti nguyn khc nhau c qun l bi h iu hnh. Mt
s ti nguyn (nh chu k CPU, b nh chnh, lu tr tp tin) c m cp
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang

23
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

pht t bit, tri li cc ti nguyn khc (nh thit b xut/nhp) c m yu
cu v gii phng thng hn. Th d, xc nh cch tt nht dng CPU,
h iu hnh c cc th tc nh thi biu CPU. Cc th tc ny xem xt tc
CPU, cc cng vic phi c thc thi, s thanh ghi sn dng v cc yu
t khc. Cng c cc th tc cp pht bng t dng cho mt cng vic.
Mt th tc nh th nh v bng t cha c dng v nh du mt
bng bn trong ghi ngi dng mi ca bng t. Mt th tc khc c
dng xo bng . Cc th tc ny cng c th cp pht cc my v,
modem, cc thit b ngoi vi khc.
o Tnh ton: chng ta mun gi vt ngi dng no s dng bao nhiu v loi
ti nguyn my tnh no. Gi vt ny c th c dng tnh ton (tnh
tin ngi dng) hay n gin thng k s dng. Thng k s dng c th l
cng c c gi tr cho ngi nghin cu mun cu hnh li h thng ci
tin cc dch v tnh ton.
o Bo v: ngi s hu thng tin c lu trong h thng my tnh a ngi
dng mun iu khin thng tin ny. Khi nhiu qu trnh ring r thc thi
ng hnh, khng th cho mt qu trnh can thip ti cc qu trnh khc hay
ti chnh h iu hnh. Bo v m bo rng tt c truy xut ti nguyn ca
h thng c kim sot. An ton h thng t ngi dng bn ngoi cng l
vn quan trng. An ton bt u vi mi ngi dng c quyn i vi h
thng, thng bng mt khu c php truy xut ti nguyn. M rng
vic bo v i vi cc thit b xut/nhp bn ngoi, bao gm modem, card
mng t nhng truy xut khng hp l, v ghi li cc ni kt pht hin
t nhp vo h thng. Nu h thng bo v v bo mt, nhng cnh bo
phi c thit lp xuyn sut.
V Li gi h thng
Li gi h thng cung cp giao din gia mt qu trnh v h iu hnh. Cc li
gi ny thng sn dng nh cc ch th hp ng v chng thng c lit k trong
nhng ti liu hng dn s dng c dng bi nhng ngi lp trnh hp ng.
Nhng h thng xc nh cho php li gi h thng c thc hin trc tip t mt
chng trnh ngn ng cp cao, trong cc li gi thng tng t li gi hm hay
th tc c nh ngha trc. Chng c th to ra mt li gi ti mt chng trnh
con ti thi im thc thi c th.
Li gi h thng xy ra trong nhiu cch khc nhau, ph thuc vo my tnh
ang dng. Thng nhiu thng tin c yu cu hn l n gin xc nh li gi h
thng mong mun. Loi chnh xc v lng thng tin khc nhau da vo h iu hnh
v li gi c th. Th d, nhp d liu, chng ta c th cn xc nh tp tin hay
thit b dng nh ngun nhp, a ch v chiu di vng m b nh m d liu nhp
s c c vo. D nhin, thit b hay tp tin v chiu di c th n trong li gi.
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang

24
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0



Hnh 0-1-Truyn tham s nh bng
C ba phng php thng dng truyn tham s ti h iu hnh. Phng
php n gin nht l truyn tham s trong cc thanh ghi. Trong mt vi trng hp,
cc tham s thng lu tr trong mt khi hay bng trong b nh v a ch ca khi
c truyn nh mt tham s trong thanh ghi (Hnh II.1). Cc tham s cng c th
c thay th, hay c y vo trong ngn xp bi chng trnh, v c ly ra khi
ngn xp bi h iu hnh. Mt vi h iu hnh dng phng php khi hay ngn
xp v cc phng php ny khng gii hn s lng hay chiu di ca tham s ang
c truyn.
VI Cc chng trnh h thng
Mt kha cnh khc ca h thng hin i l tp hp cc chng trnh h thng. Xem
li hnh I.1, n minh ha cu trc phn cp my tnh lun l. Ti cp thp nht l phn
cng. K n l h iu hnh, sau cc chng trnh h thng v cui cng l cc
chng trnh ng dng. Cc chng trnh h thng cung cp mi trng thun li cho
vic pht trin v thc thi chng trnh. Vi trong chng l cc giao din ngi dng
n gin cho cc li gi h thng; cc h thng cn li c xem xt phc tp hn.
Chng c th c chia thnh cc loi sau:
o Qun l tp tin: cc chng trnh to, xa, chp, i tn, in, kt xut, lit
k, v cc thao tc tp tin th mc thng thng.
o Thng tin trng thi: mt vi chng trnh n gin yu cu h thng
ngy, gi, lng b nh hay a sn dng, s lng ngi dng, hay thng
tin trng thi tng t. Sau , thng tin c nh dng v c in ti
thit b u cui hay thit b xut khc hoc tp tin.
o Thay i tp tin: nhiu trnh son tho vn bn c th sn dng to v
thay i ni dung ca tp tin c lu trn a hay bng t.
o H tr ngn ng lp trnh: trnh bin dch, trnh hp ng v trnh thng
dch cho cc ngn ng lp trnh thng dng (nh C, C++, Java, Visual
Basic v PERL) thng c cung cp ti ngi dng vi h iu hnh.
Hin nay, mt vi chng trnh ny c cung cp ring v c gi c
ring.
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang

25
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

o Np v thc thi chng trnh: mt khi chng trnh c tp hp hay
c bin dch, n phi c np vo b nh c thc thi. H thng
c th cung cp b np tuyt i, b np c th ti nh v, b son tho
lin kt v b np ph lp. Cc h thng g ri cho cc ngn ng cp cao
hay ngn ng my cng c yu cu.
o Giao tip: cc chng trnh ny cung cp c ch to cc ni kt o gia
cc qu trnh, ngi dng, cc h thng my tnh khc. Chng cho php
ngi dng gi cc thng ip ti mn hnh ca ngi dng khc, hin th
cc trang web, gi th in t, ng nhp t xa hay chuyn cc tp tin
t my tnh ny ti my tnh khc.
Nhiu h iu hnh c cung cp vi cc chng trnh gii quyt cc vn
giao tip thng thng hay thc hin cc thao tc ph bin. Nhng chng trnh nh
th gm cc trnh duyt Web, b x l vn bn v b nh dng vn bn, h c s d
liu, trnh bin dch, cc gi phn mm ha v phn tch thng k, tr chi,..Nhng
chng trnh ny c gi l cc tin ch h thng hay chng trnh ng dng.
Hu ht ngi dng nhn h iu hnh nh cc chng trnh h thng hn cc
li gi h thng thc s. Ngh v vic s dng mt PC. Khi my tnh ca chng ta
chy h iu hnh Microsoft Windows, chng ta c th thy mt trnh thng dch
dng lnh MS-DOS hay giao din ca s v trnh n ha. C hai s dng cng
mt tp li gi h thng nh li gi h thng trng rt khc v hot ng trong cc
cch khc nhau. Do , tm nhn ca chng ta v thc cht c th b tch ri vi cu
trc h thng thc s. V th, thit k mt giao din tin dng v thn thin khng l
mt chc nng trc tip ca h iu hnh. Trong gio trnh ny chng ta s tp trung
cc vn c bn ca vic cung cp dch v y cho cc chng trnh ngi dng.
T quan im h iu hnh, chng ta khng phn bit s khc nhau gia cc chng
trnh ngi dng v cc chng trnh h thng.
VII Cu trc h thng
Mt h thng ln v phc tp nh mt h iu hnh hin i phi c xy
dng cn thn nu n thc hin chc nng hp l v c hiu chnh d dng. Mt
phng php thng thng l chia tc v thnh cc thnh phn nh hn l c mt h
thng nguyn khi. Mi modules ny nn l mt thnh phn hon ton xc nh vi
nhp, xut, chc nng c nh ngha cn thn. Trong phn ny chng ta s tho
lun v cch thc m cc thnh phn c ni kt v trn ln trong mt nhn.
VII.1 Cu trc n gin










Hnh 0-2-Cu trc phn tng ca MS-DOS
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang

26
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

Nhiu h thng thng mi khng c kin trc r rng. Thng cc h iu
hnh nh th c bt u nh cc h thng nh, n gin v c gii hn. Sau
chng ln ln ngoi gii hn m ban u ca chng.
MS-DOS l mt th d cho h thng dng ny. Ban u, n c thit k v
thc hin bi mt vi ngi m h khng tng rng chng s tr nn qu ph bin.
N c vit cung cp cc kh nng nhiu nht trong khng gian t nht (v b gii
hn bi phn cng m n ang chy) v n khng c phn chia thnh cc modules
mt cch cn thn. Hnh II.2, hin th cu trc ca n.
UNIX l mt h iu hnh khc m ban u n b gii hn bi chc nng phn
cng. N cha hai phn c th tch ri nhau: nhn v cc chng trnh h thng.
Nhn li c chia thnh mt lot cc giao din v trnh iu khin thit b m chng
c thm vo v m rng qua nhiu nm khi UNIX c ci tin. Chng ta c th
hin th h iu hnh UNIX truyn thng khi n c phn tng nh hnh II.3. Mi
th bn di giao din li gi h thng v bn trn phn cng vt l l nhn. Nhn
cung cp h thng tp tin, b nh thi CPU, qun l b nh v cc chc nng khc
ca h iu hnh thng qua li gi h thng. C rt nhiu chc nng c ni kt
trong cp th nht. iu ny lm cho UNIX kh c th nng cp khi nhng thay i
trong phn mt nh hng bt li cho nhng phn khc.












Hnh 0-3 Cu trc h thng ca UNIX
Li gi h thng nh ngha giao din lp trnh ng dng (API-Application
Programming Interface) cho UNIX; tp hp cc chng trnh h thng thng sn
dng nh ngha giao din ngi dng. Ngi lp trnh v giao din ngi dng nh
ngha ng cnh m nhn phi h tr.
Nhng n bn mi ca UNIX c thit k dng phn cng tin tin hn.
c cung cp s h tr phn cng hp l, cc h iu hnh c th c chia thnh
nhiu phn nh hn v ph hp hn l cc h thng MS-DOS v UNIX ban u. Sau
, cc h iu hnh c th gi li vic iu khin ln hn qua my tnh v qua cc
ng dng thc hin vic s dng my tnh . Nhng ngi ci t thoi mi hn
trong vic thc hin nhng thay i cc hot ng bn trong ca h thng v trong
vic to cc h iu hnh theo module. Di phng php t trn-xung (top-down),
ton b cc chc nng v c im c xc nh v c chia thnh cc thnh phn.
S phn chia ny cho php cc ngi lp trnh che giu thng tin; do h t do ci
t cc th tc cp thp khi h thy thch hp, c cung cp cc giao din bn ngoi
ca cc th tc khng b thay i do chnh th tc thc hin cc tc v thng
thng.
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang

27
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

VII.2 Phng php phn tng
Vic phn chia tng phn ca mt h thng c th c thc hin trong nhiu
cch. Mt trong nhng phng php ny l thc hin tip cn phn tng. Trong tip
cn ny h iu hnh c chia thnh nhiu tng (hay cp), mi tng c xy dng
trn nh ca tng di n. Tng cui cng (tng 0) l phn cng; tng cao nht (tng
N) l giao din ngi dng.
Mt tng h iu hnh l s ci t ca mt i tng tru tng. i tng
tru tng ny l s bao gi d liu v cc iu hnh c th thao tc d liu . Mt
tng h iu hnh in hnh tng M- c m t trong hnh II.4. N cha cc cu
trc d liu v tp hp cc th tc c th c gi bi cc tng cp cao hn. Sau ,
tng M c th gi cc thao tc trn tng cp thp hn.













Hnh 0-4-Mt tng h iu hnh

Li im ch yu ca tip cn phn tng l tnh module. Cc tng c chn
da trn c s tng trn s dng chc nng (hay cc iu hnh) v cc dch v ch ca
tng cp di n. Tip cn ny n gin ha vic g ri v kim tra h thng. Tng
u tin c th c g ri m khng c bt c s quan tm no cho phn cn li ca
h thng. Bi v theo nh ngha, n ch s dng phn cng c bn ci t cc chc
nng ca n. Mt khi tng u tin c g ri, chc nng sa li ca n c th c
m ng trong khi tng th hai c g ri, Nu mt li c tm thy trong khi
g ri cho mt tng xc nh, li phi c nm trn tng v cc tng bn di
c g ri ri. Do , thit k v ci t h thng c n gin ha khi h thng
c phn chia thnh nhiu tng.
Mi tng c ci t ch vi cc thao tc c cung cp bi cc tng bn
di. Mt tng khng cn bit cc thao tc c ci t nh th no; n ch cn bit
cc thao tc lm g. Do , mi tng che giu s tn ti ca cu trc d liu, thao
tc v phn cng t cc tng cp cao hn.
Kh khn chnh ca tip cn phn tng lin quan ti vic nh ngha cn thn
cc tng v mt tng ch c th s dng cc tng bn di n. Th d, trnh iu khin
thit b cho khng gian a c dng bi cc gii thut b nh o phi nm ti cp
thp hn trnh iu khin thit b ca cc th tc qun l b nh v qun l b nh yu
cu kh nng s dng khng gian a.
Cc yu cu c th khng tht s r rng. Thng th cc trnh iu khin lu
tr d phng nm trn b nh thi CPU v trnh iu khin cn phi ch nhp/xut v
CPU c th c nh thi li trong thi gian ny. Tuy nhin, trn h thng ln, b
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang

28
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

nh thi c th c nhiu thng tin hn v tt c qu trnh ang hot ng hn l c
th t va trong b nh. Do , thng tin ny c th cn c hon v vo v ra b
nh, yu cu th tc trnh iu khin lu tr d phng nm bn di b nh thi
CPU.
Vn cui cng vi cc ci t phn tng l chng c khuynh hng t hiu
qu hn cc loi khc. Th d, khi chng trnh ngi dng thc thi thao tc
nhp/xut, n thc thi mt li gi h thng. Li gi h thng ny c by (trapped)
ti tng nhp/xut, n yu cu tng qun l b nh, sau gi tng nh thi CPU,
sau c truyn ti phn cng. Ti mi tng, cc tham s c th c hiu chnh,
d liu c th c truyn,Mi tng thm chi ph cho li gi h thng; kt qu thc
s l li gi h thng mt thi gian lu hn khi chng thc hin trn h thng khng
phn tng.












Hnh 0-5 Cu trc phn tng ca OS/2
Nhng gii hn ny gy mt phn ng nh chng li vic phn tng trong
nhng nm gn y. Rt t cc tng vi nhiu chc nng c thit k, cung cp nhiu
li im ca m c module trong khi trnh nhng vn kh khn ca nh ngha
v giao tip tng. Th d, OS/2 b sung thm tnh nng a tc v v iu hnh hai ch
cng mt s c im mi. V tnh phc tp c b sung v phn cng mnh hn
m OS/2 c thit k, h thng c ci t trong dng phn tng.
VII.3 Vi nhn (Microkernels)
Khi h iu hnh UNIX c m rng, nhn tr nn ln v kh qun l. Vo
gia nhng nm 1980, cc nh nghin cu ti i hc Carnegie Mellon pht trin mt
h iu hnh c gi l Match m module ha nhn dng tip cn vi nhn (micro
kernel). Phng php ny nh kin trc ca h iu hnh bng xa tt c thnh phn
khng quan trng t nhn v ci chng nh cc chng trnh cp ngi dng v h
thng. Kt qu ny lm cho nhn nh hn. C rt t s nht tr lin quan n vic
quyt nh dch v no nn li trong nhn v dch v no nn c ci t trong
khng gian ngi dng. Tuy nhin, thng th cc vi nhn in hnh cung cp qu
trnh v qun l b nh ti thiu ngoi phng tin giao tip.
Chc nng chnh ca vi nhn l cung cp tin nghi giao tip gia chng trnh
khch hng v cc dch v khc m chng ang chy trong khng gian ngi dng.
Giao tip c cung cp bng truyn thng ip. Th d, nu chng trnh khch hng
mun truy xut mt tp tin, n phi giao tip vi trnh phc v tp tin (file server).
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang

29
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

Chng trnh ngi dng v dch v khng bao gi giao tip trc tip. ng hn l
chng giao tip gin tip bng cch truyn thng ip vi vi nhn.
Thun li ca tip cn vi nhn l d dng m rng h iu hnh. Tt c dch
v mi c thm ti khng gian ngi dng v do khng yu cu phi hiu chnh
nhn. Kt qu l h iu hnh d dng hn chuyn i t thit k phn cng ny
sang thit k phn cng khc. Vi nhn cng cung cp kh nng an ton v tin cy hn
v hu ht cc dch v ang chy nh ngi dng hn l nhn- cc qu trnh. Nu
mt dch v b li, phn cn li ca h iu hnh vn khng b nh hng.
Mt s h iu hnh hin i dng tip cn vi nhn. Tru64 UNIX (Digital UNIX
trc y) cung cp giao din UNIX ti ngi dng, nhng n c ci t vi nhn
Mach. Nhn Mach nh x cc li gi h thng vo cc thng ip ti cc dch v cp
ngi dng tng ng. H iu hnh Apple MacOS Server c da trn c s nhn
Mach.
QNX l h iu hnh thi thc cng da trn c s thit k vi nhn. Vi nhn
QNX cung cp cc dch v cho vic truyn thng ip v nh thi qu trnh. N cng
qun l giao tip mng cp thp v cc ngt phn cng. Tt c dch v khc trong
QNX c cung cp bi cc qu trnh chun chy bn ngoi nhn trong ch ngi
dng.
Windows NT dng mt cu trc tng hp. Windows NT c thit k chy
cc ng dng khc nhau, gm Win32 (ng dng thun Windows), OS/2, v POSIX
(Portable Operating System Interface for uniX). N cung cp mt server chy trong
khng gian ngi dng cho mi loi ng dng. Cc chng trnh khch hng cho mi
loi ng dng chy trong khng gian ngi dng. Nhn iu phi vic truyn thng
ip gia cc ng dng khch hng v server ng dng. Cu trc client-server ca
Windows NT c m t trong hnh II.6










Hnh 0-6 Cu trc client-server ca Windows NT
VIII My o
V mt khi nim, mt h thng my tnh c cu thnh t cc tng. Phn
cng l cp thp nht trong tt c h thng nh th. Nhn chy ti cp k tip dng
cc ch th phn cng to mt tp li gi h thng cho vic s dng cc tng bn
ngoi. Do , cc chng trnh h thng trn nhn c th dng cc li gi h thng
hay cc ch th phn cng. Trong nhiu trng hp, cc chng trnh ny khng c s
khc bit gia hai cch thc hin. Do , mc d chng c truy xut khc nhau,
nhng c hai cung cp chc nng m chng trnh c th dng to thm ch nhiu
chc nng tin tin hn. Sau , cc chng trnh h thng xem phn cng v cc li
gi h thng nh chng ang cng mt cp.
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang

30
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

Mt vi h thng thc hin c ch ny mt cch chi tit hn bng cch cho
php cc chng trnh h thng c gi d dng bi cc chng trnh ng dng.
Trc , mc d cc chng trnh h thng ti cp cao hn cc th tc khc,
nhng cc chng trnh ng dng c th hin th mi th di chng trong cu trc
phn cp nh l mt phn ca chnh my . Tip cn phn tng ny c a n
mt kt lun lun l trong khi nim my o (virtual machine). Mt h iu hnh my
o cho cc h thng IBM l mt th d in hnh nht v khi nim my o v IBM
tin phong thc hin trong lnh vc ny.
Bng cch s dng b nh thi CPU v k thut b nh o, mt h iu hnh
c th to mt hnh nh m mt qu trnh c b x l ca chnh n vi b nh (o)
ca chnh n. D nhin, thng th mt qu trnh c cc c im khc nhau, nh cc
li gi h thng v h thng tp tin, m khng c cung cp bi phn cng tr.
Thm vo , tip cn my o khng cung cp bt k chc nng b sung no; nhng
ng hn l cung cp mt giao din ging ht nh phn cng tr bn di. Mi qu
trnh c cung cp vi mt bn sao (o) ca my tnh bn di (Hnh II.7).
Mt kh khn chnh vi tip cn my o lin quan n h thng a. Gi s rng
my vt l c ba a nhng mun h tr by my o. R rng, n khng th cp
pht mt a ti mi my o. Nh rng chnh phn mm my o s cn khng gian
a lin tc cung cp b nh o. Gii php ny cung cp a o, m n ng trong
tt c kha cnh ngoi tr kch thc-c thut ng ha a nh (minidisks) trong h
iu hnh my o ca IBM. H thng ci t nhiu a nh bng cch cp pht nhiu
rnh ghi trn a vt l nh l cc a nh khi cn. Hin nhin, tng kch thc ca tt
c a nh l nh hn kch thc ca khng gian a vt l sn c.












Hnh 0-7-Cc m hnh h thng. (a) My khng o. (b) my o

Do , ngi dng c cho my o ca chnh h. Sau , h c th chy bt
k h iu hnh hay gi phn mm no sn dng trn phn cng bn di. i vi h
thng IBM VM, mt ngi dng thng chy CMS-mt h iu hnh giao tip n
ngi dng. Phn mm my o c quan tm vi a my o a chng trn mt
my vt l nhng khng cn xem xt bt c phn mm h tr ngi dng. Vic sp
xp ny c th cung cp mt s phn chia hu ch thnh hai phn nh hn ca vn
thit k mt h thng giao tip a ngi dng.



Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang

31
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

VIII.1 Ci t
Mc d khi nim my o l hu ch nhng rt kh ci t. Nhiu cng vic
c yu cu cung cp mt bn sao chnh xc ca my bn di. My bn di c hai
ch : ch ngi dng v ch kim sot. Phn mm my o c th chy trong
ch kim sot v n l h iu hnh. Chnh my o c th thc thi ch trong ch
ngi dng. Tuy nhin, ch khi my vt l c hai ch th n mi l my o. Do ,
chng ta phi c mt ch ngi dng o v mt ch kim sot o. C hai u
chy trong ch ngi dng vt l. Cc hot ng gy ra s chuyn t ch
ngi dng ti ch kim sot trn mt my tht (nh li gi h thng hay c gng
thc thi mt ch th c cp quyn) cng phi gy ra s chuyn i t ch ngi
dng o ti ch kim sot o trn mt my o.
VIII.2 Li im
C hai li im chnh trong vic s dng my o. Th nht, bng cch bo v
hon ton cc ti nguyn h thng, my o cung cp mc bo mt cao. Th hai,
my o cho php pht trin h thng c thc hin m khng cn ph v hot ng
h thng thng thng.
Mi my o hon ton b c lp t cc my o khc, v th chng ta khng gp
phi bt k vn bo mt no nh ti nguyn h thng khc hon ton c bo v.
Th d, cc ng dng khng c tin cy c ti v t Internet c th c chy
trong mt my o ring. Mt bt li ca mi trng ny l khng c s chia s ti
nguyn trc tip. Hai tip cn cung cp s chia s c ci t. Th nht, c th chia
s mt a nh. C ch ny c lm mu sau mt a c chia s vt l. Th hai, c
th nh ngha mt mng ca cc my o, mi my o c th gi thng tin qua cc
mng giao tip ny nhng n c ci t bng phn mm.
Nhng h thng my o nh th l mt phng tin truyn thng hu hiu cho
vic nghin cu v pht trin h iu hnh. Thng thng, thay i mt h iu hnh
l mt tc v kh. V cc h iu hnh l cc chng trnh ln v phc tp, s thay
i trn mt phn ny c th gy mt li kh hiu trong nhng phn khc. Sc mnh
ca h iu hnh lm cho trng hp ny l cc k nguy him. V h iu hnh thc
thi trong ch kim sot, mt thay i sai trong mt con tr c th gy li v c th
ph hy ton h thng tp tin. Do , cn phi kim tra tt c thay i ca h iu
hnh mt cch cn thn.
Tuy nhin, h iu hnh chy trn my v iu khin hon ton my . Do
, h thng hin hnh phi b dng v ngng vic s dng trong khi nhng thay i
c thc hin v kim tra. Thi im ny thng c gi l thi gian pht trin h
thng. V n lm cho h thng khng sn dng i vi ngi s dng nn thi gian
pht trin h thng thng c lp thi biu vo bui ti hay cui tun, khi ti h
thng thp.
Mt h thng my o c th loi tr nhiu vn ny. Ngi lp trnh h thng
c cung cp chnh my o ca h, v pht trin h thng c thc hin trn my
o thay v trn my vt l tht s. Mt h iu hnh thng thng t khi b ph v v
pht trin h thng. Mc d nhng thun li ny, nhng rt t ci tin trn k thut
ny c thc hin gn y.




Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang

32
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

IX Tm tt
H iu hnh cung cp mt s dch v. Ti cp thp nht, li gi h thng cho
php mt chng trnh ang chy thc hin yu cu trc tip t h thng. Ti cp cao
hn, trnh thng dch cung cp c ch cho ngi dng a ra yu cu m khng vit
chng trnh. Cc lnh c th xut pht t tp tin trong sut thi gian thc thi theo
ch x l theo l, hay trc tip t bn phm trong ch tng tc hay chia s thi
gian. Cc chng trnh h thng c cung cp tho mn nhiu yu cu thng
thng ca ngi dng.
Cc loi yu cu khc nhau da theo cp yu cu. Cp gi h thng phi cung
cp cc chc nng c bn, nh iu khin qu trnh, qun l tp tin v thit b. Cc
yu cu cp cao hn c tho mn bi trnh thng dch lnh v chng trnh h
thng c dch vo mt chui cc li gi h thng. Cc dch v h thng c th c
phn cp thnh nhiu loi: iu khin chng trnh, yu cu trng thi, yu cu
nhp/xut. Li chng trnh c xem xt cc yu cu n cho dch v.
Mt khi dch v h thng c nh ngha, cu trc ca h iu hnh c pht
trin. Cc bng khc nhau cn c ghi thng tin nh ngha trng thi ca h thng
my tnh v trng thi ca cng vic h thng.
Thit k mt h iu hnh mi l cng vic rt quan trng. Thit k h thng
nh th t ca cc tng hay s dng vi nhn c xem l mt k thut tt. Khi nim
my o thc hin tip cn phn tng v xem nhn ca h iu hnh v phn cng nh
l phn cng ca n. Cc h iu hnh khc c th c np trn nh ca my o.
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang

33
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0


QU TRNH
I Mc ch
Sau khi hc xong chng ny, ngi hc nm c nhng kin thc sau:
Hiu cc khi nim v qu trnh
Hiu cch lp thi biu qu trnh
Bit cc thao tc trn qu trnh
Hiu cch giao tip lin qu trnh
II Gii thiu
Nhng h thng my tnh ban u cho php ch mt chng trnh c thc thi
ti mt thi im. Chng trnh ny c ton quyn iu khin h thng v c truy
xut ti tt c ti nguyn ca h thng. Nhng h thng my tnh hin nay cho php
nhiu chng trnh c np vo b nh v c thc thi ng hnh. S pht trin
ny yu cu s iu khin mnh m hn v phn chia nhiu hn gia cc qu trnh.
Yu cu ny dn n khi nim qu trnh, mt chng trnh ang thc thi. Qu trnh
l mt n v cng vic trong mt h iu hnh chia thi hin i.
Mt h iu hnh phc tp hn c mong i nhiu hn trong vic thc hin
cc hnh vi ca ngi dng. Mc d quan tm ch yu ca h iu hnh l thc thi
chng trnh ngi dng, nhng n cng quan tm n cc tc v khc nhau bn
ngoi nhn. Do , mt h thng cha tp hp cc qu trnh: qu trnh h iu hnh
thc thi m h thng, qu trnh ngi dng thc thi m ngi dng. Tt c qu trnh
ny c tim nng thc thi ng hnh, vi mt CPU (hay nhiu CPU) c a hp
gia chng. Bng cch chuyn i CPU gia cc qu trnh, h iu hnh c th lm
cho my tnh hot ng vi nng sut cao hn.
III Khi nim qu trnh
Mt vn cn tho lun l ci g c gi trong tt c hot ng ca CPU?
Mt h thng b thc thi cng vic, tri li mt h thng chia thi thc thi chng
trnh ngi dng hay tc v. Thm ch trn h thng n ngi dng nh Microsoft
Windows v Macintosh OS, mt ngi dng c th chy nhiu chng trnh ti mt
thi im: b x l vn bn, trnh duyt web, e-mail. Thm ch nu ngi dng c th
thc thi ch mt qu trnh ti mt thi im, th mt h iu hnh cn h tr nhng
hot ng c lp trnh bn trong, nh qun l b nh. Trong nhiu kha cnh, tt c
hot ng l tng t v th chng ta gi tt c chng l qu trnh.






Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang 37
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0


III.1 Qu trnh
Tht vy, mt qu trnh l mt chng trnh ang thc thi. Mt qu trnh
khng ch l m chng trnh, n cn bao gm hot ng hin hnh nh c hin
din bi gi tr ca b m chng trnh v ni dung cc thanh ghi ca b x l.
Ngoi ra, mt qu trnh thng cha ngn xp qu trnh, cha d liu tm thi (nh
cc tham s phng thc, cc a ch tr v, cc bin cc b) v phn d liu cha cc
bin ton cc.
Chng ta nhn mnh rng, mt chng trnh khng phi l mt qu trnh; mt
chng trnh l mt thc th th ng, nh ni dung ca cc tp tin c lu trn a,
tri li mt qu trnh l mt thc th ch ng, vi mt b m chng trnh xc nh
ch th lnh tip theo s thc thi v tp hp ti nguyn c lin quan.
Mc d hai qu trnh c th c lin kt vi cng chng trnh nhng chng
c cha hai th t thc thi ring r. Th d, nhiu ngi dng c th ang chy cc
bn sao ca chng trnh gi nhn th, hay cng ngi dng c th np ln nhiu bn
sao ca mt chng trnh son tho vn bn. Mi bn sao ca chng l mt qu trnh
ring v mc d cc phn vn bn l ging nhau, cc phn d liu khc nhau. Ngoi
ra, mt qu trnh c th to ra nhiu qu trnh khi n thc thi.
III.2 Trng thi qu trnh
Khi mt qu trnh thc thi, n thay i trng thi. Trng thi ca qu trnh c
nh ngha bi cc hot ng hin hnh ca qu trnh . Mi qu trnh c th mt
trong nhng trng thi sau:
Mi (new): qu trnh ang c to ra
ang chy (running): cc ch th ang c thc thi
Ch (waiting): qu trnh ang ch s kin xy ra (nh hon thnh vic
nhp/xut hay nhn tn hiu)
Sn sng (ready): qu trnh ang ch c gn ti mt b x l.
Kt thc (terminated): qu trnh hon thnh vic thc thi

Cc tn trng thi ny l bt k, v chng khc nhau cc h iu hnh khc
nhau. Tuy nhin, cc trng thi m chng hin din c tm thy trn tt c h thng.
Cc h iu hnh xc nh m t trng thi qu trnh. Ch mt qu trnh c th ang
chy tc th trn bt k b x l no mc d nhiu qu trnh c th trng thi sn
sng v ch.





Hnh 0-1-Lu trng thi qu trnh
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang 38
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0


III.3 Khi iu khin qu trnh
Mi qu trnh c hin din trong h iu hnh bi mt khi iu khin qu
trnh (Process Control Block-PCB) cng c gi khi iu khin tc v. Mt PCB
c hin th trong hnh III-2. N cha nhiu phn thng tin c gn lin vi mt
qu trnh xc nh, gm:

Hnh 0-2-Khi iu khin qu trnh

Trng thi qu trnh (process state): trng thi c th l mi, sn sng, ang
chy, ch i, kt thc,
B m chng trnh (program counter): b m hin th a ch ca ch th
k tip c thc thi cho qu trnh ny.
Cc thanh ghi (registers) CPU: cc thanh ghi khc nhau v s lng v loi,
ph thuc vo kin trc my tnh. Chng gm cc b tng (accumulators), cc
thanh ghi ch mc, cc con tr ngn xp, v cc thanh ghi a nng (general-
purpose registers), cng vi thng tin m iu kin (condition-code
information). Cng vi b m chng trnh, thng tin trng thi ny phi
c lu khi mt ngt xy ra, cho php qu trnh c tip tc mt cch ph
hp sau (Hnh III.3).
Thng tin lp thi biu CPU (CPU-scheduling information): thng tin gm
u tin ca qu trnh, cc con tr ch ti cc hng i lp thi biu, v bt
k tham s lp thi biu khc.
Thng tin qun l b nh (Memory-management information): thng tin ny
c th gm nhng thng tin nh gi tr ca cc thanh ghi nn v thanh ghi gii
hn, cc bng trang hay cc bng phn on, ph thuc h thng b nh c
dng bi h iu hnh.
Thng tin tnh ton (accounting information): thng tin ny gm lng CPU
v thi gian thc c dng, cng vic hay s qu trnh,
Thng tin trng thi nhp/xut (I/O status information): thng tin ny gm
danh sch ca thit b nhp/xut c cp pht qu trnh ny, mt danh sch
cc tp tin ang m,..

PCB n gin phc v nh kho cha cho bt c thng tin khc nhau t qu trnh
ny ti qu trnh khc.
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang 39
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0




Hnh 0-3-Lu hin th vic chuyn CPU t qu trnh ny ti qu trnh khc
III.4 Lung
M hnh qu trnh va c tho lun ng rng mt qu trnh l mt chng
trnh thc hin mt lung n thc thi. Th d, nu mt qu trnh ang chy mt
chng trnh x l vn bn, mt lung n ca ch th ang c thc thi. y l mt
lung iu khin n cho php qu trnh thc thi ch mt tc v ti mt thi im. Th
d, ngi dng khng th cng lc nhp cc k t v chy b kim tra chnh t trong
cng mt qu trnh. Nhiu h iu hnh hin i m rng khi nim qu trnh cho
php mt qu trnh c nhiu lung thc thi. Do , chng cho php thc hin nhiu
hn mt tc v ti mt thi im.
IV Lp thi biu qu trnh
Mc tiu ca vic a chng l c vi qu trnh chy ti tt c thi im tn
dng ti a vic s dng CPU. Mc tiu ca chia thi l chuyn CPU gia cc qu
trnh thng xuyn ngi dng c th giao tip vi mi chng trnh trong khi
ang chy. Mt h thng n x l ch c th chy mt qu trnh. Nu nhiu hn mt
qu trnh tn ti, cc qu trnh cn li phi ch cho ti khi CPU rnh v c th lp thi
biu li.
IV.1 Hng i lp thi biu
Khi cc qu trnh c a vo h thng, chng c t vo hng i cng
vic. Hng i cha tt c qu trnh trong h thng. Cc qu trnh ang nm trong b
nh chnh sn sng v ch thc thi c gi trn mt danh sch c gi l hng
i sn sng. Hng i ny thng c lu nh mt danh sch lin kt. u ca
hng i sn sng cha hai con tr: mt ch n PCB u tin v mt ch ti PCB
cui cng trong danh sch. Chng ta b sung thm trong mi PCB mt trng con tr
ch ti PCB k tip trong hng i sn sng.
H iu hnh cng c cc hng i khc. Khi mt qu trnh c cp pht
CPU, n thc thi mt khong thi gian v cui cng kt thc, c ngt, hay ch mt
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang 40
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0


s kin xc nh xy ra, chng hn nh hon thnh mt yu cu nhp/xut. Trong
trng hp yu cu nhp/xut, mt yu cu c th l a bng t tn hin hay mt
thit b c chia s nh a. V h thng c nhiu qu trnh, a c th bn vi yu
cu nhp/xut ca cc qu trnh khc. Do , qu trnh phi ch a. Danh sch qu
trnh ch mt thit b nhp/xut c th c gi l hng i thit b. Mi thit b c
hng i ca chnh n nh hnh III.4.
Mt biu din chung ca lp thi biu qu trnh l mt lu hng i, nh
hnh III.5. Mi hnh ch nht hin din mt hng i. Hai loi hng i c hin
din: hng i sn sng v tp cc hng i thit b, vng trn hin din ti nguyn
phc v hng i, cc mi tn hin th dng cc qu trnh trong h thng.
Mt qu trnh mi khi u c t vo hng i. N ch trong hng i sn
sng cho ti khi n c chn thc thi. Mt khi qu trnh c gn ti CPU v ang
thc thi, mt trong nhiu s kin c th xy ra:
Qu trnh c th pht ra mt yu cu nhp/xut v sau c t vo
trong hng i nhp/xut.
Qu trnh c th to mt qu trnh con v ch cho qu trnh con kt thc
Khi mt ngt xy ra, qu trnh c th b buc tr li CPU v c t tr
li trong hng i sn sng.
Trong hai trng hp u, cui cng qu trnh chuyn t trng thi ch ti
trng thi sn sng v sau t tr li vo hng i sn sng. Mt qu trnh tip tc
chu k ny cho ti khi n kt thc. Ti thi im kt thc n b xo t tt c hng i.
Sau , PCB v ti nguyn ca n c thu hi.



Hnh 0-4-Hng i sn sng v cc hng i nhp/xut khc nhau
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang 41
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0




Hnh 0-5-Biu din lu hng i ca lp thi biu qu trnh
IV.2 B nh thi biu
Mt qu trnh di di gia hai hng i nh thi khc nhau sut thi gian sng
ca n. H iu hnh phi chn, cho mc ch nh thi, cc qu trnh t cc hng i
ny. Qu trnh chn la ny c thc hin bi b nh thi hp l.
Trong h thng b, thng nhiu hn mt qu trnh c gi n hn l c th
c thc thi tc th. Cc qu trnh ny c lu ti thit b lu tr (nh a), ni
chng c gi cho vic thc thi sau . B nh thi di (long-term scheduler) hay
b nh thi cng vic (job scheduler), chn cc qu trnh t vng m v np chng
vo b nh thc thi. B nh thi ngn (short-term scheduler) hay b nh thi
CPU chn mt qu trnh t cc qu trnh sn sng thc thi v cp pht CPU cho qu
trnh .
S khc bit ch yu gia hai b nh thi l tnh thng xuyn ca vic thc
thi. B nh thi CPU phi chn mt qu trnh mi cho CPU thng xuyn. Mt qu
trnh c th thc thi ch mt vi mili giy trc khi ch yu cu nhp/xut. B nh
thi CPU thng thc thi t nht mt ln mi 100 mili giy. V thi gian ngn gia
vic thc thi nn b nh thi phi nhanh. Nu n mt 10 mili giy quyt nh thc
thi mt qu trnh 100 mili giy th 10/(100+10) = 9 phn trm ca CPU ang c
dng (hay b lng ph) n gin cho nh thi cng vic.
Ngc li, b nh thi cng vic thc thi t thng xuyn hn. C vi pht
gia vic to cc qu trnh mi trong h thng. B nh thi cng vic iu khin mc
a chng s qu trnh trong b nh. Nu mc a chng n nh th tc
trung bnh ca vic to qu trnh phi bng tc khi hnh trung bnh ca qu trnh
ri h thng. V khong thi gian di hn gia vic thc thi nn b nh thi cng
vic c th cp nhiu thi gian hn chn mt qu trnh thc thi.
B nh thi cng vic phi thc hin mt chn la cn thn. Thng thng,
hu ht cc qu trnh c th c m t nh l qu trnh hng nhp/xut (I/O-
bound proces) hay qu trnh hng CPU (CPU-bound process). Mt qu trnh
hng nhp/xut mt nhiu thi gian hn thc hin nhp/xut hn thi gian tnh
ton. Ngc li, mt qu trnh hng CPU pht sinh cc yu cu nhp/xut khng
thng xuyn, dng thi gian thc hin vic tnh ton hn mt qu trnh hng
nhp/xut dng. B nh thi cng vic nn chn s kt hp hi ho gia qu trnh
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang 42
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0


hng nhp/xut v qu trnh hng CPU. Nu tt c qu trnh l hng nhp/xut th
hng i sn sng s lun rng v b nh thi CPU s c t cng vic thc hin.
Nu tt c qu trnh l hng CPU th hng i nhp/xut s lun rng, cc thit b s
khng c s dng v h thng s mt cn bng. H thng vi nng lc tt nht s
c s kt hp cc qu trnh hng CPU v hng nhp/xut.
Trn mt vi h thng, b nh thi cng vic c th khng c hay rt t. Th
d, cc h thng chia thi nh UNIX thng khng c b nh thi cng vic nhng
n gin t mi qu trnh mi vo b nh cho b nh thi CPU. Kh nng n nh
ca h thng ny ph thuc vo gii hn vt l (nh s lng thit b cui sn dng)
hay tnh t nhin t chuyn i ca ngi dng. Nu nng lc thc hin gim ti mc
khng th chp nhn c th mt s ngi dng s thot khi h thng.
Mt s h thng nh h chia thi c th a vo mt cp nh thi b sung
hay nh thi trung gian. B nh thi trung gian (medium-term process) ny (c
hin th trong lu hnh III-6) xa cc qu trnh ra khi b nh (t s canh tranh
CPU) v do gim mc a chng. Ti thi im sau , qu trnh c th c
a tr li b nh v vic thc thi ca n c th c tip tc ni n b a ra. C ch
ny c gi l hon v (swapping). Qu trnh c hon v ra v sau c hon
v vo bi b nh thi trung gian. Hon v l cn thit ci tin s trn ln qu trnh
(gia cc qu trnh hng nhp/xut v hng CPU), hay v mt thay i trong yu
cu b nh vt qu kch thc b nh sn dng. Hon v s c tho lun trong
chng sau.








Hnh 0-6-Lu b sung nh thi trung bnh ti hng i
IV.3 Chuyn ng cnh
Chuyn CPU ti mt qu trnh khc yu cu lu trng thi ca qu trnh c v
np trng thi c lu cho qu trnh mi. Tc v ny c xem nh chuyn ng
cnh (context switch). Ng cnh ca qu trnh c hin din trong PCB ca qu
trnh; N cha gi tr cc thanh ghi, trng thi qu trnh (hnh III.1) v thng tin qun
l b nh. Khi chuyn ng cnh ng cnh xy ra, nhn lu ng cnh ca qu trnh c
trong PCB ca n v np ng cnh c lu ca qu trnh mi c nh thi
chy. Thi gian chuyn ng cnh l chi ph thun v h thng khng thc hin cng
vic c ch trong khi chuyn. Tc ca n khc t my ny ti my khc ph thuc
vo tc b nh, s lng thanh ghi phi c chp v s tn ti ca cc ch th c
bit (nh ch th np v lu tt c thanh ghi). in hnh dy tc t 1 ti 1000
mili giy.
Nhng ln chuyn i ng cnh ph thuc nhiu vo h tr phn cng. Th d,
vi b x l (nh Sun UltraSPARC) cung cp nhiu tp thanh ghi. Mt chuyn ng
cnh n gin cha chuyn i con tr ti tp thanh ghi hin hnh. D nhin, nu qu
trnh hot ng vt qu tp thanh ghi th h thng sp xp li d liu thanh ghi ti v
t b nh. Cng v th m h iu hnh phc tp hn v nhiu cng vic c lm
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang 43
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0


hn trong khi chuyn ng cnh. K thut qun l b nh nng cao c th yu cu d
liu b sung c chuyn vi mi ng cnh. Th d, khng gian a ch ca qu
trnh hin hnh phi c lu khi khng gian ca tc v k tip c chun b dng.
Khng gian a ch c lu nh th no v lng cng vic c yu cu lu n
ph thuc vo phng php qun l b nh ca h iu hnh. Chuyn ng cnh c
th dn n tht c chai nng lc thc hin v th cc lp trnh vin ang s dng cc
cu trc mi trnh n bt c khi no c th.
V Thao tc trn qu trnh
Cc qu trnh trong h thng c th thc thi ng hnh v chng phi c to
v xa t ng. Do , h iu hnh phi cung cp mt c ch (hay phng tin) cho
vic to qu trnh v kt thc qu trnh.
V.1 To qu trnh
Qu trnh c th to nhiu qu trnh mi, bng mt li gi h thng create-
process, trong khi thc thi. Qu trnh to gi l qu trnh cha, ngc li cc qu trnh
mi c gi l qu trnh con ca qu trnh . Mi qu trnh mi ny sau c th
to cc qu trnh khc, hnh thnh mt cy qu trnh (hnh III-7).
















Hnh 0-7-Cy qu trnh trn mt h thng UNIX in hnh
Thng thng, mt qu trnh s cn cc ti nguyn xc nh (nh thi gian
CPU, b nh, tp tin, thit b nhp/xut ) hon thnh tc v ca n. Khi mt qu
trnh to mt qu trnh con, qu trnh con c th nhn ti nguyn ca n trc tip t h
iu hnh hay n c th b rng buc ti mt tp con cc ti nguyn ca qu trnh cha.
Qu trnh cha c th phi phn chia cc ti nguyn gia cc qu trnh con hay c th
chia s mt s ti nguyn (nh b nh v tp tin) gia nhiu qu trnh con. Gii hn
mt qu trnh con ti mt tp con ti nguyn ca qu trnh cha ngn chn bt c qu
trnh t np chng h thng bng cch to qu nhiu qu trnh con.
Ngoi ra, khi mt qu trnh c to n ly ti nguyn vt l v lun l khc
nhau, d liu khi to (hay nhp) c th c truyn t qu trnh cha ti qu trnh
con. Th d, xt mt qu trnh vi ton b chc nng l hin th trng thi ca mt tp
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang 44
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0


tin F
1
trn mn hnh. Khi n c to, n s ly d liu vo t qu trnh cha, tn ca
tp tin F
1
v n s thc thi dng d liu ly thng tin mong mun.
N c th cng ly tn ca thit b xut. Mt s h iu hnh chuyn ti
nguyn ti qu trnh con. Trn h thng nh th, qu trnh mi c th ly hai tp tin
ang m, F
1
v thit b cui, v c th ch cn chuyn d liu gia hai tp tin.
Khi mt qu trnh to mt qu trnh mi, hai kh nng c th tn ti trong thut
ng ca vic thc thi:
Qu trnh cha tip tc thc thi ng hnh vi qu trnh con ca n.
Qu trnh cha ch cho ti khi mt vi hay tt c qu trnh con kt thc.

Cng c hai kh nng trong thut ng khng gian a ch ca qu trnh mi:
Qu trnh con l bn sao ca qu trnh cha.
Qu trnh con c mt chng trnh c np vo n.
hin th vic ci t khc nhau ny, chng ta xem xt h iu hnh UNIX.
Trong UNIX, mi qu trnh c xc nh bi danh biu qu trnh (process
identifier), l s nguyn duy nht. Mt qu trnh mi c to bi li gi h thng
fork. Qu trnh mi cha bn sao ca khng gian a ch ca qu trnh gc. C ch
ny cho php qu trnh cha giao tip d dng vi qu trnh con. C hai qu trnh (cha
v con) tip tc thc thi ti ch th sau khi li gi h thng fork, vi mt s khc bit:
m tr v cho li gi h thng fork l khng cho qu trnh mi (con), ngc li danh
biu qu trnh (khc khng) ca qu trnh con c tr v ti qu trnh cha.
in hnh li gi h thng execlp c dng sau li gi h thng fork bi mt
trong hai qu trnh thay th khng gian b nh vi qu trnh mi. Li gi h thng
execlp np tp tin nh phn vo trong b nh-xa hnh nh b nh ca chng trnh
cha li gi h thng execlp - v bt u vic thc thi ca n. Trong cch thc ny,
hai qu trnh c th giao tip v sau thc hin cch ring ca n. Sau , qu trnh
cha c th to nhiu hn qu trnh con, hay nu n khng lm g trong thi gian qu
trnh con chy th n s pht ra li gi h thng wait di chuyn n vo hng i
sn sng cho ti khi qu trnh con kt thc. Chng trnh C (hnh III-8 di y) hin
th li gi h thng UNIX c m t trc . Qu trnh cha to mt qu trnh con
s dng li gi h thng fork. By gi chng ta c hai qu trnh khc nhau chy mt
bn sao ca cng chng trnh. Gi tr pid cho qu trnh con l 0; cho qu trnh cha l
mt s nguyn ln hn 0. Qu trnh con ph lp khng gian a ch ca n vi lnh
ca UNIX l /bin/ls (c dng lit k th mc) dng li gi h thng execlp. Qu
trnh cha ch cho qu trnh con hon thnh vi li gi h thng wait. Khi qu trnh
con hon thnh, qu trnh cha bt u li t li gi h thng wait ni n hon thnh
vic s dng li gi h thng exit.
Ngc li, h iu hnh DEC VMS to mt qu trnh mi, np chng trnh
xc nh trong qu trnh v bt u thc thi n. H iu hnh Microsoft Windows
NT h tr c hai m hnh: khng gian a ch ca qu trnh cha c th c sao li
hay qu trnh cha c th xc nh tn ca mt chng trnh cho h iu hnh np vo
khng gian a ch ca qu trnh mi.








Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang 45
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0


#include<stdio.h>
main(int argc, char* argv[])
{
int pid;
/*fork another process*/
pid = fork();
if(pid<0){ /*error occurred */
fprintf(stderr, Fork Failed);
exit(-1);
}
else if (pid==0){ /*child process*/
execlp(/bin/ls,ls,NULL);
}
else { /*parent process*/
/*parent will wait for the child to complete*/
wait(NULL);
printf(Child Complete);
exit(0);
}
}
Hnh 0-8-Chng trnh C to mt qu trnh ring r
V.2 Kt thc qu trnh
Mt qu trnh kt thc khi n hon thnh vic thc thi cu lnh cui cng v
yu cu h iu hnh xa n bng cch s dng li gi h thng exit. Ti thi im
, qu trnh c th tr v d liu (u ra) ti qu trnh cha (bng li gi h thng
wait). Tt c ti nguyn ca qu trnh gm b nh vt l v lun l, cc tp tin ang
m, vng m nhp/xut-c thu hi bi h iu hnh.
Vic kt thc xy ra trong cc trng hp khc. Mt qu trnh c th gy kt
thc mt qu trnh khc bng mt li gi h thng hp l (th d, abort). Thng ch
c qu trnh cha b kt thc c th gi li gi h thng nh th. Ngc li, ngi dng
c th ty git (kill) mi cng vic ca qu trnh cn li. Do , qu trnh cha cn
bit cc nh danh ca cc qu trnh con. V th khi mt qu trnh to mt qu trnh
mi, nh danh ca mi qu trnh mi c to c truyn ti cho qu trnh cha.
Mt qu trnh cha c th kt thc vic thc thi ca mt trong nhng qu trnh con
vi nhiu l do khc nhau:
Qu trnh con s dng ti nguyn vt qu mc c cp. iu ny yu
cu qu trnh cha c mt c ch xem xt trng thi ca cc qu trnh
con.
Cng vic c gn ti qu trnh con khng cn cn thit na.
Qu trnh cha ang kt thc v h iu hnh khng cho php mt qu trnh
con tip tc nu qu trnh cha kt thc. Trn nhng h thng nh th, nu
mt qu trnh kt thc (bnh thng hoc khng bnh thng), th tt c
qu trnh con cng phi kt thc. Trng hp ny c xem nh kt thc
xp tng (cascading termination) thng c khi to bi h iu hnh.
hin th vic thc thi v kt thc qu trnh, xem xt h iu hnh UNIX
chng ta c th kt thc mt qu trnh dng li gi h thng exit; nu qu trnh cha c
th ch cho n khi qu trnh con kt thc bng li gi h thng wait. Li gi h
thng wait tr v nh danh ca qu trnh con b kt thc qu trnh cha c th xc
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang 46
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0


nh nhng qu trnh con no c th kt thc. Tuy nhin, nu qu trnh cha kt thc
th tt c qu trnh con ca n c gn nh qu trnh cha mi ca chng, qu trnh
khi to (init process). Do , cc qu trnh con ch c mt qu trnh cha tp hp
trng thi v thng k vic thc thi.
V.3 Hp tc qu trnh
Cc qu trnh ng hnh thc thi trong h iu hnh c th l nhng qu trnh
c lp hay nhng qu trnh hp tc. Mt qu trnh l c lp (independent) nu n
khng th nh hng hay b nh hng bi cc qu trnh khc thc thi trong h thng.
R rng, bt k mt qu trnh khng chia s bt c d liu (tm thi hay c nh) vi
qu trnh khc l c lp. Ngc li, mt qu trnh l hp tc (cooperating) nu n c
th nh hng hay b nh hng bi cc qu trnh khc trong h thng. Hay ni cch
khc, bt c qu trnh chia s d liu vi qu trnh khc l qu trnh hp tc.
Chng ta c th cung cp mt mi trng cho php hp tc qu trnh vi nhiu l
do:
Chia s thng tin: v nhiu ngi dng c th quan tm cng phn thng
tin (th d, tp tin chia s), chng phi cung cp mt mi trng cho php
truy xut ng hnh ti nhng loi ti nguyn ny.
Gia tng tc tnh ton: nu chng ta mun mt tc v chy nhanh
hn, chng ta phi chia n thnh nhng tc v nh hn, mi tc v s thc
thi song song vi cc tc v khc. Vic tng tc nh th c th t c
ch nu my tnh c nhiu thnh phn a x l (nh cc CPU hay cc knh
I/O).
Tnh module ha: chng ta mun xy dng h thng trong mt kiu mu
dng module, chia cc chc nng h thng thnh nhng qu trnh hay
lung nh tho lun chng trc.
Tnh tin dng: Thm ch mt ngi dng n c th c nhiu tc v thc
hin ti cng thi im. Th d, mt ngi dng c th ang son tho, in,
v bin dch cng mt lc.

Thc thi ng hnh ca cc qu trnh hp tc yu cu cc c ch cho php cc
qu trnh giao tip vi cc qu trnh khc v ng b ha cc hot ng ca chng.
minh ha khi nim ca cc qu trnh cng tc, chng ta xem xt bi ton ngi
sn xut-ngi tiu th, l m hnh chung cho cc qu trnh hp tc. Qu trnh ngi
sn xut cung cp thng tin c tiu th bi qu trnh ngi tiu th. Th d, mt
chng trnh in sn xut cc k t c tiu th bi trnh iu khin my in. Mt
trnh bin dch c th sn xut m hp ng c tiu th bi trnh hp ng. Sau ,
trnh hp ng c sn xut module i tng, c tiu th bi b np.
cho php ngi sn xut v ngi tiu th chy ng hnh, chng ta phi
c sn mt vng m cha cc sn phm c th c in vo bi ngi sn xut v
c ly i bi ngi tiu th. Ngi sn xut c th sn xut mt sn phm trong khi
ngi tiu th ang tiu th mt sn phm khc. Ngi sn xut v ngi tiu th
phi c ng b m ngi tiu th khng c gng tiu th mt sn phm m
cha c sn xut. Trong trng hp ny, ngi tiu th phi ch cho ti khi cc
sn phm mi c to ra.
Bi ton ngi sn xut-ngi tiu th vi vng m khng b gii hn
(unbounded-buffer) thit lp khng gii hn kch thc ca vng m. Ngi tiu
th c th phi ch cc sn phm mi nhng ngi sn xut c th lun to ra sn
phm mi. Vn ngi sn xut-ngi tiu th vi vng m c kch thc gii hn
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang 47
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0


(bounded-buffer) m bo mt kch thc c nh cho vng m. Trong trng hp
ny, ngi tiu th phi ch nu vng m rng, v ngi sn xut phi ch nu vng
m y.
Vng m c th c cung cp bi h iu hnh thng qua vic s dng
phng tin giao tip lin qu trnh (interprocess-communication-IPC), hay c
m ha c th bi ngi lp trnh ng dng vi vic s dng b nh c chia s.
chng ta hin th mt gii php chia s b nh i vi vn vng m b gii hn
(bounded-buffer). Qu trnh ngi sn xut v ngi tiu th chia s cc bin sau:
#define BUFFER_SIZE 10
typedef struct{

} item;
item buffer[BUFFER_SIZE];
int in = 0;
int out = 0;
Vng m c chia s c ci t nh mt mng vng vi hai con tr lun
l: in v out. Bin in ch ti v tr trng k tip trong vng m; out ch ti v tr y
u tin trong vng m. Vng m l rng khi in==out; vng m l y khi ((in +
1)%BUFFER_SIZE) ==out.
M cho qu trnh ngi sn xut v ngi tiu th c trnh by di y.
Qu trnh ngi sn xut c mt bin nextProduced trong sn phm mi c to
ra v c lu tr:
while (1) {
/*produce an item in nextProduced*/
while (((in + 1)%BUFFER_SIZE) ==out)
; /*do nothing*/
buffer[in] = nextProduced;
in = (in + 1) % BUFFER_SIZE;
}
Qu trnh ngi tiu th c bin cc b nextConsumed trong sn phm
c tiu th v c lu tr:
while (1){
while (in==out)
; //nothing
nextConsumed = buffer[out];
out = (out + 1) % BUFFER_SIZE;
/*consume the item in nextConsumed*/
}
C ch ny cho php nhiu nht BUFFER_SIZE 1 trong vng m ti cng
mt thi im.
VI Giao tip lin qu trnh
Trong phn trn chng ta hin th cch m cc qu trnh hp tc c th giao
tip vi nhau trong mt mi trng chia s b nh. C ch yu cu cc qu trnh ny
chia s nhm vng m chung v m cho vic ci t vng m c vit trc tip
bi ngi lp trnh ng dng. Mt cch khc t c cng nh hng cho h iu
hnh l cung cp phng tin cho cc qu trnh hp tc giao tip vi nhau bng mt
phng tin giao tip lin qu trnh (IPC).
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang 48
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0


IPC cung cp mt c ch cho php mt qu trnh giao tip v ng b cc hot ng
ca chng m khng chia s cng khng gian a ch. IPC c bit c ch trong mi
trng phn tn ni cc qu trnh giao tip c th thng tr trn cc my tnh khc
c ni kt qua mng. Th d chng trnh chat c dng trn World Wide Web.
IPC c cung cp bi h thng truyn thng ip, v cc h thng truyn
thng ip c th c nh ngha trong nhiu cch. Trong phn ny chng ta s xem
xt nhng vn khc nhau khi thit k cc h thng truyn thng ip.
VI.1 H thng truyn thng ip
Chc nng ca h thng truyn thng ip l cho php cc qu trnh giao tip
vi cc qu trnh khc m khng cn sp xp li d liu chia s. Chng ta xem truyn
thng ip c dng nh mt phng php giao tip trong vi nhn. Trong c ch
ny, cc dch v c cung cp nh cc qu trnh ngi dng thng thng. Ngha l,
cc dch v hot ng bn ngoi nhn. Giao tip gia cc qu trnh ngi dng c
thc hin thng qua truyn thng ip. Mt phng tin IPC cung cp t nht hai hot
ng: send(message) v receive(message).
Cc thng ip c gi bi mt qu trnh c th c kch thc c nh hoc
bin i. Nu ch cc thng ip c kch thc c nh c gi, vic ci t cp h
thng l n gin hn. Tuy nhin, hn ch ny lm cho tc v lp trnh s phc tp
hn. Ngoi ra, cc thng ip c kch thc thay i yu cu vic ci t mc h
thng phc tp hn nhng tc v lp trnh tr nn n gin hn.
Nu qu trnh P v Q mun giao tip, chng phi gi cc thng ip ti v
nhn thng ip t vi nhau; mt lin kt giao tip phi tn ti gia chng. Lin kt
ny c th c ci t trong nhng cch khc nhau. y chng ta quan tm n ci
t lun l hn l ci t vt l. C vi phng php ci t mt lin kt v cc hot
ng send/receive:
Giao tip trc tip hay gin tip
Giao tip i xng hay bt i xng
Gi bng bn sao hay tham chiu
Thng ip c kch thc c nh hay thay i
VI.2 t tn
Cc qu trnh mun giao tip phi c cch tham chiu vi nhau. Chng c th
dng giao tip trc tip hay gin tip.
VI.2.1 Giao tip trc tip
Vi giao tip trc tip, mi qu trnh mun giao tip phi t tn r rng ngi
gi v ngi nhn ca giao tip. Trong c ch ny, cc hm c s send v receive
c nh ngha nh sau:
Send(P, message): gi mt thng ip ti qu trnh P
Receive(Q, message): nhn mt thng ip t qu trnh Q

Mt lin kt giao tip trong c ch ny c nhng thuc tnh sau:

Mt lin kt c thit lp t ng gia mi cp qu trnh mun giao tip.
Cc qu trnh cn bit nh danh ca nhau khi giao tip.
Mt lin kt c ni kt vi chnh xc hai qu trnh
Chnh xc mt lin kt tn ti gia mi cp qu trnh.
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang 49
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0


C ch ny hin th tnh i xng trong vic nh a ch: ngha l, c hai qu
trnh gi v nhn phi bit tn nhau giao tip. Mt thay i trong c ch ny thc
hin tnh bt i xng trong vic nh a ch. Ch ngi gi bit tn ca ngi nhn;
ngi nhn khng yu cu tn ca ngi gi. Trong c ch ny cc hm c s c
nh ngha nh sau:

o Send(P, message): gi mt thng ip ti qu trnh P
o Receive(id, message): nhn mt thng ip t bt k qu trnh
no; id khc nhau c t tn ca qu trnh m giao tip xy ra.
S bt li trong c hai c ch i xng v khng i xng l tnh iu chnh
ca vic nh ngha qu trnh b gii hn. Thay i tn ca mt qu trnh c th cn
xem xt tt c nh ngha qu trnh khc. Tt c tham chiu ti tn c phi c tm
thy m chng c th c thay i thnh tn mi. Trng hp ny l khng mong
mun t quan im bin dch ring.
VI.2.2 Giao tip gin tip
Vi giao tip gin tip, mt thng ip c gi ti v nhn t cc hp th
(mailboxes), hay cng (ports). Mt hp th c th c hin th tru tng nh mt
i tng trong cc thng ip c th c t bi cc qu trnh v sau cc
thng ip ny c th c xa i. Mi hp th c mt nh danh duy nht. Trong c
ch ny, mt qu trnh c th giao tip vi mt vi qu trnh khc bng mt s hp th
khc nhau. Hai qu trnh c th giao tip ch nu chng chia s cng mt hp th.
Hm c s send v receive c nh ngha nh sau:
Send(A, message): gi mt thng ip ti hp th A.
Receive(A, message): nhn mt thng ip t hp th A.

Trong c ch ny, mt lin kt giao tip c cc thuc tnh sau:

Mt lin kt c thit lp gia mt cp qu trnh ch nu c hai thnh
vin ca cp c mt hp th c chia s.
Mt lin kt c th c ni kt vi nhiu hn hai qu trnh.
S cc lin kt khc nhau c th tn ti gia mi cp qu trnh giao tip
vi mi lin kt tng ng vi mt hp th

Gi s cc qu trnh P
1
, P
2
v P
3
chia s mt hp th A. Qu trnh P
1
gi mt thng
ip ti A trong khi P
2
v P
3
thc thi vic nhn t A. Qu trnh no s nhn thng
ip c gi bi P
1
? Cu tr li ph thuc c ch m chng ta chn:

Cho php mt lin kt c ni kt vi nhiu nht hai qu trnh
Cho php nhiu nht mt qu trnh ti mt thi im thc thi thao tc
nhn.
Cho php h thng chn bt k qu trnh no s nhn thng ip (ngha l,
hoc P
1
hoc P
3
nhng khng phi c hai s nhn thng ip). H thng
ny c th xc nh ngi nhn ti ngi gi.

Mt hp th c th c s hu bi mt qu trnh hay bi h iu hnh. Nu hp th
c s hu bi mt qu trnh (ngha l, hp th l mt phn khng gian a ch ca
qu trnh), sau chng ta phn bit gia ngi s hu (ngi ch nhn thng ip
thng qua hp th ny) v ngi dng (ngi c th ch gi thng ip ti hp th).
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang 50
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0


V mi hp th c mt ngi s hu duy nht nn khng c s ln ln v ngi nhn
thng ip c gi ti hp th ny. Khi mt qu trnh s hu mt hp th kt thc,
hp th bin mt. Sau , bt k qu trnh no gi thng ip ti hp th ny c
thng bo rng hp th khng cn tn ti na.
Ngoi ra, mt hp th c s hu bi h iu hnh c lp v khng c gn
ti bt k qu trnh xc nh no. Sau , h iu hnh phi cung cp mt c ch cho
php mt qu trnh thc hin nh sau:

To mt hp th mi
Gi v nhn cc thng ip thng qua hp th
Xa hp th

Mc nh, qu trnh to hp th mi l ngi s hu hp th . Ban u,
ngi s hu ch l mt qu trnh c th nhn thng ip thng qua hp th. Tuy
nhin, vic s hu v quyn nhn thng ip c th c chuyn ti cc qu trnh
khc thng qua li gi h thng hp l. D nhin, s cung cp ny c th dn n
nhiu ngi nhn cho mi hp th.
VI.2.3 ng b ha
Giao tip gia hai qu trnh xy ra bi li gi hm c s send v receive. C cc ty
chn thit k khc nhau cho vic ci t mi hm c s. Truyn thng ip c th l
nghn (block) hay khng nghn (nonblocking)-cng c xem nh ng b v bt
ng b.

Hm send nghn: qu trnh gi b nghn cho n khi thng ip c
nhn bi qu trnh nhn hay bi hp th.
Hm send khng nghn: qu trnh gi gi thng ip v thc hin tip
hot ng
Hm receive nghn: ngi nhn nghn cho n khi thng ip sn dng
Hm receive khng nghn: ngi nhn nhn li mt thng ip hp l
hay rng

S kt hp khc nhau gia send v receive l c th. Khi c hai send v receive l
nghn chng ta c s thng nht gia ngi gi v ngi nhn.

VI.2.4 To vng m
D giao tip c th l trc tip hay gin tip, cc thng ip c chuyn i bi
cc qu trnh giao tip thng tr trong mt hng t tm thi. V c bn, mt hng
i nh th c th c ci t trong ba cch:
Kh nng cha l 0 (zero capacity): hng i c chiu di ti a l 0;
do lin kt khng th c bt k thng ip no ch trong n. Trong
trng hp ny, ngi gi phi nghn cho ti khi ngi nhn nhn
thng ip.
Kh nng cha c gii hn (bounded capacity): hng i c chiu di
gii hn n; do , nhiu nht n thng ip c th thng tr trong n.
Nu hng i khng y khi mt thng ip mi c gi, sau n
c t trong hng i (thng ip c chp hay mt con tr thng
ip c gi) v ngi gi c th tip tc thc thi khng phi ch.
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang 51
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0


Tuy nhin, lin kt c kh nng cha gii hn. Nu mt lin kt y,
ngi gi phi nghn cho ti khi khng gian l sn dng trong hng
i
Kh nng cha khng gii hn (unbounded capacity): Hng i c
kh nng c chiu di khng gii hn; do s lng thng ip bt
k c th ch trong n. Ngi gi khng bao gi nghn.

Trng hp kh nng cha l 0 thng c xem nh h thng thng ip
khng c vng m; hai trng hp cn li c xem nh vng m t ng.
VII Tm tt
Qu trnh l mt chng trnh ang thc thi. Khi mt qu trnh thc thi, n thay
i trng thi. Trng thi ca mt qu trnh c nh ngha bi mt hot ng hin
ti ca qu trnh . Mi qu trnh c th mt trong nhng trng thi sau: mi
(new), sn sng (ready), ang chy (running), ch (waiting), hay kt thc
(terminated). Mi qu trnh c biu din trong h iu hnh bi khi iu khin qu
trnh ca chnh n (PCB).
Mt qu trnh khi khng thc thi, c t vo hng i. Hai cp ch yu ca
hng i trong h iu hnh l hng i yu cu nhp/xut v hng i sn sng.
Hng i sn sng cha tt c qu trnh sn sng thc thi v ang ch CPU. Mi
qu trnh c biu din bi mt PCB v cc PCB c th c lin kt vi nhau
hnh thnh mt hng i sn sng. nh thi biu di (long-term scheduling) (hay
nh thi biu cng vic) l chn cc qu trnh c php cnh tranh CPU. Thng
thng, nh thi biu di b nh hng nng n bi vic xem xt cp pht ti nguyn,
c bit qun l b nh. nh thi ngn (short-term scheduling) l s chn la mt
qu trnh t cc hng i sn sng.
Cc qu trnh trong h thng c th thc thi ng hnh. C nhiu l do cc thc
thi ng hnh: chia s thng tin, tng tc tnh ton, hiu chnh v tin dng. Thc
thi ng hnh yu cu c ch cho vic to v xa qu trnh.
Qu trnh thc thi trong h iu hnh c th l cc qu trnh c lp hay cc qu
trnh hp tc. Cc qu trnh hp tc phi c phng tin giao tip vi nhau. Ch yu,
c hai c ch giao tip b sung cho nhau cng tn ti: chia s b nh v h thng
truyn thng ip. Phng php chia s b nh yu cu cc qu trnh giao tip chia s
mt s bin. Cc qu trnh c mong i trao i thng tin thng qua vic s dng
cc bin dng chung ny. Trong h thng b nh c chia s, nhim v cho vic
cung cp giao tip tch ri vi ngi lp trnh ng dng; ch h iu hnh cung cp h
thng b nh c chia s. Phng php truyn thng ip cho php cc qu trnh
trong i thng ip. Nhim v cung cp giao tip c th tch ri vi h iu hnh.
Hai c ch ny khng loi tr h tng v c th c dng cng mt lc trong phm
vi mt h iu hnh.

Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang 52
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

NH THI BIU CPU

I Mc tiu
Sau khi hc xong chng ny, ngi hc nm c nhng kin thc sau:
Hiu cc khi nim c bn v nh thi
Hiu cc gii thut nh thi biu CPU
Vn dng mt gii thut nh thi cho mt h thng c th
II Gii thiu
nh thi biu l c s ca cc h iu hnh a chng. Bng cch chuyn i
CPU gia cc qu trnh, h iu hnh c th lm my tnh hot ng nhiu hn. Trong
chng ny, chng ta gii thiu cc khi nim nh thi c bn v trnh by cc gii
thut nh thi biu CPU khc nhau. Chng ta cng xem xt vn chn mt gii
thut cho mt h thng xc nh.
III Cc khi nim c bn
Mc tiu ca a chng l c nhiu qu trnh chy cng thi im ti u ha
vic s dng CPU. Trong h thng n x l, ch mt qu trnh c th chy ti mt
thi im; bt c qu trnh no khc u phi ch cho n khi CPU rnh v c th
c nh thi li.
tng ca a chng l tng i n gin. Mt qu trnh c thc thi cho
n khi n phi ch yu cu nhp/xut hon thnh. Trong mt h thng my tnh n
gin th CPU s rnh ri; tt c thi gian ch ny l lng ph. Vi a chng, chng ta
c gng dng thi gian ny CPU c th phc v cho cc qu trnh khc. Nhiu qu
trnh c gi trong b nh ti cng thi im. Khi mt qu trnh phi ch, h iu
hnh ly CPU t qu trnh ny v cp CPU ti qu trnh khc.
nh thi biu l chc nng c bn ca h iu hnh. Hu ht ti nguyn my
tnh c nh thi biu trc khi dng. D nhin, CPU l mt trong nhng ti nguyn
my tnh u tin. Do , nh thi biu l trng tm trong vic thit k h iu hnh.
III.1 Chu k CPU-I/O
S thnh cng ca vic nh thi biu CPU ph thuc vo thuc tnh c
xem xt sau y ca qu trnh. Vic thc thi qu trnh cha mt chu k (cycle) thc
thi CPU v ch i nhp/xut. Cc qu trnh chuyn i gia hai trng thi ny. S
thc thi qu trnh bt u vi mt chu k CPU (CPU burst), theo sau bi mt chu k
nhp/xut (I/O burst), sau mt chu k CPU khc, sau li ti mt chu k
nhp/xut khc khc,..Sau cng, chu k CPU cui cng s kt thc vi mt yu cu
h thng kt thc vic thc thi, hn l vi mt chu k nhp/xut khc, c m t
nh hnh IV.1. Mt chng trnh hng nhp/xut (I/O-bound) thng c nhiu chu
k CPU ngn. Mt chng trnh hng x l (CPU-bound) c th c mt nhiu chu
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang 56
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

k CPU di. S phn b ny c th gip chng ta chn gii thut nh thi CPU hp
l.






















Hnh 0-1-Thay i th t ca CPU v I/O burst
III.2 B nh thi CPU
Bt c khi no CPU rnh, h iu hnh phi chn mt trong nhng qu trnh
trong hng i sn sng thc thi. Chn qu trnh c thc hin bi b nh thi
biu ngn (short-term scheduler) hay b nh thi CPU. B nh thi ny chn cc
qu trnh trong b nh sn sng thc thi v cp pht CPU ti mt trong cc qu trnh
.
Hng i sn sng khng nht thit l hng i vo trc, ra trc (FIFO). Xem
xt mt s gii thut nh thi khc nhau, mt hng i sn sng c th c ci t
nh mt hng i FIFO, mt hng i u tin, mt cy, hay n gin l mt danh
sch lin kt khng th t. Tuy nhin, v khi nim tt c cc qu trnh trong hng i
sn sng c xp hng ch c hi chy trn CPU. Cc mu tin trong hng i
thng l khi iu khin qu trnh ca qu trnh .
III.3 nh thi biu trng dng
Quyt nh nh thi biu CPU c th xy ra mt trong 4 trng hp sau:

Khi mt qu trnh chuyn t trng thi chy sang trng thi ch (th d:
yu cu nhp/xut, hay ch kt thc ca mt trong nhng qu trnh con).
Khi mt qu trnh chuyn t trng thi chy ti trng thi sn sng (th d:
khi mt ngt xy ra)
Khi mt qu trnh chuyn t trng thi ch ti trng thi sn sng (th d:
hon thnh nhp/xut)
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang 57
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

Khi mt qu trnh kt thc

Trong trng hp 1 v 4, khng cn chn la loi nh thi biu. Mt qu trnh
mi (nu tn ti trong hng i sn sng) phi c chn thc thi. Tuy nhin, c
s la chn loi nh thi biu trong trng hp 2 v 3.
Khi nh thi biu xy ra ch trong trng hp 1 v 4, chng ta ni c ch nh
thi khng trng dng (nonpreemptive); ngc li, khi nh thi biu xy ra ch
trong trng hp 2 v 3, chng ta ni c ch nh thi trng dng (preemptive).
Trong nh thi khng trng dng, mt khi CPU c cp pht ti mt qu trnh, qu
trnh gi CPU cho ti khi n gii phng CPU hay bi kt thc hay bi chuyn ti
trng thi sn sng. Phng php nh thi biu ny c dng bi cc h iu hnh
Microsoft Windows 3.1 v bi Apple Macintosh. Phng php ny ch c th c
dng trn cc nn tng phn cng xc nh v n khng i hi phn cng c bit
(th d, mt b m thi gian) c yu cu nh thi biu trng dng.
Tuy nhin, nh thi trng dng sinh ra mt chi ph. Xt trng hp 2 qu trnh
chia s d liu. Mt qu trnh c th gia giai on cp nht d liu th n b chim
dng CPU v mt qu trnh th hai ang chy. Qu trnh th hai c th c d liu
m n hin ang trong trng thi thay i. Do , nhng k thut mi c yu cu
iu phi vic truy xut ti d liu c chia s.
S trng dng cng c mt nh hng trong thit k nhn h iu hnh. Trong
khi x l li gi h thng, nhn c th ch mt hot ng da theo hnh vi ca qu
trnh. Nhng hot ng nh th c th lin quan vi s thay i d liu nhn quan
trng (th d: cc hng i nhp/xut). iu g xy ra nu qu trnh b trng dng
CPU trong giai on thay i ny v nhn (hay trnh iu khin thit b) cn c
hay sa i cng cu trc? S ln xn chc chn xy ra. Mt s h iu hnh, gm
hu ht cc n bn ca UNIX, gii quyt vn ny bng cch ch li gi h thng
hon thnh hay vic nhp/xut b nghn, trc khi chuyn i ng cnh. C ch ny
m bo rng cu trc nhn l n gin v nhn s khng trng dng mt qu trnh
trong khi cc cu trc d liu nhn trong trng thi thay i. Tuy nhin, m hnh
thc thi nhn ny l m hnh ngho nn h tr tnh ton thi thc v a x l.
Trong trng hp UNIX, cc phn m vn l s ri ro. V cc ngt c th xy ra
bt c lc no v v cc ngt ny khng th lun c b qua bi nhn, nn phn m
b nh hng bi ngt phi c m bo t vic s dng ng thi. H iu hnh
cn chp nhn hu ht cc ngt, ngc li d liu nhp c th b mt hay d liu xut
b vit chng. V th cc phn m ny khng th c truy xut ng hnh bi nhiu
qu trnh, chng v hiu ha ngt ti lc nhp v cho php cc ngt hot ng tr li
ti thi im vic nhp kt thc. Tuy nhin, v hiu ha v cho php ngt tiu tn thi
gian, c bit trn cc h thng a x l.
III.4 B phn pht
Mt thnh phn khc lin quan n chc nng nh thi biu CPU l b phn
pht (dispatcher). B phn pht l mt module c nhim v trao iu khin CPU ti
qu trnh c chn bi b nh thi biu ngn (short-term scheduler). Chc nng ny
lin quan:
Chuyn ng cnh
Chuyn ch ngi dng
Nhy ti v tr hp l trong chng trnh ngi dng khi ng li qu
trnh
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang 58
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

B phn pht nn nhanh nht c th, v n c np trong mi ln chuyn qu
trnh. Thi gian mt cho b phn pht dng mt qu trnh ny v bt u chy mt
qu trnh khc c gi l thi gian tr cho vic iu phi (dispatch latency).
IV Cc tiu chun nh thi
Cc gii thut nh thi khc nhau c cc thuc tnh khc nhau v c xu hng
thin v cho mt loi qu trnh hn mt qu trnh. Trong vic chn gii thut no s
dng trong trng hp no, chng ta phi xt cc thuc tnh ca cc gii thut khc
nhau.
Nhiu tiu chun c ngh so snh cc gii thut nh thi biu. Nhng
c im c dng so snh c th to s khc bit quan trng trong vic xc nh
gii thut tt nht. Cc tiu chun gm:

Vic s dng CPU: chng ta mun gi CPU bn nhiu nht c th. Vic s
dng CPU c th t 0 n 100%. Trong h thng thc, n nn nm trong
khong t 40% (cho h thng c np ti nh) ti 90% (cho h thng c
np ti nng).
Thng lng: nu CPU bn thc thi cc qu trnh th cng vic ang c
thc hin. Thc o ca cng vic l s lng qu trnh c hon thnh
trn mt n v thi gian gi l thng lng (throughput). i vi cc qu
trnh di, t l ny c th l 1 qu trnh trn 1 gi; i vi cc giao dch
ngn, thng lng c th l 10 qu trnh trn giy.
Thi gian hon thnh: t quan im ca mt qu trnh c th, tiu chun
quan trng l mt bao lu thc thi qu trnh . Khong thi gian t thi
im gi qu trnh ti khi qu trnh hon thnh c gi l thi gian hon
thnh (turnaround time). Thi gian hon thnh l tng cc thi gian ch
a qu trnh vo b nh, ch hng i sn sng, thc thi CPU v thc hin
nhp/xut.
Thi gian ch: gii thut nh thi CPU khng nh hng lng thi gian
qu trnh thc thi hay thc hin nhp/xut; n nh hng ch lng thi gian
mt qu trnh phi ch trong hng i sn sng. Thi gian ch (waiting
time) l tng thi gian ch trong hng i sn sng.
Thi gian p ng: trong mt h thng giao tip, thi gian hon thnh
khng l tiu chun tt nht. Thng thng, mt qu trnh c th to ra d
liu xut tng i sm v c th tip tc tnh ton cc kt qu mi trong
khi cc kt qu trc ang c xut cho ngi dng. Do , mt thc
o khc l thi gian t lc gi yu cu cho ti khi p ng u tin c to
ra. Thc o ny c gi l thi gian p ng (response time), l lng
thi gian mt i t lc bt u p ng nhng khng l thi gian mt i
xut ra p ng . Thi gian hon thnh thng b gii hn bi tc ca
thit b xut.

Chng ta mun ti u ha vic s dng CPU v thng lng, ng thi ti thiu
ha thi gian hon thnh, thi gian ch, v thi gian p ng. Trong hu ht cc
trng hp, chng ta ti u ha thc o trung bnh. Tuy nhin, trong mt vi trng
hp chng ta mun ti u gi tr ti thiu hay gi tr ti a hn l gi tr trung bnh.
Th d, m bo rng tt c ngi dng nhn dch v tt, chng ta mun ti thiu
thi gian p ng ti a.
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang 59
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

i vi nhng h thng tng tc (nh cc h thng chia thi), mt s nh phn
tch ngh rng s thay i trong thi gian p ng quan trng hn ti thiu ha thi
gian p ng trung bnh. Mt h thng vi thi gian p ng ph hp v c th on
trc c quan tm nhiu hn h thng chy nhanh hn mc trung bnh nhng bin
i cao. Tuy nhin, gn nh khng c cng vic no c thc hin trn cc gii thut
nh thi biu CPU ti thiu ha cc thay i.
Khi chng ta tho lun cc gii thut nh thi biu CPU khc nhau, chng ta
mun hin th cc hot ng ca chng. Mt hnh nh chnh xc nn thng bo ti
nhiu qu trnh, mi qu trnh l mt chui ca hng trm chu k CPU v I/O. n
gin vic hin th, chng ta xem ch mt chu k CPU (trong mili giy) trn qu trnh
trong cc th d ca chng ta. Thc o ca vic so snh l thi gian ch i trung
bnh.
V Cc gii thut nh thi
nh thi biu CPU gii quyt vn quyt nh qu trnh no trong hng i
sn sng c cp pht CPU. Trong phn ny chng ta m t nhiu gii thut nh
thi CPU ang c.
V.1 nh thi n trc c phc v trc
Gii thut nh thi biu CPU n gin nht l n trc, c phc v
trc (first-come, first-served-FCFS). Vi c ch ny, qu trnh yu cu CPU trc
c cp pht CPU trc. Vic ci t chnh sch FCFS c qun l d dng vi
hng i FIFO. Khi mt qu trnh i vo hng i sn sng, PCB ca n c lin kt
ti ui ca hng i. Khi CPU rnh, n c cp pht ti mt qu trnh ti u hng
i. Sau , qu trnh ang chy c ly ra khi hng i. M ca gii thut FCFS
n gin vit v hiu.
Tuy nhin, thi gian ch i trung bnh di chnh sch FCFS thng l di.
Xt tp hp cc qu trnh sau n ti thi im 0, vi chiu di thi gian chu k CPU
c cho theo mini giy.

Qu trnh Thi gian x l
P1 24
P2 3
P3 3

Nu cc qu trnh n theo th t P
1
, P
2
, P
3
v c phc v theo th t
FCFS, chng ta nhn c kt qu c hin th trong lu Gantt nh sau:


24 27 30

Thi gian ch l 0 mili giy cho qu trnh P
1
, 24 mili giy cho qu trnh P
2
v
27 mili giy cho qu trnh P
3
. Do , thi gian ch i trung bnh l (0+24+27)/3=17
mili giy. Tuy nhin, nu cc qu trnh n theo th t P
2
, P
3
, P
1
th cc kt qu c
hin th trong lu Gannt nh sau:



Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang 60
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0


0 3 6 30

Thi gian ch i trung bnh by gi l (6+0+3)/3=3 mili giy. Vic ct gim
ny l quan trng. Do , thi gian ch i trung bnh di chnh sch FCFS thng
khng l ti thiu v c s thay i rt quan trng nu cc thi gian CPU dnh cho
cc qu trnh khc nhau rt ln.
Ngoi ra, xt nng lc ca nh thi FCFS trong trng hp ng. Gi s
chng ta c mt qu trnh hng x l (CPU-bound) v nhiu qu trnh hng
nhp/xut (I/O bound). Khi cc qu trnh a n quanh h thng, ng cnh sau c
th xy ra. Qu trnh hng x l s nhn CPU v gi n. Trong sut thi gian ny,
tt c qu trnh khc s kt thc vic nhp/xut ca n v chuyn vo hng i sn
sng, cc thit b nhp/xut trng thi rnh. Cui cng, qu trnh hng x l kt
thc chu k CPU ca n v chuyn ti thit b nhp/xut. Tt c cc qu trnh hng
x l c chu k CPU rt ngn s nhanh chng thc thi v di chuyn tr v hng i
nhp/xut. Ti thi im ny CPU trng thi rnh. Sau , qu trnh hng x l s
di chuyn tr li hng i sn sng v c cp CPU. Mt ln na, tt c qu trnh
hng nhp/xut kt thc vic ch trong hng i sn sng cho n khi qu trnh
hng x l c thc hin. C mt tc dng ph (convoy effect) khi tt c cc qu
trnh khc ch mt qu trnh ln tr li CPU. Tc dng ph ny dn n vic s dng
thit b v CPU thp hn nu cc qu trnh ngn hn c cp trc.
Gii thut FCSF l gii thut nh thi khng trng dng CPU. Mt khi CPU
c cp pht ti mt qu trnh, qu trnh gi CPU cho ti khi n gii phng CPU
bng cch kt thc hay yu cu nhp/xut. Gii thut FCFS c bit khng ph hp
i vi h thng chia s thi gian, mi ngi dng nhn c s chia s CPU
vi nhng khong thi gian u nhau.
V.2 nh thi biu cng vic ngn nht trc
Mt tip cn khc i vi vic nh thi CPU l gii thut nh thi cng vic
ngn nht trc (shortest-job-first-SJF). Gii thut ny gn ti mi qu trnh chiu
di ca chu k CPU tip theo cho qu trnh sau . Khi CPU sn dng, n c gn
ti qu trnh c chu k CPU k tip ngn nht. Nu hai qu trnh c cng chiu di
chu k CPU k tip, nh thi FCFS c dng. Ch rng thut ng ph hp hn l
chu k CPU k tip ngn nht (shortest next CPU burst) v nh thi c thc hin
bng cch xem xt chiu di ca chu k CPU k tip ca qu trnh hn l ton b
chiu di ca n. Chng ta dng thut ng SJF v hu ht mi ngi v mi sch tham
kho ti nguyn l ca loi nh thi biu ny nh SJF.
Th d, xt tp hp cc qu trnh sau, vi chiu di ca thi gian chu k CPU
c tnh bng mili giy:

Qu trnh Thi gian x l
P1 6
P2 8
P3 7
P4 3

Dng nh thi SJF, chng ta nh thi biu cho cc qu trnh ny theo lu
Gannt nh sau:

Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang 61
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0


0 3 9 16 24

Thi gian ch i l 3 mili giy cho qu trnh P
1
, 16 mili giy cho qu trnh
P
2
, 9 mili giy cho qu trnh P
3
, v 0 mili giy cho qu trnh P
4
. Do , thi gian ch
i trung bnh l (3+16+9+0)/4 = 7 mili giy. Nu chng ta dng c ch nh thi
FCFS th thi gian ch i trung bnh l 10.23 mili giy.
Gii thut SJF c th l ti u, trong n cho thi gian ch i trung bnh
nh nht cho cc qu trnh c cho. Bng cch chuyn mt qu trnh ngn trc mt
qu trnh di th thi gian ch i ca qu trnh ngn gim hn so vi vic tng thi
gian ch i ca qu trnh di. Do , thi gian ch i trung bnh gim.
Kh khn tht s vi gii thut SJF l lm th no bit chiu di ca yu
cu CPU tip theo. i vi nh thi di trong h thng b, chng ta c th dng
chiu di nh gii hn thi gian x l m ngi dng xc nh khi gi cng vic. Do
, ngi dng c c ng c lng chnh xc gii hn thi gian x l v gi
tr thp hn c ngha l p ng nhanh hn. nh thi SJF c dng thng xuyn
trong nh thi di.
Mc d SJF l ti u nhng n khng th c ci t ti cp nh thi CPU
ngn v khng c cch no bit chiu di chu k CPU tip theo. Mt tip cn l
khc gn ng nh thi SJF c thc hin. Chng ta c th khng bit chiu di ca
chu k CPU k tip nhng chng ta c on gi tr ca n. Chng ta mong mun rng
chu k CPU k tip s tng t chiu di nhng chu k CPU trc . Do , bng
cch tnh ton mc xp x chiu di ca chu k CPU k tip, chng ta chn mt qu
trnh vi chu k CPU c on l ngn nht.
Chu k CPU k tip thng c on nh trung bnh s m ca chiu di cc
chu k CPU trc . Gi t
n
l chiu di ca chu k CPU th n v gi T
n+1
gi tr
c on cho chu k CPU k tip. Th i vi , vi 0 1, nh ngha

T
n+1
= t
n
+ (1- ) T
n

Cng thc ny nh ngha mt gi tr trung bnh s m. Gi tr ca t
n
cha
thng tin mi nht; T
n
lu lch s qu kh. Tham s iu khin trng s lin quan
gia lch s qu kh v lch s gn y trong vic on. Nu =0 th T
n+1
=T
n
v lch
s gn y khng c nh hng (iu kin hin hnh c m bo l ngn); nu
=1 th T
n+1
=t
n
v ch chu k CPU gn nht c nh hng (lch s c m bo l c
v khng ph hp). Thng dng hn, =1/2 th lch s gn y v lch s qu kh c
trng s tng ng. Gi tr khi u T
0
c th c nh ngha nh mt hng s
hay nh ton b gi tr trung bnh h thng. Hnh IV.2 di y hin th gi tr trung
bnh dng m vi =1/2 v T
0
=10.
hiu hnh vi ca gi tr trung bnh dng m, chng ta c th m rng cng
thc cho T
n+1
bng cch thay th T
n
tm
T
n+1
= t
n
+(1-) t
n-1
++(1-)
j
t
n-j
++(1-)
n - 1
T
0
V c hai v (1- ) l nh hn hay bng 1, mi s hng tip theo c trng s
nh hn s hng trc .
Gii thut SJF c th trng dng hoc khng trng dng CPU. Chn la ny
pht sinh khi mt qu trnh mi n ti hng i sn sng trong khi mt qu trnh
trc ang thc thi. Mt qu trnh mi c th c chu k CPU tip theo ngn hn
chu k CPU c li ca qu trnh thc thi hin ti. Gii thut SJF trng dng s
trng dungj CPU ca qu trnh ang thc thi hin ti, trong khi gii thut SJF khng
trng dng s cho php qu trnh ang thc thi kt thc chu k CPU ca n. nh thi
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang 62
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

SJF trng dng cn c gi l nh thi thi gian cn li ngn nht trc
(shortest-remaining-time-first).













Hnh 0-2 on chiu di ca chu k CPU k tip


Th d, xt 4 qu trnh sau vi chiu di ca thi gian chu k CPU c cho
tnh bng mili giy

Qu trnh Thi gian n Thi gian x l
P1 0 8
P2 1 4
P3 2 9
P4 3 5

Nu cc qu trnh i vo hng i sn sng ti nhng thi im v cn thi
gian x l c hin th trong bng trn th thi biu SJF trng dng c m t trong
lu Gannt nh sau:

P1 P2 P3
0 1 5 10 17 26

Qu trnh P
1
c bt u ti thi im 0, v n l qu trnh duy nht trong
hng i. Qu trnh P
2
n ti thi im 1. Thi gian cn li cho P
1
(7 mili giy) l ln
hn thi gian c yu cu bi qu trnh P
2
(4 mili giy) v th qu trnh P
1
b trng
dng CPU v qu trnh P
2
c nh thi biu. Thi gian ch i trung bnh cho th
d ny l: ((10-1) + (1-1) + (17-2) + (5-3))/4 = 6.5 mili giy. nh thi SJF khng
trng dng cho kt qu thi gian ch i trung bnh l 7.75 mili giy.
V.3 nh thi theo u tin
Gii thut SJF l trng hp c bit ca gii thut nh thi theo u tin
(priority-scheduling algorithm). u tin c gn vi mi qu trnh v CPU c
cp pht ti qu trnh vi u tin cao nht. Qu trnh c u tin bng nhau c
nh thi trong th t FCFS.
Gii thut SJF l gii thut u tin n gin u tin p l nghch o
vi chu k CPU c on tip theo. Chu k CPU ln hn c u tin thp hn v
ngc li.
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang 63
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

By gi chng ta tho lun nh thi c u tin cao v thp. Cc u tin
thng nm trong dy s c nh, chng hn 0 ti 7 hay 0 ti 4,095. Tuy nhin, khng
c s tho thun chung v 0 l u tin thp nht hay cao nht. Mt vi h thng
dng s thp biu din u tin thp; ngc li cc h thng khc dng cc s
thp cho u tin cao. S khc nhau ny c th dn n s ln ln. Trong gio trnh
ny chng ta dng cc s thp biu din u tin cao.
Th d, xt tp hp qu trnh sau n ti thi im 0 theo th t P
1
, P
2
,, P
5
vi chiu di thi gian chu k CPU c tnh bng mili giy:

Qu trnh Thi gian x l u tin
P1 10 3
P2 1 1
P3 2 4
P4 1 5
P5 5 2

S dng nh thi theo u tin, chng ta s nh thi cc qu trnh ny theo
lu Gannt nh sau:

P2 P5 P1 P3 P4
0 1 6 16 18 19

Thi gian ch i trung bnh l 8.2 mili giy.
u tin c th c nh ngha bn trong hay bn ngoi. u tin c
nh ngha bn trong thng dng nh lng hoc nhiu nh lng c th o tnh
ton u tin ca mt qu trnh. Th d, cc gii hn thi gian, cc yu cu b nh,
s lng tp tin ang m v t l ca chu k nhp/xut trung bnh vi t l ca chu k
CPU trung bnh. Cc u tin bn ngoi c thit lp bi cc tiu chun bn ngoi
i vi h iu hnh nh s quan trng ca qu trnh, loi v lng chi ph ang c
tr cho vic dng my tnh, vn phng h tr cng vic, ..
nh thi biu theo u tin c th trng dng hoc khng trng dng CPU.
Khi mt qu trnh n hng i sn sng, u tin ca n c so snh vi u
tin ca qu trnh hin ang chy. Gii thut nh thi theo u tin trng dng s
chim CPU nu u tin ca qu trnh mi n cao hn u tin ca qu trnh
ang thc thi. Gii thut nh thi theo u tin khng trng dng s n gin t
qu trnh mi ti u hng i sn sng.
Vn chnh vi gii thut nh thi theo u tin l nghn khng hn
nh (indefinite blocking) hay i CPU (starvation). Mt qu trnh sn sng chy
nhng thiu CPU c th xem nh b nghn-ch i CPU. Gii thut nh thi theo
u tin c th li nhiu qu trnh c u tin thp ch CPU khng hn nh.
Trong mt h thng my tnh ti cao, dng u n cc qu trnh c u tin cao
hn c th ngn chn vic nhn CPU ca qu trnh c u tin thp.. Thng thng,
mt trong hai trng hp xy ra. Cui cng, mt qu trnh s c chy (lc 2 a.m
ch nht l thi im cui cng h thng np cc qu trnh nh), hay cui cng h
thng my tnh s v v mt tt c cc qu trnh c u tin thp cha c kt
thc.
Mt gii php cho vn nghn khng hn nh ny l s ho gi (aging).
Ha gi l k thut tng dn u tin ca qu trnh ch trong h thng mt thi gian
di. Th d, nu cc u tin nm trong dy t 127 (thp) n 0 (cao), chng ta gim
u tin ca qu trnh ang ch xung 1 mi 15 pht. Cui cng, thm ch mt qu
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang 64
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

trnh vi u tin khi u 127 s t u tin cao nht trong h thng v s c
thc thi. Tht vy, mt qu trnh s mt khng qu 32 gi t c u tin t
127 ti 0.
V.4 nh thi lun phin
Gii thut nh thi lun phin (round-robin scheduling algorithm-RR) c
thit k c bit cho h thng chia s thi gian. Tng t nh nh thi FCFS nhng
s trng dng CPU c thm vo chuyn CPU gia cc qu trnh. n v thi
gian nh c gi l nh mc thi gian (time quantum) hay phn thi gian (time
slice) c nh ngha. nh mc thi gian thng t 10 n 100 mili giy. Hng i
sn sng c xem nh mt hng i vng. B nh thi CPU di chuyn vng quanh
hng i sn sng, cp pht CPU ti mi qu trnh c khong thi gian ti a bng
mt nh mc thi gian.
ci t nh thi RR, chng ta qun l hng i sn sng nh mt hng i
FIFO ca cc qu trnh. Cc qu trnh mi c thm vo ui hng i. B nh thi
CPU chn qu trnh u tin t hng i sn sng, t b m thi gian ngt sau 1
nh mc thi gian v gi ti qu trnh.
Sau , mt trong hai trng hp s xy ra. Qu trnh c 1 chu k CPU t hn
1 nh mc thi gian. Trong trng hp ny, qu trnh s t gii phng. Sau , b
nh thi biu s x l qu trnh tip theo trong hng i sn sng. Ngc li, nu chu
k CPU ca qu trnh ang chy di hn 1 nh mc thi gian th m thi gian s
bo v gy ra mt ngt ti h iu hnh. Chuyn i ng cnh s c thc thi v qu
trnh c t tr li ti ui ca hng i sn sng. Sau , b nh thi biu CPU s
chn qu trnh tip theo trong hng i sn sng.
Tuy nhin, thi gian ch i trung bnh di chnh sch RR thng l qu di.
Xt mt tp hp cc qu trnh n ti thi im 0 vi chiu di thi gian CPU-burst
c tnh bng mili giy:

Qu trnh Thi gian x l
P1 24
P2 3
P3 3

Nu s dng nh mc thi gian l 4 mili giy th qu trnh P
1
nhn 4 mili giy
u tin. V n yu cu 20 mili giy cn li nn n b trng dng CPU sau nh mc
thi gian u tin v CPU c cp ti qu trnh tip theo trong hng i, qu trnh
P
2
. V P
2
khng cn ti 4 mili giy nn n kt thc trc khi nh mc thi gian ca
n ht hn. Sau , CPU c cho ti qu trnh k tip, qu trnh P
3
. Mt khi mi qu
trnh nhn 1 nh mc thi gian th CPU tr v qu trnh P
1
cho nh mc thi gian
tip theo. Thi biu RR l:



0 4 7 10 14 18 22 26 30

Thi gian ch i trung bnh l 17/3=5.66 mili giy.
Trong gii thut RR, khng qu trnh no c cp pht CPU cho nhiu hn 1
nh mc thi gian trong mt hng. Nu chu k CPU ca qu trnh vt qu 1 nh
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang 65
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

mc thi gian th qu trnh b trng dng CPU v n c t tr li hng i sn
sng. Gii thut RR l gii thut trng dng CPU.
Nu c n qu trnh trong hng i sn sng v nh mc thi gian l q th mi
qu trnh nhn 1/n thi gian CPU trong cc phn, nhiu nht q n v thi gian. Mi
qu trnh s ch khng di hn (n-1)x q n v thi gian cho ti khi nh mc thi
gian tip theo ca n. Th d, nu c 5 qu trnh vi nh mc thi gian 20 mili giy
th mi qu trnh s nhn 20 mili giy sau mi 100 mili giy.
Nng lc ca gii thut RR ph thuc nhiu vo kch thc ca nh mc thi
gian. Nu nh mc thi gian rt ln (lng v hn) th chnh sch RR tng t nh
chnh sch FCFS. Nu nh mc thi gian l rt nh (1 mili giy) th tip cn RR
c gi l chia s b x l (processor sharing) v xut hin (trong l thuyt) ti
ngi dng nh th mi qu trnh trong n qu trnh c b x l ring ca chnh n
chy ti 1/n tc ca b x l tht.












Hnh 0-3 Hin th mt nh mc thi gian nh hn tng chuyn i ng cnh nh th no
Tuy nhin, trong phn mm chng ta cng cn xem xt hiu qu ca vic
chuyn i ng cnh trn nng lc ca vic nh thi RR. Chng ta gi s rng ch c
1 qu trnh vi 10 n v thi gian. Nu mt nh mc l 12 n v thi gian th qu
trnh kt thc t hn 1 nh mc thi gian, vi khng c chi ph no khc. Tuy nhin,
nu nh mc l 6 n v thi gian th qu trnh cn 2 nh mc thi gian, dn n 1
chuyn i ng cnh. Nu nh mc thi gian l 1 n v thi gian th 9 chuyn i
ng cnh s xy ra, vic thc thi ca qu trnh b chm nh c hin th trong hnh
IV.3 .
Do chng ta mong mun nh mc thi gian ln i vi thi gian chuyn
ng cnh. Nu thi gian chuyn ng cnh chim 10% nh mc thi gian th khong
10% thi gian CPU s c dng cho vic chuyn ng cnh.
Thi gian hon thnh cng ph thuc kch thc ca nh mc thi gian.
Chng ta c th thy trong hnh IV.4, thi gian hon thnh trung bnh ca tp hp cc
qu trnh khng cn ci tin khi kch thc nh mc thi gian tng. Thng thng,
thi gian hon thnh trung bnh c th c ci tin nu hu ht qu trnh kt thc chu
k CPU k tip ca chng trong mt nh mc thi gian. Th d, cho 3 qu trnh c 10
n v thi gian cho mi qu trnh v nh mc thi gian l 1 n v thi gian, th thi
gian hon thnh trung bnh l 29. Tuy nhin, nu nh mc thi gian l 10 th thi
gian hon thnh trung bnh gim ti 20. Nu thi gian chuyn ng cnh c thm
vo th thi gian hon thnh trung bnh gia tng i vi nh mc thi gian nh hn v
cc chuyn i ng cnh thm na s c yu cu.


Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang 66
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0




















Hnh 0-4 Hin th cch thi gian hon thnh bin i theo nh mc thi gian

Ngoi ra, nu nh mc thi gian qu ln th ngi thit k vic nh thi RR
bao gm chnh sch FCFS. Qui tc l nh mc thi gian nn di hn 80% chu k
CPU.
V.5 nh thi biu vi hng i nhiu cp
Mt loi gii thut nh thi khc c to ra cho nhng trng hp m trong
cc qu trnh c phn lp thnh cc nhm khc nhau. Th d: vic phn chia
thng thng c thc hin gia cc qu trnh chy ch giao tip (foreground
hay interactive) v cc qu trnh chy ch nn hay dng b (background hay
batch). Hai loi qu trnh ny c yu cu p ng thi gian khc nhau v v th c yu
cu v nh thi biu khc nhau. Ngoi ra, cc qu trnh chy ch giao tip c
u tin (hay c nh ngha bn ngoi) cao hn cc qu trnh chy ch nn.
Mt gii thut nh thi hng i nhiu cp (multilevel queue-scheduling
algorithm) chia hng i thnh nhiu hng i ring r (hnh IV.5). Cc qu trnh
c gn vnh vin ti mt hng i, thng da trn thuc tnh ca qu trnh nh
kch thc b nh, u tin qu trnh hay loi qu trnh. Mi hng i c gii thut
nh thi ca chnh n. Th d: cc hng i ring r c th c dng cho cc qu
trnh ch nn v ch giao tip. Hng i ch giao tip c th c nh
thi bi gii thut RR trong khi hng i ch nn c nh thi bi gii thut
FCFS.
Ngoi ra, phi c vic nh thi gia cc hng i, m thng c ci t
nh nh thi trng dng vi u tin c nh. Th d, hng i ch giao tip
c u tin tuyt i hn hng i ch nn.





Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang 67
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0













Hnh 0-5 nh thi hng i nhiu mc

Chng ta xt mt th d ca gii thut hng i nhiu mc vi nm hng i:

Cc qu trnh h thng
Cc qu trnh giao tip
Cc qu trnh son tho giao tip
Cc qu trnh b
Cc qu trnh sinh vin

Mi hng i c u tin tuyt i hn hng i c u tin thp hn. Th
d: khng c qu trnh no trong hng i b c th chy tr khi hng i cho cc qu
trnh h thng, cc qu trnh giao tip v cc qu trnh son tho giao tip u rng.
Nu mt qu trnh son tho giao tip c a vo hng i sn sng trong khi mt
qu trnh b ang chy th qu trnh b b trng dng CPU. Solaris 2 dng dng gii
thut ny.
Mt kh nng khc l phn (slice) thi gian gia hai hng i. Mi hng i
nhn mt phn thi gian CPU xc nh, sau n c th nh thi gia cc qu trnh
khc nhau trong hng i ca n. Th d, trong hng i giao tip-nn, hng i giao
tip c cho 80% thi gian ca CPU cho gii thut RR gia cc qu trnh ca n,
ngc li hng i nn nhn 20% thi gian CPU cho cc qu trnh ca n theo cch
FCFS.
V.6 nh thi hng i phn hi a cp
Thng thng, trong gii thut hng i a cp, cc qu trnh c gn vnh
vin ti hng i khi c a vo h thng. Cc qu trnh khng di chuyn gia cc
hng i. Nu c cc hng i ring cho cc qu trnh giao tip v cc qu trnh nn
th cc qu trnh khng di chuyn t mt hng i ny ti hng i khc v cc qu
trnh khng thay i tnh t nhin gia giao tip v nn. Cch t chc c ch v chi ph
nh thi thp nhng thiu linh ng v c th dn n tnh trng i CPU.






Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang 68
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0













Hnh 0-6 Cc hng i phn hi nhiu cp

Tuy nhin, nh thi hng i phn hi a cp (multilevel feedback queue
scheduling) cho php mt qu trnh di chuyn gia cc hng i. tng l tch
ring cc qu trnh vi cc c im chu k CPU khc nhau. Nu mt qu trnh dng
qu nhiu thi gian CPU th n s c di chuyn ti hng i c u tin thp. C
ch ny li cc qu trnh hng nhp/xut v cc qu trnh giao tip trong cc hng
i c u tin cao hn. Tng t, mt qu trnh ch qu lu trong hng i c
u tin thp hn c th c di chuyn ti hng i c u tin cao hn. y l
hnh thc ca s ha gi nhm ngn chn s i CPU.
Th d, xt mt b nh thi hng i phn hi nhiu cp vi ba hng i c
nh s t 0 ti 2 (nh hnh IV.6). B nh thi trc tin thc thi tt c qu trnh
cha trong hng i 0. Ch khi hng i 0 rng n s thc thi cc qu trnh trong hng
i 1. Tng t, cc qu trnh trong hng i 2 s c thc thi ch nu hng i 0 v
1 rng. Mt qu trnh n hng i 1 s u tin hn qu trnh n hng i 2. Tng
t, mt qu trnh n hng i 0 s u tin hn mt qu trnh vo hng i 1.
Mt qu trnh a vo hng i sn sng c t trong hng i 0. Mt qu
trnh trong hng i 0 c cho mt nh mc thi gian l 8 mili giy. Nu n khng
kt thc trong thi gian ny th n s di chuyn vo ui ca hng i 1. Nu hng
i 0 rng th qu trnh ti u ca hng i 1 c cho nh mc thi gian l 16 mili
giy. Nu n khng hon thnh th n b chim CPU v c t vo hng i 2. Cc
qu trnh trong hng i 2 c chy trn c s FCFS ch khi hng i 0 v 1 rng.
Gii thut nh thi ny cho u tin cao nht ti bt c qu trnh no vi chu
k CPU 8 mili giy hay t hn. Mt qu trnh nh th s nhanh chng nhn CPU, kt
thc chu k CPU ca n v b i chu k I/O k tip ca n. Cc qu trnh cn hn 8
mili giy nhng t hn 24 mili giy c phc v nhanh chng mc d vi u tin
thp hn cc qu trnh ngn hn. Cc qu trnh di t ng ri xung hng i 2 v
c phc v trong th t FCFS vi bt c chu k CPU cn li t hng i 0 v 1.
Ni chung, mt b nh thi hng i phn hi nhiu cp c nh ngha bi
cc tham s sau:

S lng hng i
Gii thut nh thi cho mi hng i
Phng php c dng xc nh khi nng cp mt qu trnh ti hng
i c u tin cao hn.
Phng php c dng xc nh khi no chuyn mt qu trnh ti hng
i c u tin thp hn.
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang 69
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

Phng php c dng xc nh hng i no mt qu trnh s i vo
v khi no qu trnh cn phc v.

nh ngha b nh thi biu dng hng i phn hi nhiu cp tr thnh gii
thut nh thi CPU ph bin nht. B nh thi ny c th c cu hnh thch
hp vi h thng xc nh. Tuy nhin, b nh thi ny cng yu cu mt vi phng
tin chn la gi tr cho tt c tham s nh ngha b nh thi biu tt nht. Mc
d mt hng i phn hi nhiu cp l c ch ph bin nht nhng n cng l c ch
phc tp nht.
VI nh thi biu a b x l
Phn trn tho lun chng ta tp trung vo nhng vn nh thi biu CPU
trong mt h thng vi mt b vi x l n. Nu c nhiu CPU, vn nh thi
tng ng s phc tp hn. Nhiu kh nng c th nghim v nh chng ta
thy vi nh thi CPU n b x l, khng c gii php tt nht. Trong phn sau
y, chng ta s tho lun vn tt mt s vn tp trung v nh thi biu a b x
l. Chng ta tp trung vo nhng h thng m cc b x l ca n c xc nh (hay
ng nht) trong thut ng chc nng ca chng; bt c b x l no sn c th c th
c dng chy bt qu trnh no trong hng i. Chng ta cng cho rng truy xut
b nh l ng nht (uniform memory access-UMA). Ch nhng chng trnh c
bin dch i vi tp hp ch th ca b x l c cho mi c th c chy trn
chnh b x l .
Ngay c trong mt b a x l ng nht i khi c mt s gii hn cho vic
nh thi biu. Xt mt h thng vi mt thit b nhp/xut c gn ti mt ng
bus ring ca mt b x l. Cc qu trnh mun dng thit b phi c nh thi
biu chy trn b x l , ngc li thit b l khng sn dng.
Nu nhiu b x l xc nh sn dng th chia s ti c th xy ra. N c th
cung cp mt hng i ring cho mi b x l. Tuy nhin, trong trng hp ny, mt
b x l c th rnh vi hng i rng, trong khi b x l khc rt bn. ngn chn
trng hp ny, chng ta dng mt hng i sn sng chung. Tt c qu trnh i vo
mt hng i v c nh thi biu trn bt c b x l sn dng no.
Trong mt c ch nh th, mt trong hai tip cn nh thi biu c th c
dng. Trong tip cn th nht, mi b x l nh thi chnh n. Mi b x l xem xt
hng i sn sng chung v chn mt qu trnh thc thi. Nu chng ta c nhiu b
x l c gng truy xut v cp nht mt cu trc d liu chung th mi b x l phi
c lp trnh rt cn thn. Chng ta phi m bo rng hai b x l khng chn cng
qu trnh v qu trnh khng b mt t hng i. Tip cn th hai trnh vn ny
bng cch c mt b x l nh b nh thi cho cc qu trnh khc, do to ra
cu trc ch-t (master-slave).
Mt vi h thng thc hin cu trc ny tng bc bng cch tt c quyt nh
nh thi, x l nhp/xut v cc hot ng h thng khc c qun l bi mt b
x l n-mt server ch. Cc b x l khc ch thc thi m ngi dng. a x l
khng i xng (asymmetric multiprocessing) n gin hn a x l i xng
(symmetric multiprocessing) v ch mt qu trnh truy xut cc cu trc d liu h
thng, lm gim i yu cu chia s d liu. Tuy nhin, n cng khng hiu qu. Cc
qu trnh gii hn nhp/xut c th gy tht c chai (bottleneck) trn mt CPU ang
thc hin tt c cc hot ng. in hnh, a x l khng i xng c ci t trc
trong mt h iu hnh v sau c nng cp ti a x l i xng khi h thng
tin trin.
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang 70
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

VII nh thi thi gian thc
Trong chng u chng ta tm hiu tng quan v h iu hnh thi thc v
tho lun tm quan trng ca n. y, chng ta tip tc tho lun bng cch m t
cc iu kin thun li nh thi cn h tr tnh ton thi thc trong h thng my
tnh a mc ch.
Tnh ton thi thc c chia thnh hai loi: h thng thi thc cng (hardware
real-time systems) c yu cu hon thnh mt tc v ti hn trong lng thi
gian c m bo. Thng thng, mt qu trnh c a ra xem xt cng vi khai
bo lng thi gian n cn hon thnh hay thc hin nhp/xut. Sau , b nh
thi biu nhn c qu trnh, m bo rng qu trnh s hon thnh ng gi hay t
chi yu cu khi khng th. iu ny c gi l t trc ti nguyn (resource
reservation). m bo nh th i hi b nh thi bit chnh xc bao lu mi loi
chc nng h iu hnh mt thc hin v do mi thao tc phi c m bo
mt lng thi gian ti a. Mt m bo nh th l khng th trong h thng vi lu
tr ph v b nh o v cc h thng con ny gy ra s bin i khng th trnh hay
khng th thy trc trong lng thi gian thc thi mt qu trnh xc nh. Do , h
thng thi thc cng c hnh thnh t nhiu phn mm c mc ch c bit chy
trn phn cng tn hin cho cc qu trnh ti hn, v thiu chc nng y ca cc
my tnh v cc h iu hnh hin i.
Tnh ton thi gian thc mm (soft real-time computing) t nghim khc hn.
N yu cu cc qu trnh ti hn nhn u tin cao hn cc qu trnh khc. Mc d
thm chc nng thi thc mm ti h chia s thi gian c th gy ra vic cp pht ti
nguyn khng cng bng v c th dn ti vic tr hon lu hn hay thm ch i ti
nguyn i vi mt s qu trnh, nhng n t c th t c. Kt qu l h thng mc
ch chung cng c th h tr a phng tin, ha giao tip tc cao, v nhiu
tc v khc nhng khng h tr tnh ton thi thc mm.
Ci t chc nng thi thc mm i hi thit k cn thn b nh thi biu v
cc kha cnh lin quan ca h iu hnh. Trc tin, h thng phi c nh thi trng
dng v cc qu trnh thi thc phi c u tin cao nht. u tin ca cc qu
trnh thi thc phi khng gim theo thi gian mc d u tin ca cc qu trnh
khng thi thc c th gim. Th hai, tr ca vic iu phi phi nh. Mt qu
trnh thi thc nh hn, nhanh hn c th bt u thc thi mt khi n c th chy.
Qun tr cc thuc tnh c xem xt trn l tng i n gin. Th d,
chng ta c th khng cho php mt qu trnh ha gi trn cc qu trnh thi thc, do
m bo rng u tin ca cc qu trnh khng thay i. Tuy nhin, m bo
thuc tnh sau y phc tp hn. Vn l nhiu h iu hnh gm hu ht n bn
ca UNIX b bt buc ch li gi h thng hon thnh hay nghn nhp/xut xy ra
trc khi thc hin chuyn ng cnh. tr iu phi trong nhng h thng nh th
c th di v mt s li gi h thng phc tp v mt vi thit b nhp/xut chm.
gi tr iu phi chm, chng ta cn cho php cc li gi h thng c trng
dng. C nhiu cch t mc ch ny. Cch th nht l chn cc im trng dng
(preemption points) trong nhng li gi h thng c khong thi gian di, kim tra
thy qu trnh u tin cao cn c thc thi hay khng. Nu ng, th chuyn ng
cnh xy ra v khi qu trnh c u tin kt thc, qu trnh b ngt tip tc vi li
gi h thng. Cc im trng dng ch c th c t ti v tr an ton trong nhn-
ni m nhng cu trc d liu hin ti khng c cp nht. Ngay c vi tr iu
phi trng dng c th ln v ch mt vi im trng dng c th c thm vo nhn
trong thc t.
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang 71
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

Mt phng php khc gii quyt s trng dng l lm ton b nhn c th
trng dng. m bo cc hat ng thc hin ng, tt c cu trc d liu nhn
phi c bo v thng qua vic s dng cc c ch ng b ha. Vi phng php
ny, nhn lun c th trng dng v bt c d liu nhn c cp nht c bo v t
vic sa i bi qu trnh c u tin cao. y l mt phng php hiu qu nht
trong vic s dng rng ri; n c dng trong Solaris 2.


















Hnh 0-7 tr gi

Nhng iu g xy ra nu qu trnh c u tin cao cn c hay sa i d
liu nhn hin ang c truy xut bi qu trnh khc c u tin thp hn? Qu
trnh c u tin cao ang ch qu trnh c u tin thp kt thc. Trng hp
ny c gi l o ngc u tin (prioprity inversion). Tht vy, mt chui cc
qu trnh ang truy xut ti nguyn m qu trnh c u tin cao cn. Vn ny c
th gii quyt bng giao thc k tha u tin (priority-inheritance protocol) trong
tt c qu trnh ny (cc qu trnh ny truy xut ti nguyn m qu trnh c u
tin cao cn) k tha u tin cao cho n khi chng c thc hin vi ti nguyn
trong cu hi. Khi chng kt thc, u tin ca chng chuyn tr li gi tr ban u
ca n.
Trong hnh IV.7, chng ta hin th s thay i ca tr iu phi. Giai on
xung t (conflict phase) ca tr iu phi c hai thnh phn:

S trng dng ca bt c qu trnh no ang chy trong nhn
Gii phng ti nguyn cc qu trnh c u tin thp c yu cu bi
qu trnh c u tin cao
Th d, trong Solaris 2 tr iu phi vi s trng dng b v hiu ha khi
vt qua 100 mili giy. Tuy nhin, tr iu phi vi s trng dng c cho php
thng c gim xung ti 2 mili giy.




Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang 72
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

VIII nh gi gii thut
Chng ta chn mt gii thut nh thi CPU cho mt h thng xc nh nh th
no? C nhiu gii thut nh thi, mi gii thut vi cc tham s ca ring n. Do
, chn mt gii thut c th l kh.
Vn u tin l nh ngha cc tiu chun c dng trong vic chn mt
gii thut. Cc tiu chun thng c nh ngha trong thut ng kh nng s dng
CPU, thi gian p ng hay thng lng. chn mt gii thut, trc ht chng ta
phi nh ngha trng s quan trng ca cc thc o ny. Tiu chun ca chng ta c
th gm cc thc o nh:
Kh nng s dng CPU ti a di s rng buc thi gian p ng ti a l
1 giy.
Thng lng ti a nh thi gian hon thnh (trung bnh) t l tuyn tnh vi
tng s thi gian thc thi.

Mt khi cc tiu chun chn la c nh ngha, chng ta mun nh gi cc
gii thut khc nhau di s xem xt. Chng ta m t cc phng php nh gi khc
nhau trong nhng phn di y
VIII.1 M hnh quyt nh
Mt loi quan trng ca phng php nh gi c gi l nh gi phn tch
(analytic evaluation). nh gi phn tch dng gii thut c cho v ti cng vic h
thng to ra cng thc hay s nh gi nng lc ca gii thut cho ti cng vic .
Mt dng nh gi phn tch l m hnh xc nh (deterministic modeling).
Phng php ny ly ti cng vic c bit c xc nh trc v nh ngha nng
lc ca mi gii thut cho ti cng vic .
Th d, gi s rng chng ta c ti cng vic c hin th trong bng di.
Tt c 5 qu trnh n ti thi im 0 trong th t c cho, vi chiu di ca thi
gian chu k CPU c tnh bng mili giy.

Qu trnh Thi gian x l
P1 10
P2 29
P3 3
P4 7
P5 12

Xt gii thut nh thi FCFS, SJF v RR (nh mc thi gian=10 mili giy)
cho tp hp qu trnh ny. Gii thut no s cho thi gian ch i trung bnh ti
thiu?
i vi gii thut FCFS, chng ta s thc thi cc qu trnh ny nh sau:
P1 P2 P3 P4 P5
0 10 39 42 49 61

Thi gian ch i l 0 mili giy cho qu trnh P
1
, 32 mili giy cho qu trnh P
2
,
39 giy cho qu trnh P
3
, 42 giy cho qu trnh P
4
v 49 mili giy cho qu trnh P
5
. Do
, thi gian ch i trung bnh l (0 + 10 + 39 + 42 + 49)/5= 28 mili giy.


Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang 73
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

Vi nh thi khng trng dng SJF, chng ta thc thi cc qu trnh nh sau:

P3 P4 P1 P5 P2
0 3 10 20 32 61

Thi gian ch i l 10 mili giy cho qu trnh P
1
, 32 mili giy cho qu trnh P
2
,
0 mili giy cho qu trnh P
3
, 3 mili giy cho qu trnh P
4
, v 20 giy cho qu trnh P
5
.
Do , thi gian ch i trung bnh l (10 + 32 + 0 + 3 + 20)/5= 13 mili giy.

Vi gii thut RR, chng ta thc thi cc qu trnh nh sau:

P1 P2 P3 P4 P5 P2 P5 P2
0 10 20 23 30 40 50 52 61

Thi gian ch i l 0 mili giy cho qu trnh P
1
, 32 mili giy cho qu trnh
P
2
, 20 mili giy cho qu trnh P
3
, 23 mili giy cho qu trnh P
4
, v 40 mili giy cho
qu trnh P
5
. Do , thi gian ch i trung bnh l (0 + 32 + 20 + 23 + 40)/5 = 23
mili giy.
Trong trng hp ny, chng ta thy rng, chnh sch SJF cho kt qu t hn
thi gian ch i trung bnh t c vi gii thut FCFS; gii thut RR cho chng
ta gi tr trung gian.
M hnh xc nh l n gin v nhanh. N cho cc con s chnh xc, cho
php cc gii thut c so snh vi nhau. Tuy nhin, n i hi cc s u vo chnh
xc v cc tr li ca n ch p dng cho nhng trng hp . Vic dng ch yu
ca m hnh xc nh l m t gii thut nh thi v cung cp cc th d. Trong cc
trng hp, chng ta ang chy cng cc chng trnh lp i lp li v c th o cc
yu cu x l ca chng trnh mt cch chnh xc, chng ta c th dng m hnh xc
nh chn gii thut nh thi. Qua tp hp cc th d, m hnh xc nh c th
hin th khuynh hng c phn tch v chng minh ring. Th d, c th chng
minh rng i vi mi trng c m t (tt c qu trnh v thi gian ca chng sn
dng ti thi im 0), chnh sch SJF s lun cho kt qu thi gian ch i l nh
nht.
Tuy nhin, nhn chung m hnh xc nh qu c th v yu cu tri thc qu
chnh xc s dng n mt cch c ch.
VIII.2 M hnh hng i
Cc qu trnh c chy trn nhiu h thng khc nhau t ngy ny sang ngy
khc v th khng c tp hp qu trnh tnh (v thi gian) dng cho m hnh xc
nh. Tuy nhin, nhng g c th c xc nh l s phn b chu k CPU v I/O. S
phn b ny c th c o v sau c tnh xp x hay c lng n gin. Kt
qu l mt cng thc ton m t xc sut ca mt chu k CPU c th. Thng thng,
s phn b ny l hm m v c m t bi gi tr trung bnh ca n. Tng t, s
phn b thi gian khi cc qu trnh n trong h thng-phn b thi gian n-phi
c cho.
H thng my tnh c m t nh mt mng cc server. Mi server c mt
hng i cho cc qu trnh. CPU l mt server vi hng i sn sng ca n, nh l
mt h thng nhp/xut vi cc hng i thit b. Bit tc n v tc phc v,
chng ta c th tnh kh nng s dng, chiu di hng i trung bnh, thi gian ch
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang 74
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

trung bnh,..Lnh vc nghin cu ny c gi l phn tch mng hng i (queueing-
network analysis).
Th d, gi n l chiu di hng i trung bnh (ngoi tr cc qu trnh ang
c phc v), gi W l thi gian ch i trung bnh trong hng i v l tc n
trung bnh cho cc qu trnh mi trong hng i (chng hn 3 qu trnh trn giy). Sau
, chng ta mong i trong sut thi gian W mt qu trnh ch, x W cc qu trnh
mi s n trong hng i. Nu h thng trong trng thi u n th s lng qu
trnh ri hng i phi bng s lng qu trnh n. Do ,
n = x W
Cng thc ny c gi l cng thc Little. Cng thc Little l c bit c ch
v n ph hp cho bt c gii thut nh thi v s phn b cc qu trnh n.
Chng ta s dng cng thc Little tnh mt trong ba bin, nu chng ta bit
hai bin khc. Th d, nu chng ta bit c 7 qu trnh n mi giy (trung bnh) v
thng c 14 qu trnh trong hng i th chng ta c th tnh thi gian ch i trung
bnh trn mi qu trnh l 2 giy.
Phn tch hng i c th c ch trong vic so snh cc gii thut nh thi
nhng n cng c mt s gii hn. Hin nay, cc loi gii thut v s phn b c
qun l l tng i gii hn. Tnh ton ca cc gii thut phc tp v s phn b l
rt kh thc hin. Do , phn b n v phc v thng c nh ngha khng
thc t, nhng d hng dn v mt tnh ton. Thng thng cn thc hin mt s gi
nh c lp c th khng chnh xc. Do , chng s c th tnh cu tr li, cc
m hnh hng i thng ch xp x h thng tht. V th, chnh xc ca cc kt
qu tnh ton c th l s nghi vn.
VIII.3 M phng
t c s nh gi cc gii thut nh thi chnh xc hn, chng ta c
th dng m phng (simulations). M phng lin quan n lp trnh mt m hnh h
thng my tnh. Cu trc d liu phn mm biu din cc thnh phn quan trng ca
h thng. B m phng c mt bin biu din ng h; khi gi tr ca bin ny tng,
b m phng sa i trng thi h thng phn nh cc hot ng ca cc thit b,
cc qu trnh v cc b nh thi. Khi s m phng thc thi, cc thng k hin th
nng lc ca gii thut c tp hp v in ra.
















Hnh 0-8 nh gi cc b nh thi CPU bng m phng
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang 75
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

D liu nh hng s m phng c th c sinh ra trong nhiu cch.
Cch thng dng nht dng b sinh s ngu nhin, c lp trnh sinh ra cc qu
trnh, thi gian chu k CPU, n, i ca qu trnh,..da trn phn b xc sut. S phn
b ny c th c nh ngha dng ton hc (ng nht, hm m, phn b Poisson)
hay theo kinh nghim. Nu s phn b c nh ngha theo kinh nghim th cc
thc o ca h thng tht di s nghin cu l ly c. Cc kt qu c dng
nh ngha s phn b tht s cc s kin trong h thng thc v sau s phn b
ny c th c dng nh hng vic m phng.
Tuy nhin, mt m phng hng phn b c th khng chnh xc do mi quan
h gia cc s kin tip theo trong h thng thc. S phn b thng xuyn hin th
ch bao nhiu s kin xy ra; n khng hin th bt c th g v th t xy ra ca
chng. sa cha vn ny, chng ta dng bng t ghi vt (trace tapes). Chng ta
to mt bng t ghi vt bng cch gim st h thng thc, ghi li chui cc s kin
tht (nh hnh IV.8). Sau , th t ny c dng nh hng vic m phng.
Bng t ghi vt cung cp cch tuyt vi so snh chnh xc hai gii thut trn cng
mt tp hp d liu vo tht. Phng php ny c th cung cp cc kt qu chnh xc
cho d liu vo ca n.
Tuy nhin, m phng c th rt t v thng i hi hng gi my tnh
thc hin. Mt m phng chi tit hn cung cp cc kt qu chnh xc hn nhng cng
yu cu nhiu thi gian my tnh hn. Ngoi ra, cc bng t ghi vt c th yu cu
lng ln khng gian lu tr. Cui cng, thit k, m, g ri ca b m phng l mt
tc v quan trng.
VIII.4 Ci t
Ngay c m phng cng cho chnh xc c gii hn. Ch c cch chnh xc
hon ton nh gi gii thut nh thi l m ha (code) n, t n vo trong h
iu hnh v xem n lm vic nh th no. Tip cn ny t mt gii thut tht s vo
h thng tht nh gi di iu kin hot ng tht s.
Kh khn ch yu l chi ph ca tip cn. Chi ph bao gm khng ch m ha
gii thut v sa i h iu hnh h tr n cng nh cc cu trc d liu c yu
cu m cn phn ng ca ngi dng i vi s thay i lin tc h iu hnh. Hu
ht ngi dng khng quan tm vic xy dng mt h iu hnh tt hn; h ch n
thun mun bit cc qu trnh ca h thc thi v dng cc kt qu ca chng. Mt h
iu hnh thay i lin tc khng gip cho ngi dng nhn thy cng vic ca h
c thc hin. Mt dng ca phng php ny c dng ph bin cho vic ci t
my tnh mi. Th d, mt tin ch Web mi c th m phng ti ngi dng c
pht sinh trc khi n sng (goes live), xc nh bt c hin tng tht c chai
trong tin ch v c lng bao nhiu ngi dng h thng c th h tr.
Mt kh khn khc vi bt c vic nh gi gii thut no l mi trng trong gii
thut c dng s thay i. Mi trng s thay i khng ch trong cch thng
thng nh nhng chng trnh mi c vit v cc loi vn thay i, m cn kt
qu nng lc ca b nh thi. Nu cc qu trnh c cho vi u tin ngn th
ngi dng c th tch cc qu trnh ln thnh tp hp cc qu trnh nh hn. Nu
qu trnh giao tip c cho u tin vt qua cc qu trnh khng giao tip th
ngi dng c th chuyn ti vic dng giao tip.
Th d, trong DEC TOPS-20, h thng c phn loi cc qu trnh giao tip
v khng giao tip mt cch t ng bng cch xem lng nhp/xut thit b u
cui. Nu mt qu trnh khng c nhp hay xut ti thit b u cui trong khong
thi gian 1 pht th qu trnh c phn loi l khng giao tip v c di chuyn ti
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang 76
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

hng i c u tin thp. Chnh sch ny dn n trng hp mt ngi lp trnh
sa i chng trnh ca mnh vit mt k t bt k ti thit b u cui ti khong
thi gian u n t hn 1 pht. H thng ny cho nhng chng trnh ny c u
tin cao mc d d liu xut ca thit b u cui l hon ton khng c ngha.
Cc gii thut c kh nng mm do nht c th c thay i bi ngi qun l hay
ngi dng. Trong sut thi gian xy dng h iu hnh, thi gian khi ng, thi
gian chy, cc bin c dng bi cc b nh thi c th c thay i phn nh
vic s dng ca h thng trong tng lai. Yu cu cho vic nh thi biu mm do
l mt trng hp khc m s tch ring cc c ch t chnh sch l c ch. Th
d, nu cc ha n cn c x l v in lp tc nhng thng c thc hin nh
cng vic b c u tin thp, hng i b c cho tm thi u tin cao hn.
Tuy nhin, rt t h iu hnh chp nhn loi nh thi ny.
IX Tm tt
nh thi CPU l mt tc v chn mt qu trnh ang ch t hng i sn sng
v cp pht CPU ti n. CPU c cp pht ti qu trnh c chn bi b cp pht.
nh thi n trc, c phc v trc (FCFS) l gii thut nh thi n gin nht,
nhng n c th gy cc qu trnh ngn ch cc qu trnh qu trnh qu di. nh thi
ngn nht, phc v trc (SJF) c th ti u, cung cp thi gian ch i trung bnh
ngn nht. Ci t nh thi SJF l kh v on trc chiu di ca chu k CPU k
tip l kh. Gii thut SJF l trng hp c bit ca gii thut nh thi trng dng
thng thng. N n gin cp pht CPU ti qu trnh c u tin cao nht. C hai
nh thi u tin v SJF c th gp phi tr ngi ca vic i ti nguyn.
nh thi quay vng (RR) l hp l hn cho h thng chia s thi gian. nh
thi RR cp pht CPU ti qu trnh u tin trong hng i sn sng cho q n v thi
gian, y q l nh mc thi gian. Sau q n v thi gian, nu qu trnh ny khng
tr li CPU th n b chim v qu trnh ny c t vo ui ca hng i sn sng.
Vn quan trng l chn nh mc thi gian. Nu nh mc qu ln, th nh thi
RR gim hn nh thi FCFS ; nu nh mc qu nh th chi ph nh thi trong dng
thi gian chuyn ng cnh tr nn tha.
Gii thut FCFS l khng u tin; gii thut RR l u tin. Cc gii thut SJF
v u tin c th u tin hoc khng u tin.
Cc gii thut hng i nhiu cp cho php cc gii thut khc nhau c
dng cho cc loi khc nhau ca qu trnh. Chung nht l hng i giao tip ch
hin th dng nh thi RR v hng i b chy ch nn dng nh thi FCFS.
Hng i phn hi nhiu cp cho php cc qu trnh di chuyn t hng i ny sang
hng i khc.
V c nhiu gii thut nh thi sn dng, chng ta cn cc phng php
chn gia chng. Cc phng php phn tch dng cch thc phn tch ton hc
xc nh nng lc ca gii thut. Cc phng php m phng xc nh nng lc bng
cch phng theo gii thut nh thi trn nhng mu i din ca qu trnh v tnh
nng lc kt qu.
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang 77
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

CHNG IV - LUNG
IV.1 Mc ch
Sau khi hc xong chng ny, ngi hc nm c nhng kin thc sau:
Cc khi nim gn vi h iu hnh a lung
Cc vn lin quan vi lp trnh a lung
Cc nh hng ca lung ti vic thit k h iu hnh
Cch thc cc h iu hnh hin i h tr lung
IV.2 Gii thiu
M hnh thc thi trong chng 3 gi s rng mt qu trnh l mt chng trnh
ang thc thi vi mt lung iu khin. Nhiu h iu hnh hin i hin nay cung
cp cc c im cho mt qu trnh cha nhiu lung (thread) iu khin. Trong
chng ny gii thiu cc khi nim lin quan vi cc h thng my tnh a lung,
gm tho lun Pthread API v lung Java.
Chng ta s xem xt nhiu vn c lin quan ti lp trnh a lung v n nh
hng nh th no n thit k ca h iu hnh. Cui cng, chng ta s khm ph
nhiu h iu hnh hin i h tr lung ti cp nhn nh th no.
IV.3 Tng quan
Mt lung thng c gi l qu trnh nh (lightweight proces-LWP), l mt n
v c bn ca vic s dng CPU; n hnh thnh gm: mt nh danh lung (thread
ID), mt b m chng trnh, tp thanh ghi v ngn xp. N chia s vi cc lung
khc thuc cng mt qu trnh phn m, phn d liu, v ti nguyn h iu hnh nh
cc tp tin ang m v cc tn hiu. Mt qu trnh truyn thng (hay qu trnh nng)
c mt lung iu khin n. Nu qu trnh c nhiu lung iu khin, n c th thc
hin nhiu hn mt tc v ti mt thi im. Hnh VI.1 hin th s khc nhau gia
qu trnh n lung v qu trnh a lung.
IV.3.1 S c ng
Nhiu gi phn mm chy trn cc my bn PC l a lung. in hnh, mt ng
dng c ci t nh mt qu trnh ring r vi nhiu lung iu khin. Mt trnh
duyt Web c th c mt lung hin th hnh nh, vn bn trong khi mt lung khc
ly d liu t mng. Mt trnh son tho vn bn c th c mt lung hin th ha,
lung th hai c s bm phm trn bn phm t ngi dng, mt lung th ba thc
hin vic kim tra chnh t v t vng chy trong ch nn.







Bin Son: Th.s Nguyn Ph Trng - 09/2005 Trang

80
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0












Hnh 0-1 Qu trnh n v a lung
Trong nhng trng hp c th mt ng dng n c th c yu cu thc
hin nhiu tc v n. Th d, mt trnh phc v web chp nhn cc yu cu khch
hng nh trang web, hnh nh, m thanh, ..Mt trnh phc v web c th c nhiu
(hng trm) khch hng truy xut ng thi n. Nu trnh phc v web chy nh mt
qu trnh n lung truyn thng th n s c th ch phc v mt khch hng ti cng
thi im. Lng thi gian m khch hng phi ch yu cu ca n c phc v l
rt ln.
Mt gii php l c mt trnh phc v chy nh mt qu trnh n chp nhn
cc yu cu. Khi trnh phc v nhn mt yu cu, n s to mt qu trnh ring
phc v yu cu . Tht vy, phng php to ra qu trnh ny l cch s dng thng
thng trc khi lung tr nn ph bin. To ra qu trnh c nh hng rt ln nh
c trnh by chng trc. Nu qu trnh mi s thc hin cng tc v nh qu
trnh c th ti sao li gnh chu tt c chi ph ? Thng s hiu qu hn cho mt
qu trnh cha nhiu lung phc v cng mt mc ch. Tip cn ny s a lung qu
trnh trnh phc v web. Trnh phc v s to mt lung ring lng nghe cc yu cu
ngi dng; khi yu cu c thc hin n khng to ra qu trnh khc m s to mt
lung khc phc v yu cu.
Lung cng ng mt vai tr quan trng trong h thng li gi th tc xa
(remote process call-RPC). Nh trnh by chng trc, RPCs cho php giao
tip lin qu trnh bng cch cung cp c ch giao tip tng t nh cc li gi hm
hay th tc thng thng. in hnh, cc trnh phc v RPCs l a lung. Khi mt
trnh phc v nhn mt thng ip, n phc v thng ip dng mt lung ring. iu
ny cho php phc v nhiu yu cu ng hnh.
IV.3.2 Thun li
Nhng thun li ca lp trnh a lung c th c chia lm bn loi:

S p ng: a lung mt ng dng giao tip cho php mt chng trnh tip
tc chy thm ch nu mt phn ca n b kha hay ang thc hin mt thao
tc di, do gia tng s p ng i vi ngi dng. Th d, mt trnh duyt
web vn c th p ng ngi dng bng mt lung trong khi mt nh ang
c np bng mt lung khc.
Chia s ti nguyn: Mc nh, cc lung chia s b nh v cc ti nguyn ca
cc qu trnh m chng thuc v. Thun li ca vic chia s m l n cho php
Bin Son: Th.s Nguyn Ph Trng - 09/2005 Trang

81
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

mt ng dng c nhiu hot ng ca cc lung khc nhau nm trong cng
khng gian a ch.
Kinh t: cp pht b nh v cc ti nguyn cho vic to cc qu trnh l rt
t. V cc lung chia s ti nguyn ca qu trnh m chng thuc v nn n
kinh t hn to v chuyn ng cnh gia cc lung. Kh nh gi theo
kinh nghim s khc bit chi ph cho vic to v duy tr mt qu trnh hn mt
lung, nhng thng n s mt nhiu thi gian to v qun l mt qu trnh
hn mt lung. Trong Solaris 2, to mt qu trnh chm hn khong 30 ln to
mt lung v chuyn i ng cnh chm hn 5 ln.
S dng kin trc a x l: cc li im ca a lung c th pht huy trong
kin trc a x l, mi lung thc thi song song trn mt b x l khc
nhau. Mt qu trnh n lung ch c th chy trn mt CPU. a lung trn
mt my nhiu CPU gia tng tnh ng hnh. Trong kin trc n x l, CPU
thng chuyn i qua li gia mi lung qu nhanh to ra hnh nh ca s
song song nhng trong thc t ch mt lung ang chy ti mt thi im.
IV.3.3 Lung ngi dng v lung nhn
Chng ta va mi tho lun l xem xt lung nh mt chiu hng chung. Tuy
nhin, h tr lung c cung cp hoc cp ngi dng, cho cc lung ngi dng
hoc cp nhn, cho cc lung nhn.

Lung ngi dng: c h tr di nhn v c ci t bi th vin lung
ti cp ngi dng. Th vin cung cp h tr cho vic to lung, lp thi biu,
v qun l m khng c s h tr t nhn. V nhn khng bit cc lung cp
ngi dng, tt c vic to lung v lp thi biu c thc hin trong khng
gian ngi dng m khng cn s can thip ca nhn. Do , cc lung cp
ngi dng thng to v qun l nhanh, tuy nhin chng cng c nhng tr
ngi. Th d, nu nhn l n lung th bt c lung cp ngi dng thc hin
mt li gi h thng nghn s lm cho ton b qu trnh b nghn, thm ch
nu cc lung khc sn dng chy trong ng dng. Cc th vin lung
ngi dng gm cc lung POSIX Pthreads, Mach C-threads v Solaris 2 UI-
threads.
Lung nhn: c h tr trc tip bi h iu hnh. Nhn thc hin vic to
lung, lp thi biu, v qun l khng gian nhn. V qun l lung c thc
hin bi h iu hnh, lung nhn thng to v qun l chm hn lung
ngi dng. Tuy nhin, v nhn c qun l cc lung nu mt lung thc
hin li gi h thng nghn, nhn c th lp thi biu mt lung khc trong
ng dng thc thi. Trong mi trng a x l, nhn c th lp thi biu lung
trn mt b x l khc. Hu ht cc h iu hnh hin nay nh Windows NT,
Windows 2000, Solaris 2, BeOS v Tru64 UNIX (trc Digital UNIX)-h tr
cc lung nhn.
IV.4 M hnh a lung
Nhiu h thng cung cp s h tr c hai lung nhn v lung ngi dng nn
to ra nhiu m hnh a lung khc nhau. Chng ta s xem xt ba loi ci t lung
thng thng
Bin Son: Th.s Nguyn Ph Trng - 09/2005 Trang

82
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

IV.4.1 M hnh nhiu-mt
M hnh nhiu-mt (nh hnh IV.2) nh x nhiu lung cp ngi dng ti
mt lung cp nhn. Qun l lung c thc hin trong khng gian ngi dng v
th n hiu qu nhng ton b qu trnh s b kha nu mt lung thc hin li gi h
thng kha. V ch mt lung c th truy xut nhn ti mt thi im nn nhiu lung
khng th chy song song trn nhiu b x l. Green threads-mt th vin lung c
ci t trn cc h iu hnh khng h tr lung nhn dng m hnh nhiu-mt.














Hnh 0-2-M hnh nhiu-mt
IV.4.2 M hnh mt-mt
M hnh mt-mt (hnh IV.3) nh x mi lung ngi dng ti mt lung
nhn. N cung cp kh nng ng hnh tt hn m hnh nhiu-mt bng cch cho mt
lung khc chy khi mt lung thc hin li gi h thng nghn; n cng cho php
nhiu lung chy song song trn cc b x l khc nhau. Ch c mt tr ngi trong
m hnh ny l to lung ngi dng yu cu to mt lung nhn tng ng. V chi
ph cho vic to lung nhn c th nng ln nng lc thc hin ca ng dng, cc
ci t cho m hnh ny gii hn s lung c h tr bi h thng. Windows NT,
Windows 2000 v OS/2 ci t m hnh mt-mt ny.












Hnh 0-3-M hnh mt-mt
Bin Son: Th.s Nguyn Ph Trng - 09/2005 Trang

83
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

IV.4.3 M hnh nhiu-nhiu
M hnh nhiu-nhiu (nh hnh VI.4) a hp nhiu lung cp ngi dng ti
s lng nh hn hay bng cc lung nhn. S lng cc lung nhn c th c xc
nh hoc mt ng dng c th hay mt my c th (mt ng dng c th c cp
nhiu lung nhn trn mt b a x l hn trn mt b n x l). Trong khi m hnh
nhiu-mt cho php ngi pht trin to nhiu lung ngi dng nh h mun, th
ng hnh tht s l khng t c v nhn c th lp thi biu ch mt lung ti mt
thi im. M hnh mt-mt cho php ng hnh tt hn nhng ngi pht trin phi
cn thn khng to ra qu nhiu lung trong mt ng dng. M hnh nhiu-nhiu gp
phi mt trong hai vn khim khuyt: ngi pht trin c th to nhiu lung
ngi dng khi cn thit v cc lung nhn tng ng c th chy song song trn mt
b a x l. Khi mt lung thc hin mt li gi h thng kha, nhn c th lp thi
biu mt lung khc thc thi. Solaris 2, IRIX, HP-UX, v Tru64 UNIX h tr m
hnh ny.
















Hnh 0-4-M hnh nhiu-nhiu
IV.5 Cp pht lung
Trong phn ny chng ta tho lun cc cp pht xem xt vi cc chng trnh
a lung.
IV.5.1 Li gi h thng fork v exec
Trong chng trc chng ta m t li gi h thng fork c dng to
mt qu trnh bn sao ring nh th no. Trong mt chng trnh a lung, ng ngha
ca cc li gi h thng fork v exec thay i. Nu mt lung trong li gi chng
trnh fork th qu trnh mi sao chp li qu trnh tt c lung hay l mt qu trnh n
lung mi? Mt s h thng UNIX chn hai n bn fork, mt sao chp li tt c lung
v mt sao chp li ch lung c np ln li gi h thng fork. Li gi h thng
exec in hnh thc hin cng vic trong cng mt cch nh c m t trong chng
trc. Ngha l, nu mt lung np li gi h thng exec, chng trnh c xc nh
trong tham s exec s thay th ton b qu trnh-cha tt c lung v cc qu trnh ti
nh.
Bin Son: Th.s Nguyn Ph Trng - 09/2005 Trang

84
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

Vic s dng hai n bn fork ph thuc vo ng dng. Nu exec b hy tc th
sau khi phn nhnh (forking) th s sao chp li tt c lung l khng cn thit khi
chng trnh c xc nh trong cc tham s exec s thay th qu trnh. Trong
trng hp ny, vic sao chp li ch gi lung hp l. Tuy nhin, nu qu trnh ring
bit ny khng gi exec sau khi phn nhnh th qu trnh ring bit ny nn sao chp
li tt c lung.
IV.5.2 S hy b lung
Hy mt lung l mt tc v kt thc mt lung trc khi n hon thnh.Th
d, nu nhiu lung ang tm kim ng thi thng qua mt c s d liu v mt
lung tr v kt qu, cc lung cn li c th b hy. Mt trng hp khc c th xy
ra khi ngi dng nhn mt nt trn trnh duyt web dng trang web ang c
ti. Thng mt trang web c ti trong mt lung ring. Khi ngi dng nhn nt
stop, lung ang np trang b hy b.
Mt lung b hy thng c xem nh lung ch. S hy b mt lung ch c
th xy ra hai vin cnh khc nhau:
Hy bt ng b: mt lung lp tc kt thc lung ch
Hy tr hon: lung ch c th kim tra nh k nu n sp kt thc, cho
php lung ch mt c hi t kt thc trong mt cch c th t.
S kh khn ca vic hy ny xy ra trong nhng trng hp khi ti nguyn
c cp pht ti mt lung b hy hay mt lung b hy trong khi vic cp nht d
liu xy ra gia chng, n ang chia s vi cc lung khc. iu ny tr nn c bit
kh khn vi s hy bt ng b. H iu hnh thng i li ti nguyn h thng t
lung b hy nhng thng n s khng i li tt c ti nguyn. Do , vic hy mt
lung bt ng b c th khng gii phng ht ti nguyn h thng cn thit.
Mt chn la khc, s hy tr hon thc hin bng mt lung bo hiu rng
mt lung ch b hy. Tuy nhin, s hy s xy ra ch khi lung ch kim tra xc
nh nu n c hy hay khng. iu ny cho php mt lung kim tra nu n s b
hy ti im n c th an ton b hy. Pthreads gi nhng im nh th l cc im
hy (cancellation points).
Hu ht h iu hnh cho php mt qu trnh hay mt lung b hy bt ng
b. Tuy nhin, Pthread API cung cp s hy tr hon. iu ny c ngha rng mt h
iu hnh ci t Pthread API s cho php s hy c tr hon.
IV.5.3 Tn hiu qun l
Mt tn hiu (signal) c dng trong h iu hnh UNIX thng bo mt s
kin xc nh xy ra. Mt tn hiu c th c nhn hoc ng b hoc bt ng b
ph thuc m v l do cho s kin ang c bo hiu. Mt tn hiu hoc ng b
hoc bt ng b u theo sau cng mu:
Tn hiu c pht sinh bi s xy ra ca mt s kin xc nh.
Tn hiu c pht sinh c phn pht ti mt qu trnh.
Khi c phn pht xong, tn hiu phi c qun l.
Mt th d ca tn hiu ng b gm mt truy xut b nh khng hp l hay
chia cho 0. Trong trng hp ny, nu mt chng trnh ang chy thc hin mt
trong cc hot ng ny, mt tn hiu c pht sinh. Cc tn hiu ng b c phn
pht ti cng mt qu trnh thc hin thao tc gy ra tn hiu (do l do chng c
xem ng b).
Bin Son: Th.s Nguyn Ph Trng - 09/2005 Trang

85
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

Khi mt tn hiu c pht sinh bi mt s kin bn ngoi ti mt qu trnh
ang chy, qu trnh nhn tn hiu bt ng b. Th d, tn hiu kt thc qu trnh
vi phm xc nh (nh <control><C>) hay thi gian ht hn. in hnh, mt tn hiu
bt ng b c gi ti qu trnh khc.
Mi tn hiu c th c qun l bi mt trong hai b qun l:

B qun l tn hiu mc nh
B qun l tn hiu c nh ngha bi ngi dng

Mi tn hiu c mt b qun l tn hiu mc nh c thc thi bi nhn khi
qun l tn hiu. Hot ng mc nh c th c ghi bi mt hm qun l tn hiu
c nh ngha bi ngi dng. Trong trng hp ny, hm c nh ngha bi
ngi dng c gi qun l tn hiu hn l hot ng mc nh. C hai tn hiu
ng b v bt ng b c th c qun l trong cc cch khc nhau. Mt s tn hiu
c th c b qua (nh thay i kch thc ca ca s); cc tn hiu khc c th
c qun l bng cch kt thc chng trnh (nh truy xut b nh khng hp l).
Qun l tn hiu trong nhng chng trnh n lung khng phc tp; cc tn
hiu lun c phn pht ti mt qu trnh. Tuy nhin, phn pht tn hiu l phc tp
hn trong nhng chng trnh a lung, nh mt qu trnh c nhiu lung. Mt tn
hiu nn c phn pht u?
Thng thng, cc tu chn sau tn ti:

Phn pht tn hiu ti lung m tn hiu p dng
Phn pht tn hiu ti mi lung trong qu trnh.
Phn pht tn hiu ti cc lung c th trong qu trnh.
Gn mt lung xc nh nhn tt c tn hiu cho qu trnh.

Phng php cho vic phn pht tn hiu ph thuc vo loi tn hiu c pht
sinh. Th d, cc tn hiu ng b cn c phn pht ti lung pht sinh ra tn
hiu v khng phn pht ti lung no khc trong qu trnh. Tuy nhin, trng hp
vi tn hiu bt ng b l khng r rng. Mt s tn hiu bt ng b - nh tn hiu
kt thc mt qu trnh (th d:<control><c>)- nn c gi ti tt c lung. Mt s n
bn a lung ca UNIX cho php mt lung xc nh tn hiu no s c chp nhn
v tn hiu no s b kho. Do , mt vi tn hiu bt ng b c th c phn pht
ti ch cc lung khng kho tn hiu. Tuy nhin, v tn hiu cn c qun l ch mt
ln, in hnh mt tn hiu c phn pht ch lung u tin c tm thy trong mt
lung m khng nghn tn hiu. Solaris 2 ci t bn tu chn; n to mt lung xc
nh trong mi qu trnh cho qun l tn hiu. Khi mt tn hiu bt ng b c gi
ti mt qu trnh, n c gi ti lung xc nh, sau n phn pht tn hiu ti
lung u tin khng kho tn hiu.
Mc d Windows 2000 khng cung cp r s h tr tn hiu, nhng chng c
th c m phng s dng li gi th tc bt ng b (asynchronous produce calls-
APC). Tin ch APC cho php lung ngi dng xc nh hm c gi khi lung
ngi dng nhn thng bo v mt s kin xc nh. Nh c hin th bi tn ca
n, mt APC rt ging tn hiu bt ng b trong UNIX. Tuy nhin, UNIX phi u
tranh vi cch gii quyt tn hiu trong mi trng a lung, phng tin APC phc
tp hn nh mt APC c phn pht ti lung xc nh hn qu trnh.
Bin Son: Th.s Nguyn Ph Trng - 09/2005 Trang

86
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

IV.5.4 Nhm lung
Trong phn VI.3, chng ta m t kch bn a lung ca mt trnh phc v
web. Trong trng hp ny, bt c khi no trnh phc v nhn mt yu cu, n to
mt lung ring phc v yu cu . Ngc li, to mt lung ring tht s cao
hn to mt qu trnh ring, d sao mt trnh phc v a lung c th pht sinh vn
. Quan tm u tin l lng thi gian c yu cu to lung trc khi phc v
yu cu, v lng thi gian xo lung khi n hon thnh. Vn th hai l vn kh
gii quyt hn: nu chng ta cho php tt c yu cu ng hnh c phc v trong
mt lung mi, chng ta khng thay th gii hn trn s lng lung hot ng ng
hnh trong h thng. Nhng lung khng gii hn c th lm cn kit ti nguyn h
thng, nh thi gian CPU v b nh. Mt gii php cho vn ny l s dng nhm
lung.
tng chung nm sau nhm lung l to s lng lung ti thi im khi
ng v t chng vo nhm, ni chng ngi v ch cng vic. Khi mt trnh phc v
nhn mt yu cu, chng nh thc mt lung t nhm- nu mt lung sn dng
truyn n yu cu dch v. Mt khi lung hon thnh dch v ca n, n tr v nhm
ang ch cng vic k. Nu nhm khng cha lung sn dng, trnh phc v ch cho
ti khi n rnh.
Ni c th, cc li ch ca nhm lung l:

1) Thng phc v yu cu nhanh hn vi lung c hn l ch to lung.
2) Mt nhm lung b gii hn s lng lung tn ti bt k thi im no. iu
ny c bit quan trng trn nhng h thng khng h tr s lng ln cc
lung ng hnh.

S lng lung trong nhm c th c t theo kinh nghim (heuristics) da trn
cc yu t nh s CPU trong h thng, lng b nh vt l v s yu cu khch hng
ng hnh. Kin trc nhm lung tinh vi hn c th t iu chnh s lng lung
trong nhm da theo cc mu s dng. Nhng kin trc nh th cung cp li im xa
hn ca cc nhm lung nh hn-do tiu tn t b nh hn-khi vic np trn h
thng l chm.
IV.5.5 D liu c t lung

Cc lung thuc mt qu trnh chia s d liu ca qu trnh. Tht vy, chia s
d liu ny cung cp mt trong nhng li im ca lp trnh a lung. Tuy nhin, mi
lung c th cn bn sao d liu xc nh ca chnh n trong mt vi trng hp.
Chng ta s gi d liu nh th l d liu c t lung. Th d, trong mt h thng x
l giao dch, chng ta c th phc v mi giao dch trong mt lung. Ngoi ra, mi
giao dch c th c gn mt danh biu duy nht. gn mi lung vi nh danh
duy nht ca n chng ta c th dng d liu c t d liu. Hu ht th vin lung
gm Win32 v Pthread cung cp mt s biu mu h tr cho d liu c t lung.
Java cng cung cp s h tr nh th.
IV.6 Pthreads
Pthreads tham chiu ti chun POSIX (IEEE 1003.1c) nh ngha API cho vic
to v ng b lung. y l mt c t cho hnh vi lung khng l mt ci t.
Bin Son: Th.s Nguyn Ph Trng - 09/2005 Trang

87
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

Ngi thit k h iu hnh c th ci t c t trong cch m h mun. Thng
thng, cc th vin ci t c t Pthread b gii hn i vi cc h thng da trn
c s ca UNIX nh Solaris 2. H iu hnh Windows thng khng h tr Pthreads
mc d cc n bn shareware l sn dng trong phm vi cng cng.
Trong phn ny chng ta gii thiu mt s Pthread API nh mt th d cho th
vin lung cp ngi dng. Chng ta s xem n nh th vin cp ngi dng v
khng c mi quan h khc bit gia mt lung c to dng Pthread v lung c
gn vi nhn. Chng trnh C hin th trong hnh di y, m t mt Pthread API c
bn xy dng mt chng trnh a lung.
Chng trnh hin th trong hnh to mt lung ring xc nh tnh tng ca mt
s nguyn khng m. Trong chng trnh Pthread, cc lung ring bt u thc thi
trong mt hm xc nh. Trong hnh, y l mt hm runner. Khi chng trnh ny
bt u, mt lung ring iu khin bt u trong main. Sau khi khi to, main to ra
lung th hai bt u iu khin trong hm runner.
By gi chng ta s cung cp tng quan ca chng trnh ny chi tit hn. Tt
c chng trnh Pthread phi cha tp tin tiu pthread.h. pthread_t tid khai bo
danh biu cho lung s c to. Mi lung c mt tp cc thuc tnh gm kch thc
ngn xp v thng tin nh thi. Khai bo pthread_attr_t attr hin din cc thuc tnh
cho lung. Chng ta s thit lp cc thuc tnh trong gi hm pthread_attr_init(&attr).
V chng ta khng thit lp r thuc tnh, chng ta s dng thuc tnh mc nh c
cung cp. Mt lung ring c to vi li gi hm pthread_create. Ngoi ra,
truyn nh danh ca lung v cc thuc tnh cho lung, chng ta cng truyn tn ca
hm, ni mt lung mi s bt u thc thi, trong trng hp ny l hm runner. Cui
cng chng ta s truyn s nguyn c cung cp ti dng lnh, argv[1].
Ti im ny, chng trnh c hai lung: lung khi to trong main v lung
thc hin vic tnh tng trong hm runner. Sau khi to lung th hai, lung main s
ch cho lung runner hon thnh bng cch gi hm pthread_join. Lung runner s
hon thnh khi n gi hm pthread_exit.

#include<pthread>
#include<stdio.h>
int sum: /*D liu ny c chia s bi thread(s)*/
void *runner(void *param); /*lung*/

main(int argc, char *argv[])
{
pthread_t tid; /*nh danh ca lung*/
pthread_attr_t attr; /*tp hp cc thuc tnh*/
if(argc !=2){
fprintf(stderr, usage: a.out <integer value>);
exit();
}
if (atoi(argv[1] < 0)){
fprintf(stderr,%d must be >= 0 \n, atoi(argv[1]));
exit();
}
/*ly cc thuc tnh mc nh*/
pthread_attr_init(&attr);
/*to mt lung*/
pthread_create(&tid,&attr,runner, argv[1]);
Bin Son: Th.s Nguyn Ph Trng - 09/2005 Trang

88
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

/*by gi ch lung kt thc*/
pthread_join(tid,NULL);
printf(sum = %d\n,sum);
/*Lung s bt u iu khin trong hm ny*/
void *runner(void *param)
{
int upper = atoi(param);
int i;
sum = 0;
if (upper > 0){
sum+= i;
}
pthread_exit(0);
}
}
Hnh 0-5-Chng trnh C a lung dng Pthread API
IV.7 Lung Solaris 2
Solaris 2 l mt n bn ca UNIX vi h tr lung ti cp nhn v cp
ngi dng, a x l i xng (SMP) v nh thi thi thc. Solaris 2 ci t Pthread
API h tr lung cp ngi dng vi th vin cha APIs cho vic to v qun l
lung (c gi lung UI). S khc nhau gia hai th vin ny rt ln, mc d hu
ht ngi pht trin hin nay chn th vin Pthread. Solaris 2 cng nh ngha mt
cp lung trung gian. Gia lung cp nhn v cp ngi dng l cc qu trnh nh
(lightweight process- LWPs). Mi qu trnh cha t nht mt LWP. Th vin lung a
hp lung ngi dng trn nhm LWP cho qu trnh v ch lung cp ngi dng
hin c ni kt ti mt LWP hon thnh cng vic. Cc lung cn li b kho hoc
ch cho mt LWP m chng c th thc thi trn n.
Lung cp nhn chun thc thi tt c thao tc trong nhn. Mi LWP c mt
lung cp nhn, v mt s lung cp nhn (kernel) chy trn mt phn ca nhn v
khng c LWP km theo (th d, mt lung phc v yu cu a ). Cc lung cp
nhn ch l nhng i tng c nh thi trong h thng. Solaris 2 ci m hnh
nhiu-nhiu; ton b h thng lung ca n c m t trong hnh di y:


Hnh 0-6-Lung Solaris 2
Bin Son: Th.s Nguyn Ph Trng - 09/2005 Trang

89
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

Cc lung cp ngi dng c th gii hn hay khng gii hn. Mt lung cp
ngi dng gii hn c gn vnh vin ti mt LWP. Ch lung chy trn LWP
v yu cu LWP c th c tn hin ti mt b x l n (xem lung tri nht trong
hnh trn). Lin kt mt lung c ch trong trng hp yu cu thi gian p ng
nhanh, nh ng dng thi thc. Mt lung khng gii hn gn vnh vin ti bt k
LWP no. Tt c cc lung khng gii hn c a hp trong mt nhm cac LWP sn
dng cho ng dng. Cc lung khng gii hn l mc nh. Solaris 8 cng cung cp
mt th vin lung thay i m mc nh chng lin kt ti tt c cc lung vi mt
LWP.
Xem xt h thng trong hot ng: bt c mt qu trnh no c th c nhiu
lung ngi dng. Cc lung cp ngi dng ny c th c nh thi v chuyn i
gia LWPs bi th vin lung khng c s can thip ca nhn. Cc lung cp ngi
dng cc k hiu qu v khng c s h tr nhn c yu cu cho vic to hay hu,
hay th vin lung chuyn ng cnh t lung ngi dng ny sang lung khc.
Mi LWP c ni kt ti chnh xc mt lung cp nhn, ngc li mi lung
cp ngi dng l c lp vi nhn. Nhiu LWPs c th trong mt qu trnh, nhng
chng c yu cu ch khi lung cn giao tip vi mt nhn. Th d, mt LWP c
yu cu mi lung c th kho ng hnh trong li gi h thng. Xem xt nm tp tin
khc nhau-c cc yu cu xy ra cng mt lc. Sau , nm LWPs c yu cu v
chng ang ch hon thnh nhp/xut trong nhn. Nu mt tc v ch c bn LWPs
th yu cu th nm s khng phi ch mt trong nhng LWPs tr v t nhn. B
sung mt LWP th su s khng t c g nu ch c cng vic cho nm.
Cc lung nhn c nh thi bi b lp thi biu ca nhn v thc thi trn
mt hay nhiu CPU trong h thng. Nu mt lung nhn kho (trong khi ch mt thao
tc nhp/xut hon thnh), th b x l rnh thc thi lung nhn khc. Nu mt
lung b kho ang chy trn mt phn ca LWP th LWP cng kho. trn vng,
lung cp ngi dng hin c gn ti LWP cng b kho. Nu mt qu trnh c
nhiu hn mt LWP th nhn c th nh thi mt LWP khc.
Th vin lung t ng thay i s lng LWPs trong nhm m bo nng
lc thc hin tt nht cho ng dng. Th d, nu tt c LWPs trong mt qu trnh b
kho bi nhng lung c th chy th th vin t to mt LWP khc c gn ti mt
lung ang ch. Do , mt chng trnh c ngn chn t mt chng trnh khc
bi s ngho nn ca nhng LWPs khng b kho. LWPs l nhng ti nguyn nhn
t duy tr nu chng khng c dng. Th vin lung ages LWPs v xo
chng khi chng khng c dng cho khong thi gian di, in hnh khong 5 pht.
Cc nh pht trin dng nhng cu trc d liu ci t lung trn Solaris 2:

Lung cp ngi dng cha mt lung ID; tp thanh ghi (gm mt b m
chng trnh v con tr ngn xp); ngn xp; v u tin (c dng bi
th vin cho mc ch nh thi). Khng c cu trc d liu no l ti
nguyn nhn; tt c chng tn ti trong khng gian ngi dng.
Mt LWP c mt tp thanh ghi cho lung cp nhn n ang chy cng nh
b nh v thng tin tnh ton. Mt LWP l mt cu trc d liu nhn v n
nm trong khng gian nhn
Mt lung nhn ch c mt cu trc d liu nhn v ngn xp. Cu trc d
liu gm bn sao cc thanh ghi nhn, con tr ti LWP m n c gn,
u tin v thng tin nh thi.

Mi qu trnh trong Solaris 2 gm nhiu thng tin c m t trong khi iu
khin qu trnh (Process Control Block-PCB ). Trong thc t, mt qu trnh Solaris 2
Bin Son: Th.s Nguyn Ph Trng - 09/2005 Trang

90
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

cha mt nh danh qu trnh (Process ID-PID); bn b nh; danh sch cc tp tin
ang m, u tin; v con tr ca cc lung nhn vi qu trnh (Hnh ).

Hnh 0-7-Qu trnh Solaris 2
IV.8 Lung Windows 2000
Windows 2000 ci t Win32 API. Win32 API l mt API ch yu cho h h
iu hnh Windows (Windows 95/98/NT v Windows 2000). Thc vy, nhng g
c cp trong phn phn ny p dng ti h h iu hnh ny
ng dng Windows chy nh mt qu trnh ring r ni mi qu trnh c th
cha mt hay nhiu lung. Windows 2000 dng nh x mt-mt ni m mi lung
cp ngi dng nh x ti lung nhn c lin kt ti.Tuy nhin, Windows cng
cung cp s h tr cho mt th vin c cu trc (fiber library) cung cp chc nng
ca m hnh nhiu-nhiu. Mi lung thuc v mt qu trnh c th truy xut mt
khng gian a ch o ca qu trnh.
Nhng thnh phn thng thng ca mt lung gm:

ID ca lung nh danh duy nht lung
Tp thanh ghi biu din trng thi ca b x l
Ngn xp ngi dng khi lung ang chy ch ngi dng. Tng t,
mi lung cng c mt ngn xp nhn c dng khi lung ang chy trong
ch nhn
Mt vng lu tr ring c dng bi nhiu th vin thi gian thc v th
vin lin kt ng (DLLs).
Tp thanh ghi, ngn xp v vng lu tr ring c xem nh ng cnh ca lung v
c c t kin trc ti phn cng m h iu hnh chy trn . Cu trc d liu
ch yu ca lung gm:
RTHREAD (executive thread block-khi lung thc thi).
KTHREAD (kernel thread-khi lung nhn)
TEB (thread environment block-khi mi trng lung)

Cc thnh phn ch yu ca RTHREAD gm mt con tr ch ti qu trnh no
lung thuc v v a ch ca th tc m lung bt u iu khin trong .
ETHREAD cng cha mt con tr ch ti KTHREAD tng ng.
Bin Son: Th.s Nguyn Ph Trng - 09/2005 Trang

91
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

KTHREAD gm thng tin nh thi v ng b ha cho lung. Ngoi ra,
KTHREAD cha ngn xp nhn (c dng khi lung ang chy trong ch nhn)
v con tr ch ti TEB.
ETHREAD v KTHREAD tn ti hon ton khng gian nhn; iu ny c
ngha ch nhn c th truy xut chng. TEB l cu trc d liu trong khng gian ngi
dng c truy xut khi lung ang chy ch ngi dng. Gia nhng trng
khc nhau, TEB cha ngn xp ngi dng v mt mng cho d liu c t lung (m
Windows gi l lu tr cc b lung)
IV.9 Lung Linux
Nhn Linux c gii thiu trong n bn 2.2. Linux cung cp mt li gi h
thng fork vi chc nng truyn thng l to bn sao mt qu trnh. Linux cng cung
cp li gi h thng clone m n tng t nh to mt lung. clone c hnh vi rt
ging nh fork, ngoi tr thay v to mt bn sao ca qu trnh gi, n to mt qu
trnh ring chia s khng gian a ch ca qu trnh gi. N chm dt vic chia s
khng gian a ch ca qu trnh cha m mt tc v c nhn bn i x ging rt
nhiu mt lung ring r.
Chia s khng gian a ch c cho php v vic biu din ca mt qu trnh
trong nhn Linux. Mt cu trc d liu nhn duy nht tn ti cho mi qu trnh trong
h thng. Mt cu trc d liu nhn duy nht tn ti cho mi qu trnh trong h thng.
Tuy nhin, tt hn lu tr d liu cho mi qu trnh trong cu trc d liu l n cha
cc con tr ch ti cc cu trc d liu khc ni d liu ny c c lu. Th d,
cu trc d liu trn qu trnh cha cc con tr ch ti cc cu trc d liu khc hin
din danh sch tp tin ang m, thng tin qun l tn hiu, v b nh o. Khi fork
c gi, mt qu trnh mi c to cng vi mt bn sao ca tt c cu trc d liu
ca qu trnh cha c lin kt ti. Khi li gi h thng clone c thc hin, mt
qu trnh mi ch ti cu trc d liu ca qu trnh cha, do cho php qu trnh con
chia s b nh v ti nguyn ca qu trnh cha. Mt tp hp c c truyn nh mt
tham s ti li gi h thng clone. Tp hp c ny c dng hin th bao nhiu
qu trnh cha c chia s vi qu trnh con. Nu khng c c no c t, khng c
chia s xy ra v clone hot ng ging nh fork. Nu tt c nm c c t, qu
trnh con chia s mi th vi qu trnh cha. S kt hp khc ca c cho php cc cp
chia s khc nhau gia hai mc cao nht ny.
iu th v l Linux khng phn bit gia qu trnh v lung. Tht vy, Linux
thng s dng thut ng tc v-hn l qu trnh hay lung-khi tham chiu ti dng
iu khin trong chng trnh. Ngoi qu trnh c nhn bn, Linux khng h tr a
lung, cu trc d liu ring hay th tc nhn. Tuy nhin, nhng ci t Pthreads l
sn dng cho a lung cp ngi dng.
IV.10 Lung Java
Nh chng ta thy, h tr cho lung c th c cung cp ti cp ngi dng
vi mt th vin nh Pthread. Hn na, hu ht h iu hnh cung cp s h tr cho
lung ti cp nhn. Java l mt trong s nh ngn ng cung cp s h tr ti cp ngn
ng cho vic to v qun l lung. Tuy nhin, v cc lung c qun l bi my o
Java, khng bi mt th vin cp ngi dng hay nhn, rt kh phn cp lung
Java nh cp ngi dng hay cp nhn. Trong phn ny chng ta trnh by cc
lung Java nh mt thay i i vi m hnh ngi dng nghim ngt hay m hnh
Bin Son: Th.s Nguyn Ph Trng - 09/2005 Trang

92
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

cp nhn. Phn sau chng ta s tho lun mt lung Java c th c nh x ti lung
nhn bn di nh th no.
Tt c chng trnh to t nht mt lung iu khin n. Thm ch mt chng
trnh Java cha ch mt phng thc main chy nh mt lung n trong my o
Java. Ngoi ra, Java cung cp cc lnh cho php ngi pht trin to v thao tc cc
lung iu khin b sung trong chng trnh.
IV.10.1 To lung
Mt cch to mt lung r rng l to mt lp mi c pht sinh t lp
Thread v vit phng thc run ca lp Thread. Tip cn ny c hin th trong
hnh sau, n bn Java ca chng trnh a lung xc nh tng cc s nguyn khng
m.
Mt i tng ca lp pht sinh s chy nh mt lung iu khin n trong my o
Java. Tuy nhin, to mt i tng c pht sinh t lp Thread khng to mt lung
mi, tri li phng thc start mi tht s to lung mi. Gi phng thc start cho
i tng mi thc hin hai th:
1) N cp pht b nh v khi to mt lung mi trong my o Java.
2) N gi phng thc run, thc hin lung thch hp c chy bi my o
Java. (Ch , khng th gi phng thc run trc tip, gi phng thc start
s gi phng thc run)

Class Summation extends Thread
{
public Summation (int n){
upper = n;
}
public void run(){
int sum = 0;

if (upper>0){
for(int i = 1; i<= upper; i++){
sum+=i;
}
System.out.println(The sum of +upper+ is + sum);
}
private int upper;
}

public class ThreadTester
{
public static void main(String args[]){
if(args.length>0){
if(Integer.parseInt(args[0])<0)
System.err.println(args[0] + must be >= 0.);
else{
Summation thrd = new Summation
(Integer.parseInt(args[0]));
Thrd.start();
}
Bin Son: Th.s Nguyn Ph Trng - 09/2005 Trang

93
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

}
Else
System.out.println(Usage: summation < integer value);
}
}
Hnh 0-8- Chng trnh Java tnh tng s nguyn khng m
Khi chng trnh tnh tng thc thi, hai lung c to bi JVM. Lung u
tin l lung c ni kt vi ng dng-lung ny bt u thc thi ti phng thc
main. Lung th hai l lung Summation c to r rng vi phng thc start.
Lung Summation bt u thc thi trong phng thc run ca n. Lung kt thc khi
n thot khi phng thc run ca n.
IV.10.2 JVM v h iu hnh ch
Ci t in hnh ca JVM trn nh ca h iu hnh ch (host operating
system). Thit lp ny cho php JVM che giu chi tit ci t ca h iu hnh bn
di v cung cp mi trng khng i, tru tng cho php chng trnh Java hot
ng trn bt k phn cng no h tr JVM. c t cho JVM khng hin th cc
lung Java c nh x ti h iu hnh bn di nh th no thay th vic qun
i vic quyt nh ci t c th ca JVM. Windows 95/98/NT v Windows 2000
dng m hnh mt-mt; do , mi lung Java cho mt JVM chy trn cc h iu
hnh ny nh x ti mt lung nhn. Solaris 2 khi u ci t JVM dng m hnh
nhiu-mt. Tuy nhin, n bn 1.1 ca JVM vi Solaris 2.6 c ci t dng m hnh
nhiu-nhiu.
IV.11 Tm tt
Lung l mt dng iu khin trong phm vi mt qu trnh. Qu trnh a lung
gm nhiu dng iu khin khc nhau trong cng khng gian a ch. Nhng li im
ca a lung gm p ng nhanh i vi ngi dng, chia s ti nguyn trong qu
trnh, tnh kinh t, v kh nng thun li trong kin trc a x l.
Lung cp ngi dng l cc lung c nhn thy bi ngi lp trnh v khng
c bit bi nhn. Th vin lung trong khng gian ngi dng in hnh qun l
lung cp ngi dng. Nhn ca h iu hnh h tr v qun l cc lung cp nhn.
Thng thng, lung cp ngi dng nhanh hn lung cp nhn trong vic to v
qun l. C ba loi m hnh khc nhau lin quan n lung cp ngi dng v lung
cp nhn. M hnh nhiu-mt nh x nhiu lung ngi dng ti mt lung nhn. M
hnh mt-mt nh x mi lung ngi dng ti mt lung nhn tng ng. M hnh
nhiu-nhiu a hp nhiu lung ngi dng ti mt s lng nh hn hay bng lung
nhn.
Nhng chng trnh a lung gii thiu nhiu th thch cho vic lp trnh, gm
ng ngha ca li gi h thng fork v exec. Nhng vn khc gm hu b lung,
qun l tn hiu, v d liu c t lung. Nhiu h iu hnh hin i cung cp nhn
h tr lung nh Windows NT, Windows 2000, Solaris 2 v Linux. Pthread API cung
cp tp hp cc hm to v qun l lung ti cp ngi dng. Java cung cp mt
API tng t cho vic h tr lung. Tuy nhin, v cc lung Java c qun l bi
JVM v khng phi th vin lung cp ngi dng hay nhn, chng khng ri vo
loi lung ngi dng hay nhn.

Bin Son: Th.s Nguyn Ph Trng - 09/2005 Trang

94
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

NG B HO QU TRNH
I Mc tiu
Sau khi hc xong chng ny, ngi hc nm c nhng kin thc sau:
Hiu vn vng tng trc
Hiu c ch hot ng hiu bo Semaphores ng b ha qu trnh
Hiu c ch hot ng ca Monitors ng b ha qu trnh
Vn dng cc gii php gii quyt cc bi ton ng b ha c bn
II Gii thiu
Mt qu trnh hp tc l mt qu trnh c th gy nh hng hay b nh hng ti
qu trnh khc ang thc thi trong h thng. Cc qu trnh hp tc c th chia s trc
tip khng gian a ch lun l (m v d liu), hay c php chia s d liu thng
qua cc tp tin. Trng hp u t c thng qua vic s dng cc qu trnh c
trng lng nh hay lung. Truy xut ng hnh d liu c chia s c th dn ti
vic khng ng nht d liu. Trong chng ny chng ta s tho lun cc c ch
m bo vic thc thi c th t ca cc qu trnh hp tc chia s khng gian a ch
tnh ng n ca d liu lun c duy tr.
III Tng quan
Trong chng trc, chng ta pht trin mt m hnh h thng cha s lng
qu trnh hp tc tun t, tt c chng chy bt ng b v c th chia s d liu.
Chng ta hin th m hnh ny vi c ch vng m c kch thc gii hn, c i
din cho h iu hnh.
Chng ta xt gii php b nh c chia s cho bi ton vng m c kch
thc gii hn. Gii php ny cho php c nhiu nht BUFFER_SIZE 1 sn phm
trong vng m ti cng thi im. Gi s rng chng ta mun hiu chnh gii thut
gii quyt s thiu st ny. Mt kh nng l thm mt bin m s nguyn
counter, c khi to bng 0. counter c tng mi khi chng ta thm mt sn
phm ti vng m v b gim mi khi chng ta ly mt sn phm ra khi vng m.
M cho qu trnh ngi sn xut c th c hiu chnh nh sau:

while (1){/*to sn phm trong nextProduced*/
while (counter==BUFFER_SIZE); /*khng lm g c*/
buffer[in] = nextProduced;
in = ( in + 1 ) % BUFFER_SIZE;
counter++;
}

M cho qu trnh ngi tiu dng c th c hiu chnh nh sau:

while (1){
while (counter == 0) ; /*khng lm g c*/
nextConsumed = buffer[out];
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang

82
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

out = ( out + 1 ) % BUFFER_SIZE;
counter--;
/*tiu th sn phm trong nextConsumed*/
}

Mc d c hai th tc ngi sn xut v ngi tiu dng thc thi ng khi tch
bit nhau nhng chng khng thc hin ng chc nng khi thc thi ng hnh. Nh
minh ho di y, gi s rng gi tr ca bin counter hin ti l 5 v th tc ngi
sn xut v ngi tiu dng thc thi ng hnh cu lnh counter++ v counter--.
Theo sau vic thc thi hai cu lnh ny, gi tr ca bin counter c th l 4, 5 hay 6!
Kt qu ch ng khi bin counter==5, c to ra ng nu qu trnh ngi sn xut
v ngi tiu dng thc thi ring bit.
Chng ta c th minh ho gi tr ca counter c th khng ng nh sau. Ch ,
cu lnh counter++ c th c ci t bng ngn ng my (trn mt my in
hnh) nh sau:

register
1
= counter
register
1
= register
1
+ 1
counter = register
1

y register
1
l mt thanh ghi CPU cc b. Tng t, cu lnh counter--
c ci t nh sau:
register
2
= counter
register
2
= register
2
- 1
counter = register
2

y register
2
l thanh ghi CPU cc b. D l register
1
v register
2
c th dng
cng thanh ghi vt l, nhng ni dung ca thanh ghi s c lu li v ly li bi b
qun l ngt.
Thc thi ng hnh ca counter++ v counter-- l tng t nh thc thi
tun t y cc cu lnh cp thp hn c hin din trc b ph lp trong th t
bt k (nhng th t bn trong mi cu lnh cp cao c lu gi). Mt s ph lp l:

T
0
: producer thc thi register
1
= counter {register
1
= 5}
T
1
: producer thc thi register
1
= register
1
+ 1 {register
1
= 6}
T
2
: consumer thc thi register
2
= counter {register
2
= 5}
T
3
: consumer thc thi register
2
= register
2
1 {register
2
= 4}
T
4
: producer thc thi counter = register
1
{counter = 6}
T
5
: consumer thc thi counter = register
2
{counter = 4}

Ch rng, chng ta xem xt tnh trng khng ng counter==4 theo c 4
vng m y, nhng thc t khi c 5 vng m y. Nu chng i ngc li th
t ca cu lnh T
4
v T
5
, chng ta s c trng thi khng ng counter ==6.
Chng ta i n trng thi khng ng ny v chng ta cho php c hai qu trnh
thao tc ng thi trn bin counter. Trng hp tng t, y nhiu qu trnh truy
xut v thao tc cng d liu ng hnh v kt qu ca vic thc thi ph thuc vo
th t xc nh trong vic truy xut xy ra, c gi l iu kin cnh tranh (race
condition). ngn chn iu kin cnh tranh trn, chng ta cn m bo rng ch
mt qu trnh ti mt thi im c th c thao tc bin counter. thc hin vic
m bo nh th, chng ta yu cu mt vi hnh thc ng b ho qu trnh. Nhng
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang

83
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

trng hp nh th xy ra thng xuyn trong cc h iu hnh khi cc phn khc
nhau ca h thng thao tc cc ti nguyn v chng ta mun cc thay i khng gy
tr ngi mt s thay i khc. Phn chnh ca chng ny l tp trung vo vn
ng b ho v cng tc qu trnh.
IV Vn vng tng trc
Xt mt h thng gm n qu trnh (P
0
, P
1
, ,P
n-1
). Mi qu trnh c mt phn
on m, c gi l vng tng trc (critical section), trong qu trnh ny c th
thay i nhng bin dng chung, cp nht mt bng, vit n tp tin,.. c im quan
trng ca h thng l ch, khi mt qu trnh ang thc thi trong vng tng trc,
khng c qu trnh no khc c php thc thi trong vng tng trc ca n. Do ,
vic thc thi ca cc vng tng trc bi cc qu trnh l s loi tr h tng. Vn
vng tng trc l thit k mt giao thc m cc qu trnh c th dng cng tc.
Mi qu trnh phi yu cu quyn i vo vng tng trc ca n. Vng m thc
hin yu cu ny l phn i vo (entry section). Vng tng trc c th c theo
sau bi mt phn kt thc (exit section). M cn li l phn cn li (remainder
section).

do {

critical section


remainder section
}
while (1);
entry section
exit section
Hnh 0-1 Cu trc chung ca mt qu trnh in hnh Pi


Mt gii php i vi vn vng tng trc phi tho mn ba yu cu sau:

Loi tr h tng (Mutual Exclusion): Nu qu trnh P
i
ang thc thi
trong vng tng trc ca n th khng qu trnh no khc ang c thc
thi trong vng tng trc .
Tin trnh (Progress): nu khng c qu trnh no ang thc thi trong
vng tng trc v c vi qu trnh mun vo vng tng trc th ch
nhng qu trnh khng ang thc thi phn cn li mi c th tham gia vo
vic quyt nh qu trnh no s i vo vng tng trc tip theo v chn
la ny khng th tr hon v hn nh.
Ch i c gii hn (bounded wait): gii hn s ln cc qu trnh khc
c php i vo min tng trc sau khi mt qu trnh thc hin yu cu
i vo min tng trc ca n v trc khi yu cu c gn.
Chng ta gi s rng mi qu trnh ang thc thi vi tc khc 0. Tuy nhin,
chng ta c th thc hin rng khng c gi thuyt no c quan tm v tc tng
i ca n qu trnh.
Trong phn tip theo chng ta nghin cu nm c cc gii php tho ba
yu cu ny. Nhng gii php ny khng quan tm n cc ch th phn cng hay s
lng b x l m phn cng h tr. Tuy nhin chng ta gi s rng nhng ch th
ngn ng my c bn (ch th c bn nh load, store v test) c thc hin mang
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang

84
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

tnh nguyn t (atomically). Ngha l, nu hai ch th nh th c thc thi ng hnh
th kt qu tng t nh thc thi tun t trong th t khng xc nh. Do , nu ch
th load v store c thc thi ng hnh th load s nhn gi tr c hay mi nh
khng c s kt hp va c va mi.
Khi trnh by mt gii thut, chng ta nh ngha ch nhng bin c dng
cho mc ch ng b v m t ch mt qu trnh in hnh P
i
m cu trc ca n
c hin th trong hnh V.1. Phn i vo v kt thc c bao trong hnh ch nht
nhn mnh cc on m quan trng.

do {

critical section


remainder section
}
while (1);
while (turn!=i) ;
turn = j;
Hnh 0-2-Cu trc ca qu trnh P
i
trong gii thut 1

V Gii php
C nhiu gii php thc hin vic loi tr h tng. Cc gii php ny, tu
thuc vo cch tip cn trong x l ca qu trnh b kho, c phn bit thnh hai
lp: ch i bn (busy waiting) v nghn v nh thc (sleep and wakeup)
V.1 Gii php ch i bn
V.1.1 Gii php hai qu trnh (two-Process Solution)
Trong phn ny, chng ta gii hn vic quan tm ti nhng gii thut c th p
dng ch hai qu trnh cng mt lc. Nhng qu trnh ny c nh s P
0
v P
1
.
thun li, khi trnh by P
i
, chng ta dng P
j
ch qu trnh cn li, ngha l j = 1 i
.V.1.1.1 Gii thut 1
Tip cn u tin ca chng ta l hai qu trnh chia s mt bin s nguyn
chung turn c khi to bng 0 (hay 1). Nu turn == 0 th qu trnh P
i
c php
thc thi trong vng tng trc ca n. Cu trc ca qu trnh P
i
c hin th trong
Hnh V.-2.
Gii php ny m bo rng ch mt qu trnh ti mt thi im c th trong
vng tng trc ca n. Tuy nhin, n khng tho mn yu cu tin trnh v n yu
cu s thay i nghim khc ca cc qu trnh trong vic thc thi ca vng tng
trc. Th d, nu turn == 0 v P
1
sn sng i vo vng tng trc ca n th P
1
khng
th i vo vng tng trc thm ch khi P
0
ang trong phn cn li ca n.
.V.1.1.2 Gii thut 2
Vn vi gii thut 1 l n khng gi li thng tin v trng thi ca mi
qu trnh; n nh ch qu trnh no c php i vo min tng trc. gii quyt
vn ny, chng ta c th thay th bin turn vi mng sau:
Boolean flag[2];
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang

85
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

Cc phn t ca mng c khi to ti flase. Nu flag[i] l true, gi tr ny
hin th rng P
i
sn sng i vo vng tng trc. Cu trc ca qu trnh P
i
c hin
th trong hnh V.-3 di y:

do{


critical section



remainder section
} while(1);
flag[i] = true;
while (flag[j]);
flag[i] = false;
Hnh 0-3 Cu trc ca qu trnh P
i
trong gii thut 2
Trong gii thut ny, qu trnh P
i
trc tin thit lp flag[i] ti true, hin th
rng n sn sng i vo min tng trc. Sau , P
i
kim tra rng qu trnh qu trnh
P
j
cng khng sn sng i vo min tng trc ca n. Nu P
j
sn sng th P
i
s ch
cho ti khi P
j
hin th rng n khng cn cn trong vng tng trc na (ngha l
cho ti khi flag[j] l false). Ti thi im ny, P
i
s i vo min tng trc. Thot ra
khi min tng trc, P
i
s t flag[i] l false, cho php qu trnh khc (nu n ang
ch) i vo min tng trc ca n.
Trong gii php ny, yu cu loi tr h tng s c tho mn. Tuy nhin,
yu cu tin trnh khng c tho mn. minh ho vn ny, chng ta xem xt
th t thc thi sau:
T
0
: P
0
thit lp flag[0] = true;
T
1
: P
1
thit lp flag[1] = true;

By gi P
0
v P
1
c lp mi mi trong cu lnh while tng ng ca chng.
Gii thut ny ph thuc ch yu vo thi gian chnh xc ca hai qu trnh. Th
t ny c pht sinh trong mi trng ni c nhiu b x l thc thi ng hnh hay
ni mt ngt (chng hn nh mt ngt nh thi) xy ra lp tc sau khi bc T
0
c
thc thi v CPU c chuyn t mt qu trnh ny ti mt qu trnh khc.
Ch rng chuyn i th t ca cc ch th lnh thit lp flag[i] v kim tra
gi tr ca flag[j] s khng gii quyt vn ca chng ta. Hn na chng ta s c
mt trng hp l hai qu trnh trong vng tng trc cng mt lc, vi phm yu
cu loi tr h tng.
.V.1.1.3 Gii thut 3
Gii thut 3 cn gi l gii php Peterson. Bng cch kt hp hai tng quan
trng trong gii thut 1 v 2, chng ta t c mt gii php ng ti vi vn
vng tng trc, hai yu cu c tho. Cc qu trnh chia s hai bin:
Boolean flag[2]
Int turn;
Khi to flag[0] = flag[1] = false v gi tr ca turn l khng xc nh (hoc l
0 hay 1). Cu trc ca qu trnh P
i
c hin th trong hnh sau:




Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang

86
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0


do{
flag[i] = true;
turn = j;
while (flag[j] &&turn ==j);
critical section
flag[i] = false;
remainder section
} while (1);
Hnh 0-4 Cu trc ca qu trnh P
i
trong gii thut 3
i vo min tng trc, qu trnh P
i
trc tin t flag[i] l true sau t
turn ti gi tr j, do xc nh rng nu qu trnh khc mun i vo min tng trc
n. Nu c hai qu trnh i vo min tng trc cng mt lc turn s t c hai i v j
ti xp x cng mt thi im. Ch mt trong hai php gn ny l kt qu cui cng.
Gi tr cui cng ca turn quyt nh qu trnh no trong hai qu trnh c cho php
i vo min tng trc trc.
By gi chng ta chng minh rng gii php ny l ng. Chng ta cn hin th
rng:
1) Loi tr h tng c bo ton
2) Yu cu tin trnh c tho
3) Yu cu ch i c gii hn cng c tho

Chng minh thuc tnh 1, chng ta ch rng mi P
i
i vo min tng trc
ca n ch nu flag[j] ==false hay turn ==i. Cng ch rng, nu c hai qu trnh c
th ang thc thi trong vng tng trc ca chng ti cng thi im th flag[0] ==
flag[1] ==true. Hai nhn xt ny ng rng P
0
v P
1
khng th thc thi thnh cng
trong vng lp while ca chng ti cng mt thi im v gi tr turn c th l 0 hay 1.
Do , mt trong cc qu trnh-P
j
phi c thc thi thnh cng cu lnh while,
ngc li P
i
phi thc thi t nht cu lnh b sung (turn==j). Tuy nhin, v ti thi
im , flag[j] ==true v turn ==j, v iu kin ny s khng i vi iu kin l P
j

trong vng min tng trc ca n, kt qu sau vic loi tr h tng c bo v

do {
flag[i] = true;
turn = j;
while (flag[j] && turn ==j);

critical section
flag[i] = false;
Remainder section
}while (1);
Hnh 0-5-Cu trc ca qu trnh Pi trong gii thut 3

chng minh thuc tnh 2 v 3, chng ta ch rng mt qu trnh P
i
c th
c ngn chn t vic i vo min tng truc ch nu n b kt trong vng lp while
vi iu kin flag[j] == true v turn == j. Nu P
j
khng sn sng i vo min tng
trc th flag[j] == false v P
i
c th i vo min tng trc ca n. Nu P
j
t flag[j] l
true v n cng ang thc thi trong cu lnh while ca n th turn == i hay turn == j.
Nu turn == i th P
i
s i vo min tng trc. Nu turn ==j th P
j
s i vo min
tng trc. Tuy nhin, mt khi P
j
trong vng tng trc ca n th n s t li
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang

87
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

flag[j] ti false, cho php P
i
i vo min tng trc ca n. Nu P
j
t li flag[j] ti
true, n cng phi t turn ti i. Do , v P
i
khng thay i gi tr ca bin turn trong
khi thc thi cu lnh while, nn P
i
s i vo min tng trc (tin trnh) sau khi nhiu
nht ch P
j
i vo (ch c gii hn).
V.1.2 Gii php nhiu qu trnh
Gii thut 3 gii quyt vn min tng trc cho hai qu trnh. By gi
chng ta pht trin mt gii thut gii quyt vn min tng trc cho n qu
trnh. Gii thut ny c gi l gii thut Bakery v n da trn c s ca gii thut
nh thi thng c dng trong ca hiu bnh m, ca hng kem,..ni m th t rt
hn n. Gii thut ny c pht trin cho mi trng phn tn, nhng ti thi im
ny chng ta tp trung ch nhng kha cnh ca gii thut lin quan ti mi trng tp
trung.
i vo mt ca hng, mi khch hng nhn mt s. Khch hng vi s thp
nht c phc v tip theo. Tuy nhin, gii thut Bakery khng th m bo hai qu
trnh (khch hng) khng nhn cng s. Trong trng hp rng buc, mt qu trnh
vi tn thp c phc v trc. Ngha l, nu P
i
v P
j
nhn cng mt s v nu (i <
j) th P
i
c phc v trc. V tn qu trnh l duy nht v c xp th t nn gii
thut l hon ton mang tnh may ri (deterministic).
Cu trc d liu chung l
boolean choosing[n];
int number[n];
u tin, cc cu trc d liu ny c khi to ti false v 0 tng ng. tin
dng, chng ta nh ngha cc k hiu sau:
(a, b) < (c, d) nu a< c hay nu a==c v b< d
max(a
0
,,a
n-1
) l s k a
i
vi i = 0,,n-1
Cu trc ca qu trnh P
i
c dng trong gii thut Bakery, c hin th
trong hnh di y.

do {
choosing[i] = true;
number[i] = max(number[0], number[i],,number[n-1]) + 1;
choosing[i] = false;
for (j=0; j < n; j++){
while (choosing[j]);
while ((number[j]!=0)&&((number[ j ], j ) <(number[i], i)));
}

Critical section
Number[i] = 0;
} While (1);
Hnh 0-6 Cu trc ca gii thut P
i
trong gii thut Bakery

Kt qu c cho ny th hin rng loi tr h tng c tun theo. Tht vy,
xt P
i
trong vng tng trc ca n v P
k
c gng i vo vng tng trc P
k
. Khi qu
trnh P
k
thc thi cu lnh while th hai cho j==i, nhn thy rng

number[ i ] != 0
(number[ i ], i ) < (number[k], k).
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang

88
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

Do , n tip tc vng lp trong cu lnh while cho n khi P
i
ri khi vng
tng trc P
i
.
Gii thut trn m bo rng yu cu v tin trnh, ch i c gii hn v m
bo s cng bng, v cc qu trnh i vo min tng trc da trn c s ti trc
c phc v trc.
V.1.3 Phn cng ng b ho
Nh cc kha cnh khc ca phn mm, cc c im phn cng c th lm
cc tc v lp trnh d hn v ci tin tnh hiu qu ca h thng. Trong phn ny,
chng ta trnh by mt s ch th phn cng n gin sn dng trn nhiu h thng v
trnh by cch chng c dng hiu qu trong vic gii quyt vn min tng
trc.

boolean TestAndSet( boolean &target){
boolean rv = target;
target = true;
return rv;
}
Hnh 0-7 nh ngha ca ch th TestAndSet

Vn min tng trc c th c gii quyt n gin trong mi trng ch
c mt b x l nu chng ta cm cc ngt xy ra khi mt bin chia s ang c thay
i. Trong cch ny, chng ta m bo rng chui ch th hin hnh c th c cho
php thc thi trong th t khng trng dng. Khng c ch th no khc c th chy v
th khng c bt c s thay i no c th c thc hin trn cc bin c chia s.
Tuy nhin, gii php ny l khng kh thi trong mt mi trng c nhiu b
x l. V hiu ho cc ngt trn a b x l c th mt nhiu thi gian khi mt thng
ip mun truyn qua tt c b x l. Vic truyn thng ip ny b tr hon khi i
vo min tng trc v tnh hiu qu ca h thng b gim.
Do nhiu my cung cp cc ch th phn cng cho php chng ta kim tra
hay thay i ni dung ca mt t (word) hay thay i ni dung ca hai t tun theo
tnh nguyn t (atomically)-nh l mt n v khng th ngt. Chng ta c th s
dng cc ch th c bit ny gii quyt vn min tng trc trong mt cch
tng i n gin.
Ch th TestAndSet c th c nh ngha nh trong hnh V.-7. c im
quan trng ca ch th ny l vic thc thi c tnh nguyn t. Do , nu hai ch th
TestAndSet c thc thi cng mt lc (mi ch th trn mt CPU khc nhau), th
chng s c thc thi tun t trong th t bt k.

do{
while (TestAndSet(lock));
Critical section
lock:= false
remainder section
} while (1);

Hnh 0-8: Ci t loi tr h tng vi TestAndSet
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang

89
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

Nu mt my h tr ch th TestAndSet th chng ta c th loi tr h tng
bng cch khai bo mt bin kho kiu lun l v c khi to ti false. Cu trc
ca qu trnh P
i
c hin th trong hnh V.-9 trn.
Ch th Swap c nh nh hnh V.-9 di y, thao tc trn ni dung ca hai
t; nh ch th TestAndSet, n c thc thi theo tnh nguyn t.
void Swap(boolean &a, boolean &b){
boolean temp = a;
a = b;
b = temp;
}
Hnh 0-9: nh ngha ch th Swap

Nu mt my h tr ch th Swap, th vic loi tr h tng c th c cung
cp nh sau. Mt bin lun l ton cc lock c khai bo v c khi to ti false.
Ngoi ra, mi qu trnh cng c mt bin lun l cc b key. Cu trc ca qu trnh P
i

c hin th trong hnh V.-10 di y.

do{
key = true;
while (key == true) Swap(lock, key);
Critical section
lock = false;
Remainder section
} while(1);
Hnh 0-10: Ci t loi tr h tng vi ch th Swap

Cc gii thut ny khng tho mn yu cu ch i c gii hn. Chng ta hin
th gii thut s dng ch th TestAndSet trong hnh V.-11 di y. Gii thut ny
tho mn tt c cc yu cu min tng trc.

do{
Waiting[i] = true;
key = true;
while (waiting[i] && key)
key = TestAndSet(lock);
waiting[i] = false;
Critical section
j = (i + 1) % n;
while ((j != i ) && !waiting[j])
j = (j + 1 ) % n;
if (j == i)
lock = false;
else
waiting[j] = false;
Remainder section
} while(1);
Hnh 0-11 Loi tr h tng ch i c gii hn vi TestAndSet
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang

90
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

Cu trc d liu thng thng l:
boolean waiting[n];
boolean lock;

Cu trc d liu ny c khi to ti false. chng minh rng loi tr h
tng c tho, chng ta ch rng qu trnh P
i
c th a vo min tng trc ch
nu hoc waiting[i] ==false hay key == false. Gi tr ca key c th tr thnh false ch
nu TestAndSet c thc thi. i vi qu trnh u tin, thc thi TestAndSet s
tm key == false; tt c qu trnh khc phi ch. Bin waiting[i] c th tr thnh false
ch nu qu trnh khc ri khi min tng trc ca n; ch mt waiting[i] c t
false, duy tr yu cu loi tr h tng.
chng minh yu cu tin trnh c tho, chng ta ch rng cc i s
c hin din cho vic loi tr h tng cng p dng c y, v th mt qu
trnh thot khi min tng trc hoc t lock bng false hay t waiting[j] bng
false. C hai trng hp u cho php mt qu trnh ang ch i vo min tng
trc c x l.
chng minh yu cu ch i c gii hn c tho, chng ta ch rng
khi mt qu trnh ri min tng trc ca n, n duyt qua mng waiting trong th t
tun hon (i + 1, i + 2, , n 1, 0, , i - 1). N nh r qu trnh u tin trong th
t ny m th t trong phn i vo (waiting[j] == true) khi qu trnh tip theo i
vo min tng trc. Bt c qu trnh no ang ch i vo min tng trc s thc
hin n 1 ln. Tuy nhin, i vi ngi thit k phn cng, ci t cc ch th nguyn
t TestAndSet trn b a x l khng l tc v th nghim.
Nhng gii php trn u phi thc hin mt vng lp kim tra liu n c
c php vo min tng trc hay khng. Nu iu kin cha tho, qu trnh phi
ch tip tc trong vng lp kim tra ny. Cc gii php buc qu trnh phi lin tc
kim tra iu kin pht hin thi im thch hp c vo min tng trc nh th
c gi l cc gii php ch i bn busy waiting. Lu , vic kim tra nh th
tiu th rt nhiu thi gian s dng CPU, do vy qu trnh ang ch vn chim dng
CPU. Xu hng gii quyt vn ng b ho l nn trnh cc gii php ch i bn.
V.2 Cc gii php SLEEP and WAKEUP
loi b cc bt tin ca ca gii php ch i bn, chng ta c th tip cn
theo hng cho mt qu trnh cha iu kin vo min tng trc chuyn sang
trng thi nghn, t b quyn s dng CPU. thc hin iu ny, cn phi s dng
cc th tc do h iu hnh cung cp thay i trng thi qu trnh. Hai th tc c
bn SLEEP v WAKEUP thng c s dng cho mc ch ny.
SLEEP l mt li gi h thng c tc dng lm nghn (blocked) hot ng
ca qu trnh gi n v ch n khi c mt tin trnh khc nh thc. Li gi h
thng WAKEUP nhn mt tham s duy nht: qu trnh s c kch hot tr li (t
v trng thi sn sng).
tng s dng SLEEP v WAKEUP nh sau: khi mt qu trnh cha
iu kin vo min tng trc, n gi SLEEP t kho n khi c mt qu trnh
khc gi WAKEUP gii phng n. Mt qu trnh gi WAKEUP khi ra khi min
tng trc nh thc mt qu trnh ang ch, to c hi cho qu trnh ny vo
min tng trc.

int busy; // 1 nu min tng trc ang b chim
int blocked; // m s lng qu trnh ang b kho

Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang

91
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

do{
if (busy) {
blocked = blocked + 1;
sleep();
}
else busy = 1;
}while (1);

Critical section
busy = 0;
if (blocked){
wakeup(process);

blocked = blocked -1;
}
Remainder section
Hnh 0-12 Cu trc chng trnh trong gii php SLEEP and
WAKEUP



Khi s dng SLEEP v WAKEUP cn ht sc cn thn, nu khng mun xy
ra tnh trng mu thun truy xut trong mt vi tnh hung nh sau: gi s qu trnh A
vo min tng trc, v trc khi n ri min tng trc th qu trnh B c kch
hot. Qu trnh B th vo min tng trc nhng n nhn thy A ang trong , do
vy B tng gi tr bin blocked ln 1 v chun b gi SLEEP t nghn. Tuy nhin,
trc khi B c th thc hin SLEEP, qu trnh A c kch hot tr li v ra khi
min tng trc. Khi ra khi min tng trc, qu trnh A nhn thy c mt qu trnh
ang ch (blocked=1) nn gi WAKEUP v gim gi tr blocked xung 1. Khi tn
hiu WAKEUP s lc mt do qu trnh B cha tht s ng nhn tn hiu nh
thc! Khi qu trnh B c tip tc x l, n mi gi SLEEP v t nghn vnh vin!
Vn ghi nhn c l tnh trng li ny xy ra do vic kim tra trng thi
min tng trc v vic gi SLEEP hay WAKEUP l nhng hnh ng tch bit, c
th b ngt na chng trong qu trnh x l, do c khi tn hiu WAKEUP gi n
mt qu trnh cha b nghn s lc mt. trnh nhng tnh hung tng t, h iu
hnh cung cp nhng c ch ng b ho da trn tng ca chin lc SLEEP
and WAKEUP nhng cha c xy dng bao gm c phng tin kim tra iu
kin vo min tng trc gip s dng an ton.
V.2.1 Semaphore
Tip cn Semaphore c. Dijkstra xut vo nm 1965. Mt semaphore S
l mt bin s nguyn (integer) c truy xut ch thng qua hai thao tc nguyn t:
wait v signal. Cc thao tc ny c t tn P (cho wait - ch kim tra) v V (cho
signal- bo hiu tng). nh ngha c bn ca wait trong m gi l:
wait(S){
while (S0)
;//no-op
S--;
}
nh ngha c bn ca signal trong m gi l
signal(S){
S++;
}
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang

92
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

Nhng sa i i vi gi tr integer ca semaphore trong cc thao tc wait v
signal phi c thc thi khng b phn chia. Ngha l khi mt qu trnh sa i gi
tr semaphore, khng c qu trnh no cng mt lc c th sa i cng bin
semaphore . Ngoi ra, trong trng hp ca bin wait(S), kim tra gi tr integer
ca S (S 0) v sa i c th ca n (S--) cng phi c thc thi m khng b ngt.
.V.2.1.1 Cch dng
Chng ta c th s dng semaphores gii quyt vn min tng trc vi
n qu trnh. N qu trnh chia s mt bin semaphore, mutex (vit tt t mutual
exclusion) c khi to 1. Mi qu trnh P
i
c t chc nh c hin th trong
hnh di y.

do{
wait(mutex)
critical section
Signal(mutex)
remainder section
}while(1);
Hnh 0-13 Ci t loi tr h tng vi semaphores

Chng ta cng s dng semaphores gii quyt cc vn ng b khc
nhau. Th d, xem xt hai qu trnh ang thc thi ng hnh: P
1
vi cu lnh S
1
v
P
2
vi cu lnh S
2
. Gi s chng ta yu cu rng S
2
c thc thi ch sau khi S
1
hon
thnh. Chng ta c th hon thnh c ch ny mt cch d dng bng cch P
1
v P
2

chia s mt semaphore chung synch, c khi to 0 v bng cch chn cc cu lnh:
S
1
;
signal(sync);
vo qu trnh P
1
v cc cu lnh:
wait(synch);
S
2
;
vo trong qu trnh P
2
. V synch c khi to 0. P
2
s thc thi S
2
ch sau khi P
1
np
signal(synch) m sau l S
1
;
.V.2.1.2 Ci t
Nhc im chnh ca cc gii php loi tr h tng trong phn V.-5.1 v
ca semaphore c cho y l tt c chng u i hi s ch i bn. gii
quyt yu cu cho vic ch i bn, chng ta c th hiu chnh nh ngha ca cc
thao tc wait v signal ca semaphore. Khi mt qu trnh thc thi thao tc wait v
nhn thy rng nu gi tr ca semaphore khng dng, n phi ch. Tuy nhin, thay
v ch i bn, qu trnh c th nghn chnh n. Thao tc nghn t qu trnh vo mt
hng i gn lin vi semaphore v trng thi qu trnh c chuyn ti trng thi
ch. Sau , iu khin c chuyn ti b nh thi biu v b nh thi biu chn
mt qu trnh khc thc thi.
Mt qu trnh b nghn ch trn bin semaphore nn c khi ng li khi
qu trnh khc thc thi thao tc signal. Qu trnh c khi ng li bi thao tc
wakeup v chuyn qu trnh t trng thi ch sang trng thi sn sng. Sau , qu
trnh ny c t vo hng i sn sng. (CPU c th hay khng th c chuyn t
qu trnh ang chy ti qu trnh sn sng mi nht ph thuc vo gii thut nh thi
biu CPU).
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang

93
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

ci t semaphore di nh ngha ny, chng ta nh ngha mt
semaphore nh mt cu trc c vit bng C nh sau:
typedef struct{
int value;
struct process *L;
} semaphore;
Mi semaphore c mt s integer value v mt danh sch cc qu trnh L. Khi
mt qu trnh phi ch trn mt semaphore, n c thm vo danh sch cc qu trnh
L. Mt thao tc signal xo mt qu trnh ra khi danh sch cc qu trnh ang ch v
nh thc qu trnh .
Thao tc semaphore wait by gi c nh ngha nh sau:
void wait(semaphore S){
S.value--;
If (S.value < 0){
Thm qu trnh ny ti danh sch cc qu trnh S.L;
block();
}
}
Thao tc semaphore signal by gi c th c nh ngha nh sau:
void signal(semaphore S){
S.value++;
if(S.value <= 0){
xo mt qu trnh ra khi hng i S.L;
wakeup(P);
}
}
Thao tc block() tm dng qu trnh gi thao tc . Thao tc wakeup(P) tip
tc thc thi qu trnh b nghn P. Hai thao tc ny c cung cp bi h iu hnh
nh nhng li gi h thng c bn.
Ch rng, mc d di s nh ngha kinh in ca semaphores vi s ch
i bn l gi tr semaphore khng bao gi m. Ci t ny c th c gi tr
semaphore m. Nu gi tr semaphore m th tnh cht trng yu ca n l s lng
qu trnh ch trn semaphore . S tht ny l kt qu ca vic chuyn th t ca
vic gim v kim tra trong vic ci t thao tc wait. Danh sch cc qu trnh ang
ch c th c ci t d dng bi mt trng lin kt trong mi khi iu khin qu
trnh (PCB). Mi cch thm v xo cc qu trnh t danh sch, m bo vic ch i
c gii hn s s dng hng i FIFO, semaphore cha hai con tr u (head) v
ui (tail) ch ti hng i. Tuy nhin, danh sch c th dng bt c chin lc hng
i no. S dng ng semaphores khng ph thuc vo chin lc hng i cho
danh sch semaphore.
Kha cnh quyt nh ca semaphores l chng c thc thi theo tnh nguyn
t. Chng ta phi m bo rng khng c hai qu trnh c th thc thi cc thao tc
wait v signal trn cng mt semaphore ti cng mt thi im. Trng hp ny l
vn vng tng trc v c th gii quyt bng mt trong hai cch.
Trong mi trng n x l (ngha l ch c mt CPU tn ti), n gin l chng ta
c th ngn chn cc ngt trong thi gian cc thao tc wait v signal xy ra. C ch
ny lm vic trong mt mi trng n x l v mt khi ngt b ngn chn, cc ch th
t cc qu trnh khc khng th c chen vo. Ch qu trnh ang chy hin ti thc
thi cho ti khi cc ngt c cho php s dng tr li v b nh thi c th thu hi
quyn iu khin.
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang

94
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

Trong mi trng a x l, ngn chn ngt khng th thc hin c. Cc ch
th t cc qu trnh khc nhau (chy trn cc b x l khc nhau) c th c chen
vo trong cch bt k. Nu phn cng khng cung cp bt c cc ch th c bit no,
chng ta c th tn dng cc gii php phn cng ph hp cho vn vng tng trc
(phn V.-4), cc vng tng trc cha c th tc wait v signal.
Vn quan trng l chng ta khng xo hon ton ch i bn, vi nh
ngha ny cho cc thao tc wait v signal. D nhin l chng ta xo ch i bn t
vic i vo vng tng trc ca chng trnh ng dng. Ngoi ra, chng ta hn ch
vic ch i bn ch cc min tng trc vi thao tc wait v signal v cc vng ny
l ngn (nu c m hp l, chng nn khng qu 10 ch th). Do , min tng
trc hu nh khng bao gi b chim v s ch i bn rt him khi xy ra v sau
ch cho thi gian ngn. Mt trng hp hon ton khc xy ra vi nhng chng trnh
ng dng c min tng trc di (vi pht hay thm ch vi gi) hay c th hu nh
lun b chim. Trong trng hp ny, ch i bn l cc k km hiu qu.
.V.2.1.3 S kho cht (deadlocks) v i ti nguyn
Ci t semaphore vi mt hng i c th dn n trng hp hai hay nhiu
qu trnh ang ch khng hn nh mt s kin m c th c gy ra ch bi mt
trong nhng qu trnh ang ch. S kin t ra l s thc thi ca thao tc signal. Khi
mt trng thi nh th xy ra, nhng qu trnh ny c ni l b kho cht.
hin th iu ny, chng ta xt mt h thng cha hai qu trnh P
0
v P
1
,
mi truy xut hai semaphore, S v Q, c t gi tr 1.

P
0
P
1
wait(S); wait(Q);
wait(Q); wait(S);
. .
. .
signal(S); signal(Q);
Signal(Q); signal(S);

Gi s rng P
0
thc thi wait(S) v sau P
1
thc thi wait(Q). Khi P
0
thc thi
wait(Q), n phi ch cho n khi P
1
thc thi signal(Q). Tng t, khi P
1
thc thi
wait(S), n phi ch cho ti khi P
0
thc thi signal(S). V cc thao tc signal ny khng
th c thc thi nn P
0
v P
1
b kho cht.
Chng ta ni rng mt tp hp cc qu trnh trong trng thi kho cht khi mi
qu trnh trong tp hp ang ch mt s kin c gy ra ch bi mt qu trnh khc
trong tp hp. Nhng s kin m chng ta quan tm ch yu y l vic chim ti
nguyn v gii phng ti nguyn. Tuy nhin, cc loi s kin khc cng c th dn
n vic kho cht. Chng ta s xem trong chng VI. Trong chng , chng ta s
m t cc c ch khc nhau gii quyt vn kho cht.
Mt vn kho cht lin quan ti kho cht l nghn hay i ti nguyn
khng hn nh (indefinite blocking or starvation), cc qu trnh ch i khng
hn nh trong semaphore. Nghn khng hn nh c th xy ra nu chng ta thm
vo v ly ra cc qu trnh t danh sch c ni kt vi mt semaphore trong th t
vo sau ra trc (LIFO).




Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang

95
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

.V.2.1.4 Semaphore nh phn

Xy dng semaphore c m t trong phn trc c gi l semaphore
m (counting semaphore) v gi tr nguyn c th tri di mt phm vi khng gii
hn. Mt semaphore nh phn (binary semaphore) l mt semaphore vi mt gi tr
nguyn m tri di t 0 v 1. Semaphore nh phn c th n gin hn trong ci t so
vi semaphore m v ph thuc vo kin trc phn cng nm bn di. Chng s
hin th cch mt semaphore m c th c ci t s dng semaphore nh phn
di y:
Gi s S l mt semaphore m. ci t n trong dng semaphore nh phn
chng ta cn cc cu trc d liu nh sau:
Binary-semaphore S1, S2;
int C;
Khi to S1 = 1, S2 = 0 v gi tr nguyn C c t ti gi tr khi to ca
semaphore m S.
Thao tc wait trn semaphore m S c th c ci t nh sau:
wait(S);
C--;
If (C<0) {
signal(S1);
wait(S2);
}
signal(S1);
Thao tc signal trn semaphore m S c th c ci t nh sau:

wait(S1);
C++;
if (C<=0)
signal(S2);
else
signal(S1);
V.2.2 Monitors
c th d vit ng cc chng trnh ng b ho hn, Hoare (1974) v
Brinch & Hansen (1975) ngh mt c ch ng b ho cp cao hn c cung cp
bi ngn ng lp trnh l monitor. Mt monitor c m t bi mt tp hp ca cc
ton t c nh ngha bi ngi lp trnh. Biu din kiu ca mt monitor bao gm
vic khai bo cc bin m gi tr ca n xc nh trng thi ca mt th hin kiu,
cng nh thn ca th tc hay hm m ci t cc thao tc trn kiu . C php ca
monitor c hin th trong hnh di y:

Monitor <tn monitor>
{
khai bo cc bin c chia s
procedure P1 (){

}

procedure P2 (){

Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang

96
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

}
.
.
.
procedure Pn (){

}

{
m khi to
}
}

Hnh 0-14 C php ca montor

Biu din kiu monitor khng th c dng trc tip bi cc qu trnh khc
nhau. Do , mt th tc c nh ngha bn trong mt monitor ch c th truy xut
nhng bin c khai bo cc b bn trong monitor v cc tham s chnh thc ca
n. Tng t, nhng bin cc b ca monitor c th c truy xut ch bi nhng th
tc cc b.

Xy dng monitor m bo rng ch mt qu trnh ti mt thi im c th
c kch hot trong monitor. Do , ngi lp trnh khng cn vit m rng buc
ng b ho nh hnh V-15 di y:
















Hnh 0-15 Hnh nh di dng biu ca monitor
Tuy nhin, xy dng monitor nh c nh ngha l khng mnh m
hnh ho cc c ch ng b. Cho mc ch ny, chng ta cn nh ngha cc c ch
ng b ho b sung. Nhng c ch ny c cung cp bi construct condition.
Ngi lp trnh c th nh ngha mt hay nhiu bin ca kiu condition:
condition x, y;

Ch nhng thao tc c th gi ln trn cc bin iu kin l wait v signal.
Thao tc
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang

97
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

x.wait();
c ngha l qu trnh gi trn thao tc ny c tm dng cho n khi qu trnh khc
gi
x.signal();
thao tc x.signal() thc thi tip mt cch chnh xc mt qu trnh tm dng. Nu
khng c qu trnh tm dng th thao tc signal khng b nh hng g c; ngha l
trng thi x nh th thao tc cha bao gi c thc thi (nh hnh V.-16). Ngc li,
vi thao tc signal c gn cng vi semaphores lun nh hng ti trng thi ca
semaphore.
By gi gi s rng, khi thao tc x.signal() c gi bi mt qu trnh P th c
mt qu trnh Q gn vi bin iu kin x b tm dng. R rng, nu qu trnh Q c
php thc thi tip th qu trnh P phi dng. Nu khng th c hai qu trnh P v Q
hot ng cng mt lc trong monitor. Tuy nhin, v khi nim hai qu trnh c th
tip tc vic thc thi ca chng. Hai kh nng c th xy ra:
P ch cho n khi Q ri khi monitor hoc ch iu kin khc.
Q ch cho n khi P ri monitor hoc ch iu kin khc.




















Hnh 0-16 Monitor vi cc bin iu kin

C cc lun c hp l trong vic chp nhn kh nng 1 hay 2. V P thc thi
trong monitor ri, nn chn kh nng 2 c v hp l hn. Tuy nhin, nu chng ta cho
php qu trnh P tip tc, bin iu kin lun l m Q ang ch c th khng cn
qun l thi gian Q c tip tc. Chn kh nng 1 c tn thnh bi Hoare v tham
s u tin ca n chuyn trc tip ti cc qui tc chng minh n gin hn. Tho
hip gia hai kh nng ny c chp nhn trong ngn ng ng hnh C. Khi qu
trnh P thc thi thao tc signal th qu trnh Q lp tc c tip tc. M hnh ny
khng mnh hn m hnh ca Hoare v mt qu trnh khng th bo hiu nhiu ln
trong mt li gi th tc n.
By gi chng ta xem xt ci t c ch monitor dng semaphores. i vi
mi monitor, mt bin semaphore mutex (c khi to 1) c cung cp. Mt qu
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang

98
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

trnh phi thc thi wait(mutex) trc khi i vo monitor v phi thc thi
signal(mutex) sau khi ri monitor.
V qu trnh ang bo hiu phi ch cho n khi qu trnh c bt u li ri
hay ch, mt bin semaphore b sung next c gii thiu, c khi to 0 trn qu
trnh bo hiu c th t tm dng. Mt bin s nguyn next_count cng s c cung
cp m s lng qu trnh b tm dng trn next. Do , mi th tc bn ngoi F
s c thay th bi
wait(mutex);
. . .
thn ca F
if (next_count > 0)
signal(next);
else
signal(mutex);
Loi tr h tng trong monitor c m bo.
By gi chng ta m t cc bin iu kin c ci t nh th no. i vi
mi bin iu kin x, chng ta gii thiu mt bin semaphore x_sem v bin s
nguyn x_count, c hai c khi to ti 0. Thao tc x.wait c th c ci t nh
sau:

x_count++;
if ( next_count > 0)
signal(next);
else
signal(mutex);
wait(x_sem);
x_count--;

Thao tc x.signal() c th c ci t nh sau:

if ( x_count > 0){
next_count++;
signal(x_sem);
wait(next);
next_count--;
}
Ci t ny c th p dng nh ngha ca monitor c cho bi c hai
Hoare v Brinch Hansen. Tuy nhin, trong mt s trng hp tnh tng qut ca vic
ci t l khng cn thit v yu cu c mt ci tin hiu qu hn.
By gi chng ta s tr li ch th t bt u li ca qu trnh trong
monitor. Nu nhiu qu trnh b tr hon trn bin iu kin x v thao tc x.signal
c thc thi bi mt vi qu trnh th th t cc qu trnh b tr hon c thc thi
tr li nh th no? Mt gii php n gin l dng th t FCFS v th qu trnh ch
lu nht s c thc thi tip trc. Tuy nhin, trong nhiu trng hp, c ch nh
thi biu nh th l khng . Cho mc ch ny cu trc conditional-wait c th
c dng; n c dng
x.wait(c);
y c l mt biu thc s nguyn c nh gi khi thao tc wait c thc thi. Gi
tr c, c gi l s u tin, c lu vi tn qu trnh c tm dng. Khi x.signal
c thc thi, qu trnh vi s u tin nh nht c thc thi tip.
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang

99
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

hin th c ch mi ny, chng ta xem xt monitor c hin th nh hnh
di y, iu khin vic cp pht ca mt ti nguyn n gia cc qu trnh cnh
tranh. Mi qu trnh khi yu cu cp pht ti nguyn ca n, xc nh thi gian ti a
n hoch nh s dng ti nguyn. Monitor cp pht ti nguyn ti qu trnh c yu
cu thi gian cp pht ngn nht.

Monitor ResourceAllocation
{
boolean busy;
condition x;

void acquire(int time){
if (busy) x.wait(time);
busy = true;
}

void release(){
busy = false;
x.signal();
}

void init(){
busy = false;
}
}
Hnh 0-17 Mt monitor cp pht ti mt ti nguyn

Mt qu trnh cn truy xut ti nguyn phi ch th t sau:
R.acquire(t);

truy xut ti nguyn
...
R.release();
y R l th hin ca kiu ResourceAllocation.
Tuy nhin, khi nim monitor khng m bo rng cc th t truy xut trc s
c ch . c bit,
Mt qu trnh c th truy xut ti nguyn m khng t c quyn truy xut
trc .
Mt qu trnh s khng bao gi gii phng ti nguyn mt khi n c gn
truy xut ti ti nguyn .
Mt qu trnh c th c gng gii phng ti nguyn m n khng bao gi yu
cu.
Mt qu trnh c th yu cu cng ti nguyn hai ln (khng gii phng ti
nguyn trong ln u)

Vic s dng monitor cng gp cng nhng kh khn nh xy dng min tng
trc. Trong phn trc, chng ta lo lng v vic s dng ng semaphore. By gi,
chng ta lo lng v vic s dng ng cc thao tc c nh ngha ca ngi lp
trnh cp cao m cc trnh bin dch khng cn h tr chng ta.
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang

100
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

Mt gii php c th i vi vn trn l cha cc thao tc truy xut ti nguyn
trong monitor ResourceAllocation. Tuy nhin, gii php ny s dn n vic nh thi
c thc hin da theo gii thut nh thi monitor c xy dng sn hn l c
vit bi ngi lp trnh.
m bo rng cc qu trnh ch n th t hp l, chng ta phi xem xt k
tt c chng trnh thc hin vic dng monitor ResourceAllocation v nhng ti
nguyn c qun l ca chng. C hai iu kin m chng ta phi kim tra thit
lp tnh ng n ca h thng. u tin, cc qu trnh ngi dng phi lun lun
thc hin cc li gi ca chng trn monitor trong th t ng. Th hai, chng ta phi
m bo rng mt qu trnh khng hp tc khng n gin b qua cng (gateway)
loi tr h tng c cung cp bi monitor v c gng truy xut trc tip ti nguyn
c chia s m khng s dng giao thc truy xut. Ch nu hai iu kin ny c th
c m bo c th chng ta m bo rng khng c li rng buc thi gian no xy
ra v gii thut nh thi s khng b tht bi.
Mc d vic xem xt ny c th cho h thng nh, tnh nhng n khng ph hp
cho mt h thng ln hay ng. Vn kim sot truy xut c th c gii quyt ch
bi mt c ch b sung khc.
VI Cc bi ton ng b ho nguyn thu
Trong phn ny, chng ta trnh by mt s bi ton ng b ho nh nhng th
d v s phn cp ln cc vn iu khin ng hnh. Cc vn ny c dng
cho vic kim tra mi c ch ng b ho c ngh gn y. Semaphore c
dng cho vic ng b ho trong cc gii php di y.
VI.1 Bi ton ngi sn xut-ngi tiu th
Bi ton ngi sn xut-ngi tiu th (Producer-Consumer) thng c
dng hin th sc mnh ca cc hm c s ng b ho. Hai qu trnh cng chia s
mt vng m c kch thc gii hn n. Bin semaphore mutex cung cp s loi tr
h tng truy xut vng m v c khi to vi gi tr 1. Cc bin semaphore
empty v full m s khe trng v y tng ng. Bin semaphore empty c khi
to ti gi tr n; bin semaphore full c khi to ti gi tr 0.
M cho ngi qu trnh sn xut c hin th trong hnh V.-18:

do{

sn xut sn phm trong nextp

wait(empty);
wait(mutex);

thm nextp ti vng m

signal(mutex);
signal(full);
} while (1);
Hnh 0-18 Cu trc ca qu trnh ngi sn xut
M cho qu trnh ngi tiu th c hin th trong hnh di y:
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang

101
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0


do{
wait(full);
wait(mutex);

ly mt sn phm t vng m ti nextc

signal(mutex);
signal(empty);
} while (1);
Hnh 0-19 Cu trc ca qu trnh ngi tiu th
VI.2 Bi ton b c-b ghi
B c-b ghi (Readers-Writers) l mt i tng d liu (nh mt tp tin hay
mu tin) c chia s gia nhiu qu trnh ng hnh. Mt s trong cc qu trnh c
th ch cn c ni dung ca i tng c chia s, ngc li mt vi qu trnh khc
cn cp nht (ngha l c v ghi ) trn i tng c chia s. Chng ta phn bit s
khc nhau gia hai loi qu trnh ny bng cch gi cc qu trnh ch c l b c v
cc qu trnh cn cp nht l b ghi. Ch , nu hai b c truy xut i tng c
chia s cng mt lc s khng c nh hng g. Tuy nhin, nu mt b ghi v vi qu
trnh khc (c th l b c hay b ghi) truy xut cng mt lc c th dn n s hn
n.
m bo nhng kh khn ny khng pht sinh, chng ta yu cu cc b ghi
c truy xut loi tr ln nhau ti i tng chia s. Vic ng b ho ny c gi l
bi ton b c-b ghi. Bi ton b c-b ghi c mt s bin dng lin quan n
u tin. Dng n gin nht l bi ton b c trc-b ghi (first reader-writer).
Trong dng ny yu cu khng c b c no phi ch ngoi tr c mt b ghi
c cp quyn s dng i tng chia s. Ni cch khc, khng c b c no phi
ch cc b c khc hon thnh n gin v mt b ghi ang ch. Bi ton b c
sau-b ghi (second readers-writers) yu cu mt khi b ghi ang sn sng, b ghi
thc hin vic ghi ca n sm nht c th. Ni mt cch khc, nu b ghi ang ch
truy xut i tng, khng c b c no c th bt u vic c.
Gii php cho bi ton ny c th dn n vic i ti nguyn. Trong trng
hp u, cc b ghi c th b i; trong trng hp th hai cc b c c th b i.
Trong gii php cho bi ton b c trc-b ghi, cc qu trnh b c chia s cc cu
trc d liu sau:
semaphore mutex, wrt;
int readcount;
Bin semaphore mutex v wrt c khi to 1; bin readcount c khi to
0. Bin semaphore wrt dng chung cho c hai qu trnh b c v b ghi. Bin
semaphore mutex c dng m bo loi tr h tng khi bin readcount c
cp nht. Bin readcount ghi vt c bao nhiu qu trnh hin hnh ang c i
tng. Bin semaphore wrt thc hin chc nng nh mt bin semaphore loi tr h
tng cho cc b c. N cng c dng bi b c u tin hay b c cui cng
m n i vo hay thot khi min tng trc. N cng khng c dng bi cc b
c m n i vo hay thot trong khi cc b c khc ang trong min tng trc.
M cho qu trnh b vit c hin th nh hnh V.-20:

wait(wrt);
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang

102
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0


Thao tc vit c thc hin
signal(wrt);
Hnh 0-20 Cu trc ca qu trnh vit
M ca qu trnh c c hin th nh hnh V.-21:

wait(mutex);
readcount++;
if (readcount == 1)
wait(wrt);
signal(mutex);

Thao tc c c thc hin
wait(mutex);
readcount--;
if (readcount == 0)
signal(wrt);
signal(mutex);
Hnh 0-21 Cu trc ca b c
Ch rng, nu b vit ang trong min tng trc v n b c ang ch th
mt b c c xp hng trn wrt, v n-1 c xp hng trn mutex. Cng cn ch
thm, khi mt b vit thc thi signal(wrt) th chng ta c th thc thi tip vic thc thi
ca cc qu trnh c ang ch hay mt qu trnh vit ang ch. Vic chn la ny c
th c thc hin bi b nh thi biu.
VI.3 Bi ton cc trit gia n ti
C nm nh trit gia, va suy ngh va n ti. Cc trit gia ngi trn cng mt
bn trn xung quanh c nm chic gh, mi chic gh c ngi bi mt trit gia.
Chnh gia bn l mt bt cm v nm chic a c hin th nh hnh VI-22:

VII
VIII
IX
X
XI
XII

Hnh 0-22 Tnh hung cc trit gia n ti
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang

103
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

Khi mt trit gia suy ngh, ng ta khng giao tip vi cc trit gia khc. Thnh
thong, mt trit gia cm thy i v c gng chn hai chic a gn nht (hai chic
a nm gia ng ta vi hai lng ging tri v phi). Mt trit gia c th ly ch mt
chic a ti mt thi im. Ch , ng ta khng th ly chic a m n ang c
dng bi ngi lng ging. Khi mt trit gia i v c hai chic a cng mt lc,
ng ta n m khng t a xung. Khi trit gia n xong, ng ta t a xung v bt
u suy ngh tip.
Bi ton cc trit gia n ti c xem nh mt bi ton ng b ho kinh in.
N trnh by yu cu cp pht nhiu ti nguyn gia cc qu trnh trong cch trnh
vic kho cht v i ti nguyn.
Mt gii php n gin l th hin mi chic a bi mt bin semaphore.
Mt trit gia c gng chim ly mt chic a bng cch thc thi thao tc wait trn
bin semaphore ; trit gia t hai chic a xung bng cch thc thi thao tc signal
trn cc bin semaphore tng ng. Do , d liu c chia s l:
semaphore chopstick[5];
y tt c cc phn t ca chopstick c khi to 1. Cu trc ca philosopher i
c hin th nh hnh di y:
do{
wait(chopstick[ i ]);
wait(chopstick[ ( i + 1 ) % 5 ]);

n

signal(chopstick[ i ]);
signal(chopstick[ ( i + 1 ) % 5 ]);

suy ngh

} while (1);
Hnh 0-23 Cu trc ca trit gia th i
Mc d gii php ny m bo rng khng c hai lng ging no ang n cng
mt lc nhng n c kh nng gy ra kho cht. Gi s rng nm trit gia b i cng
mt lc v mi trit gia chim ly chic a bn tri ca ng ta. By gi tt c cc
phn t chopstick s l 0. Khi mi trit gia c gng dnh ly chic a bn phi, trit
gia s b ch mi mi.
Nhiu gii php kh thi i vi vn kho cht c lit k tip theo. Gii php
cho vn cc trit gia n ti m n m bo khng b kho cht.
Cho php nhiu nht bn trit gia ang ngi cng mt lc trn bn
Cho php mt trit gia ly chic a ca ng ta ch nu c hai chic a l
sn dng ( lm iu ny ng ta phi ly chng trong min tng trc).
Dng mt gii php bt i xng; ngha l mt trit gia l chn a bn
tri u tin ca ng ta v sau a bn phi, tri li mt trit gia chn
chn chic a bn phi v sau chic a bn phi ca ng ta.

Tm li, bt c mt gii php no tho mn i vi bi ton cc trit gia n ti
phi m bo da trn kh nng mt trong nhng trit gia s i cht. Gii php gii
quyt vic kho cht khng cn thit xo i kh nng i ti nguyn.

Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang

104
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

XIII Tm tt
Mt tp hp cc qu trnh tun t cng tc chia s d liu, loi tr h tng
phi c cung cp. Mt gii php m bo rng vng tng trc ca m ang s
dng ch bi mt qu trnh hay mt lung ti mt thi im. Cc gii thut khc tn
ti gii quyt vn min tng trc, vi gi thuyt rng ch kho bn trong vic
lu tr l sn dng.
S bt li ch yu ca cc gii php c m ho bi ngi dng l tt c
chng u yu cu s ch i bn. Semaphore khc phc s bt li ny. Semaphores
c th c dng gii quyt cc vn ng b khc nhau v c th c ci t
hiu qu, c bit nu phn cng h tr cc thao tc nguyn t.
Cc bi ton ng b khc (chng hn nh bi ton ngi sn xut-ngi tiu
dng, bi ton b c, b ghi v bi ton cc trit gia n ti) l cc k quan trng v
chng l th d ca phn lp ln cc vn iu khin ng hnh. Vn ny c
dng kim tra gn nh mi c ch ng b c ngh gn y.
H iu hnh phi cung cp phng tin m bo chng li li thi gian.
Nhiu cu trc d liu c ngh gii quyt cc vn ny. Cc vng tng
trc c th c dng ci t loi tr h tng v cc vn ng b an ton v
hiu qu. Monitors cung cp c ch ng b cho vic chia s cc loi d liu tru
tng. Mt bin iu kin cung cp mt phng thc cho mt th tc monitor kho
vic thc thi ca n cho n khi n c bo hiu tip tc.
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang

105
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

DEADLOCK
I Mc ch
Sau khi hc xong chng ny, ngi hc nm c nhng kin thc sau:
Hiu m hnh h thng v deadlock
Hiu cc c im ca deadlock
Hiu cc phng php qun l deadlock
Hiu cch ngn chn deadlock
Hiu cch trnh deadlock
Hiu cch pht hin deadlock
Hiu cch phc hi t deadlock
II Gii thiu
Trong mi trung a chng, nhiu qu trnh c th cnh tranh mt s gii hn
ti nguyn. Mt qu trnh yu cu ti nguyn, nu ti nguyn khng sn dng ti thi
im , qu trnh i vo trng thi ch. Qu trnh ch c th khng bao gi chuyn
trng thi tr li v ti nguyn chng yu cu b gi bi nhng qu trnh ang ch
khc. Trng hp ny c gi l deadlock (kho cht).
Trong chng ny chng ta s m t cc phng php m h iu hnh c th
dng ngn chn hay gii quyt deadlock. Hu ht cc h iu hnh khng cung cp
phng tin ngn chn deadlock nhng nhng c im ny s c thm vo sau .
Vn deadlock ch c th tr thnh vn ph bin, xu hng hin hnh gm s
lng ln qu trnh, chng trnh a lung, nhiu ti nguyn trong h thng v c
bit cc tp tin c i sng di v nhng my phc v c s d liu hn l cc h
thng b.
III M hnh h thng
Mt h thng cha s ti nguyn hu hn c phn b gia nhiu qu trnh
cnh tranh. Cc ti nguyn ny c phn chia thnh nhiu loi, mi loi cha mt s
th hin xc nh. Khng gian b nh, cc chu k CPU v cc thit b nhp/xut (nh
my in, a t) l nhng th d v loi ti nguyn. Nu h thng c hai CPUs, th loi
ti nguyn CPU c hai th hin. Tng t, loi ti nguyn my in c th c nm th
hin.
Nu mt qu trnh yu cu mt th hin ca loi ti nguyn th vic cp pht bt
c th hin no ca loi ti nguyn ny s tho mn yu cu. Nu n khng c th cc
th hin l khng xc nh v cc lp loi ti nguyn s khng c nh ngha hp
l. Th d, mt h thng c th c hai my in. Hai loi my in ny c th c nh
ngha trong cng lp loi ti nguyn nu khng c qu trnh no quan tm my no in
ra d liu. Tuy nhin, nu mt my in tng 9 v my in khc tng trt th ngi
dng tng 9 khng th xem hai my in l tng t nhau v lp ti nguyn ring r
cn c nh ngha cho mi my in.
Mt qu trnh phi yu cu mt ti nguyn trc khi s dng n, v phi gii
phng sau khi s dng n. Mt qu trnh c th yu cu nhiu ti nguyn nh n c
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang 113
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

yu cu thc hin tc v c gn ca n. Ch , s ti nguyn c yu cu
khng vt qu s lng tng cng ti nguyn sn c trong h thng. Ni cch khc,
mt qu trnh khng th yu cu ba my in nu h thng ch c hai.
Di ch iu hnh thng thng, mt qu trnh c th s dng mt ti nguyn
ch trong th t sau:
1) Yu cu: nu yu cu khng th c gn tc th (th d, ti nguyn ang
c dng bi qu trnh khc) th qu trnh ang yu cu phi ch cho ti
khi n c th nhn c ti nguyn.
2) S dng: qu trnh c th iu hnh ti nguyn (th d, nu ti nguyn l
my in, qu trnh c th in my in)
3) Gii phng: qu trnh gii phng ti nguyn.
Yu cu v gii phng ti nguyn l cc li gi h thng. Th d nh yu cu v
gii phng thit b, m v ng tp tin, cp pht v gii phng b nh. Yu cu v
gii phng cc ti nguyn khc c th t c thng qua thao tc ch wait v bo
hiu signal. Do , cho mi trng hp s dng, h iu hnh kim tra m bo
rng qu trnh s dng yu cu v c cp pht ti nguyn. Mt bng h thng ghi
nhn mi qu trnh gii phng hay c cp pht ti nguyn. Nu mt qu trnh yu
cu ti nguyn m ti nguyn hin c cp pht cho mt qu trnh khc, n c th
c thm vo hng i ch ti nguyn ny.
Mt tp hp qu trnh trong trng thi deadlock khi mi qu trnh trong tp
hp ny ch s kin m c th c to ra ch bi qu trnh khc trong tp hp.
Nhng s kin m chng ta quan tm ch yu y l nhn v gii phng ti nguyn.
Cc ti nguyn c th l ti nguyn vt l (th d, my in, a t, khng gian b nh
v chu k CPU) hay ti nguyn lun l (th d, tp tin, semaphores, monitors). Tuy
nhin, cc loi khc ca s kin c th dn n deadlock.
minh ho trng thi deadlock, chng ta xt h thng vi ba a t. Gi s
mi qu trnh gi cc mt a t ny. By gi, nu mi qu trnh yu cu mt a
t khc th ba qu trnh s trong trng thi deadlock. Mi qu trnh ang ch mt s
kin a t c gii phng m c th c gy ra ch bi mt trong nhng qu
trnh ang ch. Th d ny minh ho deadlock lin quan n cng loi ti nguyn.
Deadlock cng lin quan nhiu loi ti nguyn khc nhau. Th d, xt mt h
thng vi mt my in v mt a t. Gi s, qu trnh P
i
ang gi a t v qu
trnh P
j
ang gi my in. Nu P
i
yu cu my in v P
j
yu cu a t th deadlock
xy ra.
Mt ngi lp trnh ang pht trin nhng ng dng a lung phi quan tm
c bit ti vn ny: Cc chng trnh a lung l ng c vin cho vn
deadlock v nhiu lung c th cnh tranh trn ti nguyn c chia s.
IV c im deadlock
Trong mt deadlock, cc qu trnh khng bao gi hon thnh vic thc thi v
cc ti nguyn h thng b buc cht, ngn chn cc qu trnh khc bt u. Trc khi
chng ta tho lun cc phng php khc nhau gii quyt vn deadlock, chng ta
s m t cc c im m deadlock m t.



Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang 114
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

IV.1 Nhng iu kin cn thit gy ra deadlock

Trng hp deadlock c th pht sinh nu bn iu kin sau xy ra cng mt
lc trong h thng:
1) Loi tr h tng: t nht mt ti nguyn phi c gi trong ch
khng chia s; ngha l, ch mt qu trnh ti cng mt thi im c th s
dng ti nguyn. Nu mt qu trnh khc yu cu ti nguyn , qu trnh
yu cu phi tm dng cho n khi ti nguyn c gii phng.
2) Gi v ch cp thm ti nguyn: qu trnh phi ang gi t nht mt ti
nguyn v ang ch nhn ti nguyn thm m hin ang c gi bi
qu trnh khc.
3) Khng i li ti nguyn t qu trnh ang gi chng: Cc ti nguyn
khng th b i li; ngha l, ti nguyn c th c gii phng ch t
bi qu trnh ang gi n, sau khi qu trnh hon thnh tc v.
4) Tn ti chu trnh trong th cp pht ti nguyn: mt tp hp cc qu
trnh {P
0
, P
1
,,P
n
} ang ch m trong P
0
ang ch mt ti nguyn
c gi bi P
1
, P
1
ang ch ti nguyn ang gi bi P
2
,,P
n-1
ang ch
ti nguyn ang c gi bi qu trnh P
0
.

Chng ta nhn mnh rng tt c bn iu kin phi cng pht sinh deadlock
xy ra. iu kin ch i ch trnh a n iu kin gi-v-ch v th bn iu kin
khng hon ton c lp.
IV.2 th cp pht ti nguyn
Deadlock c th m t chnh xc hn bng cch hin th th c hng gi l
th cp pht ti nguyn h thng. th ny cha mt tp cc nh V v tp hp
cc cnh E. Mt tp cc nh V c chia lm hai loi nt P = {P
1
, P
2
,,P
n
} l tp
hp cc qu trnh hot ng trong h thng, v R = {R
1
, R
2
, ..., R
m
} l tp hp cha
tt c cc loi ti nguyn trong h thng.
Mt cnh c hng t qu trnh P
i
ti loi ti nguyn R
j
c k hiu P
i
R
j
;
n biu th rng qu trnh P
i
yu cu loi ti nguyn R
j
v hin ang ch loi ti
nguyn . Mt cnh c hng t loi ti nguyn R
j
ti qu trnh P
i
c hin th bi
R
j
P
i
; n hin th rng th hin ca loi ti nguyn R
j
c cp pht ti qu trnh
P
i
. Mt cnh c hng P
i
R
j
c gi l cnh yu cu; mt cnh c hng R
j
P
i

c gi l cnh gn.
Bng hnh tng, chng ta hin th mi qu trnh P
i
l mt hnh trn, v mi
loi ti nguyn R
j
l hnh ch nht. V loi ti nguyn R
j
c th c nhiu hn mt th
hin, chng ta hin th mi th hin l mt chm nm trong hnh vung. Ch rng
mt cnh yu cu tr ti ch mt hnh vung R
j
, tri li mt cnh gn cng phi gn
ti mt trong cc du chm trong hnh vung.
Khi qu trnh P
i
yu cu mt th hin ca loi ti nguyn R
j
, mt cnh yu cu
c chn vo th cp pht ti nguyn. Khi yu cu ny c th c p ng, cnh
yu cu lp tc c truyn ti cnh gn. Khi qu trnh khng cn cn truy xut ti
ti nguyn, n gii phng ti nguyn, v khi dn n cnh gn b xo.
th cp pht ti nguyn c hin th trong hnh VI-1 di y m t trng hp
sau:


Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang 115
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0



















Hnh 0-1 th cp pht ti nguyn
Cc tp P, R, v E:
o P = {P
1
, P
2
, P
3
}
o R = {R
1
, R
2
, R
3
, R
4
}
o E = {P
1
R
1
, P
2
R
3
, R
1
P
2
, R
2
P
2
, R
3
P
3
}
Cc th hin ti nguyn
o Mt th hin ca ti nguyn loi R
1

o Hai th hin ca ti nguyn loi R
2

o Mt th hin ca ti nguyn loi R
3

o Mt th hin ca ti nguyn loi R
4

Trng thi qu trnh
o Qu trnh P
1
ang gi mt th hin ca loi ti nguyn R
2
v ang ch
mt th hin ca loi ti nguyn R
1
.
o Qu trnh P
2
ang gi mt th hin ca loi ti nguyn R
1
v R
2
v
ang ch mt th hin ca loi ti nguyn R
3
.
o Qu trnh P
3
ang gi mt th hin ca R
3

th cp pht ti nguyn hin th rng, nu th khng cha chu trnh, th
khng c qu trnh no trong h thng b deadlock. Nu th c cha chu trnh, th
deadlock c th tn ti.
Nu mi loi ti nguyn c chnh xc mt th hin, th mt chu trnh ng rng
mt deadlock xy ra. Nu mt chu trnh bao gm ch mt tp hp cc loi ti nguyn,
mi loi ti nguyn ch c mt th hin th deadlock xy ra. Mi qu trnh cha trong
chu trnh b deadlock. Trong trng hp ny, mt chu trnh trong th l iu kin
cn v tn ti deadlock.
Nu mi loi ti nguyn c nhiu th hin th chu trnh khng ng deadlock
xy. Trong trng hp ny, mt chu trnh trong th l iu kin cn nhng cha
tn ti deadlock.
hin th khi nim ny, chng ta xem li th hnh VII-1 trn. Gi s
qu trnh P
3
yu cu mt th hin ca loi ti nguyn R
2
. V khng c th hin ti
nguyn hin c, mt cnh yu cu P
3
R
2
c thm vo th (hnh VI-2). Ti thi
im ny, hai chu trnh nh tn ti trong h thng:
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang 116
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

P
1
R
1
P
2
R
3
P
3
R
2
P
1
P
2
R
3
P
3
R
2
P
2



















Hnh 0-2 th cp pht ti nguyn vi deadlock
Qu trnh P
1
, P
2
, v P
3
b deadlock. Qu trnh P
3
ang ch ti nguyn R
3
, hin
c gi bi qu trnh P
2
. Hay ni cch khc, qu trnh P
3
ang ch qu trnh P
1
hay
P
2
gii phng ti nguyn R
2
. Ngoi ra, qu trnh P
1
ang ch qu trnh P
2
gii phng
ti nguyn R
1
.
By gi xem xt th cp pht ti nguyn trong hnh VI-3 di y. Trong th
d ny, chng ta cng c mt chu k
P
1
R
1
P
3
R
2
P
1


















Hnh 0-3 th cp pht ti nguyn c chu trnh nhng khng b deadlock
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang 117
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

Tuy nhin, khng c deadlock. Ch rng qu trnh P
4
c th gii phng th
hin ca loi ti nguyn R
2
. Ti nguyn c th c cp pht ti P
3
sau , chu
trnh s khng cn.
Tm li, nu th cp pht ti nguyn khng c chu trnh th h thng khng
c trng thi deadlock. Ngoi ra, nu c chu trnh th c th c hoc khng trng thi
deadlock. Nhn xt ny l quan trng khi chng ta gii quyt vn deadlock.
V Cc phng php x l deadlock
Phn ln, chng ta c th gii quyt vn deadlock theo mt trong ba cch:
Chng ta c th s dng mt giao thc ngn chn hay trnh deadlocks, m
bo rng h thng s khng bao gi i vo trng thi deadlock
Chng ta c th cho php h thng i vo trng thi deadlock, pht hin n v
phc hi.
Chng ta c th b qua hon ton vn ny v gi v deadlock khng bao
gi xy ra trong h thng. Gii php ny c dng trong nhiu h iu hnh,
k c UNIX.
Chng ta s tm hiu vn tt mi phng php. Sau , chng ta s trnh by
cc gii thut mt cch chi tit trong cc phn sau y.

m bo deadlock khng bao gi xy ra, h thng c th dng k hoch
ngn chn hay trnh deadlock. Ngn chn deadlock l mt tp hp cc phng php
m bo rng t nht mt iu kin cn (trong phn VI.4.1) khng th xy ra. Cc
phng php ny ngn chn deadlocks bng cch rng buc yu cu v ti nguyn
c thc hin nh th no. Chng ta tho lun phng php ny trong phn sau.
Ngc li, trnh deadlock yu cu h iu hnh cung cp nhng thng tin b
sung tp trung vo loi ti nguyn no mt qu trnh s yu cu v s dng trong thi
gian sng ca n. Vi nhng kin thc b sung ny, chng ta c th quyt nh i
vi mi yu cu qu trnh nn ch hay khng. quyt nh yu cu hin ti c th
c tho mn hay phi b tr hon, h thng phi xem xt ti nguyn hin c, ti
nguyn hin cp pht cho mi qu trnh, v cc yu cu v gii phng tng lai ca
mi qu trnh.
Nu mt h thng khng dng gii thut ngn chn hay trnh deadlock th
trng hp deadlock c th xy ra. Trong mi trng ny, h thng c th cung cp
mt gii thut xem xt trng thi ca h thng xc nh deadlock c xy ra hay
khng v gii thut phc hi t deadlock.
Nu h thng khng m bo rng deadlock s khng bao gi xy ra v cng
khng cung cp mt c ch pht hin v phc hi deadlock th c th dn n
trng hp h thng trong trng thi deadlock. Trong trng hp ny, deadlock
khng c pht hin s lm gim nng lc h thng v ti nguyn ang c gi bi
nhng qu trnh m chng khng th thc thi, i vo trng thi deadlock. Cui cng,
h thng s dng cc chc nng v cn c khi ng li bng th cng.
Mc d phng php ny dng nh khng l tip cn kh thi i vi vn
deadlock nhng n c dng trong mt s h iu hnh. Trong nhiu h thng,
deadlock xy ra khng thng xuyn; do phng php ny l r hn chi ph cho
phng php ngn chn deadlock, trnh deadlock, hay pht hin v phc hi deadlock
m chng phi c s dng lin tc. Trong mt s trng hp, h thng trong
trng thi c c nhng khng trng thi deadlock. Nh th d, xem xt mt qu
trnh thi thc chy ti u tin cao nht (hay bt c qu trnh ang chy trn b
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang 118
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

nh thi biu khng trng dng) v khng bao gi tr v iu khin i vi h iu
hnh. Do , h thng phi c phng php phc hi bng th cng cho cc iu
kin khng deadlock v c th n gin s dng cc k thut cho vic phc hi
deadlock.
VI Ngn chn deadlock
deadlock xy ra, mt trong bn iu kin cn phi xy ra. Bng cch m
bo t nht mt trong bn iu kin ny khng th xy ra, chng ta c th ngn chn
vic xy ra ca deadlock. Chng ta tm hiu t m tip cn ny bng cch xem xt
mi iu kin cn ring r nhau.
VI.1 Loi tr h tng
iu kin loi tr h tng phi gi cho ti nguyn khng chia s. Th d, mt
my in khng th c chia s cng lc bi nhiu qu trnh. Ngc li, cc ti nguyn
c th chia s khng i hi truy xut loi tr h tng v do khng th lin quan
n deadlock. Nhng tp tin ch c l mt th d tt cho ti nguyn c th chia s.
Nu nhiu qu trnh c gng m mt tp tin ch c ti cng mt thi im th chng
c th c gn truy xut cng lc tp tin. Mt qu trnh khng bao gi yu cu ch
ti nguyn c th chia s. Tuy nhin, thng chng ta khng th ngn chn deadlock
bng cch t chi iu kin loi tr h tng: mt s ti nguyn v thc cht khng
th chia s.
VI.2 Gi v ch cp thm ti nguyn
m bo iu kin gi-v-ch cp thm ti nguyn khng bao gi xy ra
trong h thng, chng ta phi m bo rng bt c khi no mt qu trnh yu cu ti
nguyn, n khng gi bt c ti nguyn no khc. Mt giao thc c th c dng l
i hi mi qu trnh yu cu v c cp pht tt c ti nguyn trc khi n bt u
thc thi. Chng ta c th ci t s cung cp ny bng cch yu cu cc li gi h
thng yu cu ti nguyn cho mt qu trnh trc tt c cc li gi h thng khc.
Mt giao thc khc cho php mt qu trnh yu cu ti nguyn ch khi qu trnh
ny khng c ti nguyn no. Mt qu trnh c th yu cu mt s ti nguyn v dng
chng. Tuy nhin, trc khi n c th yu cu bt k ti nguyn b sung no, n phi
gii phng tt c ti nguyn m n hin ang c cp pht.
hin th s khc nhau gia hai giao thc, chng ta xt mt qu trnh chp d
liu t bng t ti tp tin a, sp xp tp tin a v sau in kt qu ra my in. Nu
tt c ti nguyn phi c yu cu cng mt lc th khi u qu trnh phi yu cu
bng t, tp tin a v my in. N s gi my in trong ton thi gian thc thi ca n
mc d n cn my in ch giai on cui.
Phng php th hai cho php qu trnh yu cu ban u ch bng t v tp tin
a. N chp d liu t bng t ti a, ri gii phng c hai bng t v a. Sau ,
qu trnh phi yu cu li tp tin a v my in. Sau , chp tp tin a ti my in, n
gii phng hai ti nguyn ny v kt thc.
Hai giao thc ny c hai nhc im ch yu. Th nht, vic s dng ti
nguyn c th chm v nhiu ti nguyn c th c cp nhng khng c s dng
trong thi gian di. Trong th d c cho, chng ta c th gii phng bng t v tp
tin a, sau yu cu li tp tin a v my in ch nu chng ta m bo rng d liu
ca chng ta s vn cn trn tp tin a. Nu chng ta khng th m bo rng d liu
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang 119
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

vn cn tp tin a th chng ta phi yu cu tt c ti nguyn ti thi im bt u
cho c hai giao thc. Th hai, i ti nguyn l c th. Mt qu trnh cn nhiu ti
nguyn ph bin c th phi i v hn nh v mt ti nguyn m n cn lun c
cp pht cho qu trnh khc.
VI.3 Khng i li ti nguyn t qu trnh ang gi chng
iu kin cn th ba l khng i li nhng ti nguyn c cp pht ri.
m bo iu kin ny khng xy ra, chng ta c th dng giao thc sau. Nu mt qu
trnh ang gi mt s ti nguyn v yu cu ti nguyn khc m khng c cp pht
tc th ti n (ngha l, qu trnh phi ch) th tt c ti nguyn hin ang gi c
i li. Ni cch khc, nhng ti nguyn ny c gii phng hon ton. Nhng ti
nguyn b i li c thm ti danh sch cc ti nguyn m qu trnh ang ch. Qu
trnh s c khi ng li ch khi n c th nhn li ti nguyn c ca n cng nh
cc ti nguyn mi m n ang yu cu.
C mt s chn la khc, nu mt qu trnh yu cu mt s ti nguyn, u tin
chng ta kim tra chng c sn khng. Nu ti nguyn c sn, chng ta cp pht
chng. Nu ti nguyn khng c sn, chng ta kim tra chng c c cp pht ti
mt s qu trnh khc ang ch ti nguyn b sung. Nu ng nh th, chng ta ly
li ti nguyn mong mun t qu trnh ang i v cp chng cho qu trnh ang
yu cu. Nu ti nguyn khng sn c hay c gi bi mt qu trnh ang i, qu
trnh ang yu cu phi ch. Trong khi n ang ch, mt s ti nguyn ca n c th
c i li ch nu qu trnh khc yu cu chng. Mt qu trnh c th c khi
ng li ch khi n c cp cc ti nguyn mi m n ang yu cu v phc hi bt
c ti nguyn no b ly li trong khi n ang ch.
Giao thc ny thng c p dng ti ti nguyn m trng thi ca n c th
c lu li d dng v phc hi li sau , nh cc thanh ghi CPU v khng gian b
nh. N thng khng th c p dng cho cc ti nguyn nh my in v bng t.
VI.4 Tn ti chu trnh trong th cp pht ti nguyn
iu kin th t v cng l iu kin cui cng cho deadlock l iu kin tn
ti chu trnh trong th cp pht ti nguyn. Mt cch m bo rng iu kin ny
khng bao gi xy ra l p t ton b th t ca tt c loi ti nguyn v i hi mi
qu trnh trong th t tng ca s lng.
Gi R = {R
1
, R
2
, , R
m
} l tp hp loi ti nguyn. Chng ta gn mi loi ti
nguyn mt s nguyn duy nht, cho php chng ta so snh hai ti nguyn v xc nh
ti nguyn ny c ng trc ti nguyn khc hay khng trong th t ca chng ta.
Thng thng, chng ta nh ngha hm nh x mt-mt F: R N, y N l tp
hp cc s t nhin. Th d, nu tp hp cc loi ti nguyn R gm cc bng t,
a v my in th hm F c th c nh ngha nh sau:
F( bng t) = 1,
F(a t) = 5,
F(my in) = 12.
By gi chng ta xem giao thc sau ngn chn deadlock: mi qu trnh c
th yu cu ti nguyn ch trong th t tng ca s lng. Ngha l, mt qu trnh ban
u c th yu cu bt c s lng th hin ca mt loi ti nguyn R
i
. Sau , mt
qu trnh c th yu cu cc th hin ca loi ti nguyn R
j
nu v ch nu F(R
j
) >
F(R
i
). Nu mt s th hin ca cng loi ti nguyn c yu cu, th mt yu cu
cho tt c th hin phi c cp pht. Th d, s dng hm c nh ngha trc ,
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang 120
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

mt qu trnh mun dng bng t v my in ti cng mt lc trc tin phi yu cu
bng t v sau yu cu my in.
Ni mt cch khc, chng ta yu cu rng, bt c khi no mt qu trnh yu cu
mt th hin ca loi ti nguyn R
j
, n gii phng bt c ti nguyn R
i
sao cho F(R
i
)
F(R
j
).
Nu c hai giao thc c dng th iu kin tn ti chu trnh khng th xy ra.
Chng ta c th gii thch iu ny bng cch cho rng tn ti chu trnh trong th
cp pht ti nguyn tn ti. Gi tp hp cc qu trnh cha tn ti chu trnh trong
th cp pht ti nguyn l {P
0
, P
1
, , P
n
}, y P
i
ang ch mt ti nguyn R
i
, m R
i

c gi bi qu trnh P
i+1
. V sau qu trnh P
i+1
ang gi ti nguyn R
i
trong khi
yu cu ti nguyn R
i+1
, nn chng ta c F(R
i
) < F(R
i+1
) cho tt c i. Nhng iu kin
ny c ngha l F(R
0
) < F(R
1
) < < F(R
n
) < F(R
0
). Bng qui tc bt cu F(R
0
) <
F(R
0
), iu ny l khng th. Do , khng th c ch chu trnh.
Ch rng hm F nn c nh ngha da theo th t t nhin ca vic s
dng ti nguyn trong h thng. Th d, v bng t thng c yu cu trc my
in nn c th hp l nh ngha F( bng t) < F(my in).
VII Trnh deadlock
Cc gii thut ngn chn deadlock, c tho lun VII-6, ngn chn deadlock
bng cch hn ch cch cc yu cu c th c thc hin. Cc ngn chn m bo
rng t nht mt trong nhng iu kin cn cho deadlock khng th xy ra. Do ,
deadlock khng th xy ra. Tuy nhin, cc tc dng ph c th ngn chn deadlock
bi phng php ny l vic s dng thit b chm v thng lng h thng b gim.
Mt phng php khc trnh deadlock l yu cu thng tin b sung v cch
ti nguyn c yu cu. Th d, trong mt h thng vi mt bng t v mt my
in, chng ta c th bo rng qu trnh P s yu cu bng t trc v sau my in
trc khi gii phng c hai ti nguyn. Tri li, qu trnh Q s yu cu my in trc
v sau bng t. Vi kin thc v th t hon thnh ca yu cu v gii phng
cho mi qu trnh, chng ta c th quyt nh cho mi yu cu ca qu trnh s ch
hay khng. Mi yu cu i hi h thng xem ti nguyn hin c, ti nguyn hin
c cp ti mi qu trnh, v cc yu cu v gii phng tng lai ca mi qu trnh,
yu cu ca qu trnh hin ti c th c tho mn hay phi ch trnh kh nng
xy ra deadlock.
Cc gii thut khc nhau c s khc nhau v lng v loi thng tin c yu
cu. M hnh n gin v hu ch nht yu cu mi qu trnh khai bo s ln nht ti
nguyn ca mi loi m n cn. Thng tin trc v s lng ti a ti nguyn ca mi
loi c yu cu cho mi qu trnh, c th xy dng mt gii thut m bo h thng
s khng bao gi i vo trng thi deadlock. y l gii thut nh ngha tip cn
trnh deadlock. Gii thut trnh deadlock t xem xt trng thi cp pht ti nguyn
m bo iu kin tn ti chu trnh trong th cp pht ti nguyn c th khng bao
gi xy ra. Trng thi cp pht ti nguyn c nh ngha bi s ti nguyn sn dng
v ti nguyn c cp pht v s yu cu ti a ca cc qu trnh.
VII.1 Trng thi an ton
Mt trng thi l an ton nu h thng c th cp pht cc ti nguyn ti mi
qu trnh trong mt vi th t v vn trnh deadlock. Hay ni cch khc, mt h thng
trong trng thi an ton ch nu tn ti mt th t an ton. Th t ca cc qu
trnh <P
1
, P
2
, , P
n
> l mt th t an ton cho trng thi cp pht hin hnh nu i
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang 121
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

vi mi th t P
i
, cc ti nguyn m P
i
yu cu vn c th c tho mn bi ti
nguyn hin c cng vi cc ti nguyn c gi bi tt c P
j
, vi j<i. Trong trng
hp ny, nu nhng ti nguyn m qu trnh P
i
yu cu khng sn dng tc th th P
i

c th ch cho n khi tt c P
j
hon thnh. Khi chng hon thnh, P
i
c th t c
tt c nhng ti nguyn n cn, hon thnh cc tc v c gn, tr v nhng ti
nguyn c cp pht cho n v kt thc. Khi P
i
kt thc, P
i+1
c th t c cc ti
nguyn n cn,... Nu khng c th t nh th tn ti th trng thi h thng l khng
an ton.
Mt trng thi an ton khng l trng thi deadlock. Do , trng thi
deadlock l trng thi khng an ton. Tuy nhin, khng phi tt c trng thi khng an
ton l deadlock (hnh VI-4). Mt trng thi khng an ton c th dn n deadlock.
Vi iu kin trng thi l an ton, h iu hnh c th trnh trng thi khng an ton
(v deadlock). Trong mt trng thi khng an ton, h iu hnh c th ngn chn cc
qu trnh t nhng ti nguyn ang yu cu m deadlock xy ra: hnh vi ca cc qu
trnh ny iu khin cc trng thi khng an ton.













Hnh 0-4 Khng gian trng thi an ton, khng an ton, deadlock
minh ho, chng ta xt mt h thng vi 12 bng t v 3 qu trnh: P
0
,
P
1
, P
2
. Qu trnh P
0
yu cu 10 bng t, qu trnh P
1
c th cn 4 v qu trnh P
2
c
th cn ti 9 bng t. Gi s rng ti thi im t
0
, qu trnh P
0
gi 5 bng t, qu
trnh P
1
gi 2 v qu trnh P
2
gi 2 bng t. (Do , c 3 bng t cn rnh).
Nhu cu ti a Nhu cu hin ti
P0 10 5
P1 4 2
P2 9 2
Ti thi im t
0
, h thng trng thi an ton. Th t <P
1
,P
0
, P
2
> tho iu kin
an ton v qu trnh P
1
c th c cp pht tc th tt c cc a t v sau tr li
chng (sau h thng c 5 bng t sn dng ), sau qu trnh P
0
c th nhn tt
c bng t v tr li chng (sau h thng s c 10 bng t sn dng), v cui
cng qu trnh P
2
c th nhn tt c bng t ca n v tr li chng (sau h thng
s c tt c 12 bng t sn dng).
Mt h thng c th i t trng thi an ton ti mt trng thi khng an ton.
Gi s rng ti thi im t
1
, qu trnh P
2
yu cu v c cp 1 bng t na. H
thng khng cn trong trng thi an ton. Ti im ny, ch qu trnh P
1
c th c
cp tt c bng t ca n. Khi n tr li chng, ch qu trnh P
1
c th c cp pht
tt c bng t. Khi n tr li chng, h thng ch cn 4 bng t sn c. V qu
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang 122
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

trnh P
0
c cp pht 5 bng t, nhng c ti a 10, qu trnh P
0
phi ch. Tng
t, qu trnh P
2
c th yu cu thm 6 bng t v phi ch dn n deadlock.
Li ca chng ta l gn yu cu t qu trnh P
2
cho 1 bng t na. Nu chng
ta lm cho P
2
phi ch cho n khi cc qu trnh khc kt thc v gii phng ti
nguyn ca n th chng ta c th trnh deadlock.
Vi khi nim trng thi an ton c cho, chng ta c th nh ngha cc gii
thut trnh deadlock. tng n gin l m bo h thng s lun cn trong trng
thi an ton. Khi u, h thng trong trng thi an ton. Bt c khi no mt qu
trnh yu cu mt ti nguyn hin c, h thng phi quyt nh ti nguyn c th c
cp pht tc th hoc qu trnh phi ch. Yu cu c gn ch nu vic cp pht
h thng trong trng thi an ton.
Trong m hnh ny, nu qu trnh yu cu ti nguyn ang c, n c th vn
phi ch. Do , vic s dng ti nguyn c th chm hn m khng c gii thut
trnh deadlock.
VII.2 Gii thut th cp pht ti nguyn
Nu chng ta c mt h thng cp pht ti nguyn vi mt th hin ca mi
loi, mt bin dng ca th cp pht ti nguyn c nh ngha trong phn VI.4.2
c th c dng trnh deadlock.
Ngoi cc cnh yu cu v gn, chng ta gii thiu mt loi cnh mi c gi
l cnh thnh cu (claim edge). Mt cnh thnh cu P
i
R
j
hin th qu trnh P
i
c
th yu cu ti nguyn R
j
vo mt thi im trong tng lai. Cnh ny tng t cnh
yu cu v phng hng nhng c hin din bi du t khong. Khi qu trnh P
i

yu cu ti nguyn R
j
, cnh thnh cu P
i
R
j
chuyn ti cnh yu cu. Tng t, khi
mt ti nguyn R
j
c gii phng bi P
i
, cnh gn R
j
P
i
c chuyn tr li thnh
cnh thnh cu P
i
R
j
. Chng ta ch rng cc ti nguyn phi c yu cu trc
trong h thng. Ngha l, trc khi P
i
bt u thc thi, tt c cc cnh thnh cu ca n
phi xut hin trong th cp pht ti nguyn. Chng ta c th gim nh iu kin
ny bng cch cho php mt cnh P
i
R
j
c thm ti th ch nu tt c cc
cnh gn lin vi qu trnh P
i
l cc cnh thnh cu.
Gi s rng P
i
yu cu ti nguyn R
j
. Yu cu c th c gn ch nu chuyn
cnh yu cu P
i
R
j
ti cnh gn R
j
P
i
khng dn n vic hnh thnh chu trnh
trong th cp pht ti nguyn. Ch rng chng ta kim tra tnh an ton bng cch
dng gii thut pht hin chu trnh. Mt gii thut pht hin mt chu trnh trong
th ny yu cu mt th t ca n
2
thao tc, y n l s qu trnh trong h thng.









Hnh 0-5 th cp pht ti nguyn trnh deadlock
Nu khng c chu trnh tn ti, th vic cp pht ti nguyn s li h thng
trong trng thi an ton. Nu chu trnh c tm thy th vic cp pht s t h thng
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang 123
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

trong trng thi khng an ton. Do , qu trnh P
i
s phi ch yu cu ca n c
tho.
minh ho gii thut ny, chng ta xt th cp pht ti nguyn ca hnh VI-
5. Gi s rng P
2
yu cu R
2
. Mc d R
2
hin rnh nhng chng ta khng th cp pht
n ti P
2
v hot ng ny s to ra chu trnh trong th (Hnh VI-6). Mt chu trnh
hin th rng h thng trong trng thi khng an ton. Nu P
1
yu cu R
2
v P
2
yu
cu R
1
th deadlock s xy ra.


Hnh 0-6 Trng thi khng an ton trong th cp pht ti nguyn
VII.3 Gii thut ca Banker
Gii thut th cp pht ti nguyn khng th p dng ti h thng cp pht ti
nguyn vi nhiu th hin ca mi loi ti nguyn. Gii thut trnh deadlock m
chng ta m t tip theo c th p dng ti mt h thng nhng t hiu qu hn c ch
th cp pht ti nguyn. Gii thut ny thng c gi l gii thut ca Banker.
Tn c chn v gii thut ny c th c dng trong h thng ngn hng m
bo ngn hng khng bao gi cp pht tin mt ang c ca n khi n khng th tho
mn cc yu cu ca tt c khch hng.
Khi mt qu trnh mi a vo h thng, n phi khai bo s ti a cc th hin
ca mi loi ti nguyn m n cn. S ny c th khng vt qu tng s ti nguyn
trong h thng. Khi mt ngi dng yu cu tp hp cc ti nguyn, h thng phi
xc nh vic cp pht ca cc ti nguyn ny s li h thng trng thi an ton
hay khng. Nu trng thi h thng s l an ton, ti nguyn s c cp; ngc li
qu trnh phi ch cho ti khi mt vi qu trnh gii phng ti nguyn.
Nhiu cu trc d liu phi c duy tr ci t gii thut Banker. Nhng cu
trc d liu ny m ho trng thi ca h thng cp pht ti nguyn. Gi n l s qu
trnh trong h thng v m l s loi ti nguyn trong h thng. Chng ta cn cc cu
trc d liu sau:
Available: mt vector c chiu di m hin th s lng ti nguyn sn dng
ca mi loi. Nu Available[j]= k, c k th hin ca loi ti nguyn R
j
sn
dng.
Max: mt ma trn n x m nh ngha s lng ti a yu cu ca mi qu
trnh. Nu Max[ i , j ] = k, th qu trnh P
i
c th yu cu nhiu nht k th
hin ca loi ti nguyn R
j
.
Allocation: mt ma trn n x m nh ngha s lng ti nguyn ca mi loi
hin c cp ti mi qu trnh. Nu Allocation[ i, j ] = k, th qu trnh P
i

hin c cp k th hin ca loi ti nguyn R
j
.
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang 124
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

Need: mt ma trn n x m hin th yu cu ti nguyn cn li ca mi qu
trnh. Nu Need[ i, j ] = k, th qu trnh P
i
c th cn thm k th hin ca loi
ti nguyn R
j
hon thnh tc v ca n. Ch rng, Need[ i, j ] = Max[ i,
j ] Allocation [ i, j ].
Cu trc d liu ny bin i theo thi gian v kch thc v gi tr
n gin vic trnh by ca gii thut Banker, chng ta thit lp vi k hiu.
Gi X v Y l cc vector c chiu di n. Chng ta ni rng X Y nu v ch nu X[i]
Y[i] cho tt c i = 1, 2, , n. Th d, nu X = (1, 7, 3, 2) v Y = (0, 3, 2, 1) th Y
X, Y < X nu Y X v Y X.
Chng ta c th xem xt mi dng trong ma trn Allocation v Need nh l
nhng vectors v tham chiu ti chng nh Allocation
i
v Need
i
tng ng. Vector
Allocation
i
xc nh ti nguyn hin c cp pht ti qu trnh P
i
; vector Need
i
xc
nh cc ti nguyn b sung m qu trnh P
i
c th vn yu cu hon thnh tc v
ca n.
VII.3.1 Gii thut an ton
Gii thut xc nh h thng trng thi an ton hay khng c th c m t
nh sau:
1) Gi Work v Finish l cc vector c chiu di m v n tng ng. Khi to
Work:=Available v Finish[i]:=false cho i = 1, 2, ,n.
2) Tm i tha:
a) Finish[i] = false
b) Need
i
Work.
Nu khng c i no tha, di chuyn ti bc 4
3) Work:=Work + Allocation
i

Finish[i] := true
Di chuyn v bc 2.
4) Nu Finish[i] = true cho tt c i, th h thng ang trng thi an ton.
Gii thut ny c th yu cu phc tp mxn
2
thao tc quyt nh trng thi
l an ton hay khng.
VII.3.2 Gii thut yu cu ti nguyn
Cho Request
i
l vector yu cu cho qu trnh P
i
. Nu Request
i
[j] = k, th qu
trnh P
i
mun k th hin ca loi ti nguyn R
j
. Khi mt yu cu ti nguyn c thc
hin bi qu trnh P
i
, th cc hot ng sau c thc hin:
1) Nu Request
i
Need
i
, di chuyn ti bc 2. Ngc li, pht sinh mt iu
kin li v qu trnh vt qu yu cu ti a ca n.
2) Nu Request
i
Available, di chuyn ti bc 3. Ngc li, P
i
phi ch v ti
nguyn khng sn c.
3) Gi s h thng cp pht cc ti nguyn c yu cu ti qu trnh P
i
bng
cch thay i trng thi sau:
Available := Available Request
i
;
Allocation
i
:= Allocation
i
+ Request
i
;
Need
i
:= Need
i
Request
i
;
Nu kt qu trng thi cp pht ti nguyn l an ton, th giao dch c hon thnh
v qu trnh P
i
c cp pht ti nguyn ca n. Tuy nhin, nu trng thi mi l
khng an ton, th P
i
phi ch Request
i
v trng thi cp pht ti nguyn c c phc
hi.
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang 125
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

VII.3.3 Th d minh ha
Xt mt h thng vi 5 qu trnh t P
0
ti P
4
, v 3 loi ti nguyn A, B, C.
Loi ti nguyn A c 10 th hin, loi ti nguyn B c 5 th hin v loi ti nguyn C
c 7 th hin. Gi s rng ti thi im T
0
trng thi hin ti ca h thng nh sau:

Allocation Max Available
A B C A B C A B C
P0 0 1 0 7 5 3 3 3 2
P1 2 0 0 3 2 2
P2 3 0 2 9 0 2
P3 2 1 1 2 2 2
P4 0 0 2 4 3 3

Ni dung ma trn Need c nh ngha l Max-Allocation v l

Need
A B C
P0 7 4 3
P1 1 2 2
P2 6 0 2
P3 0 1 1
P4 4 3 1

Chng ta khng nh rng h thng hin trong trng thi an ton. Tht vy,
th t <P
1
, P
3
, P
4
, P
2
, P
0
> tha tiu chun an ton. Gi s by gi P
1
yu cu thm
mt th hin loi A v hai th hin loi C, v th Request
1
= (1, 0, 2). quyt nh
yu cu ny c th c cp tc th hay khng, trc tin chng ta phi kim tra
Request
1
Available (ngha l, (1, 0, 2)) (3, 3, 2)) l ng hay khng. Sau ,
chng ta gi s yu cu ny t c v chng ta i n trng thi mi sau:

Allocation Max Available
A B C A B C A B C
P0 0 1 0 7 4 3 2 3 0
P1 3 0 2 0 2 0
P2 3 0 2 6 0 0
P3 2 1 1 0 1 1
P4 0 0 2 4 3 1

Chng ta phi xc nh trng thi mi ny l an ton hay khng. thc hin
iu ny, chng ta thc thi gii thut an ton ca chng ta v tm th t <P
1
, P
3
, P
4
,
P
0
, P
2
> tha yu cu an ton. Do , chng ta c th cp lp tc yu cu ca qu trnh
P
1
.
Tuy nhin, chng ta cng thy rng, khi h thng trong trng thi ny, mt
yu cu (3, 3, 0) bi P
4
khng th c gn v cc ti nguyn l khng sn dng. Mt
yu cu cho (0, 2, 0) bi P
0
khng th c cp mc d ti nguyn l sn dng v
trng thi kt qu l khng an ton.
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang 126
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

VIII Pht hin Deadlock
Nu mt h thng khng thc hin gii thut ngn chn deadlock hay trnh
deadlock th trng hp deadlock c th xy ra. Trong mi trng ny, h thng phi
cung cp:
Gii thut xem xt trng thi ca h thng quyt nh deadlock c xy
ra hay khng.
Gii thut phc hi t deadlock
Trong tho lun di y, chng ta tho lun chi tit v hai yu cu khi chng
lin quan n nhng h thng vi ch mt th hin ca mi loi ti nguyn cng nh
i vi h thng c nhiu th hin cho mi loi ti nguyn. Tuy nhin, ti thi im
ny chng ta ch lc pht hin v phc hi yu cu chi ph bao gm khng ch
chi ph ti thi im thc thi cho vic duy tr thng tin cn thit v thc thi gii thut
pht hin m cn cc lng ph c th pht sinh trong vic pht hin t deadlock.
VIII.1 Mt th hin ca mi loi ti nguyn
Nu tt c ti nguyn ch c mt th hin th chng ta c th nh ngha gii
thut pht hin deadlock dng mt bin dng ca th cp pht ti nguyn, c gi
l th ch (wait-for). Chng ta t c th ny t th cp pht ti nguyn
bng cch g b cc nt ca loi ti nguyn v xa cc cnh tng ng.














Hnh 0-7 a) th cp pht ti nguyn. b) th ch tng ng
Chnh xc hn, mt cnh t P
i
ti P
j
trong th ch hin th rng qu trnh P
i

ang ch mt qu trnh P
j
gii phng ti nguyn m P
i
cn. Cnh P
i
P
j
tn ti
trong th ch nu v ch nu th cp pht ti nguyn tng ng cha hai cnh P
i
R
q
v R
q
P
j
i vi mt s ti nguyn R
q
. Th d, trong hnh VI-7 di y,
chng ta trnh by th cp pht ti nguyn v th ch tng ng.
Nh cp trc , deadlock tn ti trong h thng nu v ch nu th
ch cha chu trnh. pht hin deadlock, h thng cn duy tr th ch v nh k
gi gii thut tm kim chu trnh trong th.
Mt gii thut pht hin chu trnh trong th yu cu phc tp n
2
thao tc,
y n l s cnh ca th.
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang 127
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

VIII.2 Nhiu th hin ca mt loi ti nguyn
Lc th ch khng th p dng i vi h thng cp pht ti nguyn
vi nhiu th hin cho mi loi ti nguyn. Gii thut pht hin deadlock m chng ta
m t sau y c th p dng cho h thng ny. Gii thut thc hin nhiu cu trc d
liu thay i theo thi gian m chng tng t nh c dng trong gii thut
Banker.
Available: mt vector c chiu di m hin th s lng ti nguyn sn c
ca mi loi.
Allocation: ma trn nxm nh ngha s lng ti nguyn ca mi loi hin
c cp pht ti mi qu trnh.
Request: ma trn nxm hin th yu cu hin ti ca mi qu trnh. Nu
Request[i,j] = k, th qu trnh P
i
ang yu cu k th hin na ca loi ti
nguyn R
j
.
Quan h gia hai vectors c nh ngha trong phn VI.7.3. k hiu n
gin, chng ta s xem nhng hng trong ma trn Allocation v Request nh cc
vector, v s tham chiu chng nh Allocation
i
v Request
i
tng ng. Gii thut pht
hin c m t y n gin kho st mi th t cp pht c th i vi cc qu
trnh cn li c hon thnh. So snh gii thut ny vi gii thut Banker.
1) Gi Work v Finish l cc vector c chiu di m v n tng ng. Khi to
Work:=Available. Cho i = 1, 2, ,n, nu Allocation
i
0, th Finish[i]:=
false; ngc li Finish[i]:= true.
2) Tm ch s i tha:
a) Finish[i] = false
b) Request
i
Work.
Nu khng c i no tha, di chuyn ti bc 4
3) Work:=Work + Allocation
i

Finish[i] := true
Di chuyn v bc 2.
4) Nu Finish[i] = false cho mt vi i, 1 i n th h thng ang trng thi
deadlock. Ngoi ra, nu Finish[i] = false th qu trnh P
i
b deadlock.
Gii thut ny yu cu phc tp mxn
2
pht hin h thng c trong trng
thi deadlock hay khng.
Cu hi t ra l ti sao chng ta tr li ti nguyn ca qu trnh P
i
(trong bc
3) ngay sau khi chng ta xc nh rng Request
i
Work (trong bc 2b). Chng ta
bit rng P
i
hin ti khng lin quan deadlock (v Request
i
Work). Do , chng ta
lc quan v khng nh rng P
i
s khng yu cu thm ti nguyn na hon thnh
cng vic ca n; do n s tr v tt c ti nguyn hin c cp pht ti h thng.
Nu gi nh ca chng ta khng ng, deadlock c th xy ra sao . Deadlock s
c pht hin ti thi im k tip m gii thut pht hin deadlock c np.
minh ho gii thut ny, chng ta xt h thng vi 5 qu trnh P
0
n P
4
v 3
loi ti nguyn A, B, C. Loi ti nguyn A c 7 th hin, loi ti nguyn B c 2 th
hin v loi ti nguyn C c 6 th hin. Gi s rng ti thi im T
0
, chng ta c trng
thi cp pht ti nguyn sau:
Allocation Request Available
A B C A B C A B C
P0 0 1 0 0 0 0 0 0 0
P1 2 0 0 2 0 2
P2 3 0 3 0 0 0
P3 2 1 1 1 0 0
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang 128
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

P4 0 0 2 0 0 2
Chng ta khng nh rng h thng khng trong trng thi deadlock. Tht vy,
nu chng ta thc thi gii thut, chng ta s tm ra th t <P
0
, P
2
, P
3
, P
1
, P
4
> s dn
n trong Finish[i] = true cho tt c i.
By gi gi s rng qu trnh P
2
thc hin yu cu thm th hin loi C. Ma trn
yu cu c hiu chnh nh sau:
Need
A B C
P0 0 0 0
P1 2 0 2
P2 0 0 1
P3 1 0 0
P4 0 0 2
Chng ta khng nh rng h thng by gi b deadlock. Mc d chng ta c
th i li ti nguyn c gi bi qu trnh P
0
, s lng ti nguyn sn dng khng
hon thnh cc yu cu ca cc qu trnh cn li. Do , deadlock tn ti v bao
gm cc qu trnh P
1
, P
2
, P
3
, P
4
.
VIII.3 S dng gii thut pht hin deadlock
Khi no th chng ta nn np gii thut pht hin deadlock? Cu tr li ph thuc
vo hai yu t:
1) Deadlock c kh nng xy ra thng xuyn nh th no?
2) Bao nhiu qu trnh s b nh hng bi deadlock khi n s ra?
Nu deadlock xy ra thng xuyn th gii thut pht hin nn c np ln
thng xuyn. Nhng ti nguyn c cp pht cc qu trnh b deadlock s rnh
cho n khi deadlock c th b ph v. Ngoi ra, s lng qu trnh lin quan trong
chu trnh deadlock c th tng ln.
Deadlock xy ra ch khi mt s qu trnh thc hin yu cu m khng c cp ti
nguyn tc th. Yu cu ny c th l yu cu cui hon thnh mt chui cc qu trnh
ang yu cu. Ngoi ra, chng ta c th np gii thut pht hin mi khi mt yu cu
cho vic cp pht khng th c cp tc th. Trong trng hp ny, chng ta khng
ch nh ngha tp hp cc qu trnh b deadlock, m cn xc nh qu trnh gy ra
deadlock. (Trong thc t, mi qu trnh trong sut qu trnh b deadlock l mt lin
kt trong chu trnh ca th ti nguyn, v th tt c chng gy ra deadlock). Nu c
nhiu loi ti nguyn khc nhau, mt yu cu c th gy chu trnh trong th ti
nguyn, mi chu trnh hon thnh bi yu cu mi nht v c gy ra bi mt qu
trnh c th xc nh.
D nhin, np gii thut pht hin deadlock cho mi yu cu c th gy ra mt
chi ph c th xem xt trong thi gian tnh ton. Mt thay i t t hn l np gii
thut ti thi im t thng xuyn hn- th d, mt ln mt gi hay bt c khi no
vic s dng CPU ri xung thp hn 40%. Nu gii thut pht hin deadlock c
np trong nhng thi im bt k, th c nhiu chu trnh trong th ti nguyn.
Chng ta khng th ni qu trnh no ca nhiu qu trnh b deadlock gy ra deadlock.


Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang 129
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

IX Phc hi deadlock
Khi gii thut pht hin xc nh rng deadlock tn ti, nhiu thay i tn ti.
Mt kh nng l thng bo ngi iu hnh rng deadlock xy ra v ngi iu
hnh gii quyt deadlock bng th cng. Mt kh nng khc l h thng t ng
phc hi. C hai tu chn cho vic ph v deadlock. Mt gii php n gin l hu b
mt hay nhiu qu trnh ph v vic tn ti chu trnh trong th cp pht ti
nguyn. Tu chn th hai l ly li mt s ti nguyn t mt hay nhiu qu trnh b
deadlock.
IX.1 Kt thc qu trnh
xa deadlock bng cch hy b qu trnh, chng ta dng mt trong hai phng
php. Trong c hai phng php, h thng ly li ti nguyn c cp pht i vi
qu trnh b kt thc.
Hu b tt c qu trnh b deadlock: phng php ny r rng s ph v chu
trnh deadlock, nhng chi ph cao; cc qu trnh ny c th tnh ton trong
thi gian di, v cc kt qu ca cc tnh ton tng phn ny phi b b i v
c th phi tnh li sau .
Hy b mt qu trnh ti thi im cho n khi chu trnh deadlock b
xa:phng php ny chu chi ph c th xem xt v sau khi mi qu trnh b
hy b, mt gii thut pht hin deadlock phi c np ln xc nh c
qu trnh no vn ang b deadlock.
Hy b qu trnh c th khng d. Nu mt qu trnh ang gia giai on cp
nht mt tp tin, kt thc n s tp tin trong trng thi khng ph hp. Tng
t, nu qu trnh ang gia giai on in d liu ra my in, h thng phi khi ng
li trng thi ng trc khi in cng vic tip theo.
Nu phng php kt thc mt phn c dng th vi mt tp hp cc qu
trnh deadlock c cho, chng ta phi xc nh qu trnh no (hay cc qu trnh no)
nn c kt thc trong s c gng ph v deadlock. Vic xc nh ny l mt
quyt nh chnh sch tng t nh cc vn lp thi biu CPU. Cu hi v tnh
kinh t l chng ta nn hy b qu trnh no th s kt thc ca qu trnh s chu
chi ph ti thiu. Tuy nhin, thut ng chi ph ti thiu l khng chnh xc. Nhiu yu
t c th xc nh qu trnh no c chn bao gm:
1) u tin ca qu trnh l g.
2) Qu trnh c tnh ton bao lu v bao lu na qu trnh s tnh ton trc
khi hon thnh tc v c ch nh ca n.
3) Bao nhiu v loi ti nguyn g qu trnh ang s dng.
4) Bao nhiu ti nguyn na qu trnh cn hon thnh
5) Bao nhiu qu trnh s cn c kt thc.
6) Qu trnh l giao tip hay dng b




Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang 130
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

IX.2 Ly li ti nguyn
xa deadlock s dng vic tr li ti nguyn, sau khi chng ta i mt s ti
nguyn t cc qu trnh v cho cc ti nguyn ny ti cc qu trnh khc cho n khi
chu trnh deadlock b ph v.
Nu vic i li c yu cu gii quyt deadlock th ba vn cn c xc
nh:
Chn nn nhn: nhng ti nguyn no v nhng qu trnh no b i li?
Trong khi kt thc qu trnh, chng ta phi xc nh th t i li ti
thiu chi ph. Cc yu t chi ph c th gm cc tham s nh s lng ti
nguyn mt qu trnh deadlock ang gi, v lng thi gian mt qu trnh
deadlock dng trong s thc thi ca n.
Tr li trng thi trc deadlock: Nu chng ta i li ti nguyn t mt
qu trnh, iu g nn c thc hin vi qu trnh ? R rng, n khng
th tip tc vic thc thi bnh thng; n ang b mt mt s ti nguyn
c yu cu. Chng ta phi phc hi qu trnh ti trng thi an ton v
khi ng li t trng thi gn nht trc .
Thng thng, rt kh xc nh trng thi g l an ton v th gii php n
gin nht l phc hi ton b: hy qu trnh v sau khi ng li n. Tuy nhin,
hu hiu hn phc hi qu trnh ch xa cn thit ph v deadlock. Ngoi ra,
phng php ny yu cu h thng gi nhiu thng tin hn v trng thi ca tt c cc
qu trnh ang chy.
i ti nguyn: chng ta m bo nh th no vic i ti nguyn khng xy
ra? Ngha l, chng ta c th m bo rng ti nguyn s khng lun b i li t cng
mt qu trnh.
Trong mt h thng vic chn nn nhn u da trn c s cc yu t chi ph,
n c th xy ra cng qu trnh lun c chn nh l nn nhn. Do , qu trnh ny
khng bao gi hon thnh tc v c ch nh ca n, mt trng hp i ti nguyn
cn c gii quyt trong bt k h thng thc t. R rng, chng ta phi m bo
mt qu trnh c th c chn nh mt nn nhn ch mt s ln xc nh (nh). Gii
php chung nht l bao gm s lng phc hi trong yu t chi ph.
X Tm tt
Trng thi deadlock xy ra khi hai hay nhiu qu trnh ang ch khng xc nh
mt s kin m c th c gy ra ch bi mt trong nhng qu trnh ang ch. V
nguyn tc, c ba phng php gii quyt deadlock:
S dng mt s giao thc ngn chn hay trnh deadlock, m bo rng
h thng s khng bao gi i vo trng thi deadlock.
Cho php h thng i vo trng thi deadlock, pht hin v sau phc hi.
B qua vn deadlock v gi v deadlock cha bao gi xy ra trong h
thng. Gii php ny l mt gii php c dng bi hu ht cc h iu
hnh bao gm UNIX.
Trng hp deadlock c th xy ra nu v ch nu bn iu kin cn xy ra
cng mt lc trong h thng: loi tr h tng, gi v ch cp thm ti nguyn,
khng i li ti nguyn, v tn ti chu trnh trong th cp pht ti nguyn. ngn
chn deadlock, chng ta m bo rng t nht mt iu kin cn khng bao gi xy ra.
Mt phng php trnh deadlock m t nghim ngt hn gii thut ngn chn
deadlock l c thng tin trc v mi qu trnh s ang dng ti nguyn nh th no.
Th d, gii thut Banker cn bit s lng ti a ca mi lp ti nguyn c th c
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang 131
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

yu cu bi mi qu trnh. S dng thng tin ny chng ta c th nh ngha gii thut
trnh deadlock.
Nu h thng khng thc hin mt giao thc m bo rng deadlock s
khng bao gi xy ra th lc pht hin v phc hi phi c thc hin. Gii
thut pht hin deadlock phi c np ln xc nh deadlock c th xy ra hay
khng. Nu deadlock c pht hin h thng phi phc hi bng cch kt thc mt
s qu trnh b deadlock hay i li ti nguyn t mt s qu trnh b deadlock.
Trong mt h thng m n chn cc nn nhn phv hi v trng thi trc
ch yu da trn c s yu t chi ph, vic i ti nguyn c th xy ra. Kt qu l qu
trnh c chn khng bao gi hon thnh tc v c ch nh ca n.

Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang 132
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

QUN L B NH
I Mc ch
Sau khi hc xong chng ny, ngi hc nm c nhng kin thc sau:
Hiu cc cch khc nhau qun l b nh
Hiu tip cn qun l b phn trang v phn on
Vn dng mt tip cn qun l b nh ph hp vi h thng xc nh
II Gii thiu
Trong chng ny chng ta s tho lun nhiu cch khc nhau qun l b
nh. Cc gii thut qun l b nh t tip cn my tr c bn (primitive bare-
machine) l chin lc phn trang v phn on. Mi tip cn c li im v nhc
ca chnh n. Chn phng php qun l b nh cho mt h thng xc nh ph
thuc vo nhiu yu t, c bit trn thit k phn cng ca h thng. Chng ta s
thy nhiu gii thut yu cu h tr phn cng mc d cc thit k gn y tch
hp phn cng v h iu hnh.
III t vn
B nh l trung tm iu hnh h thng my tnh hin i. B nh cha mt
mng ln cc t (words) hay cc bytes, mi phn t vi a ch ca chnh n. CPU ly
cc ch th t b nh da theo gi tr ca thanh m chng trnh. Cc ch th ny c
th gy vic np b sung cc t v lu tr ti cc a ch b nh xc nh.
III.1 Lin kt a ch
Thng thng, mt chng trnh nm trn a nh mt tp tin c th thc thi
dng nh phn. Chng trnh ny c mang vo trong b nh v c t trong mt
qu trnh n c thc thi. Ph thuc vo vic qun l b nh ang dng, qu trnh
c th c di chuyn gia a v b nh trong khi thc thi. Tp hp cc qu trnh
trn a ang ch c mang vo b nh thc thi hnh thnh mt hng i nhp
(input queue).
Th tc thng thng l chn mt trong nhng qu trnh trong hng i nhp v
np qu trnh vo trong b nh. Khi mt qu trnh c thc thi, n truy xut cc
ch th v d liu t b nh. Cui cng, mt qu trnh kt thc v khng gian b nh
ca n c xc nh l trng.
Hu ht cc h thng cho php mt qu trnh ngi dng nm bt c phn no
ca b nh vt l. Do , mc d khng gian a ch ca my tnh bt u ti 00000,
nhng a ch u tin ca qu trnh ngi dng khng cn ti 00000. Sp xp ny
nh hng n a ch m chng trnh ngi dng c th dng. Trong hu ht cc
trng hp, mt chng trnh ngi dng s i qua mt s bc- mt vi trong chng
c th l tu chn-trc khi c thc thi (hnh VII-1). Cc a ch c th c hin
din trong nhng cch khc trong nhng bc ny. Cc a ch trong chng trnh
ngun thng l nhng danh biu. Mt trnh bin dch s lin kt cc a ch danh
biu ti cc a ch c th ti nh v (chng hn nh 14 bytes t v tr bt u ca
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang 137
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

module ny). B son tho lin kt hay b np s lin kt cc a ch c th ti nh v
ti a ch tuyt i (chng hn 74014). Mi lin kt l mt nh x t mt khng gian
a ch ny ti mt khng gian a ch khc
.

Hnh 0-1 X l nhiu bc ca chng trnh ngi dng

V truyn thng, lin kt cc ch th v d liu ti cc a ch c th c thc
hin ti bt c bc no theo cch sau y:
Thi gian bin dch: nu ti thi im bin dch c th bit qu trnh nm
u trong b nh th m tuyt i c th c pht sinh. Th d, nu bit
trc qu trnh ngi dng nm ti v tr R th m trnh bin dch c
pht sinh s bt u ti v tr v m rng t . Nu ti thi im sau
, v tr bt u thay i th s cn bin dch li m ny. Cc chng trnh
nh dng .COM ca MS-DOS l m tuyt i gii hn ti thi im bin
dch.
Thi im np: nu ti thi im bin dch cha bit ni qu trnh s nm
u trong b nh th trnh bin dch phi pht sinh m c th ti nh v.
Trong trng hp ny, lin kt cui cng c tr hon cho ti thi im
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang 138
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

np. Nu a ch bt u thay i, chng ta ch cn np li m ngi dng
hp nht gi tr c thay i ny.
Thi gian thc thi: nu qu trnh c th c di chuyn trong thi gian
thc thi t mt phn on b nh ny ti mt phn on b nh khc th
vic lin kt phi b tr hon cho ti thi gian chy. Phn cng c bit
phi sn dng cho c ch ny thc hin cng vic. Hu ht nhng h
iu hnh ny dng phng php ny.
Phn ch yu ca chng ny c dnh ht hin th cc lin kt khc nhau
c th c ci t hu hiu trong mt h thng my tnh v tho lun s h tr phn
cng tng ng.
III.2 Khng gian a ch lun l v khng gian a ch vt l
Mt a ch c to ra bi CPU thng c gi l a ch lun l (logical
address), ngc li mt a ch c xem bi n v b nh-ngha l, mt a ch
c np vo thanh ghi a ch b nh-thng c gi l a ch vt l (physical
address).
Cc phng php lin kt a ch thi im bin dch v thi im np to ra
a ch lun l v a ch vt l xc nh. Tuy nhin, c ch lin kt a ch ti thi
im thc thi dn n s khc nhau gia a ch lun l v a ch vt l. Trong
trng hp ny, chng ta thng gi a ch lun l nh l a ch o (virtual
address). Tp hp tt c a ch lun l c to ra bi chng trnh l khng gian
a ch lun l ; tp hp tt c a ch vt l tng ng a ch lun l ny l khng
gian a ch vt l. Do , trong c ch lin kt a ch ti thi im thc thi, khng
gian a ch lun l v khng gian a ch vt l l khc nhau.
Vic nh x ti thi im thc thi t a ch o ti a ch vt l c thc
hin bi mt thit b phn cng c gi l b qun l b nh MMU (memory-
management unit). Chng ta c th chn gia nhng phng php khc nhau thc
hin vic nh x.
Nh c hin th trong hnh VII-2 trn, phng php ny yu cu s h tr
phn cng. Thanh ghi nn by gi c gi l thanh ghi ti nh v. Gi tr trong
thanh ghi ti nh v c cng vo mi a ch c to ra bi qu trnh ngi dng
ti thi im n c gi ti b nh. Th d, nu gi tr nn l 14000, th vic c gng
bi ngi dng xc nh v tr 0 c t ng ti nh v ti v tr 14000; mt truy
xut ti a ch 346 c nh x ti v tr 14346.
Hnh 0-2 nh v t ng dng thanh ghi ti nh v

Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang 139
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

III.3 Np ng
Trong tho lun ca chng ta gn y, ton b chng trnh v d liu ca
mt qu trnh phi trong b nh vt l qu trnh thc thi. Kch thc ca qu
trnh b gii hn bi kch thc ca b nh vt l. t c vic s dng khng
gian b nh tt hn, chng ta c th s dng np ng (dynamic loading). Vi np
ng, mt th tc khng c np cho ti khi n c gi. Tt c th tc c gi
trn a trong nh dng np c th ti nh v. Chng trnh chnh c np vo b
nh v c thc thi. Khi mt th tc cn gi mt th tc khc, th tc gi trc ht
kim tra thy th tc khc c np hay khng. Nu khng, b np lin kt c th
ti nh v c gi np th tc mong mun vo b nh v cp nht cc bng a
ch ca chng trnh phn nh thay i ny. Sau , iu khin ny c truyn ti
th tc mi c np.
Thun li ca np ng l mt th tc khng c dng th khng bao
gi c np. Phng php ny c bit c ch khi lng ln m c yu cu qun
l cc trng hp xy ra khng thng xuyn, chng hn nh cc th tc li. Trong
trng hp ny, mc d kch thc ton b chng trnh c th ln, nhng phn c
dng (v do c np) c th nh hn nhiu.
Np ng khng yu cu h tr c bit t h iu hnh. Nhim v ca ngi
dng l thit k cc chng trnh ca h t c s thun li . Tuy nhin, h
iu hnh c th gip ngi lp trnh bng cch cung cp cc th tc th vin ci
t np t ng.
III.4 Lin kt ng v cc th vin c chia s
Trong hnh VII-1 cng hin th th vin c lin kt ng. Mt s h iu
hnh h tr ch lin kt tnh m trong cc th vin ngn ng h thng c i x
nh bt k module i tng khc v c kt hp bi b np thnh hnh nh chng
trnh nh phn. Khi nim lin kt ng l tng t nh khi nim np ng. Lin kt
b tr hon hn l vic np b tr hon cho ti thi im thc thi. c im ny thng
c dng vi cc th vin h thng nh cc th vin chng trnh con ca cc ngn
ng. Khng c tin ch ny, tt c chng trnh trn mt h thng cn c mt bn sao
th vin ca ngn ng ca chng (hay t nht th vin c tham chiu bi chng
trnh) c cha trong hnh nh c th thc thi. Yu cu ny lm lng ph c khng
gian a v b nh chnh. Vi lin kt ng, mt stub l mt on m hin th cch
nh v chng trnh con trong th vin c tr trong b nh hay cch np th vin nu
chng trnh con cha hin din.
Khi stub ny c thc thi, n kim tra thy chng trnh con c yu cu
trong b nh hay cha. Nu cha, chng trnh ny s np chng trnh con vo
trong b nh. D l cch no, stub thay th chnh n vi a ch ca chng trnh con
v thc thi chng trnh con . Do , thi im tip theo phn on m t c,
chng trnh con trong th vin c thc thi trc tip m khng gy ra bt k chi ph
cho vic lin kt ng. Di c ch ny, tt c cc qu trnh s dng mt th vin
ngn ng thc thi ch mt bn sao ca m th vin.



Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang 140
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

III.5 Ph lp
cho php mt qu trnh ln hn lng b nh c cp pht cho n, chng
ta s dng c ch ph lp (overlays). tng ph lp l gi trong b nh nhng ch
th v d liu c yu cu ti bt k thi im no c cho. Khi nhng ch th
c yu cu, chng c np vo khng gian c chim trc bi cc ch th
m chng khng cn cn na.
Th d, xt trnh dch hp ng hai ln (two-pass assembler). Trong sut ln th
1, n xy dng bng danh biu; sau , trong ln th 2, n to ra m my. Chng ta
c th phn chia trnh dch hp ng thnh m ln 1, m ln 2, bng danh biu, v
nhng th tc h tr chung c dng bi ln 1 v ln 2. Gi s kch thc ca cc
thnh phn ny nh sau:
Ln 1 70 KB
Ln 2 80 KB
Bng danh biu 20 KB
Cc th tc chung 30 KB
np mi th mt ln, chng ta cn 200KB b nh. Nu ch c 150KB sn
c, chng ta khng th chy qu trnh ca chng ta. Tuy nhin, ch rng ln 1 v ln
2 khng cn trong b nh cng mt lc. Do , chng ta nh ngha hai ph lp.
Ph lp A l bng danh biu, cc th tc chung, ln 1, v ph lp B l bng biu
tng, cc th tc chung v ln 2.
Chng ta b sung trnh iu khin ph lp (10 KB) v bt u vi ph lp A
trong b nh. Khi chng ta kt thc ln 1, chng ta nhy ti trnh iu khin ph lp,
trnh iu khin ny s c ph lp B vo trong b nh, vit chng ln ph lp B v
sau chuyn iu khin ti ln 2. Ph lp A ch cn 120KB, ngc li ph lp B cn
130KB (hnh VII-3). By gi chng ta c th chy trnh hp ng trong 150KB b
nh. N s np nhanh hn v rt t d liu cn c chuyn trc khi vic thc thi bt
u. Tuy nhin, n s chy chm hn do nhp/xut ph c m m cho ph lp A qua
m cho ph lp B.
Hnh 0-3- Cc ph lp cho mt b hp ng dch hai ln

Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang 141
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

M cho ph lp A v m cho ph lp B c gi trn a nh nhng hnh nh
b nh tuyt i, v c c bi trnh iu khin ph lp khi cn. Ti nh v c
bit v cc gii thut lin kt c yu cu xy dng cc ph lp.
IV Hon v
Mt qu trnh cn trong b nh c thc thi. Tuy nhin, mt qu trnh c
th c hon v (swapped) tm thi khi b nh ti vng lu tr ph backing store,
sau mang tr li b nh vic thc thi c tip tc. Th d, gi s mt mi
trng a chng vi gii thut lp thi biu CPU round-robin. Khi nh mc thi
gian ht, b qun l b nh s bt u hon v ra (swap out) vng lu tr ph qu
trnh va mi kt thc v hon v vo (swap in) mt qu trnh khc ti khng gian b
nh c trng (hnh VII-4). Do , b nh thi biu CPU s cp nhng phn thi
gian ti nhng qu trnh khc trong b nh. L tng, b qun l s hon v cc qu
trnh nhanh mt vi qu trnh s trong b nh, sn sng thc thi, khi b nh
thi CPU mun nh thi li CPU. nh mc cng phi ln ph hp lng tnh
ton c thc hin gia cc hon v.

Hnh 0-4- Hon v hai qu trnh dng a nh l backing store
Mt bin th ca chnh sch hon v ny c dng cho cc gii thut nh
thi trn c s u tin. Nu mt qu trnh c u tin cao hn n v mun ph v,
b qun l b nh c th hon v ra qu trnh c u tin thp hn m n c th
np v thc thi qu trnh c u tin cao hn. Khi qu trnh c u tin cao hn
kt thc, qu trnh c u tin thp hn c th c hon v vo tr li v c tip
tc. Bin th ca hon v ny thng c gi l cun ra (roll out), v cun vo (roll
in).
Thng thng, mt qu trnh c hon v ra s c hon v tr li vo cng
khng gian b nh m n chim trc . S gii hn ny c sai khin bi
phng php lin kt a ch. Nu lin kt a ch c thc hin ti thi im hp
dch hay np th qu trnh khng th c di chuyn vo khng gian b nh khc v
cc a ch vt l c tnh trong thi gian thc thi.
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang 142
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

Hon v yu cu mt vng lu tr ph (backing store). Vng lu tr ph ny
thng l mt a tc cao. N phi ln cha cc bn sao ca tt c hnh nh
b nh cho tt c ngi dng, v n phi cung cp truy xut trc tip ti cc hnh nh
b nh ny. H thng ny duy tr mt hng i sn sng cha tt c qu trnh m cc
hnh nh b nh ca n trong vng lu tr ph hay trong b nh v sn sng
thc thi. Bt c khi no b nh thi CPU quyt nh thc thi mt qu trnh, n gi b
phn pht (dispacher). B phn pht kim tra thy qu trnh tip theo trong hng
i trong b nh khng. Nu khng, v khng c vng b nh trng, b phn pht
hon v ra mt qu trnh hin hnh trong b nh v hon v vo mt qu trnh mong
mun. Sau , n np li cc thanh ghi v chuyn iu khin ti qu trnh c chn.
Trong cc h hon v, thi gian chuyn i gia cc tc v cn c quan tm. Mi
qu trnh cn c phn chia mt khong thi gian s dng CPU ln khng
thy r s chm tr do cc thao tc hon v gy ra. Nu khng, h thng s dng phn
ln thi gian hon v cc qu trnh vo ra b nh chnh, CPU nh vy s khng s
dng hiu qu.
Hon v cng b rng buc bi yu t khc. Nu chng ta mun hon v mt
qu trnh, chng ta phi m bo rng n hon ton ri. Quan tm c bit l vic ch
nhp/xut. Mt qu trnh c th ang ch thao tc nhp/xut khi chng ta hon v qu
trnh ti ni trng b nh ca n. Tuy nhin, nu nhp/xut ang truy xut khng
ng b b nh ngi dng cho nhp/xut vng m, th qu trnh khng th c
hon v. Gi s rng thao tc nhp/xut ang xp hng ch v thit b ang bn. Sau
, nu chng ta hon v qu trnh P
1
ra v hon v P
2
vo th thao tc nhp/xut c
th c gng s dng b nh hin thuc v qu trnh P
2
. Hai gii php ch yu cho qu
trnh ny l khng bao gi hon v qu trnh ang ch nhp/xut hay thc thi cc thao
tc nhp/xut ch trong vng m ca h iu hnh. Chuyn gia cc vng m ca
h iu hnh v b nh qu trnh th ch xy ra khi qu trnh c hon v vo.
V Cp pht b nh lin tc
B nh chnh phi cung cp cho c h iu hnh v cc qu trnh ngi dng
khc nhau. Do , chng ta cn cp pht nhng phn khc nhau ca b nh chnh
trong nhng cch hiu qu nht c th. Phn ny chng ta gii thch mt phng php
thng dng, cp pht b nh lin tc.
B nh thng c phn chia thnh hai phn khu, mt cho h iu hnh nh
v v mt cho cc qu trnh ngi dng. Chng ta c th t h iu hnh b nh
cao hay b nh thp. Yu t quan trng nh hng ti quyt nh ny l v tr ca
vector ngt. V vector ngt thng trong b nh thp nn cc lp trnh vin thng
cng t h iu hnh trong b nh thp. Do , trong gio trnh ny chng ta s tho
lun ch trng hp h iu hnh nh v trong b nh thp. Pht trin ca trng hp
khc l tng t.
Chng ta thng mun nhiu qu trnh ngi dng nh v trong b nh ti
cng thi im. Do , chng ta cn xem xt cch cp pht b nh trng ti nhng
qu trnh trong hng i nhp ang ch c mang vo b nh. Trong cp pht b
nh lin tc, mi qu trnh c cha trong mt phn b nh lin tc.
V.1 Bo v b nh
Trc khi tho lun cp pht b nh chng ta phi tho lun vn bo v b
nh-bo v h iu hnh t qu trnh ngi dng, v bo v cc qu trnh t mt qu
trnh khc. Chng ta c th cung cp bo v ny bng cch dng thanh ghi ti nh v.
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang 143
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

Thanh ghi ti nh v cha gi tr a ch vt l nh nht; thanh ghi gii hn cha dy
cc nh ch lun l (th d: ti nh v = 100040 v gii hn = 74600). Vi cc thanh
ghi ti nh v v gii hn, mi a ch lun l phi t hn thanh ghi gii hn; MMU
nh x a ch lun l ng bng cch cng gi tr trong thanh ghi ti nh v. a ch
c ti nh v ny c gi ti b nh (nh hnh VII-5).

Hnh 0-5 H tr phn cng cho cc thanh ghi ti nh v v cc gii hn
Khi b nh thi CPU chn mt qu trnh thc thi, b phn pht np thanh ghi
ti nh v v gii hn vi cc gi tr ng nh mt phn ca chuyn i ng cnh. V
mi a ch c pht sinh bi CPU c kim tra da trn cc thanh ghi ny, chng
ta c th bo v h iu hnh v cc chng trnh v d liu ngi dng khc t vic
sa i bi qu trnh ang chy ny.
C ch dng thanh ghi ti nh v cung cp mt cch hiu qu cho php kch
thc h iu hnh thay i ng. Kh nng mm do ny c th mong mun trong
nhiu trng hp. Th d, h iu hnh cha m v khng gian vng m cho trnh
iu khin thit b. Nu mt trnh iu khin thit b (hay dch v h iu hnh khc)
khng c dng ph bin, n khng mun gi m v d liu trong b nh, khi
chng ta c th dng khng gian cho mc ch khc. Nhng m nh th thng
c gi l m h iu hnh tm thi (transient operating system code); n n v i
khi c yu cu. Do , dng m ny thay i kch thc ca h iu hnh trong khi
thc thi chng trnh.











Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang 144
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

V.2 H thng n chng
Trong phng php ny b nh c chia s cho h iu hnh v mt chng
trnh duy nht ca ngi s dng. Ti mt thi im, mt phn ca b nh s do h
iu hnh chim gi, phn cn li thuc v qu trnh ngi dng duy nht trong h
thng (Hnh VII-6). Qu trnh ny c ton quyn s dng b nh dnh cho n.


User process

Operating
system
0xFFF
0

Hnh 0-6 T chc b nh trong h thng n chng
Khi b nh c t chc theo cch thc ny, ch c th x l mt chng
trnh ti mt thi im. Quan st hot ng ca cc qu trnh, c th nhn thy rt
nhiu tin trnh tri qua phn ln thi gian ch cc thao tc nhp/xut hon thnh.
Trong sut thi gian ny, CPU trng thi ri. Trong trng hp nh th, h thng
n chng khng cho php s dng hiu qu CPU. Ngoi ra, s n chng khng
cho php nhiu ngi s dng lm vic ng thi theo c ch tng tc. nng cao
hiu sut s dng CPU, cn cho php ch a chng m trong cc qu trnh
chia s CPU vi nhau hot ng ng hnh.
V.3 H thng a chng vi phn khu c nh
Mt trong nhng phng php n gin nht cp pht b nh l chia b
nh thnh nhng phn khu c kch thc c nh. Mi phn khu c th cha chnh
xc mt qu trnh. Do , cp a chng c gii hn bi s lng phn khu.
Trong phng php a phn khu, khi mt phn khu rnh, mt qu trnh c chn t
hng i nhp v c np vo phn khu trng. Khi qu trnh kt thc, phn khu tr
nn sn dng cho mt qu trnh khc. C hai tip cn t chc hng i:
S dng nhiu hng i: mi phn khu s c mt hng i tng ng
(hnh VII-7a). Khi mt qu trnh mi c to ra, n c a vo hng
i ca phn khu c kch thc nh nht tho nhu cu cha n. Cch t
chc ny c khuyt im trong trng hp cc hng i ca mt s phn
khu trng trong khi cc hng i ca cc phn khu khc li y, buc cc
qu trnh trong nhng hng i ny phi ch c cp pht b nh.
S dng mt hng i: tt c cc qu trnh c t trong hng i duy
nht (hnh VII-7b). Khi c mt phn khu trng, qu trnh u tin trong
hng i c kch thc ph hp s c t vo phn khu v cho x l.
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang 145
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0


a. S dng nhiu hng i b. S dng mt hng i

Hnh 0-7 Cp pht phn khu c kch thc c nh

Khi s dng gii thut ny ngi ta mun trnh s hao ph mt phn khu ln
cho mt cng vic nh, nhng li xy ra bt bnh ng, bt li i vi cc cng vic
nh. gii quyt ngi ta thm vo qui lut l mt cng vic s khng b b qua
na nu n b b qua k ln qui nh. Mi ln mt cng vic b b qua n c
nh du mt im. Khi t c s im qui nh, n s khng b b qua na, s
c np vo v thc hin mc du c th trn mt phn khu ln hn.
Phng php ny ban u c s dng bi h iu hnh IBM OS/360, n
c gi l MFT (Multiprogramming with Fixed number of Tasks). Hin nay n
khng cn s dng na.
V.4 H thng a chng vi phn khu ng
C ch ny l tng qut ca c ch phn khu c nh. N c dng ch yu
trong mi trng x l theo l. Nhiu tng c trnh by y cng c th p
dng ti mi trng chia thi m trong phn on thun c dng cho vic qun
l b nh.
H iu hnh gi mt bng hin th nhng phn no ca b nh l sn dng v
phn no ang bn. Ban u, tt c b nh l sn dng cho qu trnh ngi dng, v
c xem nh mt khi ln b nh sn dng hay mt l. Khi mt qu trnh n v
cn b nh, chng ta tm kim mt l trng ln cho qu trnh ny. Nu chng ta
tm thy, chng ta cp pht ch phn b nh nhiu bng lng c yu cu, phn cn
li sn dng tho mn nhng yu cu tng lai (Hnh VII-8).






Partition 3
200K
600K
400K
Operating
system

Partition 1

Partition 4
Partition 3

Partition 4

Partition 1
Operating
system
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang 146
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0





Thi gian


D
C
B
OS

OS

B
C
A
OS

B

C
B
OS
A

D

C
OS

D

C
E
OS

A
OS

Hnh VIII-8 Cp pht cc phn khu c kch thc thay i

Khi cc qu trnh i vo h thng, chng c t vo hng i nhp. H iu
hnh xem xt yu cu b nh ca mi qu trnh v lng khng gian b nh sn c
xc nh cc qu trnh no c cp pht b nh. Khi mt qu trnh c cp khng
gian, n c np vo b nh v sau n c th cnh tranh CPU. Khi mt qu trnh
kt thc, n gii phng b nh ca n, sau h iu hnh c th t mt qu trnh
khc t hng i nhp.
Ti bt c thi im c cho, chng ta c mt danh sch kch thc khi
trng v hng i nhp. H iu hnh c th xp hng i nhp da theo gii thut
nh thi. B nh c cp pht ti qu trnh cho n khi cc yu cu b nh ca qu
trnh k tip khng th c tho; khng c khi b nh trng (hay l) ln qun
l qu trnh . Sau , h iu hnh c th ch cho n khi khi ln sn dng hay
n c th di chuyn xung hng i nhp xem cc yu cu b nh nh hn ca cc
qu trnh khc c th c tho hay khng.
Thng thng, mt tp hp cc l c kch thc khc nhau c phn tn
khp b nh ti bt c thi im c cho. Khi mt qu trnh n v yu cu b nh,
h thng tm tp hp ny mt l trng ln cho qu trnh ny. Nu l trng qu ln,
n c chia lm hai: mt phn c cp ti qu trnh n; phn cn li c tr v
tp hp cc l. Nu l mi nm k vi cc l khc, cc l nm k ny c gom li
to thnh mt l ln hn. Ti thi im ny, h thng cn kim tra c qu trnh no
ang ch b nh v b nh trng mi hay b nh va c kt hp li c th tho
yu cu ca bt c qu trnh ang ch ny khng.
Th tc ny l mt trng hp c bit ca vn cp pht lu tr ng l lm
cch no tho mn mt yu cu c kch thc n t danh sch l trng. C hai gii
php ch yu cho vn ny.

1) Qun l bng bn bit: b nh c chia thnh cc n v cp pht, mi
n v c nh x ti mt bit trong bn bit (Hnh VII-9). Gi tr bit ny
xc nh trng thi ca n v b nh : 0 ang t do, 1 c cp pht.
Khi cn np mt qu trnh c kch thc k n v, h thng s tm trong bn
bit mt dy k bit c gi tr 0.
Kch thc ca n v cp pht l vn ln trong thit k. Nu kch thc n
v cp pht nh s lm tng kch thc ca bn bit. Ngc l, nu kch thc n
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang 147
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

v cp pht ln c th gy hao ph cho n v cp pht sau cng. y l gii php n
gin nhng thc hin chm nn t c dng.

11111000
11111111
11001111
11111000
A B C D E
b
a
)
)

B nh c 5 qu trnh v 3 l trng
Bn bit tng ng

Hnh 0-9 Qun l b nh bng bn bit

2) Qun l bng danh sch lin kt: dng mt danh sch lin kt qun l cc
phn on b nh cp pht v phn on t do, mt phn on c th l
mt qu trnh hay mt vng nh trng gia hai qu trnh. Danh sch lin kt
gm nhiu mc t lin tip. Mi mc t gm 1 bit u xc nh phn on
l l trng (H) hay mt qu trnh (P), sau l 3 t ch a ch bt u,
chiu di v ch im ti mc k tip. Vic sp xp cc phn on theo a ch
hay theo kch thc tu thuc vo gii thut qun l b nh. S qun l
bng danh sch lin kt tng ng vi s qun l bng bn bit c
minh ho trong hnh VII-10.
3)
Hnh 0-10 Qun l b nh bng danh sch lin kt

Tp hp cc l trng c tm thy xc nh l no l tt nht cp pht.
Cc chin lc first-fit, best-fit, worst-fit l nhng chin lc ph bin nht c
dng chn mt l trng t tp hp cc l trng.
First-fit: cp pht l trng u tin ln. Tm kim c th bt u ti u
tp hp cc l trng hay ti im kt thc ca tm kim first-fit trc .
Chng ta dng tm kim ngay khi chng ta tm thy mt l trng ln.
Best-fit: cp pht l trng nh nht ln. Chng ta phi tm ton b danh
sch, tr khi danh sch c xp th t theo kch thc. Chin lc ny
to ra l trng nh nht cn tha li.
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang 148
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

Worst-fit: cp pht l trng ln nht. Chng ta phi tm ton danh sch tr
khi n c xp theo th t kch thc. Chin lc ny to ra l trng cn
li ln nht m c th c ch hn l trng nh t tip cn best-fit.
Cc m phng hin th rng c first-fit v best-fit l tt hn worst-fit v vic
gim thi gian v s dng lu tr. Gia first-fit v best-fit khng th xc nh r
chin lc no tt hn v s dng lu tr, nhng first-fit c tc nhanh hn.
Tuy nhin, cc gii thut ny gp phi vn phn mnh ngoi (external
fragmentation). Khi cc qu trnh c np v c xo khi b nh, khng gian b
nh trng b phn r thnh nhng mnh nh. Phn mnh ngoi tn ti khi tng khng
gian b nh tho mn mt yu cu, nhng n khng lin tc; vng lu tr b
phn mnh thnh mt s lng ln cc l nh. Vn phn mnh ny c th rt ln.
Trong trng hp xu nht, chng c th c mt khi b nh trng nm gia mi hai
qu trnh. Nu tt c b nh ny nm trong mt khi trng ln, chng ta c th chy
nhiu qu trnh hn.
Chn la first-fit so vi best-fit c th nh hng ti lng phn mnh. (First-
fit l tt hn i vi mt s h thng, ngc li best fit l tt hn cho mt s h thng
khc). Mt yu t khc l phn cui ca khi trng no c cp pht. (phn cn d
no-phn trn nh, hay phn di y?). Vn khng do gii thut no c dng
m do phn mnh ngoi.
V.5 Qun l b nh vi h thng bn thn
Nh ta thy trong phn trc, vic qun l cc l hng trn nhng bng lit
k c sp xp theo kch thc lm cho vic cp pht b nh rt nhanh, nhng li
lm chm cho vic ngng cp pht bi v ta phi ch n cc lng ging. H thng
bn thn (Buddy System) l mt gii thut qun l b nh tn dng thun li ca
vic my tnh dng nhng s nh phn cho vic nh a ch tng tc kt hp
nhng l hng st nhau khi mt qu trnh hon thnh hoc c hon v ra ngoi.
Vi phng php ny, b qun l b nh s c mt bng lit k nhng khi
cn t do c kch thc 1, 2, 4, 16...bytes n kch thc ca b nh, tc l c kch
thc bng ly tha ca 2. Khi c mt qu trnh cn cp pht b nh, mt l hng c
kch thc bng lu tha ca 2 cha qu trnh s c cp pht. Nu khng c l
hng yu cu, cc l hng s c phn i cho n khi c c l hng cn thit.
Khi mt qu trnh chm dt, cc l hng k nhau c kch thc bng nhau s c
nhp li to thnh l hng ln hn. Do , gii thut ny c gi l h thng bn
thn.
Th du: vi b nh 1M, cn phi c 21 bng lit k nh th sp t 1 bytes (2
0
)
n 1 byte (2
20
). Khi u ton b b nh cn t do v bng lit k 1M c mt mc t
c nht cha ng mt l hng 1M, tt c cc bng lit k khc u rng. Cu hnh
b nh lc khi u c ch ra trong hnh VII-11.

Memory

0

128 K 256 K 384 K 512K 640 K 768 K 896 K 1M
Initially 1 Hole
request 70 A 128 256 512 3
request 35 A B 64 256 512 3
request 80 A B 64 C 128 512 3
return A 128 B 64 C 128 512 4
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang 149
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

request 60 128 B D C 128 512 4
return B 128 64 D C 128 512 4
return D 256 C 128 512 3
return C 1024 1

Hnh 0-11H thng bn thn vi kch thc 1M

By gi chng ta hy xem cch h thng buddy lm vic khi mt qu trnh
70K c hon v vo b nh trng 1M. Do nhng l hng ch c th c kch thc l
ly tha ca 2, 128K s c yu cu, bi v chnh l ly tha nh nht ca 2
ln. Khng c khi 128K sn, cng khng c cc khi 256K v 512K. V vy khi
1M s c chia lm hai khi 512K, c gi l nhng bn thn; mt ti a ch 0 v
mt ti a ch 512K. Sau khi ti a ch thp hn, chnh l khi ti 0 li c
phn lm hai khi bn thn 256K, mt ti 0 v mt ti 256K. Ci thp hn ca chng
li c phn lm hai khi 128K, v khi ti 0, nh du l A trong hnh c cp
pht cho qu trnh.
K n, mt qu trnh 35K c hon v vo. Khi ta cn khi 64K, nhng
cng khng c sn, v th phi phn phi khi 128K thnh hai khi bn thn 64K, mt
ti a ch 128K, mt ti 192K. Khi ti 128K c cp cho qu trnh, trong hnh l B.
Yu cu th ba l 80K.
By gi ta hy xem nhng g xy ra khi mt khi c tr li. Gi s ti thi
im ny khi 128K (m ch dng c 70K) c t do. Khi khi 128K s c
a vo bng t do. By gi cn mt khi 60K. Sau khi kim tra, khi 64K ti 192K
c cp pht v n c nh du l C.
By gi khi B c tr li. Ti thi im ny c hai khi 128K t do nhng
chng khng c kt hp li. Ch rng ngay c khi khi 128K ti 0 c phn ra
lm 2, khi ti 9 c dng v khi ti 84K cn t do, s kt hp cng khng xy ra.
Khi D c tr li, s c s kt hp li thnh khi 256K ti 0. Cui cng, khi C c
tr li, s c kt hp to thnh 1 l hng 1M nh ban u.
H thng bn thn c s thun li so vi nhng gii thut cng sp xp theo
kch thc ca khi. S thun li ny l khi c mt khi 2
k
bytes t do, b qun l b
nh ch cn tm trong bng lit k l hng c kch thc 2
k
xem chng c kh nng
kt hp c hay khng. Vi nhng gii thut khc m trong cho php cc khi b
nh c phn chia mt cch ty , vic tm kim phi din ra trn tt c cc bng lit
k. Do d, h thng bn thn lm vic nhanh hn.
ng tic, n li cc k km hiu qu trong vic s dng b nh. Mt qu
trnh 35K phi c cp pht n 64K, hao ph n 29K. S hao ph ny c gi l
s phn mnh trong (internal fragmentation), bi v phn b nh hao ph nm bn
trong on c cp pht. Cn trong cc phn trc ta thy nhng l hng gia cc
on, nhng khng c s hao ph bn trong cc on, do kiu ny c coi l s
phn mnh ngoi.





Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang 150
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

V.6 Phn mnh

Phn mnh b nh c th l phn mnh trong hoc phn mnh ngoi. Xt c
ch cp pht nhiu phn khu vi mt l trng c kch thc 18,464 bytes. Gi s rng
qu trnh tip theo yu cu 18,462 bytes. Nu chng ta cp pht chnh xc khi c
yu cu, chng ta li mt l trng c kch thc 2 bytes. Chi ph gi vt ca l
ny s ln hn kch thc ca l trng. Tip cn thng thng l chia b nh vt l
thnh nhng khi c kch thc c nh, v cp pht b nh da theo n v ca kch
thc khi. Vi tip cn ny, b nh c cp pht ti mt qu trnh c th l ln hn
mt cht so vi khi c yu cu. S chnh lnh gia hai s ny l phn mnh
trong-b nh b phn mnh trong i vi mt phn khu th khng th c dng.
Mt gii php i vi phn mnh ngoi l kt li thnh khi (compaction).
Mc tiu l di chuyn ni dung b nh t tt c b nh trng vi nhau trong mt
khi ln. Kt khi khng phi lun thc hin c. Nu vic ti nh v l tnh v
c thc hin ti thi im hp dch v np th vic kt khi l khng th thc hin
c. Kt khi ch c th thc hin c ch nu ti nh v l ng v c thc hin
ti thi im thc thi. Nu a ch c ti nh v ng, ti nh v yu cu ch di
chuyn chng trnh v d liu, sau thay i thanh ghi nn phn nh a ch nn
mi. Khi kt khi l c th, chng ta phi xc nh chi ph ca n. Gii thut kt khi
n gin nht l di chuyn tt c qu trnh ti cui b nh; tt c l trng di chuyn
theo hng ngc li, to ra mt l trng ln ca b nh sn dng. C ch ny c th
t.
Mt gii php khc cho vn phn mnh ngoi l cho php khng gian a
ch lun l ca mt qu trnh l khng lin tc, do cho php mt qu trnh c cp
pht b nh vt l bt c u sau khi sn dng. Hai k thut b tr t gii php
ny l phn trang v phn on.
VI Cp pht khng lin tc
VI.1 Phn trang
Phn trang l c ch qun l b nh cho php khng gian a ch vt l ca qu
trnh l khng k nhau. Phn trang trnh vn t va kht nhm b nh c kch
thc thay i vo vng lu tr ph (backing store) m hu ht cc c ch qun l b
nh trc gp phi. Khi phn on m v d liu nm trong b nh c hon v
ra, khng gian phi c tm thy trn vng lu tr ph. Vn phn mnh c tho
lun trong s kt ni vi b nh chnh cng thng dng nh vi vng lu tr ph,
ngoi tr truy xut thp hn nhiu, v th kt khi l khng th. V li im ca n so
vi cc phng php trc nn phn trang trong nhng dng khc nhau c dng
ph bin trong hu ht cc h iu hnh.
V truyn thng, h tr phn trang c qun l bi phn cng. Tuy nhin,
nhng thit k gn y ci t phn trang bng cch tch hp cht ch phn cng v
h iu hnh, c bit trn cc b vi x l 64-bit.
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang 151
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

VI.1.1 Phng php c bn


Hnh 0-12 Phn cng phn trang

B nh vt l c chia thnh cc khi c kch thc c nh c gi l cc
khung (frames). B nh lun l cng c chia thnh cc khi c cng kch thc
c gi l cc trang (pages). Khi mt qu trnh c thc thi, cc trang ca n c
np vo cc khung b nh sn dng t vng lu tr ph. Vng lu tr ph c chia
thnh cc khi c kch thc c nh v c cng kch thc nh cc khung b nh.
H tr phn cng cho phn trang c hin th trong hnh VII-12. Mi a ch
c to ra bi CPU c chia thnh hai phn: s trang (p) v di trang (d). S
trang c dng nh ch mc vo bng trang. Bng trang cha a ch nn ca mi
trang trong b nh vt l. a ch nn ny c kt hp vi di trang nh
ngha a ch b nh vt l m n c gi n n v b nh. M hnh phn trang b
nh c hin th nh hnh VII-13.
Kch thc trang (ging nh kch thc khung) c nh ngha bi phn cng.
Kch thc ca mt trang in hnh l lu tha ca 2, t 512 bytes n 16MB trn
trang, ph thuc vo kin trc my tnh. Chn lu tha 2 cho kch thc trang thc
hin vic dch a ch lun l thnh s trang v di trang rt d dng. Nu kch
thc khng gian a ch l 2
m
, v kch thc trang l 2
n
n v a ch (byte hay t)
th m-n bits cao ca a ch lun l ch s trang, n bits thp ch di trang. Do ,
a ch lun l nh sau:

S trang di trang
P D
m n N

y p l ch mc trong bng trang v d l di trong trang.
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang 152
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0


Hnh 0-13 M hnh phn trang ca b nh lun l v vt l
Th d: xt b nh trong hnh VII-14. S dng kch thc trang 4 bytes v b
nh vt l 32 bytes (c 8 trang), chng ta hin th cch nhn b nh ca ngi dng c
th c nh x ti b nh vt l nh th no. a ch lun l 0 l trang 0, di 0.
Ch mc trong bng trang, chng ta thy rng trang 0 trong khung 5. Do , a ch
lun l 0 nh x ti a ch vt l 20 (=(5x4)+0). a ch lun l 3 (trang 0, di 3)
nh x ti a ch vt l 23 (=(5x4)+3). a ch lun l 4 trang 1, di 0; da theo
bng trang, trang 1 c nh x ti khung 6. Do , a ch lun l 4 nh x ti a ch
24(=(6x4)+0). a ch lun l 13 nh x ti a ch vt l 9.
C th ch rng phn trang l mt dng ca ti nh v ng. Mi a ch
lun l c gii hn bi phn cng phn trang ti a ch vt l. S dng phn trang
tng t s dng mt bng cc thanh ghi nn (hay ti nh v), mt thanh ghi cho mi
khung b nh.
Khi chng ta s dng mt c ch phn trang, chng ta khng c phn mnh
bn ngoi: bt k khung trng c th c cp pht ti mt qu trnh cn n. Tuy
nhin, chng ta c th c phn mnh trong. Ch rng cc khung c cp pht nh
cc n v. Nu cc yu cu b nh ca mt qu trnh khng xy ra ri trn gii
hn ca trang, th khung cui cng c cp pht c th khng y hon ton. Th d,
nu cc trang l 2048 bytes, mt qu trnh 72,766 bytes s cn 35 trang cng vi 1086
bytes. N c cp pht 36 khung, do phn mnh trong l 2048 - 1086 = 962
bytes. Trong trng hp xu nht, mt qu trnh cn n trang cng vi 1 byte. N s
c cp pht n+1 khung, dn n phn mnh trong gn nh ton b khung.
Nu kch thc qu trnh c lp vi kch thc ca trang, th chng ta mong
mun phn mnh trong trung bnh l trang trn mt qu trnh. Xem xt ny ngh
rng kch thc trang nh l mong mun. Tuy nhin, chi ph lin quan ti mi mc t
bng trang v chi ph ny gim khi kch thc trang tng. V th nhp/xut a l hiu
qu hn khi s lng d liu c truyn ln hn. Thng th kch thc trang ln
ln theo thi gian khi cc qu trnh, tp hp d liu, b nh chnh tr nn ln hn.
Ngy nay, cc trang in hnh nm trong khong 4 KB ti 8 KB, v mt s h thng
h tr kch thc trang ln hn. CPU v nhn thm ch h tr nhiu kch thc khc
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang 153
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

nhau. Th d, Solaris dng 8 KB v 4 MB kch thc trang, ph thuc d liu c
lu bi trang. Hin nay, cc nh nghin cu ang pht trin vic h tr kch thc
trang khc nhau.
Mi mc t bng trang thng di 4 bytes, nhng kch thc c th thay i.
Mt mc t 32-bit c th ch ti mt khung trang vt l 2
32
. Nu mt khung l 4 KB,
th h thng vi nhng mc t 4 bytes c th nh a ch cho 2
44
bytes (hay 16 TB)
b nh vt l.
Khi mt qu trnh i vo h thng c thc thi, kch thc ca n, c
din t trong cc trang, c xem xt. Mi trang ca qu trnh cn trn mt khung. Do
, nu qu trnh yu cu n trang, t nht n khung phi sn dng trong b nh. Nu n
khung l sn dng, chng c cp pht ti qu trnh ang i vo ny. Trang u tin
ca qu trnh c np vo mt trong nhng khung c cp pht, v s khung c
t vo trong bng trang cho qu trnh ny. Trang k tip c np vo mt khung
khc, v s khung ca n c t vo trong bng trang, (hnh VII-15).


Hnh 0-14 Th d phn trang cho b nh 32 bytes vi cc trang c kch thc 4 bytes
Mt kha cnh quan trng ca phn trang l s phn chia r rng gia tm nhn
b nh ca ngi dng v b nh vt l tht s. Chng trnh ngi dng nhn b
nh nh mt khng gian lin tc, cha ch mt chng trnh. S tht, chng trnh
ngi dng c phn b khp b nh vt l m n cng qun l cc qu trnh khc.
S khc nhau gia tm nhn b nh ca ngi dng v b nh vt l tht s c lm
cho tng thch bi phn cng dch a ch. a ch lun l c dch thnh a ch
vt l. nh x ny c che giu t ngi dng v c iu khin bi h iu hnh.
Ch rng nh nh ngha, qu trnh ngi dng khng th truy xut b nh m n
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang 154
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

khng s hu. Khng c cch nh a ch b nh bn ngoi bng trang ca n v
bng cha ch nhng trang m qu trnh s hu.
V h iu hnh ang qun l b nh vt l nn n phi hiu nhng chi tit cp
pht b nh vt l; khung no c cp pht, khung no cn trng, tng khung hin
c l bao nhiu,Thng tin ny c gi trong mt cu trc d liu c gi l bng
khung. Bng khung ch c mt mc t cho mi khung trang vt l, hin th khung
trang ang rnh hay c cp pht. Nu khung trang c cp pht, th xc nh
trang no ca qu trnh no c cp.


Hnh 0-15 cc khung trng. (a) trc khi cp pht. (b) sau khi cp pht
Ngoi ra, h iu hnh phi bit rng qu trnh ngi dng hot ng trong
khng gian ngi dng, v tt c a ch lun l phi c nh x pht sinh a ch
vt l. Nu ngi dng thc hin li gi h thng (th d: thc hin nhp/xut) v
cung cp a ch nh mt tham s (th d: vng m), a ch phi c nh x
sinh ra a ch vt l ng. H iu hnh duy tr mt bn sao ca bng trang cho mi
qu trnh, nh n duy tr bn sao ca b m ch th lnh v ni dung thanh ghi. Bn
sao ny c dng dch a ch lun l thnh a ch vt l bt c khi no h iu
hnh phi nh x a ch lun l ti a ch vt l dng th cng. N cng c dng
bi b phn pht CPU a ch bng trang phn cng khi mt qu trnh c cp
pht CPU. Do , trang gia tng thi gian chuyn i ng cnh.
VI.1.2 H tr phn cng
Mi h iu hnh c phng php ring lu tr cc bng trang. Hu ht u
cp pht mt bng trang cho mi qu trnh. Mt con tr ch ti mt bng trang c
lu tr vi nhng gi tr thanh ghi thanh ghi khc nhau (ging nh b m ch th
lnh) trong khi iu khin qu trnh. Khi b phn pht c yu cu bt u mt qu
trnh, n phi np li cc thanh ghi ngi dng v nh ngha cc gi tr bng trang
phn cng ph hp t bng trang ngi dng c lu tr.
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang 155
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

Ci t phn cng ca bng trang c th c thc hin trong nhiu cch.
Cch n gin nht, bng trang c ci t nh tp hp cc thanh ghi tn hin. Cc
thanh ghi ny nn c xy dng vi tnh logic tc rt cao thc hin vic dch
a ch trang hiu qu. Mi truy xut ti b nh phi kim tra k lng bng trang,
v vy tnh hiu qu l vn xem xt ch yu. B phn pht CPU np li cc thanh
ghi ny ch khi n np li cc thanh ghi khc. D nhin, cc ch th np hay hiu
chnh cc thanh ghi bng trang phi c cp quyn m ch h iu hnh c th
thay i bn b nh. DEC PDP-11 l mt th d v kin trc nh th. a ch cha
16 bits, v kch thc trang l 8 KB. Do , bng trang cha 8 mc t m chng c
gi trong cc thanh ghi nhanh.
S dng cc thanh ghi cho bng trang ch ph hp nu bng trang c kch
thc nh (th d: 256 mc t). Tuy nhin, hu ht cc my tnh tng thi cho php
bng trang rt ln (th d, 1 triu mc t). i vi nhng my ny, vic s dng cc
thanh ghi nhanh ci t bng trang l khng kh thi. Hay ng hn l, bng trang
c gi trong b nh chnh, v thanh ghi nn bng trang (page-table base register-
PTBR) ch ti thanh ghi bng trang. Thay i cc bng trang yu cu thay i ch mt
thanh ghi, v cn bn ct gim thi gian chuyn ng cnh.
Vn vi tip cn ny l thi gian c yu cu truy xut v tr b nh ngi
dng. Nu chng ta mun truy xut v tr i, u tin chng ta phi xc nh ch mc
trong bng trang, s dng gi tr trong di PTBR bi s trang cho i. Tc v ny
yu cu mt truy xut b nh. N cung cp chng ta s khung c ni kt vi di
trang sinh ra a ch thc. Sau , chng ta c th truy xut ti ni c mong
mun trong b nh. Vi c ch ny, hai truy xut b nh c yu cu truy xut
mt byte (mt cho mc t bng trang, mt cho byte ). Do , truy xut b nh b
chm bi mt trong hai yu t . S tr hon ny khng th chp nhn di hu ht
trng hp v th chng ta phi s dng n hon v!
Gii php chun cho vn ny l dng b lu tr (cache) phn cng c bit,
nh, tm kim nhanh c gi l translation look-aside buffer (TLB). TLB l b nh
kt hp tc cao. Mi mc t trong TLB cha hai phn: mt kho (key) v mt gi
tr (value). Khi b nh kt hp c biu din vi mt thnh phn, n c so snh
vi tt c kho cng mt lc. Nu thnh phn c tm thy, trng gi tr tng ng
c tr v. Tm kim nhanh nhng phn cng t. in hnh, s lng mc t trong
TLB nh, thng t 64 n 1024.
TLB c dng vi cc bng trang trong cch sau. TLB cha ch mt vi mc
t bng trang. Khi mt a ch lun l c pht sinh bi CPU, s trang ca n c
hin din trong TLB. Nu s trang c tm thy, khung ca n lp tc sn dng v
c dng truy xut b nh. Ton b tc v c th mt t hn 10% thi gian nu
dng tham chiu b nh khng c nh x.
Nu s trang khng trong TLB (cn gi l mt TLB), tham chiu b nh ti
bng trang phi c thc hin. Khi s khung t c, chng ta c th dng n
truy xut b nh (nh hnh VII-16). Ngoi ra, chng ta thm s trang v s khung ti
TLB m chng c th c tm thy nhanh trn tham chiu tip theo. Nu mt
TLB y cc mc t, h iu hnh phi chn mt mc t thay th. Cc chnh
sch thay th rt a dng t t c s dng gn y nht (least recently used-LRU)
ti chn ngu nhin. Ngoi ra, mt s TLB cho php cc mc t c wired down.
Ngha l, chng khng th c xo khi TLB. in hnh, cc mc t cho nhn
thng c wired down.
Mt s TLB lu tr cc nh danh khng gian a ch (address-space identifers-
ASID) trong mi mc t ca TLB. Mt ASID nh danh duy nht mi qu trnh v
c dng cung cp vic bo v khng gian a ch cho qu trnh . Khi TLB c
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang 156
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

gng phn gii cc s trang o, n m bo ASID cho mi qu trnh hin ang chy
trng khp vi ASID c ni kt vi trang o. Nu cc ASID khng khp, chng
c xem nh mt TLB. Ngoi ra, cung cp vic bo v khng gian a ch, mt
ASID cho php TLB cha cc mc t cho nhiu qu trnh khc nhau cng mt lc.
Nu TLB khng h tr cc ASID ring th mi ln mt bng trang c chn (th d,
mi chuyn ng cnh), mt TLB phi c y (hay c xo) m bo rng cc
qu trnh ang thc thi tip theo khng s dng thng tin dch sai. Ngc li, c
nhng mc t c trong TLB cha cc a ch o nhng c cc a ch khng ng hay
khng hp l li t qu trnh trc.


Hnh 0-16 phn cng phn trang vi TBL
Phn trm thi gian m s trang xc nh c tm thy trong TLB c gi l
t l chp (hit ratio). T l chp 80% c ngha l chng ta tm s trang mong mun
trong TLB 80% thi gian. Nu mt 20 nano giy tm TLB v 100 nano giy truy
xut b nh, th mt truy xut b nh c nh x mt 120 nano giy khi s trang
trong TLB. Nu chng ta khng tm s trang trong TLB (20 nano giy) th trc ht
chng ta phi truy xut b nh cho bng trang v s khung (100 nano giy), th sau
truy xut byte mong mun trong b nh (100 nano giy), tng thi gian l 220 nano
giy. tm thi gian truy xut b nh hiu qu, chng ta phi o mi trng hp vi
xc sut ca n:
Thi gian truy xut hiu qu = 0.80 x 120 + 0.2 x 220 = 140 nano giy
Trong th d ny, chng ta gp phi 40% chm li trong thi gian truy xut b nh (t
100 ti 140 nano giy).
i vi mt t l chm 98%, chng ta c:
Thi gian truy xut hiu qu = 0.98 x 120 + 0.02 x 220 = 122 nano giy
T l chp c tng ny ch to ra 22% chm li trong thi gian truy xut.
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang 157
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

VI.1.3 S bo v
Bo v b nh trong mi trng phn trang c thc hin bi cc bit bo v
gn lin vi mi khung. Thng thng, cc bit ny c gi trong bng trang. Mt bit
c th nh ngha mt trang c-vit hay ch c. Mi tham chiu ti b nh s tm
khp bng trang xc nh s khung tng ng. Ti cng thi im a ch vt l
c tnh , cc bit bo v c th c kim tra thm nh rng khng c thao tc
vit no ang c thc hin ti trang ch c. C gng vit ti mt trang ch c gy
ra mt trap phn cng ti h iu hnh (hay xung t b nh bo v).
Chng ta c th d dng m rng tip cn ny cung cp mt cp bo v
chi tit hn. Chng ta c th to phn cng cung cp bo v ch c, c vit, ch
thc thi. Hay bng cch cung cp cc bit bo v ring cho mi loi truy xut, chng ta
c th cho php bt c kt hp ca cc truy xut ny; cc c gng khng hp l s
c trap ti h iu hnh.
Mt bit na thng c gn ti mi mc t trong bng trang: mt bit hp l-
khng hp l. Khi bit ny c t l hp l th gi tr ny hin th rng trang c
gn trong khng gian a ch lun l b nh l trang hp l. Nu bit ny c t l
khng hp l, gi tr ny hin th trang khng trong khng gian a ch lun l
ca qu trnh. Cc a ch khng hp l c trap bng cch s dng bit hp l-khng
hp l. H iu hnh thit lp bit ny cho mi trang cho php hay khng cho php
truy xut ti trang ny. Th d, trong mt h thng vi khng gian a ch 14 bit (0 ti
16383), chng ta c th c mt chng trnh s dng ch a ch 0 ti 10468. Cho
kch thc trang 2KB, chng ta xem trng hp trong hnh VII-17. a ch trong cc
trang 0, 1, 2, 3, 4, v 5 thng c nh x khp bng trang. Tuy nhin, bt c nhng
n lc to ra mt a ch trong trang 6 hay 7 nhn thy rng bit hp l-khng hp
l c t l khng hp l v my tnh s trap ti h iu hnh (tham chiu trang
khng hp l).
V chng trnh m rng ch ti a ch 10468, bt c tham chiu vt ra ngoi
a ch l khng hp l. Tuy nhin, cc tham chiu ti trang 5 c xem l hp l
v th nhng a ch ti 12287 l hp l. Ch nhng a ch t 12288 ti 16383 l
khng hp l. Vn ny l do kch thc trang 2KB v phn nh phn mnh trong
ca vic phn trang.
Rt him khi mt qu trnh dng tt c dy a ch ca n. Tht vy, nhiu qu
trnh dng ch mt phn nh khng gian a ch cn trng cho chng. N s lng ph
rt nhiu trong nhng trng hp ny to mt bng trang vi cc mc t cho mi
trang trong dy a ch. Hu ht bng ny s khng c dng nhng s mang n
khng gian b nh c gi tr. Mt s h thng cung cp phn cng, trong dng mt
thanh ghi c chiu di bng trang (page-table length register-PTLR) hin th kch
thc ca bng trang. Gi tr ny c kim tra da trn mi a ch lun l thm
nh a ch nm trong dy a ch hp l cho qu trnh. Li ca vic kim tra ny
gy ra mt trap li ti h iu hnh.
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang 158
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0


Hnh 0-17 Bit hp l (v) v khng hp l (i) trong mt bng trang
VI.1.4 Cu trc bng trang
Trong phn ny chng ta s xem xt mt s k thut thng dng nht xy
dng cu trc bng trang.
.VI.1.4.1 Bng trang phn cp
Hu ht cc h thng my tnh hin i h tr mt khng gian a ch lun l
ln (2
32
ti 2
64
). Trong mi trng nh th, bng trang tr nn qu ln. Th d, xt
mt h thng vi khng gian a ch lun l 32 bit. Nu kch thc trang 4KB th
bng trang c th cha ti 1 triu mc t (2
32
/2
12
). Gi s rng mi mc t cha 4
bytes, mi qu trnh c th cn ti 4MB khng gian a ch vt l cho mt bng trang.
R rng, chng ta s khng mun cp pht bng trang lin tip nhau. Mt gii php
n gin cho vn ny l chia bng trang thnh nhng phn nh hn. C nhiu cch
t c s phn chia ny.
Mt cch l dng gii thut phn trang hai cp, trong bng trang cng c
phn trang nh hnh VII-18.
y l th d cho my 32 bit vi kch thc trang 4KB. a ch lun l c
chia thnh s trang cha 20 bit v di trang cha 12 bit. V chng ta phn trang
bng trang, s trang c chia thnh s trang 10 bit v di trang 10-bit. Do , mt
a ch lun l nh sau:

S trang di trang
P
1
P
2
d
10 10 12
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang 159
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0


Hnh 0-18 C ch bng trang hai cp
y p
1
l ch mc trong bng trang bn ngoi v p
2
l di trong trang ca bng
trang bn ngoi. Phng php dch a ch cho kin trc ny c hin th trong hnh
VII-19. V dch a ch thc hin t nhng phn trong bng trang bn ngoi, c ch
ny cng c gi l bng trang c nh x chuyn tip (forward-mapped page
table). Petium-II s dng kin trc ny.
Kin trc VAX cng h tr mt bin dng ca phn trang hai cp. VAX l my 32-bit
vi kch thc trang 512 bytes. Khng gian a ch lun l ca mt qu trnh c
chia lm 4 phn bng nhau, mi phn cha 2
30
bytes. Mi phn biu din mt phn
khc nhau ca khng gian a ch lun l ca mt qu trnh. Hai bit cao u tin ca
a ch lun l ch r phn tng ng. 21 bits tip theo biu din s trang lun l ca
phn , v 9 bits cui biu din di trong trang mong mun. Bng cch chia bng
trang nh th, h iu hnh c th nhng phn khu khng c dng cho ti khi
mt qu trnh yu cu chng. Mt a ch trn kin trc VAX nh sau:

Phn Trang di
S P D
2 21 9

y s ch r s phn, p l ch mc trong bng trang v d l di trong
trang.
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang 160
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

Kch thc ca bng trang cp mt cho mt qu trnh VAX dng mt phn
vn l 2
21
bits * 4 bytes/trang = 8 MB. vic s dng b nh chnh b gim nhiu
hn, VAX phn trang cc bng trang qu trnh ngi dng.
i vi cc h thng c khng gian a ch lun l 64 bits, c ch phn trang
hai cp khng cn ph hp na. th hin im ny, chng ta gi s rng kch
thc trang trong h thng l 4 KB (2
12
). Trong trng hp ny, bng trang s cha
ti 2
52
mc t. Nu chng ta dng c ch phn trang hai cp th cc bng bn trong c
th l mt trang di cha 2
10
mc t. Cc a ch s nh th ny:

Hnh 0-19 Dch a ch cho kin trc phn trang hai cp 32-bit
Trang bn ngoi Trang bn trong di
P1 P2 D
42 10 12

Bng trang bn ngoi s cha 242 mc t, hay 244 bytes. Cc phng php
c ch trng trnh trang ln l chia bng trang bn ngoi thnh nhng phn
nh hn. Tip cn ny cng c dng trn mt vi b x l 32-bit thm kh nng
mm do v hiu qu.
Chng ta c th chia bng trang bn ngoi thnh c ch phn trang 3 cp. Gi
s rng bng trang bn ngoi c to ra t cc trang c kch thc chun (210 mc
t, hay 212 bytes); mt khng gian a ch 64 bit vn c kch thc rt ln:

Trang bn ngoi cp 2 Trang bn ngoi Trang bn trong di
P1 P2 P3 D
32 10 10 12

Bng trang bn ngoi vn ln 232.
Bc tip theo s l c ch phn trang cp bn, y bng trang bn ngoi
cp hai cng c phn trang. Kin trc SPARC (vi 32-bit nh a ch) h tr c
ch phn trang cp ba, tri li kin trc Motorola 68030 32-bit h tr c ch phn
trang bn cp.
Tuy nhin, i vi kin trc 64-bit, cc bng trang phn cp thng c xem
xt l khng ph hp. Th d, UltraSPARC 64-bit s yu cu phn trang by cp
mt s truy xut b nh khng c php dch mi a ch lun l.




Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang 161
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

.VI.1.4.2 Bng trang c bm
Mt tip cn thng thng cho vic qun l khng gian a ch ln hn 32-bit
l dng bng trang c bm (hashed page table), vi gi tr bm l s trang o.
Mi mc t trong bng trang cha mt danh sch lin kt ca cc phn t. Danh sch
ny bm ti cng v tr ( qun l ng ). Mi phn t cha ba trng: (a) s trang
o, (b) gi tr khung trang c nh x v con tr ch ti phn t k tip trong danh
sch lin kt.
Gii thut thc hin nh sau: s trang o trong a ch o c bm ti bng
bm. S trang o c so snh ti trng (a) trong phn t u tin ca danh sch lin
kt. Nu c phn t trng khp, khung trang tng ng (trng (b) c dng hnh
thnh a ch vt l mong mun). Nu khng c phn t no trng khp, cc mc t
tip theo trong danh sch lin kt c tm kim s trang o trng khp. C ch ny
c hin th trong hnh VII-20 di y:
Mt bin th i vi c ch ny cho khng gian a ch 64-bit c ngh.
Bng trang c nhm (Clustered page tables) tng t nh bng bm ngoi tr mi
mc t trong bng bm tham chiu ti nhiu trang (chng hn nh 16) hn l mt
trang. Do , mc t bng trang n c th lu nhng nh x cho nhiu khung trang
vt l. Bng trang c nhm c bit c ch cho khng gian a ch ri nhau (spare),
cc tham chiu b nh l khng lin tc v tp hp khp khng gian b nh.


Hnh 0-20 Bng trang c bm

.VI.1.4.3 Bng trang o
Thng thng, mi qu trnh c mt trang gn lin vi n. Bng trang c mt
mc t cho mi trang m qu trnh ang s dng (hay mt khe cho mi a ch o,
khng ph thuc tnh hp l sau ). Biu din bng trang ny l biu din t nhin v
tham chiu qu trnh phn trang thng qua cc a ch o ca trang. Sau , h iu
hnh phi dch tham chiu ny vo mt a ch b nh vt l. V bng ny c sp
xp bi a ch o, h iu hnh c th tnh ton ni trong bng m mc t a ch vt
l c ni kt ti v s dng gi tr trc tip. Mt trong nhng kh khn ca
phng php ny l mi bng trang c th cha hng triu mc t. Cc bng ny c
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang 162
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

th tiu tn lng ln b nh vt l, c yu cu ch gi vt ca b nh vt l
khc ang c s dng nh th no.
gii quyt vn ny chng ta c th s dng mt bng trang o
(inverted page table). Bng trang o c mt mc t cho mi trang tht (hay khung)
ca b nh. Mi mc t cha a ch o ca trang c lu trong v tr b nh tht ,
vi thng tin v qu trnh s hu trang . Do , ch mt bng trang trong h thng
v n ch c mt mc t cho mi trang ca b nh vt l. Hnh VII-21 di y hin
th hot ng ca bng trang o.
So snh n vi hnh VII-6, m t hot ng ca mt bng trang chun. V ch mt
bng trang trong h thng cn c nhiu khng gian a ch khc nh x b nh vt l,
nn cc bng trang o thng yu cu mt nh danh khng gian a ch c lu
trong mi mc t ca bng trang. Lu tr nh danh khng gian a ch m bo rng
nh x ca trang lun l cho mt qu trnh xc nh ti khung trang vt l tng ng.
Th d, h thng dng bng trang o gm UltraSPARC 64-bit v PowerPC.


Hnh 0-21 Bng trang o
hin th phng php ny, chng ta m t mt n bn c n gin ho
ci t bng trang o dng trong IBM RT. Mi a ch o trong h thng cha b ba:
<process-id, page-number, offset>.
Mi mc t bng trang o l mt cp <process-id, page-number>, y
process-id m bo vai tr nh danh khng gian a ch. Khi mt tham chiu b nh
xy ra, mt phn ca a ch o, gm <process-id, page-number>, c hin din
trong h thng b nh. Sau , bng trang o c tm kim s trng khp. Nu s
trng khp c tm thy ti mc t i th a ch vt l <i, offset> c to ra. Nu
khng tm thy th mt truy xut a ch khng hp l c c gng thc hin.
Mc d c ch ny gim lng b nh c yu cu lu mi bng trang,
nhng n gia tng lng thi gian cn cho vic tm kim bng khi c mt tham chiu
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang 163
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

xy ra. V bng trang o c lu bi a ch vt l nhng tm kim xy ra trn a
ch o, ton b bng trang c th cn c tm kim s trng khp. S tm kim ny
c th mt thi gian qu di. lm gim vn ny, chng ta s dng mt bng
bm c m t trong hnh di y gii hn vic tm kim. D nhin, mi truy
xut ti bng bm thm mt tham chiu ti th tc, m mt tham chiu b nh o
yu cu t nht hai thao tc c b nh tht: mt cho mc t bng bm v mt cho
bng trang. ci tin nng lc thc hin, TLB c tm kim u tin, trc khi
bng bm c tra cu.
VI.1.5 Trang c chia s
Mt thun li khc ca phn trang l kh nng chia s m chung. Vic xem xt
ny c bit quan trng trong mi trng chia thi. Xt mt h thng h tr 40 ngi
dng, mi ngi dng thc thi mt trnh son tho vn bn. Nu trnh son tho vn
bn cha 150 KB m v 50 KB d liu, chng ta s cn 8000 KB h tr 40 ngi
dng. Tuy nhin, nu m l m ti s dng (reentrant code), n c th c chia s
nh c hin th trong hnh VII-22. y chng ta thy mt b son tho ba trang-
mi trang c kch thc 50 KB; kch thc trang ln c dng n gin ho hnh
ny-ang c chia s gia ba qu trnh. Mi qu trnh c trang d liu ring ca n.
M ti s dng (hay thun m-pure code) l m khng thay i bi chnh n.
Nu m l ti s dng th n khng bao gi thay i trong qu trnh thc thi. Do ,
hai hay nhiu qu trnh c th thc thi cng m ti cng thi im. Mi qu trnh c
bn sao thanh ghi ca chnh n v lu tr d liu qun l d liu cho vic thc thi
ca qu trnh. D nhin, d liu cho hai qu trnh khc nhau s khc nhau cho mi qu
trnh.
Ch mt bn sao ca b son tho cn c gi trong b nh vt l. Mi bng
trang ca ngi dng nh x ti cng bn sao vt l ca b son tho nhng cc trang
d liu c nh x ti cc khung khc nhau. Do , h tr 40 ngi dng, chng
ta cn ch mt bn sao ca b son tho (150 KB) cng vi 40 bn sao ca 50 KB
khng gian d liu trn mt ngi dng. By gi ton b khng gian c yu cu l
2150 KB thay v 8000 KB-mt tit kim ln.
Nhng chng trnh c dng nhiu khc cng c th c chia s - trnh
bin dch, h thng ca s, th vin thi im thc thi, h c s d liu, c th
chia s, m phi c ti s dng. Tnh t nhin ch c ca m c chia s s
khng c ph mc cho tnh ng n ca m; h iu hnh nn tun theo thuc tnh
ny. Chia s b nh gia cc qu trnh trn h iu hnh tng t chia s khng gian
a ch ca mt tc v bi lung. Ngoi ra, b nh c chia s nh mt phng php
giao tip lin qu trnh. Mt s h iu hnh ci t b nh c chia s dng cc
trang c chia s.
H iu hnh dng bng trang bn trong gp kh khn khi ci t b nh c
chia s. B nh c chia s thng c ci t nh nhiu a ch o (mt a ch
cho mi qu trnh chia s b nh) m chng c nh x ti mt a ch vt l. Tuy
nhin, phng php chun ny khng th c dng khi c ch mt mc t trang o
cho mi trang vt l v th mt trang vt l khng th c hai (hay nhiu) a ch o
c chia s.
T chc b nh da theo trang cung cp nhiu li im khc cho php
nhiu qu trnh chia s cng trang vt l.
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang 164
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0


Hnh 0-22 chia s m trong mi trng phn trang
VI.2 Phn on
Mt kha cnh quan trng ca vic qun l b nh m tr nn khng th trnh
vi phn trang l ngn cch tm nhn b nh ca ngi dng v b nh vt l tht s.
Tm nhn b nh ca ngi dng khng ging nh b nh vt l. Tm nhn ngi
dng c nh x vo b nh vt l. Vic nh x cho php s khc nhau gia b nh
lun l v b nh vt l.
VI.2.1 Phng php c bn
Ngi dng ngh b nh nh mng tuyn tnh cc byte, mt s byte cha ch
th lnh, mt s khc cha d liu hay khng? Hu ht mi ngi ni khng. ng
hn l, ngi dng thch nhn b nh nh tp hp cc phn on c kch thc thay
i, v khng cn xp th t gia cc phn on (nh hnh VII-23).
Chng ta ngh nh th no v mt chng trnh khi chng ta ang vit n?
Chng ta ngh n nh mt chng trnh chnh vi mt tp hp cc chng trnh con,
th tc, hm, hay cc module. C th c cc cu trc d liu khc nhau: bng, mng,
ngn xp, bin,..Mi module hay thnh phn d liu ny c tham chiu bi tn.
Chng ta ni bng danh biu, hm sqrt, chng trnh chnh khng quan tm
n a ch trong b nh m nhng phn t ny chim. Chng ta khng quan tm
bng danh biu c lu tr trc hay sau hm sqrt. Mi phn on ny c chiu di
thay i; thc cht chiu di c nh ngha bi mc ch ca phn on trong
chng trnh. Cc phn t trong mt phn on c nh ngha bi di ca chng
t im bt u ca phn on: lnh u tin ca chng trnh, mc t th mi by
trong bng danh biu, ch th th nm ca hm sqrt,
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang 165
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0



Hnh 0-23 Tm nhn chng trnh ca ngi dng
Phn on l mt c ch qun l b nh h tr tm nhn b nh ca ngi
dng. Khng gian a ch lun l l tp hp cc phn on. Mi phn on c tn v
chiu di. Cc a ch xc nh tn phn on v di trong phn on. Do ,
ngi dng xc nh mi a ch bng hai lng: tn phn on v di. (tng
phn c ch ny vi c ch phn trang, trong ngi dng ch xc nh mt a ch
n, c chia bi phn cng thnh s trang v di, tt c khng th nhn thy i
vi ngi lp trnh).
n gin vic ci t, cc phn on c nh s v c tham chiu ti
bi s phn on, hn l bi tn phn on. Do , a ch lun l cha mt b hai:
<s phn on, di>
Thng thng, chng trnh ngi dng c bin dch, v trnh bin dch t
ng to ra cc phn on phn nh chng trnh nhp. Mt chng trnh Pascal c
th to cc phn on ring nh sau:

1) Cc bin ton cc;
2) Ngn xp gi th tc, lu tr cc tham s v tr v cc a ch;
3) Phn m ca mi th tc hay hm;
4) Cc bin cc b ca mi th tc v hm

Mt trnh bin dch c th to mt phn on ring cho mi khi chung. Cc
mng c th c gn cc phn on ring. B np c th mang tt c phn on ny
v gn chng s phn on.
VI.2.2 Phn cng
Mc d ngi dng c th tham chiu ti cc i tng trong chng trnh bi
mt a ch hai chiu, b nh vt l l chui mt chiu cc byte. Do , chng ta phi
xc nh vic ci t nh x a ch hai chiu c nh ngha bi ngi dng vo
a ch vt l mt chiu. nh x ny c tc ng bi mt bng phn on. Mi mc
t ca bng phn on c mt nn phn on (segment base) v gii hn phn on
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang 166
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

(segment limit). Nn phn on cha a ch vt l bt u, ni phn on nh v
trong b nh, ngc li gii hn phn on xc nh chiu di ca phn on.
S dng bng phn on c hin th nh hnh VII-24. Mt a ch lun l c
hai phn: s phn on s v di phn on d. S phn on c dng nh ch
mc trong bng on. di d ca a ch lun l phi trong khong t 0 ti gii
hn on. Nu khng chng ta s trap ti h iu hnh (a ch vt l vt qua im
cui ca phn on). Nu di ny l hp l th n c cng thm gi tr nn ca
phn on to ra a ch trong b nh vt l ca byte mong mun. Do , bng
phn on l mt mng ca cp thanh ghi nn v gii hn.

Hnh 0-24 Phn cng phn on
Xt trng hp nh hnh VII-25. Chng ta c nm phn on c nh s t
0 n 4. Cc phn on c lu trong b nh vt l nh c hin th. Bng phn
on c mt mc t ring cho mi phn on, cho a ch bt u ca phn on trong
b nh vt l (hay nn) v chiu di ca phn on (hay gii hn). Th d, phn
on 2 di 400 bytes v bt u ti v tr 4300. Do , mt tham chiu byte 53 ca
phn on 2 c nh x ti v tr 4300 + 53 = 4353. Mt tham chiu ti phn on 3,
byte 852, c nh x ti 3200 (gi tr nn ca phn on 3) +852=4052. Mt tham
chiu ti byte 1222 ca phn on 0 dn n mt trap ti h iu hnh, khi phn on
ny ch di 1000 bytes.
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang 167
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0


Hnh 0-25 Th d v phn on
VI.2.3 Bo v v chia s
Li im c bit ca phn on l s gn lin bo v vi cc phn on. V
cc phn on biu din mt phn c nh ngha ca chng trnh, tng t nh tt
c mc t trong phn on s c dng cng mt cch. Do , mt s phn on l
ch th, trong khi mt s phn on khc l d liu. Trong mt kin trc hin i, cc
ch th khng hiu chnh chnh n v th cc phn on ch th c th c nh ngha
nh ch c hay ch thc thi. Phn cng nh x b nh s kim tra cc bits bo v
c gn vi mi mc t trong bng phn on ngn chn cc truy xut khng hp
l ti b nh, nh c gng vit ti phn on ch c hay s dng nhng phn on
ch c nh d liu. Bng cch thay th mt mng trong phn on ca chnh n,
phn cng qun l b nh s t ng kim tra cc ch s ca mng l hp l v khng
vt ra ngoi gii hn ca mng. Do , nhiu li chng trnh s c pht hin bi
phn cng trc khi chng c th gy ra tc hi ln.
Mt li im khc lin quan n chia s m hay d liu. Mi qu trnh c mt
bng phn on gn vi n. B phn pht dng bng phn on ny nh ngha
phn on phn cng khi mt qu trnh c cp CPU. Cc phn on c chia s
khi cc mc t trong bng phn on ca hai qu trnh khc nhau ch ti cng mt v
tr vt l (nh hnh VII-26).
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang 168
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0


Hnh 0-26 Chia s cc phn on trong mt h thng b nh c phn on
Chia s xy ra ti cp phn on. Do , bt c thng tin c th c chia s
nu n c nh ngha l mt phn on. Mt s phn on c th c chia s v
th mt chng trnh c hnh thnh t nhiu phn on c th c chia s.
Th d, xt vic s dng mt trnh son tho vn bn trong h thng chia thi.
Trnh son tho hon chnh c th rt ln, c hnh thnh t nhiu phn on c th
c chia s gia tt c ngi dng, gii hn a ch vt l c yu cu h tr cc
tc v son tho. Thay v n bn sao ca trnh son tho, chng ta ch cn mt bn sao.
i vi mi ngi dng, chng ta vn cn cc phn on ring, duy nht lu cc
bin cc b. D nhin, cc phn on ny s khng c chia s.
Chng ta cng c th chia s mt s phn chng trnh. Th d, cc gi
chng trnh con dng chung c th c chia s gia nhiu ngi dng nu chng
c nh ngha nh cc phn on chia s, ch c. Th d, hai chng trnh Fortran
c th dng cng hm Sqrt, nhng ch mt bn sao vt l ca hm Sqrt c yu cu.
Mc d vic chia s ny c v n gin, nhng c nhng xem xt tinh t. in
hnh, phn on m cha cc tham chiu ti chnh n. Th d, mt lnh nhy (jump)
c iu kin thng c mt a ch chuyn gm s phn on v di. S phn on
ca a ch chuyn s l s phn on ca phn on m. Nu chng ta c gng chia
s phn on ny, tt c qu trnh chia s phi nh ngha phn on m c chia s
c cng s phn on.
Th d, nu chng ta mun chia s hm Sqrt v mt qu trnh mun thc hin
n phn on 4 v mt qu trnh khc mun thc hin n phn on 17, hm Sqrt nn
tham chiu ti chnh n nh th no? V ch c mt bn sao vt l ca Sqrt, n phi
c tham chiu ti chnh n trong cng cch cho c hai ngi dng-n phi c mt
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang 169
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

s phn on duy nht. Khi s ngi dng chia s tng do kh khn trong vic tm
s phn on c th chp nhn cng tng.
Cc phn on ch c khng cha con tr vt l c th c chia s nh s
phn on khc nhau, nh cc phn on m tham chiu chnh n khng trc tip. Th
d, cc nhnh iu kin xc nh a ch nhnh nh mt di t b m chng
trnh hin hnh hay quan h ti thanh ghi cha s phn on hin hnh nn cho php
m trnh tham chiu trc tip ti s phn on hin hnh.
VI.2.4 S phn mnh
B nh thi biu di phi tm v cp pht b nh cho tt c cc phn on ca
chng trnh ngi dng. Trng hp ny tng t nh phn trang ngoi tr cc phn
on c chiu di thay i; cc trang c cng kch thc. Do , vi c ch phn khu
c kch thc thay i, cp pht b nh l mt vn cp pht lu tr ng, thng
gii quyt vi gii thut best-fit hay first-fit.
Phn on c th gy ra s phn mnh, khi tt c khi b nh trng l qu nh
cha mt phn on. Trong trng hp ny, qu trnh c th phi ch cho n khi
nhiu b nh hn (hay t nht mt l ln hn) tr nn sn dng, hay cho ti khi vic
hp nht cc l nh to mt l ln hn. V s phn on dng gii thut ti nh v
ng nn chng ta c th gom b nh bt c khi no chng ta mun. Nu b nh thi
biu CPU phi ch mt qu trnh v vn cp pht b nh, n c th (hay khng th)
b qua hng t CPU tm mt qu trnh nh hn, c u tin thp hn chy.
Phn mnh ngoi i vi c ch phn on l vn quan trng nh th no?
nh thi biu theo thut ng di vi s c c s gip gii quyt vn phn mnh
phi khng? Cu tr li ph thuc vo kch thc trung bnh ca phn on. mc
cao nht, chng ta c th nh ngha mi qu trnh l mt phn on. Tip cn ny
ct gim c ch phn khu c kch thc thay i. cp khc, mi byte c th
c t trong chnh phn on ca n v c cp pht ring. Sp xp ny xo i
vic phn mnh bn ngoi; tuy nhin mi byte cn mt thanh ghi nn cho mi ti nh
v ca n, gp i b nh c dng! D nhin, bc lun l tip theo-cc phn on
nh c kch thc c nh-l phn trang. Thng thng, nu kch thc phn on
trung bnh l nh, phn mnh ngoi cng s nh. V c nhn cc phn on l nh hn
ton b qu trnh nn chng c v thch hp hn t vo trong cc khi b nh sn
dng.
VI.3 Phn on vi phn trang
C hai phn on v phn trang c nhng li im v nhc im. Tht vy,
hai b vi x l ph bin nht hin nay l: dng Motorola 68000 c thit k da trn
c s khng gian a ch phng, ngc li, h Intel 80x86 v Petium da trn c s
phn on. C hai l m hnh b nh hp nht hng ti s kt hp ca phn trang v
phn on. Chng ta c th kt hp hai phng php tn dng li im ca chng.
S kt hp ny c th hin tt nht bi kt trc ca Intel 386.
n bn IBM OS/2 32-bit l mt h iu hnh chy trn nh ca kin trc Intel
386 (hay cao hn). Intel 386 s dng phn on vi phn trang cho vic qun l b
nh. S ti a cc phn on trn qu trnh l 16KB v mi phn on c th ln ti
4GB. Kch thc trang l 4 KB. Chng ta s khng cho mt m t y v cu trc
qun l b nh ca Intel 386 trong gio trnh ny. Thay vo , chng ta s trnh by
cc tng quan trng.
Khng gian a ch lun l ca qu trnh c chia thnh hai phn khu. Phn
khu th nht cha ti 8 KB cc phn on dnh ring cho qu trnh . Phn khu th
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang 170
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

hai cha ti 8 KB cc phn on c chia s gia tt c qu trnh. Thng tin v phn
khu th nht c gi trong bng m t cc b (Local Descriptor Table-LDT), thng
tin v phn khu th hai c gi trong bng m t ton cc (Global Descriptor Table-
GDL). Mi mc t trong LDT v GDT cha 8 bytes, vi thng tin chi tit v phn
on xc nh gm v tr nn v chiu di ca phn on .
a ch lun l l mt cp (b chn, di), y b chn l mt s 16-bit

S G P
13 1 2

Trong : s gn ti s phn on, g hin th phn on trong GDT hay LDT,
v p gii quyt vn bo v. di l mt s 32-bit xc nh v tr ca byte (hay t)
trong phn on.
My ny c 6 thanh ghi, cho php 6 phn on c xc nh ti bt c thi
im no bi mt qu trnh. N c 6 thanh ghi vi chng trnh 8-byte qun l b
m t tng ng t LDT hay GDT. B lu tr ny Intel 386 trnh phi c b m
t t b nh cho mi ln tham chiu b nh.
a ch vt l trn 386 di 32 bits v c hnh thnh nh sau. Thanh ghi on
ch ti mc t tng ng trong LDT hay GDT. Thng tin nn v gii hn v phn
on c dng pht sinh mt a ch tuyn tnh. u tin, gii hn c dng
kim tra tnh hp l ca a ch. Nu a ch khng hp l, li b nh c to ra, dn
n mt trap ti h iu hnh. Nu n l hp l, th gi tr ca di c cng vo
gi tr ca nn, dn n a ch tuyn tnh 32-bit. Sau , a ch ny c dch thnh
a ch vt l.
Nh c nu trc , mi phn on c phn trang v mi trang c kch
thc 4 KB. Do , bng trang c th cha ti 1 triu mc t. V mi mc t cha 4
bytes nn mi qu trnh c th cn 4 MB khng gian a ch vt l cho mt bng
trang. R rng, chng ta khng mun cp pht bng trang lin tc trong b nh. Gii
php ny c thng qua trong Intel 386 dng c ch phn trang 2 cp. a ch
tuyn tnh c chia thnh s trang cha 20 bits, v di trang cha 12 bits. V
chng ta phn trang bng trang, s trang c chia nh thnh con tr th mc trang
10-bit v con tr bng trang 10-bit. a ch lun l nh sau:

P1 P2 D
10 10 12

C ch dch a ch cho kin trc ny tng t nh c ch c hin th trong
hnh VII-18. Dch a ch Intel c hin th chi tit hn trong hnh VII-27di y.
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang 171
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0



Hnh 0-27 Dch a ch Intel 386
ci tin tnh hiu qu ca vic s dng b nh vt l, bng trang Intel 386
c th c hon v ti a. Trong trng hp ny, mi bit c dng trong mc t
th mc trang hin th bng m mc t ang ch ti trong b nh hay trn a.
Nu bng trn a, h iu hnh c th dng 31 bit cn li xc nh v tr a ca
bng; sau bng c th c mang vo b nh theo yu cu.
VII Tm tt
Cc gii thut qun l b nh cho h iu hnh a chng tri di t tip cn
h thng ngi dng n ti phn on c phn trang. Yu t quyt nh ln nht
ca phng php c dng trong h thng c th l phn cng c ci thin. Mi
a ch b nh c c to ra bi CPU phi c kim tra hp l v c th c
nh x ti mt a ch vt l. Kim tra khng th c ci t (hu hiu) bng phn
mm. Do , chng ta b rng buc bi tnh sn dng phn cng.
Cc gii tht qun l b nh c tho lun (cp pht lin tc, phn trang,
phn on, v s kt hp ca phn trang v phn on) khc nhau trong nhiu kha
cnh. Trong so snh cc chin lc qun l b nh, chng ta nn s dng cc xem xt
sau:
H tr phn cng: thanh ghi nn hay cp thanh ghi nn v thanh ghi gii
hn l cho c ch phn khu n v a, ngc li phn trang v phn
on cn bng nh x xc nh nh x a ch.
Nng lc: khi gii thut qun l b nh tr nn phc tp hn th thi gian
c yu cu nh x a ch lun l ti a ch vt l tng. i vi cc
h thng n gin, chng ta ch cn so snh hay cng a ch lun l-cc
thao tc ny phi nhanh. Phn trang v phn on c th nhanh nh nu
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang 172
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

bng c ci t trong cc thanh ghi nhanh. Tuy nhin, nu bng tron
b nh th v thc cht truy xut b nh ca ngi dng c th b gim.
Mt TLB c th hn ch vic gim nng lc ti mc c th chp nhn.
Phn mnh: mt h thng a chng s thc hin hiu qu hn nu n
g
c
. C c
Ti nhng

t phng tin khc gia tng cp a chng l chia s m


cp, cc phn khc nhau

cp a chng cao hn. i vi mt tp hp qu trnh c cho, chng
ta c th tng cp a chng ch bng cch ng gi nhiu qu trnh
hn trong b nh. hon thnh tc v ny, chng ta phi gim s lng
ph hay phn mnh b nh. Cc h thng vi cc n v cp pht c kch
thc c nh, nh c ch n phn khu v phn trang, gp phi s phn
mnh trong. Cc h thng vi n v cp pht c kch thc thay i nh
c ch a phn khu v phn on, gp phi s phn mnh ngoi.
Ti nh v: mt gii php cho vn phn mnh ngoi l c c
lin quan n vic chuyn dch mt chng trnh trong b nh khng ch
nhng thay i ca chng trnh. Xem xt ny yu cu a ch lun l
c ti nh v ng ti thi im thc thi. Nu a ch c ti nh v
ch ti thi im np, chng ta khng th lu tr dng c c.
Hon v: bt c gii thut c th c hon v c thm ti n.
khong thi gian c xc nh bi h iu hnh, thng c m t bi
cc chnh xc nh thi, cc qu trnh c chp t b nh chnh ti vng
lu tr ph v sau c chp tr li ti b nh chnh. C ch ny cho
php nhiu qu trnh c chy hn l c th t vo b nh ti cng mt
thi im.
Chia s: m
v d liu gia cc ngi dng khc nhau. Thng vic chia s yu cu
phn trang hay phn on c dng, cung cp nhng gi thng tin nh
(cc trang hay cc on) c th c chia s. Chia s l mt phng tin
chy nhiu qu trnh vi lng b nh gii hn nhng cc chng trnh v
d liu c chia s phi c thit k cn thn.
Bo v: nu phn trang hay phn on c cung
ca chng trnh ngi dng c th c khai bo ch thc thi, ch c,
hay c-vit. S hn ch ny l cn thit vi m v d liu c chia s v
thng c ch trong bt c trng hp no cung cp vic kim tra ti
thi gian thc thi cho cc li lp trnh thng thng.
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang 173
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

B NH O
I Mc ch
Sau khi hc xong chng ny, ngi hc nm c nhng kin thc sau:
Hiu k thut b nh o
Hiu b nh o dng phn trang theo yu cu
Hiu phc tp v chi ph trong tng k thut ci t b nh o
II Gii thiu
Trong chng trc, chng ta tho lun cc chin lc qun l b nh c
dng trong h thng my tnh. Tt c nhng chin lc ny c cng mc ch: gi
nhiu qu trnh trong b nh cng mt lc cho php a chng. Tuy nhin, chng
c khuynh hng yu cu ton b qu trnh trong b nh trc khi qu trnh c th
thc thi.
B nh o l mt k thut cho php vic thc thi ca qu trnh m qu trnh c
th khng hon ton trong b nh. Mt li im quan trng ca c ch ny l cc
chng trnh c th ln hn b nh vt l. Ngoi ra, b nh o phng i b nh
chnh thnh b nh lun l cc ln khi c hin th bi ngi dng. K thut ny
gii phng ngi lp trnh t vic quan tm n gii hn kch thc b nh. B nh
o cng cho php cc qu trnh d dng chia s tp tin v khng gian a ch, cung cp
c ch hu hin cho vic to qu trnh.
Tuy nhin, b nh o khng d ci t v v thc cht c th gim nng lc nu
n c dng thiu thn trng. Trong chng ny, chng ta tho lun b nh o trong
dng phn trang theo yu cu v xem xt phc tp v chi ph.
III Kin thc nn
Cc gii thut qun l b nh trong chng trc l cn thit v mt yu cu c
bn: cc ch th ang c thc thi phi trong b nh vt l. Tip cn u tin
tho mn yu cu ny t ton b khng gian a ch lun l trong b nh vt l. Ph
lp v np ng c th gip lm gim hn ch ny nhng chng thng yu cu s
phng c bit v cng vic ph thm bi ngi lp trnh. Hn ch ny dng nh
cn thit v ph hp nhng n khng may mn v n gii hn kch thc ca mt
chng trnh i vi kch thc b nh vt l.
Tht vy, xem xt cc chng trnh thc thi chng ta nhn thy rng trong nhiu
trng hp ton b chng trnh l khng cn thit. Thm ch trong nhng trng
hp ton b chng trnh c yu cu nhng khng phi tt c chng trnh c
yu cu cng mt lc.
Kh nng thc thi chng trnh ch mt phn chng trnh trong b nh c
nhiu li im:
Chng trnh s khng cn b rng buc bi khng gian b nh vt l sn
c. Ngi dng c th vit chng trnh c khng gian a ch o rt ln,
n gin ho tc v lp trnh.
V mi chng trnh ngi dng c th ly t hn b nh vt l nn nhiu
chng trnh hn c th c thc thi ti mt thi im. iu ny gip gia
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang 178
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

tng vic s dng CPU v thng lng nhng khng tng thi gian p
ng.
Yu cu t nhp/xut hn np hay hon v mi chng trnh ngi dng
trong b nh v th mi chng trnh ngi dng s chy nhanh hn.
Do , chy mt chng trnh m n khng nm hon ton trong b nh c li
cho c ngi dng v h thng.
B nh o l s tch bit b nh lun l t b nh vt l. Vic tch bit ny cho
php b nh o rt ln c cung cp cho ngi lp trnh khi ch b nh vt l nh
hn l sn dng (hnh VIII-1). B nh o thc hin tc v lp trnh d hn nhiu v
ngi lp trnh khng cn lo lng v lng b nh vt l sn c na hay v m g c
th c thay th trong vic ph lp; thay vo , ngi lp trnh c th quan tm vn
c lp trnh. Trn nhng h thng h tr b nh o, vic ph lp hu nh bin
mt.

Hnh 0-1 Lu minh ho b nh o ln hn b nh vt l
Thm vo , vic tch bit b nh lun l t b nh vt l, b nh o cng
cho php cc tp tin v b nh c chia s bi nhng qu trnh khc nhau thng qua
vic chia s trang. Ngoi ra, chia s trang cho php ci tin nng lc trong khi to qu
trnh.
B nh o thng c ci t bi phn trang theo yu cu (demand
paging). N cng c th c ci t trong c ch phn on. Mt vi h thng cung
cp c ch phn on c phn trang. Trong c ch ny cc phn on c chia
thnh cc trang. Do , tm nhn ngi dng l phn on, nhng h iu hnh c th
ci t tm nhn ny vi c ch phn trang theo yu cu. Phn on theo yu cu cng
c th c dng cung cp b nh o. Cc h thng my tnh ca Burrough dng
phn on theo yu cu. Tuy nhin, cc gii thut thay th on phc tp hn cc gii
thut thay th trang v cc on c kch thc thay i. Chng ta khng cp phn
on theo yu cu trong gio trnh ny.
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang 179
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

IV Phn trang theo yu cu
Mt h thng phn trang theo yu cu tng t mt h thng phn trang vi
hon v (hnh VIII-2). Cc qu trnh nh v trong b nh ph (thng l a). Khi
chng ta mun thc thi mt qu trnh, chng ta hon v n vo b nh. Tuy nhin,
thay v hon v ton b qu trnh trong b nh, chng ta dng mt b hon v li
(lazy swapper). B hon v li khng bao gi hon v mt trang vo trong b nh tr
khi trang s c yu cu. V by gi chng ta xem mt qu trnh nh mt chui
cc trang hn l mt khng gian a ch lin tc c kch thc ln, nn dng hon v
l khng ph hp v k thut. Mt b hon v thao tc ton b qu trnh, ngc li
mt b phn trang (pager) c quan tm vi cc trang ring r ca mt qu trnh.
Do , chng ta dng b phn trang (hn l b hon v) trong ni kt vi phn trang
theo yu cu.

Hnh 0-2 Chuyn b nh c phn trang ti khng gian a lin tc
IV.1 Cc khi nim c bn
Vi c ch ny, chng ta cn mt s dng phn cng h tr phn bit gia
cc trang trong b nh v cc trang trn a. C ch bit hp l-khng hp l c th
c dng cho mc ch ny. Tuy nhin, thi im ny khi bit c t hp l, gi
tr ny hin th rng trang c tham chiu ti l hp l v ang trong b nh. Nu
mt bit c t khng hp l, gi tr ny hin th rng trang khng hp l (ngha l
trang khng trong khng gian a ch ca qu trnh) hoc hp l nhng hin ang
trn a. Mc t bng trang cho trang khng trong b nh n gin c nh du
khng hp l, hay cha a ch ca trang trn a. Trng hp ny c m t trong
hnh VIII-3.
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang 180
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0



Hnh 0-3 Bng trang khi mt s trang khng trong b nh chnh

Ch rng, nh du mt trang l khng hp l s khng c tc dng nu
qu trnh khng bao gi truy xut trang . Do , nu chng ta on ng v tt c
nhng trang tht s cn u trong b nh, qu trnh s chy chnh xc nh khi
chng ta mang tt c trang vo b nh. Trong khi qu trnh thc thi v truy xut trang
ang nh v trong b nh, vic thc thi x l bnh thng.
Nhng iu g xy ra nu qu trnh c gng truy xut trang m trang khng
c mang vo b nh? Truy xut mt trang c nh du l khng hp l gy ra
mt trap li trang (page-fault trap). Phn cng phn trang, dch a ch thng qua
bng trang, s thng bo rng bit khng hp l c t, gy ra mt trap ti h iu
hnh. Trap ny l kt qu li ca h iu hnh mang trang c mong mun vo b
nh (trong mt c gng ti thiu chi ph chuyn a v yu cu b nh) hn l li a
ch khng hp l nh kt qu ca vic c gng dng mt a ch b nh khng hp l
(nh mt k hiu mng khng hp l). Do , chng ta phi sa trng hp s xut
ny. Th tc cho vic qun l li trang ny l khng phc tp (hnh VIII-4).
1) Chng ta kim tra bng bn trong (thng c gi vi khi iu khin
qu trnh) cho qu trnh ny, xc nh tham chiu l truy xut b nh
hp l hay khng hp l.
2) Nu tham chiu l khng hp l, chng ta kt thc qu trnh. Nu n l
hp l, nhng chng ta cha mang trang vo b nh, by gi chng ta
mang trang vo.
3) Chng ta tm khung trng (th d, bng cch mang mt trang t danh sch
khung trng).
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang 181
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

4) Chng ta lp thi biu thao tc a c trang mong mun vo khung
trang va mi c cp pht.
5) Khi c a hon thnh, chng ta sa i bng bn trong vi qu trnh v
bng trang hin th rng trang by gi trong b nh.
6) Chng ta khi ng li ch th m n b ngt bi trap a ch khng hp l.
By gi qu trnh c th truy xut trang mc d n lun trong b nh.

Hnh 0-4 Cc bc qun l li trang
V chng ta lu trng thi (thanh ghi, m iu kin, b m ch th lnh) ca
qu trnh b ngt khi li trang xy ra, nn chng ta c th khi ng li qu trnh chnh
xc ni v trng thi, ngoi tr trang mong mun hin trong b nh v c th truy
xut. Trong cch ny, chng ta c th thc thi mt qu trnh mc d cc phn ca n
cha trong b nh. Khi qu trnh c gng truy xut cc v tr khng trong b nh,
phn cng trap ti h iu hnh (li trang). H iu hnh c trang c yu cu vo
b nh v khi ng li qu trnh nh th trang lun trong b nh.
Trong trng hp xu nht, chng ta bt u thc thi mt qu trnh vi khng
trang no trong b nh. Khi h iu hnh t con tr ch th lnh ti ch th u tin
ca qu trnh. Tuy nhin, ch th ny trn trang khng nm trong b nh, qu trnh
lp tc bo li i vi trang . Sau khi trang c mang vo trong b nh, qu trnh
tip tc thc thi, bo li khi cn cho ti khi mi trang n cn trong b nh. Ti thi
im , n c th thc thi vi khng c li no na. C ch ny l thun phn
trang yu cu (pure demand paging): khng bao gi mang trang vo b nh cho ti
khi n c yu cu.
V l thuyt, mt s qu trnh c th truy xut nhiu trang mi ca b nh vi
mi s thc thi ch th (mt trang cho mt ch th v nhiu trang cho d liu), c th
gy ra li nhiu trang trn ch th. Trng hp ny s dn n nng lc thc hin h
thng khng th chp nhn. May thay, phn tch cc qu trnh thc thi th hin rng
hnh vi ny l khng hon ton xy ra. Cc chng trnh c khuynh hng tham
chiu cc b dn n nng lc ph hp t phn trang yu cu.
Phn cng h tr phn trang theo yu cu l tng t nh phn cng phn
trang v hon v.
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang 182
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

Bng trang: bng ny c kh nng nh du mc t khng hp l thng
qua bit hp l-khng hp l hay gi tr c bit ca cc bit bo v
B nh ph: b nh ny qun l cc trang khng hin din trong b nh
chnh. B nh ph thng l a tc cao. N c xem nh l thit b
hon v v phn a c dng cho mc ch ny c gi l khng gian
hon v.
Ngoi s h tr phn cng ny, phn mm c th xem xt c yu cu. Rng
buc kin trc phi c p t. Rng buc quan trng c yu cu l c th khi
ng li bt c ch th no sau khi li trang. Trong hu ht cc trng hp, yu cu
ny l d dng tho mn. Li trang c th xy ra ti bt c tham chiu b nh no.
Nu li trang xy ra trn vic ly ch th, chng ta c th khi ng li bng cch ly
li ch th. Nu li trang xy ra trong khi chng ta ang ly mt ton hng, chng ta
phi ly v gii m li ch th, v sau ly ton hng.
IV.2 Nng lc ca phn trang theo yu cu
Phn trang theo yu cu c th c mt nh hng ln trn nng lc ca mt h
thng my tnh. thy ti sao, chng ta tnh thi gian truy xut hiu qu (effective
access time) cho b nh c phn trang theo yu cu. i vi hu ht cc h thng
my tnh, thi gian truy xut b nh, c k hiu ma, nm trong khong t 10 n
200 nano giy. Vi iu kin l chng ta khng c li trang, thi gian truy xut hiu
qu l bng vi thi gian truy xut b nh. Tuy nhin, nu li trang xy ra, trc ht
chng ta phi c trang tng ng t a v sau truy xut t mong mun.
Gi p l xc sut ca li trang (0 p 1 ). Chng ta mong i p gn bng 0;
ngha l ch c mt vi li trang. Thi gian truy xut hiu qu l:
Thi gian truy xut hiu qu = (1 p) x ma + p x thi gian li trang
tnh ton thi gian truy xut hiu qu, chng ta phi bit phi mt bao lu
phc v mt li trang. duy tr mc chp nhn c s chm tr trong hot
ng ca h thng do phn trang, cn phi duy tr t l pht sinh li trang thp.
V Thay th trang
Thay th trang thc hin tip cn sau. Nu khng c khung trng, chng ta tm
mt khung hin khng c dng v gii phng n. Khi chng ta gii phng mt
khung bng cch vit ni dung ca n ti khng gian hon v v thay i bng trang
(v cc bng trang khc) hin th rng trang khng cn trong b nh (hnh VIII-
5). By gi chng ta c th dng khung c gii phng qun l trang cho qu
trnh b li. Chng ta sa i th tc phc v li trang cha thay th trang:
1) Tm v tr trang mong mun trn a
2) Tm khung trang trng
a) Nu c khung trng, dng n.
b) Nu khng c khung trng, dng mt gii thut thay th trang chn
khung nn nhn
c) Vit trang nn nhn ti a; thay i bng trang v khung trang
tng ng.
3) c trang mong mun vo khung trang trng; thay i bng trang v khung
trang.
4) Khi ng li qu trnh.
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang 183
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0



Hnh 0-5 Thay th trang
Chng ta phi gii quyt hai vn chnh ci t phn trang theo yu cu:
chng ta pht trin gii thut cp pht khung v gii thut thay th trang. Nu chng ta
c nhiu qu trnh trong b nh, chng ta phi quyt nh bao nhiu khung cp pht
ti qu trnh. Ngoi ra, khi thay th trang c yu cu, chng ta phi chn cc khung
c thay th. Thit k cc gii thut hp l gii quyt vn ny l mt tc v
quan trng v nhp/xut a l rt t. Thm ch mt ci tin nh trong cc phng
php phn trang theo yu cu sinh ra mt lng ln nng lc h thng.
C nhiu gii thut thay th trang khc nhau. Mi h iu hnh c th c c
ch thay th ca chnh n. Chng ta chn mt gii thut thay th trang nh th no?
Thng thng, chng ta mun mt gii thut t l li trang nh nht.
Chng ta nh gi mt gii thut bng cch chy n trn mt chui cc tham
chiu b nh c th v tnh s lng li trang. Chui cc tham chiu b nh c gi
l chui tham chiu. Chng ta c th pht sinh chui tham chiu gi to (th d, bng
b pht sinh s ngu nhin). Chn la sau to ra s lng ln d liu (trn th t 1
triu a ch trn giy). lm gim s lng d liu ny, chng ta c hai cch
Cch th nht, i vi kch thc trang c cho (v kch thc trang thng
c c nh bi phn cng hay h thng), chng ta cn xt ch s trang hn l ton
a ch. Cch th hai, nu chng ta c mt tham chiu ti trang p, th bt c nhng
tham chiu tc th theo sau ti trang p s khng bao gi gy li trang. Trang p s
trong b nh sau khi tham chiu u tin; cc tham chiu theo sau tc th s khng b
li.
V.1 Thay th trang FIFO
Gii thut thay th trang n gin nht l gii thut FIFO. Gii thut ny gn
vi mi trang thi gian khi trang c mang vo trong b nh. Khi mt trang phi
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang 184
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

c thay th, trang c nht s c chn. Ch rng, n khng yu cu nghim ngt
ghi thi gian khi trang c mang vo. Chng ta c th to mt hng i FIFO
qun l tt c trang trong b nh. Chng ta thay th trang ti u hng i. Khi trang
c mang vo b nh, chng ta chn n vo ui ca hng i.
Cho mt th d v chui tham kho, 3 khung ca chng ta ban u l rng. 3
tham kho u tin (7, 0, 1) gy ra li trang v c mang vo cc khung rng ny.
Tham kho tip theo (2) thay th trang 7, v trang 7 c mang vo trc. V 0 l
tham kho tip theo v 0 trong b nh ri, chng ta khng c li trang cho tham
kho ny. Tham kho u tin ti 3 dn n trang 0 ang c thay th v th n l
trang u tin ca 3 trang trong b nh (0, 1, 2) c mang vo. Bi v thay th
ny, tham kho tip theo, ti 0, s b li. Sau , trang 1 c thay th bi trang 0.
Qu trnh ny tip tc nh c hin th trong hnh VIII-6. Mi khi mt li xy ra,
chng ta hin th cc trang trong 3 khung ca chng ta. C 15 li c thy.

Hnh 0-6 gii thut thay th trang FIFO
Gii thut thay th trang FIFO rt d hiu v lp trnh. Tuy nhin, nng lc ca
n khng lun tt. Trang c cho thay th c th l trang chc nhiu d liu cn
thit, thng xuyn c s dng nn c np sm, do vy khi chuyn ra b nh
ph s nhanh chng gy ra li trang.
hin th cc vn c th pht sinh vi gii thut thay th trang FIFO, chng
ta xem xt chui tham kho sau: 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5. Hnh VIII-7 hin th
ng cong li trang khi so snh vi s khung sn dng. Chng ta ch rng s
lng li cho 4 khung (10) l ln hn s lng li cho 3 khung (9). Hu ht cc kt
qu khng mong i ny c gi l s nghch l Belady; i vi mt s gii thut
thay th trang, t l li trang c th tng khi s lng khung c cp pht tng.
Chng ta s mong mun rng cho nhiu b nh hn ti mt qu trnh s ci tin nng
lc ca n. Trong mt vi nghin cu trc y, cc nh iu tra kt lun rng gi
thuyt ny khng lun ng. S khng bnh thng ca Belady c pht hin nh l
mt kt qu.
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang 185
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0


Hnh 0-7 ng cong li trang cho thay th FIFO trn chui tham kho
V.2 Thay th trang ti u ho
Kt qu pht hin s nghch l ca Belady l tm ra mt gii thut thay th
trang ti u. Gii thut thay th trang ti u c t l li trang thp nht trong tt c cc
gii thut v s khng bao gi gp phi s nghch l ca Belady. Gii thut nh th
tn ti v c gi l OPT hay MIN. N n gin l: thay th trang m n khng
c dng cho mt khong thi gian lu nht. S dng gii thut thay th trang m
bo t l li trang nh nht c th cho mt s lng khung c nh.
Th d, trn mt chui tham kho mu, gii thut thay th trang ti u s pht
sinh 9 li trang, nh c hin th trong hnh VIII-8. 3 tham kho u tin gy ra li
in vo 3 khung trng. Tham kho ti trang 2 thay th trang 7 v 7 s khng c
dng cho ti khi tham kho 18, tri li trang 0 s c dng ti 5 v trang 1 ti 14.
Tham kho ti trang 3 thay th trang 1 khi trang 1 s l trang cui cng ca 3 trang
trong b nh c tham kho ln na. Vi ch 9 li trang, thay th ti u l tt hn
nhiu gii thut FIFO, c 15 li. (Nu chng ta b qua 3 li u m tt c gii thut
phi gp th thay th ti u tt gp 2 ln thay th FIFO.) Tht vy, khng c gii thut
thay th no c th x l chui tham kho trong 3 khung vi t hn 9 li.
Tuy nhin, gii thut thay th trang ti u l kh ci t v n yu cu kin thc
tng lai v chui tham kho. Do , gii thut ti u c dng ch yu cho nghin
cu so snh. Th d, n c th c ch bit rng, mc d mt gii thut khng ti u
nhng n nm trong 12.3% ca ti u l t, v trong 4.7% l trung bnh.
Hnh 0-8 gii thut thay th trang ti u
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang 186
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

V.3 Thay th trang LRU
Nu gii thut ti u l khng kh thi, c l mt xp x gii thut ti u l c
th. S khc bit ch yu gia gii thut FIFO v OPT l FIFO dng thi gian khi
trang c mang vo b nh; gii thut OPT dng thi gian khi trang c s dng.
Nu chng ta s dng qu kh gn y nh mt xp x ca tng lai gn th chng ta
s thay th trang m n khng c dng cho khong thi gian lu nht (hnh VIII-9).
Tip cn ny l gii thut t c dng gn y nht (least-recently-used (LRU) ).

Hnh 0-9 gii thut thay th trang LRU
Thay th trang LRU gn vi mi trang thi gian s dng cui cng ca trang.
Khi mt trang phi c thay th, LRU chn trang khng c dng trong mt
khong thi gian lu nht. Chin lc ny l gii thut thay th trang ti u tm kim
li theo thi gian hn l hng ti. (gi S
R
l trnh t ngc ca chui tham kho S
th t l li trang cho gii thut OPT trn S l tng t nh t l li trang cho gii thut
OPT trn S
R
. Tng t, t l li trang i vi gii thut LRU trn S l ging nh t l
li trang cho gii thut LRU trn S
R
)
Kt qu ng dng thay th LRU i vi chui tham kho in hnh c hin
th trong hnh VIII-10. Gii thut LRU sinh ra 12 li. 5 li u tin l ging nh thay
th ti u. Tuy nhin, khi tham chiu ti trang 4 xy ra thay th LRU thy rng 3
khung trong b nh, trang 2 c dng gn y nht. Trang c dng gn y nht
l trang 0, v ch trc khi trang 3 c dng. Do , gii thut LRU thay th trang 2,
khng bit rng trang 2 c dng. Sau , khi n gy li trang 2, gii thut LRU
thay th trang 3, ca 3 trang trong b nh {0, 3, 4} trang 3 t c s dng gn y
nht. Mc d vn ny nhng thay th LRU vi 12 li vn tt hn thay th FIFO
vi 15.

Hnh 0-10 gii thut thay th trang
Chnh sch LRU thng c dng nh gii thut thay th trang v c xem l
tt. Vn chnh l cch ci t thay th LRU. Mt gii thut thay th trang LRU c
th yu cu s tr gip phn cng. Vn l xc nh th t cho cc khung c nh
ngha bi thi gian s dng gn nht. Hai cch ci t kh thi l:
B m: trong trng hp n gin nht, chng ta gn mi mc t bng
trang mt trng s ln s dng v thm CPU mt ng h lun l hay b
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang 187
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

m. ng h c tng cho mi tham kho b nh. Bt c khi no mt
tham kho ti trang c thc hin, cc ni dung ca thanh ghi ng h
c chp ti trng s ln s dng trong mc t bng trang cho trang .
Trong cch ny, chng ta lun c thi gian ca tham kho cui cng ti
mi trang. Chng ta thay th trang vi gi tr s ln s dng nh nht. C
ch ny yu cu tm kim bng trang tm ra trang LRU v vit ti b
nh (ti trng thi gian dng trong bng trang) cho mi truy xut b nh.
S ln cng phi c duy tr khi cc bng trang b thay i (do nh thi
CPU). Vt qu gii hn ca ng h phi c xem xt.
Ngn xp: mt tip cn khc ci t thay th LRU l gi ngn xp s
trang. Bt c khi no mt trang c tham kho, n b xo t ngn xp v
t trn nh. Trong cch ny, nh ca ngn xp lun l trang c dng
gn nht v y l trang LRU (hnh VIII-11). V cc mc t phi c xo
t gia ngn xp, n c ci t tt nht bi mt danh sch c lin kt
kp vi con tr u v ui. Xo mt trang v t n trn nh ca ngn
xp sau yu cu thay i 6 con tr trong trng hp xu nht. Mi cp
nht l t chi ph hn nhng khng cn tm mt thay th; con tr ui ch
ti y ca ngn xp l trang LRU. Tip cn ny c bit ph hp cho ci
t phn mm hay vi m ca thay th LRU.
Thay th ti u ho v LRU khng gp phi s nghch l ca Belady. C mt
lp gii thut thay th trang c gi l gii thut ngn xp, m n khng bao gi
hin th s nghch l Belady. Mt gii thut ngn xp l mt gii thut m n c th
c hin th rng tp hp trang trong b nh i vi n khung trang lun l tp hp
con ca tp hp cc trang m n trong b nh vi n + 1 khung. i vi thay th
LRU, tp hp trang trong b nh l n trang c tham kho gn y nht. Nu s
trang c gia tng th n trang ny s vn l nhng trang c tham kho gn y
nht v v th s vn trong b nh.
Ch rng ci t LRU s c th khng c s tr gip phn cng ngoi tr
thanh ghi TLB. Cp nht cc trng ng h hay ngn xp phi c thc hin cho
mi tham kho b nh. Nu chng ta s dng ngt cho mi tham kho b nh, cho
php phn mm cp nht cu trc d liu th n s lm chm mi tham kho b nh
gn 1 phn 10. Rt t h thng c th chu cp chi ph cho vic qun l b nh.



Hnh 0-11 s dng ngn xp ghi nhng tham kho trang gn nht
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang 188
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

V.4 Gii thut thay th trang xp x LRU
Rt t h thng my tnh cung cp y h tr phn cng cho thay th trang
LRU. Mt s h thng khng cung cp bt c s h tr phn cng v gii thut thay
th trang khc (nh gii thut FIFO) phi c dng. Tuy nhin, nhiu h thng cung
cp mt vi h tr trong dng 1 bit tham kho. Bit tham kho cho mt trang c t
bi phn cng, bt c khi no trang c tham kho (c hay vit ti bt c bit
no trong trang). Cc bit tham kho gn lin vi mi mc t trong bng trang.
Ban u, tt c bit c xo (ti 0) bi h iu hnh. Khi mt qu trnh ngi
dng thc thi, bit c gn vi mi trang c tham kho c t (ti 1) bi phn
cng. Sau thi gian , chng c th xc nh trang no c dng v trang no
khng c dng bng cch xem xt cc bit tham kho. Chng ta khng bit th t s
dng nhng chng ta bit trang no c dng v trang no khng c dng. Thng
tin th t tng phn dn ti nhiu gii thut thay th trang xp x thay th LRU.
V.4.1 Gii thut cc bit tham kho ph
Chng ta c th nhn thm thng tin th t bng cch ghi nhn cc bit tham
kho ti nhng khong thi gian u n. Chng ta c th gi mt byte cho mi trang
trong mt bng nm trong b nh. Ti nhng khong thi gian u n (mi 100 mili
giy), mt ngt thi gian chuyn iu khin ti h iu hnh. H iu hnh chuyn bit
tham kho cho mi trang vo bit c trng s ln nht ca byte, dch cc bit cn li
sang phi 1 bit. Xo bit c trng s thp nht. Thanh ghi dch 8 bit c th cha lch s
ca vic s dng trang i vi 8 ln gn nht. Nu thanh ghi dch cha 00000000, th
trang khng c dng cho 8 thi im; mt trang c dng t nht mt ln mi thi
im s c gi tr thanh ghi dch l 11111111.
Mt thanh ghi vi gi tr thanh ghi lch s l 11000100 c dng gn y
hn mt trang vi 01110111. Nu chng ta thng dch 8 bit ny nh s nguyn khng
du, trang vi s thp nht l trang LRU v n c th c thay th. Tuy nhin, cc s
ny khng m bo duy nht, chng ta thay th tt c trang vi gi tr nh nht hay
dng FIFO chn gia chng.
D nhin, s lng bit lch s c th khc nhau v c th c chn (ph
thuc phn cng sn c) thc hin cp nht nhanh nht c th. Trong trng hp
cc , s c th c gim v 0, ch bit tham kho chnh n. Gii thut ny c gi
l gii thut thay th trang c hi th hai (second-chance page-replacement
algorithm).
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang 189
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

V.4.2 Gii thut c hi th hai

Hnh 0-12 gii thut thay th trang c hi th hai
Gii thut thay th trang c hi th hai c bn l gii thut thay th FIFO. Tuy
nhin, khi mt trang c chn, chng ta xt bit tham kho ca n. Nu gi tr bit ny
l 0, chng ta x l thay th trang ny. Tuy nhin, nu bit tham kho c t ti
1, chng ta cho trang mt c hi th hai v di chuyn chn trang FIFO k tip.
Khi mt trang nhn c hi th hai, bit tham kho ca n c xo v thi gian n
ca n c t li l thi gian hin hnh. Do , mt trang c cho c hi th hai
s khng c thay th cho n khi tt c trang khc c thay th (hay c cho c
hi th hai). Ngoi ra, nu mt trang c dng thng xuyn gi bit tham
kho ca n c t, n s khng bao gi b thay th.
Mt cch ci t gii thut c hi th hai nh mt hng i vng. Mt con
tr hin th trang no c thay th tip theo. Khi mt khung c yu cu, con tr
tng cho ti khi n tm c trang vi bit tham kho 0. Khi n tng, n xo cc bit
tham kho (hnh VIII-12). Mt khi trang nn nhn c tm thy, trang c thay th
v trang mi c chn vo hng i vng trong v tr . Ch rng, trong trng
hp xu nht khi tt c bit c t, con tr xoay vng sut ton hng i, cho mi
trang mt c hi th hai. Thay th c hi th hai tr thnh thay th FIFO nu tt c bit
c t.
V.4.3 Gii thut c hi th hai nng cao
Chng ta c th ci tin gii thut c hi th hai bng cch xem xt c hai bit
tham kho v sa i nh mt cp c xp th t. Vi hai bit ny , chng ta c 4
trng hp c th:
1) (0,0) khng c dng mi y v khng c sa i-l trang tt nht
thay th.
2) (0,1) khng c dng mi y nhng c sa i-khng tht tt v
trang cn c vit ra trc khi thay th.
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang 190
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

3) (1,0) c dng mi y nhng khng c sa i-n c th s nhanh
chng c dng li.
4) (1,1) c dng mi y v c sa i-trang c th s nhanh chng
c dng li v trang s cn c vit ra a trc khi n c th c
thay th.
Khi thay th trang c yu cu, mi trang mt trong bn trng hp.
Chng ta dng cng mt c ch nh gii thut ng h, nhng thay v xem xt trang
chng ta ang tr ti c bit tham kho c t ti 1 hay khng, chng ta xem xt
trng hp m trang ang thuc v. Chng ta thay th trang u tin c gp
trong trng hp thp nht khng rng. C th chng ta phi qut hng i vng
nhiu ln trc khi chng ta tm mt trang c thay th.
Gii thut ny c dng trong c ch qun l b nh o ca Macintosh. S
khc nhau ch yu gia gii thut ny v gii thut ng h n gin hn l chng ta
cho tham kho ti cc trang m chng c sa i ct gim s lng
nhp/xut c yu cu.
V.4.4 Thay th trang da trn c s m
C nhiu gii thut khc c th c dng thay th trang. Th d, chng ta c
th gi b m s ln tham kho i vi mi trang v pht trin hai c ch sau:
Gii thut thay th trang c dng t thng xuyn nht (the least
frequently used (LFU) page-replacement algorithm) yu cu trang vi s
m nh nht c thay th. L do cho s chn la ny l trang c dng
nn c b m tham kho ln. Gii thut ny gp phi trng hp: trang
c dng nhiu trong qu trnh khi to nhng khng bao gi c dng
li. V n c dng nhiu nn n c b m ln v vn trong b nh
mc d n khng cn cn na. Mt gii php l dch b m sang phi 1
bit ti khong thi gian u n, hnh thnh mt b m s dng trung
bnh gim theo hm m.
Gii thut thay th trang c dng thng xuyn nht (the most
frequently used (MFU) page-replacement algorithm) thay th trang c gi
tr m ln nht, ngha l trang c s dng nhiu nht.
VI Cp pht khung trang
Chng ta cp pht lng b nh trng c nh gia cc qu trnh khc nhau nh
th no? Nu chng ta c 93 khung trang trng v 2 qu trnh, bao nhiu khung trang
mi qu trnh s nhn?
Trng hp n gin nht ca b nh o l h thng n nhim. Xt mt h
thng n nhim vi 128 KB b nh c hnh thnh t cc trang c kch thc 1
KB. Do , c 128 khung trang. H iu hnh c th ly 35 KB, cn li 93 khung
trang cho qu trnh ngi dng. Di thun phn trang yu cu, tt c 93 khung trang
u tin c t vo danh sch khung trng. Khi mt qu trnh ngi dng bt u
thc thi, n sinh ra mt chui li trang. Nhng li trang 93 u tin nhn nhng
khung trng t danh sch khung trng. Khi danh sch khung trng ht, mt gii thut
thay th trang c dng chn mt trong 93 trang ang trong b nh thay th
vi trang th 94, Khi mt qu trnh kt thc, khung trang 93 mt ln na c thay
th trn danh sch khung trang trng.
C nhiu thay i trn chin lc n gin ny. Chng ta c th yu cu h iu
hnh cp pht tt c vng m ca n v khng gian bng t danh sch khung trng.
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang 191
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

Khi khng gian ny khng c dng bi h iu hnh, n c th c dng h tr
phn trang ngi dng. Chng ta c th c gng gi 3 khung trang trng c d tr
trn danh sch khung trang trng ti tt c thi im. Do , khi li trang xy ra c
mt khung trng sn c i vi trang. Trong khi hon v trang xy ra, mt thay th c
th c chn, sau trang c vit ti a khi qu trnh ngi dng tip tc thc
thi.
Mt thay i khc cng c th thc hin trn chin lc c bn l qu trnh
ngi dng c cp pht bt c khung trang no trng.
Mt vn khc pht sinh khi phn trang yu cu c kt hp vi a chng.
a chng t hai hay nhiu qu trnh trong b nh ti cng mt thi im.
VI.1 S khung trang ti thiu
Nhng chin lc cp pht khung trang b rng buc trong nhiu cch khc
nhau. Chng ta khng th cp pht nhiu hn ton b s khung trang sn c (nu
khng c chia s trang). Chng ta cng cp pht t nht s khung trang ti thiu. Ch
, khi s khung trang c cp pht ti mi qu trnh gim, t l li trang tng, gim
vic thc thi qu trnh.
Ngoi ra, nng lc thc hin vic cp pht ngoi mong mun ch c mt vi
khung trang, c s khung trang ti thiu phi c cp pht. S lng ti thiu. S ti
thiu ny c qui nh bi kin trc my tnh. Nh rng, khi li trang xy ra trc
khi ch th thc thi hon thnh, ch th phi bt u li. Do , chng ta phi c
khung trang gi tt c trang khc nhau m bt c ch th n c th tham kho.
Th d, xt mt my trong tt c ch th tham kho b nh ch c mt a
ch b nh. Do , chng ta cn t nht mt khung trang cho ch th v mt khung
trang cho tham kho b nh. Ngoi ra, nu nh a ch gin tip cp 1 c php (th
d, mt ch th load trn trang 16 c th tham kho ti mt a ch b nh trn trang 0,
m n tham kho gin tip ti trang 23), th phn trang yu cu t nht 3 khung trn
qu trnh. iu g c th xy ra nu mt qu trnh ch c hai khung trang.
VI.1.1 Cc gii thut cp pht trang
C hai tip cn:
1. Cp pht c nh
Cp pht cng bng: nu c m khung trang v n qu trnh, mi qu
trnh c cp m/n khung trang
Cp pht theo t l: da vo kch thc ca tin trnh cp pht s
khung trang:
i. Gi s
i
= kch thc ca b nh o cho qu trnh p
i

ii. S = s
i

iii. m = tng s khung trang c th s dng
iv. Cp pht a
i
khung trang ti qu trnh p
i
: a
i
= (s
i
/ S) m
2. Cp pht theo u tin
S dng tng cp pht theo t l, nhng lng khung trang cp cho qu trnh
ph thuc vo u tin ca qu trnh hn l ph thuc kch thc qu trnh
Nu qu trnh p
i
pht sinh li trang, chn mt trong cc khung trang ca n
thay th, hoc chn mt khung trang ca qu trnh khc vi u tin thp hn
thay th.
Thay th trang ton cc hay cc b
C th phn cc thut ton thay th trang thnh hai lp chnh:
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang 192
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

i. Thay th ton cc: khi li trang xy ra vi mt qu trnh, chn trang
nn nhn t tp tt c cc khung trang trong h thng, bt k khung
trang ang c cp pht cho mt qu trnh khc.
ii. Thay th cc b: yu cu ch c chn trang thay th trong tp cc
khung trang c cp cho qu trnh pht sinh li trang
Mt khuyt im ca gii thut thay th ton cc l cc qu trnh khng th
kim sot c t l pht sinh li trang ca mnh. V th, tuy gii thut thay th ton
cc nhn chung cho php h thng c nhiu kh nng x l hn, nhng n c th dn
h thng n tnh trng tr tr ton b h thng (thrashing).
VII Tr tr ton h thng
Nu mt qu trnh khng c cc khung trang cha nhng trang cn thit
cho x l th n s thng xuyn pht sinh li trang v v th phi dng n rt nhiu
thi gian s dng CPU thc hin thay th trang. Mt hot ng phn trang nh th
c gi l s tr tr (thrashing). Mt qu trnh lm vo trng thi tr tr nu n s
dng nhiu thi gian thay th hn l x l.
Hin tng ny nh hng nghim trng n hot ng h thng, xt tnh hung
sau:
1) H iu hnh gim st vic s dng CPU
2) Nu hiu sut s dng CPU qu thp, h iu hnh s nng mc a
chng bng cch a thm mt qu trnh mi vo h thng.
3) H thng c th s dng gii thut thay th ton cc chn cc trang nn
nhn thuc mt tin trnh bt k c ch np qu trnh mi, c th s
thay th c cc trang ca tin trnh ang x l hin hnh.
4) Khi c nhiu qu trnh trong h thng hn, th mt qu trnh s c cp t
khung trang hn v do pht sinh nhiu li trang hn.
5) Khi cc qu trnh pht sinh nhiu li trang, chng phi tri qua nhiu thi
gian ch cc thao tc thay th trang hon tt, lc hiu sut s dng CPU
li gim.
6) H iu hnh li quay tr li bc 1.
Theo kch bn trn y, h thng s lm vo tnh trng lun qun ca vic gii
phng cc trang cp pht thm khung trang cho mt qu trnh, v cc qu trnh
khc li thiu khung trang..v cc qu trnh khng th tip tc x l. y chnh l tnh
trng tr tr ton b h thng. Khi tnh trng tr tr ny xy ra, h thng gn nh mt
kh nng x l, tc pht sinh li trang tng rt cao khng cng vic no c th kt
thc v tt c qu trnh u bn rn vi vic phn trang.
ngn cn tnh trng tr tr ny xy ra, cn phi cp cho qu trnh cc
khung trang cn thit hot ng. Vn cn gii quyt l lm sao bit c qu
trnh cn bao nhiu trang?
VII.1 M hnh cc b
Theo l thuyt cc b th khi mt qu trnh x l n c khuynh hng di
chuyn t nhm trang cc b ny n nhm trang cc b khc. Mt nhm trang cc
b l mt tp cc trang ang c qu trnh dng n trong mt khong thi gian.
Mt chng trnh thng bao gm nhiu nhm trang cc b khc nhau v chng c
th giao nhau.
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang 193
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

VII.2 M hnh tp lm vic
M hnh tp lm vic (working set model) ny da trn c s l thuyt cc b.
M hnh ny s dng tham s nh ngha ca s cho tp lm vic. Gi s, kho
st n v thi gian (ln truy xut trang) cui cng, tp cc trang c qu trnh truy
xut n trong ln truy cp cui cng c gi l tp lm vic ca qu trnh ti thi
im hin ti. Nu mt trang ang c qu trnh truy xut ti, n s nm trong tp
lm vic nu n khng s dng na, n s b loi khi tp lm vic ca qu trnh sau
n v thi gian k t ln truy xut cui cng n n. Nh vy, tp lm vic chnh
l s xp x ca khi nim nhm trang cc b.



Hnh 0-13 M hnh tp lm vic
Thuc tnh rt quan trng ca tp lm vic l kch thc ca n. Nu tnh ton
kch thc tp lm vic WSS
i
, cho mi tin trnh trong h thng th c th xem:
D = WSS
i
Vi D l tng s khung trang yu cu cho ton h thng. Mi qu trnh s dng
cc trang trong tp lm vic ca n, ngha l qu trnh i yu cu WSS
i
khung trang.
Nu tng s trang yu cu vt qu tng s trang c th s dng trong h thng (D >
m), th s xy ra tnh trng tr tr ton b.
Dng m hnh tp lm vic l n gin. H iu hnh kim sot tp lm vic
ca mi qu trnh v cp pht cho qu trnh ti thiu cc khung trang cha tp
lm vic ca n. Nu c khung trang b sung th qu trnh khc c th c khi
to. Nu tng kch thc tp lm vic gia tng vt qu tng s khung sn c, h iu
hnh chn mt qu trnh tm dng. Nhng trang ca qu trnh ny c vit ra a
v cc khung trang ca n c cp pht li cho qu trnh khc. Qu trnh c tm
dng c th khi ng li sau .
Chin lc tp lm vic ngn chn s tr tr trong khi gi cp a chng cao
nht c th. Do , n ti u vic s dng CPU.
Kh khn vi m hnh tp lm vic ny l gi vt ca tp lm vic. Ca s tp
lm vic l mt ca s di chuyn. Ti mi tham kho b nh, mt tham kho mi xut
hin khi mt tham kho trc kt thc v tham kho c nht tr thnh im kt
thc khc. Mt trang trong tp lm vic nu n c tham kho bt c ni no trong
ca s tp lm vic. Chng ta c th xem m hnh tp lm vic gn xp x vi ngt
ng h sau tng chu k c nh v bit tham kho.
VII.3 Tn sut li trang
Tn sut li trang rt cao khin tnh trng tr tr h thng xy ra. Khi tn sut
li trang qu cao, qu trnh cn thm mt s khung trang. Ngc li, khi tn sut qu
thp, qu trnh c th s hu nhiu khung trang hn mc cn thit. C th thit lp
mt gi tr cn trn v cn di cho tn sut xy ra li trang v trc tip c lng v
kim sot tn sut li trang ngn chn tnh trng tr tr xy ra:
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang 194
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

Nu tn sut li trang vt qu cn trn, cp cho qu trnh thm mt khung
trang
Khi tn sut li trang thp hn cn di, thu hi bt mt khung trang t
qu trnh.
Vi chin lc tp lm vic, chng ta c th c phi tm dng mt qu trnh.
Nu t l li trang tng v khng c trang no trng, chng ta phi chn mt s qu
trnh v tm dng n. Sau , nhng khung trang c gii phng s c phn phi
li cho cc qu trnh vi t l li trang cao.
VIII Cc vn khc
VIII.1 Kch thc trang
Kch thc trang thng thng c xc nh bi phn cng. Khng c s chn
la l tng cho kch thc trang:
Kch thc trang cng ln th kch thc bng trang cng gim
Kch thc trang cng nh th cho php t chc nhm trang cc b tt hn
v gim s phn mnh trong
Thi gian nhp xut nh khi kch thc trang ln
Kch thc trang nh th c th gim s lng thao tc nhp xut cn thit
v c th xc nh cc nhm trang cc b chnh xc hn
Kch thc trang ln s gim tn xut li trang

a s cc h thng chn kch thc trang l 4 KB.
VIII.2 Cu trc chng trnh
V nguyn tc, k thut phn trang theo yu cu c thit k nhm gip
ngi dng khi bn tm n vic s dng b nh mt cch hiu qu. Tuy nhin, nu
hiu r t chc b nh trong k thut phn trang, lp trnh vin c th gip cho hot
ng ca h thng tt hn vi chng trnh c xy dng ph hp.
Th d, gi s 1 trang c kch thc 128 bytes, mt chng trnh khi to v
gn gi tr mng c kch thc 128x128 nh sau:
Var A: array[1..128] of array [1..128] of byte;
For i:= 1 to 128 do
For j:=1 to 128 do
A[i][j]:=0;
Trong Pascal, C, PL/I, mng trn y c lu tr theo th t dng, mi dng
mng chim mt trang b nh, do tng s li trang pht sinh s l 128.
Trong Fortran, mng trn y li c lu tr theo th t ct, do tng s li
trang pht sinh s l 128x128 = 1638.
VIII.3 Neo cc trang trong b nh chnh
Khi p dng k thut phn trang i lc c nhu cu neo trong b nh chnh
mt s trang quan trng hoc thng c s dng hoc khng th chuyn ra b nh
ph bo ton d liu.
Khi s dng thm mt bit kho gn tng ng cho tng khung trang. Mt
khung trang c bit kho c t s khng b chn thay th.
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang 195
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

IX Tm tt
Mong mun c th thc thi mt qu trnh c khng gian a ch lun l ln hn
khng gian a ch vt l sn c. Ngi lp trnh c th lm mt qu trnh nh th c
th thc thi bng cch cu trc li n dng c ch ph lp, nhng thc hin iu ny
thng l mt tc v lp trnh kh. B nh o l mt k thut cho php khng gian
a ch lun l c nh x vo b nh vt l nh hn. B nh o cho php nhng qu
trnh cc ln c chy v cng cho php cp a chng c gia tng, tng kh
nng s dng CPU. Ngoi ra, n gii phng ngi lp trnh ng dng t vic lo lng
kh nng sn c ca b nh.
Thun phn trang theo yu cu mang vo mt trang cho ti khi trang c
tham kho. Tham kho u tin gy ra li trang ti h iu hnh. H iu hnh xem
xt bng trang bn trong xc nh ni trang c nh v trn vng b nh ph.
Bng trang c cp nht phn nh s thay i ny, cho php mt qu trnh chy
mc d ton b hnh nh b nh ca n khng trong b nh chnh. Khi t l li trang
tng i thp, nng lc c th chp nhn.
Chng ta c th dng phn trang theo yu cu gim s khung trang c cp
pht ti qu trnh. Sp xp ny c th tng cp a chng (cho php nhiu qu
trnh sn sng thc thi ti mt thi im). N cng cho php cc qu trnh c thc
thi mc d yu cu b nh vt qu ton b b nh vt l sn c. Nhng qu trnh
nh th chy trong b nh o.
Nu tng s yu cu b nh vt qu b nh vt l, th n cn thay th trang t
b nh ti cc khung trang trng cho nhng trang mi. Nhng gii thut thay th
trang khc nhau c dng. Thay th trang FIFO l d dng i vi chng trnh
nhng gp phi li Belady. Thay th trang ti u yu cu kin thc tng lai. Thay
th LRU l xp x ti u nhng n rt kh ci t. Hu ht cc gii thut thay th
trang nh gii thut c hi th hai l xp x thay th LRU.
Ngoi ra i vi gii thut thay th trang, chnh sch cp pht khung trang c
yu cu. Cp pht c th c nh, ngh thay th trang cc b, hay ng, ngh
thay th ton cc. M hnh tp lm vic cho rng cc qu trnh thc thi trong cc v
tr. Tp lm vic l tp cc trang trong cc v tr hin hnh. Theo , mi qu trnh nn
c cp pht cc khung cho tp lm vic hin hnh ca n.
Nu mt qu trnh khng c b nh cho tp lm vic ca n, n s b tr tr.
Cung cp khung cho mi qu trnh trnh tr tr c th yu cu qu trnh hon v
v nh thi.
Ngoi ra, yu cu chng ta gii quyt cc vn chnh ca thay th trang v
cp pht khung trang, thit k hp l h thng phn trang yu cu chng ta xem xt
kch thc trang, nhp/xut, kho, phn li trang, to qu trnh, cu trc chng trnh,
s tr tr,.. B nh o c th c xem nh mt cp ca c ch phn cp trong cc cp
lu tr trong h thng my tnh. Mi cp c thi gian truy xut, kch thc v tham s
chi ph ca chnh n.
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang 196
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

H THNG TP TIN
I Mc ch
Sau khi hc xong chng ny, ngi hc nm c nhng kin thc sau:
Hiu cc kha cnh khc nhau ca tp tin v cu trc th mc
Hiu cc c ch qun l, kim sot, bo v tp tin khi c nhiu ngi cng
truy xut
Hiu cch chia s tp tin gia nhiu qu trnh, ngi dng v my tnh
II Gii thiu
i vi hu ht ngi dng, h thng tp tin l din mo d nhn thy nht ca
h iu hnh. N cung cp c ch cho vic lu tr trc tuyn v truy xut d liu,
chng trnh ca h iu hnh v tt c ngi dng ca h thng my tnh. H thng
tp tin cha hai phn ring bit: tp hp cc tp tin (files), mi tp tin lu tr d liu
c lin quan v cu trc th mc (directory structure) m n t chc v cung cp
thng tin v tt c tp tin trong h thng. Mt s h thng tp tin cn c thm phn
th ba , cc phn khu (partitions) m n c dng tch ri tp hp cc th mc
ln lun l v vt l.
Trong chng ny chng ta xt cc kha cnh khc nhau ca tp tin v cu trc
th mc. Chng ta cng tho lun cc cch qun l vic bo v tp tin (file
protection), cn thit khi nhiu ngi dng truy xut cc tp tin v chng ta mun
kim sot ai v cch g truy xut tp tin. Cui cng, chng ta tho lun vic chia s
gia nhiu qu trnh, ngi dng, v my tnh.
III Khi nim tp tin
Cc my tnh lu tr thng tin trn nhiu phng tin lu tr khc nhau, nh
a t, bng t, a quang. h thng my tnh tin dng, h iu hnh cung cp
mt tm nhn lun l khng i ca vic lu tr thng tin. H iu hnh tru tng t
cc thuc tnh vt l ca cc thit b lu tr ca n n nh ngha mt n v lu tr
lun l l tp tin (file). Tp tin c nh x bi h iu hnh trn cc thit b vt l.
Cc thit b lu tr c dng thng n nh v th ni dung khng b mt khi mt
in hay khi ng li h thng.
Mt tp tin l mt tp thng tin c lin quan c ghi trn thit b lu tr ph.
T quan im ngi dng, mt tp tin l phn nh nht ca thit b lu tr ph lun
l; ngha l d liu khng th c vit ti thit b lu tr ph tr khi chng trong
mt tp tin. Cc tp tin d liu c th l s, ch, k t s hay nh phn. Cc tp tin c
th c dng bt k nh tp tin vn bn, hay c th c nh dng khng i. Thng
thng, mt tp tin l mt chui cc bits, bytes, dng hay mu tin,..c nh ngha
bi ngi to ra n. Do , khi nim tp tin l cc k tng qut.
Thng tin trong mt tp tin c nh ngha bi ngi to. Nhiu loi thng tin
khc nhau c th c lu tr trong mt tp tin-chng trnh ngun, chng trnh i
tng, chng trnh thc thi, d liu s, vn bn, mu tin, hnh nh ho, m
thanh,..Mt tp tin c mt cu trc c nh ngha c th da theo loi ca n. Mt
tp tin vn bn l mt chui cc k t c t chc thnh nhng dng. Mt tp tin
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang

200
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

ngun l mt chui cc th tc v hm, c t chc khi khai bo c theo sau bi
cc cu lnh c th thc thi. Mt tp tin i tng l mt chui cc bytes c t
chc thnh cc khi c th hiu c bi b lin kt ca h thng. Mt tp tin c th
thc thi l mt chui cc phn m m b np c th mang vo b nh v thc thi.
III.1 Thuc tnh tp tin
tin cho ngi dng, mt tp tin c t tn v c tham kho bi tn
ca n. Mt tn thng l mt chui cc k t, th d: example.c. Mt s h thng c
s phn bit gia k t hoa v thng trong tn, ngc li cc h thng khc xem hai
trng hp l tng ng. Khi mt tp tin c t tn, n tr nn c lp vi
qu trnh, ngi dng, v thm ch vi h thng to ra n. Th d, mt ngi dng c
th to tp tin example.c, ngc li ngi dng khc c th sa tp tin bng cch
xc nh tn ca n. Ngi s hu tp tin c th ghi tp tin ti a mm, gi n vo
email hay chp n qua mng v c th vn c gi example.c trn h thng ch.
Mt tp tin c mt s thuc tnh khc m chng rt khc nhau t mt h iu
hnh ny ti mt h iu hnh khc, nhng in hnh chng gm:
Tn (name): tn tp tin ch l thng tin c lu dng m ngi dng c th
c
nh danh (identifier): l th duy nht, thng l s, xc nh tp tin trong h
thng tp tin; n l tn m ngi dng khng th c
Kiu (type): thng tin ny c yu cu cho h thng h tr cc kiu khc
nhau
V tr (location): thng tin ny l mt con tr ch ti mt thit b v ti v tr
tp tin trn thit b .
Kch thc (size): kch thc hin hnh ca tp tin (tnh bng byte, word hay
khi) v kch thc cho php ti a cha trong thuc tnh ny.
Gi (time), ngy (date) v nh danh ngi dng (user identification): thng
tin ny c th c lu cho vic to, sa i gn nht, dng gn nht. D liu
ny c ch cho vic bo v, bo mt, v kim sot vic dng.

Thng tin v tt c tp tin c gi trong cu trc th mc (directory) nm
trong thit b lu tr ph. in hnh, mc t th mc cha tn tp tin v nh danh
duy nht ca n. nh danh ln lt xc nh thuc tnh tp tin khc. Trong h thng
c nhiu tp tin, kch thc ca chnh th mc c th l Mbyte. Bi v th mc ging
tp tin, phi bn, chng phi c lu tr trn thit b v mang vo b nh khi cn.
III.2 Thao tc tp tin
Tp tin l kiu d liu tru tng. nh ngha mt tp tin hp l, chng ta
cn xem xt cc thao tc c th c thc hin trn cc tp tin. H iu hnh cung cp
li gi h thng thc hin cc thao tc ny

To tp tin: hai bc cn thit to mt tp tin. Th nht, khng gian
trong h thng tp tin phi c tm cho tp tin. Th hai, mt mc t cho
tp tin mi phi c to trong th mc. Mc t th mc ghi tn tp tin v
v tr trong h thng tp tin, v cc thng tin khc.
M: trc khi m tp tin, qu trnh phi m n. Mc tiu ca vic m l
cho php h thng thit lp mt s thuc tnh v a ch a trong b nh
tng tc truy xut.
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang

201
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

ng: khi chm dt truy xut, thuc tnh v a ch trn a khng cn
dng na, tp tin c ng li gii phng vng nh.
Ghi: ghi mt tp tin, chng ta thc hin li gi h thng xc nh tn
tp tin v thng tin c ghi ti tp tin. Vi tn tp tin, h thng tm th
mc xc nh v tr ca tp tin. H thng phi gi mt con tr vit ti v
tr trong tp tin ni m thao tc vit tip theo s xy ra. Con tr vit phi
c cp nht bt c khi no thao tc vit xy ra.
Chn cui: ging thao tc ghi nhng d liu lun c ghi vo cui tp
tin
c: c t mt tp tin, chng ta dng li gi h thng xc nh tn tp
tin v ni (trong b nh) m khi tip theo ca tp tin c t. Th mc
c tm mc t tng ng v h thng cn gi con tr c ti v tr trong
tp tin ni thao tc c tip theo xy ra.
Xo: xo mt tp tin, chng ta tm kim th mc vi tn tp tin c
cho. Tm mc t tng ng, gii phng khng gian tp tin khng gian
ny c th dng li bi tp tin khc v xo mc t th mc.
Tm: th mc c tm mc t tng ng v v tr con tr hin hnh c
t ti gi tr c cho
Ly thuc tnh: ly thuc tnh tp tin cho qu trnh
i tn: thay i tn tp tin tn ti
III.3 Cc kiu tp tin

Khi thit k mt h thng tp tin, chng ta lun lun xem xt h iu hnh nn
t chc v h tr cc kiu tp tin no. Nu h iu hnh nhn bit kiu ca mt tp
tin, n c th thao tc trn tp tin trong cc cch ph hp.
Mt k thut chung cho vic ci t cc kiu tp tin l cha kiu nh mt
phn ca tn tp tin. Tn tp tin c chia lm hai phn-tn v phn m rng, thng
c ngn cch bi du chm. Trong trng hp ny, ngi dng v h iu hnh c
th bit kiu tp tin l g t tn.
Cc h iu hnh thng h tr cc kiu tp tin sau:
Tp tin thng: l tp tin vn bn hay tp tin nh phn cha thng tin ca
ngi s dng
Th mc: l nhng tp tin h thng dng lu gi cu trc ca h thng
tp tin
Tp tin c k t c bit: lin quan n nhp/xut thng qua cc thit b
nhp/xut tun t nh mn hnh, my in,..
Tp tin khi: dng truy xut trn thit b a
III.4 Cu trc tp tin
Cc kiu tp tin cng c th c dng hin th cu trc bn trong ca mt
tp tin. Ngoi ra, cc tp tin c th phi ph hp cu trc c yu cu h iu
hnh c th hiu. Mt s h iu hnh m rng tng ny thnh tp hp cc cu
trc tp tin c h tr h thng, vi nhng tp hp thao tc c bit cho vic thao
tc cc tp tin vi nhng cu trc .
Cc h iu hnh thng h tr ba cu trc tp tin thng dng l:
Khng c cu trc: tp tin l mt dy tun t cc byte
C cu trc: tp tin l mt dy cc mu tin c kch thc c nh
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang

202
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

Cu trc cy: tp tin gm mt cy ca nhng mu tin khng cn thit c
cng chiu di, mi mu tin c mt trng kho gip vic tm kim nhanh
hn
IV Cc phng php truy xut
Cc tp tin lu tr thng tin. Khi n c dng, thng tin ny phi c truy
xut v c vo b nh my tnh. Thng tin trong tp tin c th c truy xut trong
nhiu cch.
IV.1 Truy xut tun t
Mt phng php n gin nht l truy xut tun t. Thng tin trong tp tin
c x l c th t, mt mu tin ny sau mu tin kia. Ch truy xut ny l thng
dng nht. Th d, b son tho v bin dch thng truy xut cc tp tin trong cch
thc ny.
Nhm cc thao tc trn mt tp tin l c v vit. Mt thao tc c c phn
tip theo ca tp tin v t ng chuyn con tr tp tin ghi vt v tr nhp/xut.
Tng t, mt thao tc vit chn vo cui tp tin v chuyn ti v tr cui ca ti liu
va c vit (cui tp tin mi). Trn mt vi h thng, mt tp tin nh th c th
c t li ti v tr bt u v mt chng trnh c th nhy ti hay li n mu tin.
Truy xut tun t c m t nh hnh IX-1.

Hnh 0-1 Truy xut tp tin tun t
IV.2 Truy xut trc tip
Mt phng php khc l truy xut trc tip (hay truy xut tng i). Mt
tp tin c hnh thnh t cc mu tin lun l c chiu di khng i. Cc mu tin ny
cho php ngi lp trnh c v vit cc mu tin nhanh chng khng theo th t.
Phng php truy xut trc tip da trn m hnh a ca tp tin, v a cho php truy
xut ngu nhin ti bt c khi tp tin. truy xut trc tip, tp tin c hin th
nh mt chui cc khi hay mu tin c nh s. Tp tin truy xut trc tip cho
php cc khi bt k c c hay vit. Do , chng ta c th c khi 14, sau
c khi 53 v sau vit khi 7. Khng c bt k s hn ch no trn th t c hay
vit cho mt tp tin truy xut trc tip
Cc tp tin truy xut trc tip c dng nhiu cho truy xut tc thi ti mt
lng ln thng tin. C s d liu thng l loi ny. Khi mt truy vn tp trung mt
ch c th, chng ta tnh khi no cha cu tr li v sau c khi trc tip
cung cp thng tin mong mun.
Khng phi tt c h iu hnh u h tr c hai truy xut tun t v trc tip
cho tp tin. Mt s h thng cho php ch truy xut tp tin tun t; mt s khc cho
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang

203
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

php ch truy xut trc tip. Mt s h iu hnh yu cu mt tp tin c nh ngha
nh tun t hay trc tip khi n c to ra; nh tp tin c th c truy xut ch
trong mt cch khng i vi khai bo ca n. Tuy nhin, chng ta d dng m phng
truy xut tun t trn tp tin truy xut trc tip. Nu chng ta gi mt bin cp xc
nh v tr hin ti th chng ta c th m phng cc thao tc tp tin tun t nh c
hin th trong hnh IX-2. Mc d, khng v khng gn m phng mt tp tin
truy xut trc tip trn mt tp tin truy xut tun t.


Hnh 0-2 M phng truy xut tun t trn truy xut trc tip
IV.3 Cc phng php truy xut khc
Cc phng php truy xut khc c th c xy dng trn c s ca phng
php truy xut trc tip. Cc phng php khc thng lin quan n vic xy dng
ch mc cho tp tin. Ch mc cha cc con tr ch ti cc khi khc. tm mt mu
tin trong tp tin, trc ht chng ta tm ch mc v sau dng con tr truy xut
tp tin trc tip v tm mu tin mong mun.
Vi nhng tp tin ln, ch mc tp tin c th tr nn qu ln gi trong b
nh. Mt gii php l to ch mc cho tp tin ch mc. Tp tin ch mc chnh cha cc
con tr ch ti cc tp tin ch mc th cp m n ch ti cc thnh phn d liu tht s.

Hnh 0-3 Th d v ch mc v cc tp tin lin quan



Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang

204
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

V Cu trc th mc
Cc h thng tp tin ca my tnh c th rt ln v s lng. Mt s h thng
lu tr hng triu tp tin trn cc terabytes a. qun l tt c d liu ny, chng ta
cn t chc li chng. Vic t chc ny thng c thc hin hai phn.
Th nht, a c chia thnh mt hay nhiu phn khu (partition) hay phn
vng (volumes). in hnh, mi a trn h thng cha t nht mt phn khu. Phn
khu ny l cu trc cp thp m cc tp tin v th mc nh v. Thnh thong cc phn
khu c dng cung cp nhiu vng ring r trong mt a, mi phn khu c
xem nh mt thit b lu tr ring, tri li cc h thng khc cho php cc phn khu
c dung lng ln hn mt a nhm cc a vo mt cu trc lun l v cu trc
tp tin, v c th b qua hon ton nhng vn cp pht khng gian vt l cho cc
tp tin. Cho l do ny, cc phn khu c th c xem nh cc a o. Cc phn khu
cng c th lu tr nhiu h iu hnh, cho php h thng khi ng v chy nhiu
hn mt h iu hnh.
Th hai, mi phn khu cha thng tin v cc tp tin trong n. Thng tin ny gi
trong nhng mc t trong mt th mc thit b hay bng mc lc phn vng (volume
table of contents). Th mc thit b (c gi n gin l th mc) ghi thng tin-nh
tn, v tr, kch thc v kiu-i vi tt c tp tin trn phn khu (nh hnh IX-4).





Hnh 0-4 t chc h thng tp tin in hnh
Th mc c th c hin th nh mt bng danh biu dch tn tp tin thnh
cc mc t th mc. Cc th mc c th c t chc trong nhiu cch. Chng ta
mun c th chn mc t, xo mc t, tm kim mt mc t v lit k tt c mc t
trong th mc. Trong phn ny, chng ta xem xt nhiu c ch nh ngha cu trc
lun l ca h thng th mc. Khi xem xt mt cu trc th mc c th, chng ta cn
nh cc thao tc c thc hin trn mt th mc.


Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang

205
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

Tm kim tp tin: chng ta cn tm trn cu trc th mc xc nh mc
t cho mt tp tin c th.
To tp tin: mt tp tin mi cn c to v c thm ti th mc.
Xo tp tin: khi mt tp tin khng cn cn, chng ta mun xo n ra khi
th mc.
Lit k th mc: chng ta c th lit k cc tp tin trong th mc v ni
dung ca mc t th mc cho mi tp tin trong danh sch.
i tn tp tin: v tn tp tin biu din ni dung ca n i vi ngi
dng, tn c th thay i khi ni dung hay vic s dng tp tin thay i.
i tn tp tin c th cho php v tr ca n trong cu trc th mc c
thay i.
Duyt h thng tp tin: chng ta mun truy xut mi th mc v mi tp
tin trong cu trc th mc.
Chng ta s m t cc c ch thng dng nht nh ngha cu trc lun l
ca mt th mc.
V.1 Cu trc th mc dng n cp
Cu trc th mc n gin nht l th mc n cp. Tt c tp tin c cha
trong cng th mc nh c hin th trong hnh IX-5 di y:

Hnh 0-5 Th mc n cp
Tuy nhin, th mc n cp c nhiu hn ch khi s lng tp tin tng hay khi
h thng c nhiu hn mt ngi dng. V tt c tp tin c cha trong cng th
mc, chng phi c tn khc nhau. Nu hai ngi dng t tn tp tin d liu ca h
l test th qui tc tn duy nht b xung t. Mc d cc tn tp tin thng c chn
phn nh ni dung ca tp tin, chng thng b gii hn chiu di. H iu hnh
MS-DOS cho php ch 11 k t cho tn; UNIX cho php 255 k t.
Ngi dng trn th mc n cp c th gp phi kh khn nh tn ca tt
c tp tin, khi s tp tin tng. Nu trn mt h thng my tnh c hng trm tp tin th
vic ghi li vt ca qu nhiu tp tin l mt tc v nng n.
V.2 Cu trc th mc dng hai cp
Mt th mc n cp dn n s ln ln gia tn cc tp tin ca nhiu ngi
dng khc nhau. Gii php chun l to mt th mc ring cho mi ngi dng.
Trong cu trc th mc hai cp, mi ngi dng c th mc tp tin ring cho
h (user file directory-UFD). Mi UFD c mt cu trc tng t nhng cc danh sch
cha cc tp tin ca mt ngi dng. Khi cng vic ca ngi dng bt u hay
ngi dng ng nhp, th mc tp tin chnh ca h thng (master file directory)
c tm kim. MFD c lp ch mc bi tn ngi dng hay s ti khon v mi
mc t ch ti UFD cho ngi dng (nh hnh IX-6)
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang

206
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0


Hnh 0-6 th mc hai cp
Khi ngi dng tham kho ti mt tp tin c th, ch UFD ca chnh ngi
dng c tm kim. Do , cc ngi dng khc nhau c th c cc tp tin vi
cng mt tn, vi iu kin l tt c tn tp tin trong mi UFD l duy nht.
to mt tp tin cho mt ngi dng, h iu hnh ch tm UFD ca ngi
dng xc nh mt tp tin khc cng tn c tn ti hay khng. xa mt tp
tin, h iu hnh gi li vic tm kim ca n ti UFD cc b; do , n khng th
xa nhm tp tin ca ngi dng khc c cng tn.
Cc th mc ngi dng phi c to v xa khi cn thit. Mt chng trnh
h thng c bit c chy vi tn ngi dng hp l v thng tin ti khon.
Chng trnh ny to mt UFD mi v thm mt mc t cho n ti MFD. Vic thc
thi chng trnh ny c th b gii hn bi ngi qun tr h thng.
Mc d cu trc th mc hai cp gii quyt vn xung t tn nhng n
cng c nhng bt li. Cu trc ny c lp mt ngi dng t ngi dng khc. Vic
c lp ny l li im khi cc ngi dng hon ton c lp nhau nhng s bt li khi
cc ngi dng mun hp tc trn mt s cng vic v truy xut cc tp tin ca
ngi dng khc. Mt s h thng n gin khng cho php tp tin ngi dng cc
b c truy xut bi ngi dng khc.
Nu truy xut c cho php, mt ngi dng phi c kh nng t tn mt
tp tin trong mt th mc ca ngi dng khc. t tn mt tp tin xc nh duy
nht trong th mc hai cp, chng ta phi cho c hai tn ngi dng v tn tp tin.
Mt th mc hai cp c th c xem nh mt cy hay t nht mt cy o ngc hay
c chiu cao bng 2. Gc ca cy l UFD. Hu du trc tip ca n l MFD. Hu du
ca UFD l cc tp tin. Cc tp tin ny l l ca cy. Xc nh tn ngi dng v tn
tp tin nh ngha ng dn trong cy t gc (MFD) ti mt l (tp tin xc nh). Do
, tn ngi dng v tn tp tin nh ngha tn ng dn. Mi tp tin trong h thng
c mt ng dn. t tn mt tp tin duy nht ngi dng phi bit tn ng
dn ca tp tin mong mun.
Trng hp c bit xy ra cho cc tp tin h thng. Cc chng trnh ny
cung cp mt phn h thng nh: b np, b hp ng, b bin dch, cc th
tc,..thng c nh ngha nh cc tp tin. Khi cc lnh tng ng c gi ti h
iu hnh, cc tp tin ny c c bi b np v c thc thi. Mt s b thng dch
lnh hot ng bng cch xem lnh nh l tn tp np v thc thi. Vi h thng th
mc c nh ngha hin ti, tn tp tin ny c tm kim trong UFD hin hnh.
Mt gii php cho vn ny l chp cc tp tin h thng vo mi UFD. Tuy nhin,
chp tt c tp tin h thng s lng ph lng ln khng gian.
Gii php chun l lm phc tp th tc tm kim mt cht. Mt th mc
ngi dng c bit c nh ngha cha cc tp tin h thng (th d, user0). Bt
c khi no mt tn tp tin c cho c np, trc tin h iu hnh t tm th
mc ngi dng cc b. Nu khng tm thy, h iu hnh t tm trong th mc
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang

207
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

ngi dng c bit ny. Mt chui cc th mc c tm khi mt tp tin c t tn
l ng dn tm kim. tng ny c th c m rng, ng dn tm kim cha
danh sch cc th mc khng gii hn tm khi tn mt lnh c cho. Phng
php ny c dng nhiu nht trong UNIX v MS-DOS.
V.3 Cu trc th mc dng cy
Th mc cu trc cy l trng hp tng qut ca th mc hai cp. S tng
qut ny cho php ngi dng to th mc con v t chc cc tp tin ca h. Th d,
h thng MS-DOS c cu trc cy. Tht vy, mt cy l cu trc th mc ph bin
nht. Cy c th mc gc. Mi tp tin trong h thng c tn ng dn duy nht. Tn
ng dn l ng dn t gc xung tt c th mc con ti tp tin xc nh.
Mt th mc (hay th mc con) cha tp hp cc tp tin hay th mc con.
Mt th mc n gin l tp tin nhng n c i x trong mt cch c bit. Tt c
th mc c cng nh dng bn trong. Mt bit trong mi mc t th mc nh ngha
mc t nh mt tp tin (0) hay nh mt th mc con (1). Cc li gi h thng c bit
c dng to v xo th mc.
Thng th mi ngi dng c th mc hin hnh. Th mc hin hnh cha
hu ht cc tp tin ngi dng hin ang quan tm. Khi tham kho c thc hin ti
tp tin, th mc hin hnh c tm. Nu mt tp tin c yu cu m n khng c
trong th mc hin hnh th ngi dng phi xc nh tn ng dn hay chuyn th
mc hin hnh ti th mc qun l tp tin . thay i th mc, mt li gi h
thng c cung cp km theo tn th mc nh l tham s v dng n nh ngha
li th mc hin hnh. Do , ngi dng c th thay i th mc hin hnh bt c
khi no ngi dng mun.
Th mc hin hnh khi u ca ngi dng c gn khi cng vic ngi
dng bt u hay ngi dng ng nhp vo h thng. H iu hnh tm tp tin tnh
ton xc nh mc t cho ngi dng ny. Trong tp tin tnh ton l con tr ch ti
th mc khi u ca ngi dng. Con tr ny c chp ti mt bin cc b cho
ngi dng xc nh th mc hin hnh khi u.
Tn ng dn c hai kiu: tn ng dn tuyt i v tn ng dn tng
i. Mt ng dn tuyt i bt u t gc v theo sau l ng dn xung ti tp
tin xc nh, cho tn cc th mc trn ng dn. Tn ng dn tng i nh
ngha mt ng dn t th mc hin hnh. Th d, trong h thng tp tin c cu trc
cy nh hnh IX-7, nu th mc hin hnh l root/spell/mail th tn ng dn tng
i prt/first tham chiu ti cng tp tin nhng tn ng dn tuyt i
root/spell/mail/prt/first.
Quyt nh mt chnh sch trong cu trc th mc cy l cch qun l vic
xo mt th mc. Nu mt th mc rng, mc t ca n trong th mc cha b xo.
Tuy nhin, gi s th mc b xo khng rng, nhng cha nhiu tp tin v th mc
con; mt trong hai tip cn c th c thc hin. Mt s h thng nh MS-DOS s
khng xo mt th mc nu n khng rng. Do , xo mt th mc, ngi dng
trc ht phi xo tt c tp tin trong th mc . Nu bt c th mc con tn ti, th
tc ny phi c p dng qui ti chng m chng c th b xo. Tip cn ny
dn n lng cng vic ln.
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang

208
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0



Hnh 0-7 cu trc th mc dng cy
Mt tip cn khc c thc hin bi lnh rm ca UNIX cung cp tu chn
m khi mt yu cu c thc hin xo mt th mc, tt c tp tin v th mc con
ca th mc cng b xo. Tip cn ny tng i n gin ci t; chn la ny
l mt chnh sch. Chnh sch sau tin dng hn nhng nguy him hn v ton b
cu trc th mc c th b xo vi mt lnh. Nu lnh c cp pht b li, mt s
lng ln tp tin v th mc cn c phc hi t cc bng t sao lu.
Vi mt h thng th mc cu trc cy, ngi dng c th truy xut ti cc
tp tin ca h v cc tp tin ca ngi dng khc. Th d, ngi dng B c th truy
xut cc tp tin ca ngi dng A bng cch xc nh tn ng dn ca chng.
Ngi dng B c th xc nh tn ng dn tng i hay tuyt i. Ngi dng B
c th chuyn th mc hin hnh ti th mc ca ngi dng A v truy xut cc tp
tin bng tn ca chng. Mt s h thng cng cho php ngi dng nh ngha ng
dn tm kim ca chnh h. Trong trng hp ny, ngi dng B c th nh ngha
ng dn tm kim ca mnh l (1) th mc cc b ca mnh, (2) th mc tp tin h
thng v (3) th mc ca ngi dng A, theo th t . Tp tin c th c tham
kho n gin bng tn vi iu kin tn tp tin ca ngi dng A khng xung t
vi tn ca mt tp tin cc b hay tp tin h thng.
V.4 Cu trc th mc dng th khng cha chu trnh
Xt hai ngi lp trnh ang lm vic trn mt d n chung. Cc tp tin gn
vi d n c th c lu trong th mc con, tch ri chng t cc d n khc v
cc tp tin ca hai ngi lp trnh. Nhng v c hai ngi lp trnh c trch nhim
ngang nhau trong d n, c hai mun th mc con trong cc th mc ca chnh h.
Th mc con nn c chia s. Mt th mc hay tp tin s tn ti trong h thng tp
tin trong hai (hay nhiu hn) ni ti mt thi im.
Cu trc cy ngn cn vic chia s cc tp tin v th mc. Mt th khng
cha chu trnh (acyclic graph) cho php th mc chia s th mc con v tp tin (hnh
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang

209
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

IX-8). Cng tp tin v th mc con c th trong hai th mc khc nhau. Mt th
khng cha chu trnh l trng hp tng qut ca c ch th mc c cu trc cy.
Mt tp tin (hay th mc) c chia s khng ging nh hai bn sao ca mt
tp tin. Vi hai bn sao, mi ngi lp trnh c th thch hin th bn sao hn bn gc,
nhng nu mt ngi lp trnh thay i ni dung tp tin, nhng thay i s khng
xut hin trong bn sao ca ngi cn li. Vi mt tp tin c chia s, ch mt tp
tin thc s tn ti v th bt c s thay i c thc hin bi mt ngi ny lp tc
nhn thy bi ngi dng khc. Vic chia s l rt quan trng cho cc th mc con;
mt tp tin mi c to bi ngi ny s t ng xut hin trong tt c th mc con
c chia s.
Khi nhiu ngi ang lm vic nh mt nhm, tt c tp tin h mun chia s c
th t vo mt th mc. Cc UFD ca tt c thnh vin trong nhm cha th mc
ca tp tin c chia s nh mt th mc con. Ngay c khi c mt ngi dng, t
chc tp tin ca ngi dng ny yu cu rng mt s tp tin c t vo cc th mc
con khc nhau. Th d, mt chng trnh c vit cho mt d n nn t trong th
mc ca tt c chng trnh v trong th mc cho d n .



Hnh 0-8 cu trc th khng cha chu trnh
Cc tp tin v th mc con c chia s c th c ci t trong nhiu cch.
Cch thng dng nht c UNIX dng l to mt mc t th mc c gi l lin
kt. Mt lin kt l mt con tr ch ti mt tp tin hay th mc con khc. Th d, mt
lin kt c th c ci t nh tn ng dn tuyt i hay tng i. Khi mt tham
chiu ti tp tin c thc hin, chng ta tm kim th mc. Nu mc t th mc
c nh du nh mt lin kt th tn tp tin tht s (hay th mc) c cho. Chng
ta phn gii lin kt bng cch s dng tn ng dn nh v tp tin tht s.
Nhng lin kt c xc nh d dng bi nh dng trong mc t th mc v c
nh r bng cc con tr gin tip. H iu hnh b qua cc lin kt ny khi duyt qua
cy th mc lu gi cu trc khng cha chu trnh ca h thng.
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang

210
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

Mt tip cn khc ci t cc tp tin c chia s l nhn bn tt c thng
tin v chng trong c hai th mc chia s. Do , c hai mc t l ging ht nhau.
Mt lin kt rt khc t mc t th mc gc. Tuy nhin, nhn bn mc t th mc
lm cho bn gc v bn sao khng khc nhau. Mt vn chnh vi nhn bn mc t
th mc l duy tr tnh khng i nu tp tin b sa i.
Mt cu trc th mc th khng cha chu trnh linh hot hn cu trc cy
n gin nhng n cng phc tp hn. Mt s vn phi c xem xt cn thn.
Mt tp tin c nhiu tn ng dn tuyt i. Do , cc tn tp tin khc nhau c th
tham chiu ti cng mt tp tin. Trng hp ny l tng t nh vn b danh cho
cc ngn ng lp trnh. Nu chng ta ang c gng duyt ton b h thng tp tin-
tm mt tp tin, tp hp cc thng tin thng k trn tt c tp tin, hay chp tt c
tp tin ti thit b lu d phng-vn ny tr nn ln v chng ta khng mun duyt
cc cu c chia s nhiu hn mt ln.
Mt vn khc lin quan n vic xo. Khng gian c cp pht ti tp tin
c chia s b thu hi v s dng li khi no? mt kh nng l xo b tp tin bt c
khi no ngi dng xo n, nhng hot ng ny li con tr ch ti mt tp tin
khng tn ti. Trong trng hp xu hn, nu cc con tr tp tin cn li cha a ch
a tht s v khng gian c dng li sau cho cc tp tin khc, cc con tr ny
c th ch vo phn gia ca tp tin khc.
Trong mt h thng m vic chia s c ci t bi lin kt biu tng,
trng hp ny d dng qun l hn. Vic xo mt lin kt khng cn tc ng tp tin
ngun, ch lin kt b xo. Nu chnh tp tin b xo, khng gian cho tp tin ny c
thu hi, li cc lin kt chi vi. Chng ta c th tm cc lin kt ny v xo chng,
nhng nu khng c danh sch cc lin kt c ni kt, vic tm kim ny s tn rt
nhiu chi ph. Mt cch khc, chng ta c th li cc lin kt ny cho n khi n
c truy xut. Ti thi im , chng ta xc nh rng tp tin ca tn c cho bi
lin kt khng tn ti v c th b li phc hi tn lin kt; truy xut ny c i
x nh bt c tn tp tin khng hp l khc. Trong trng hp UNIX, cc lin kt
biu tng c li khi mt tp tin b xo v n cho ngi dng nhn thy rng tp
tin ngun mt hay b thay th. Microsoft Windows (tt c n bn) dng cng tip
cn.
Mt tip cn khc i vi vic xo l gi li tp tin cho ti khi tt c tham
chiu ti n b xo. ci t tip cn ny, chng ta phi c mt s c ch xc
nh rng tham chiu cui cng ti tp tin b xo. Chng ta gi danh sch ca tt c
tham chiu ti mt tp tin (cc mc t th mc hay cc lin kt biu tng). Khi mt
lin kt hay bn sao ca mc t th mc c thit lp, mt mc t mi c thm
ti danh sch tham chiu tp tin. Khi mt mc t th mc hay lin kt b xo, chng
ta g b mc t ca n trn danh sch. Tp tin ny b xo khi danh sch tham chiu
tp tin ca n l rng.
Tr ngi vi tip cn ny l kch thc ca danh sch tham chiu thay i v
c th rt ln. Tuy nhin, chng ta tht s khng cn gi ton b danh sch-chng ta
ch cn gi s m ca s tham chiu. Mt lin kt mi hay mc t th mc mi s
tng s m tham chiu; xo mt lin kt hay mc t s gim s m. Khi s m l
0, tp tin c th c xo; khng cn tham chiu no ti n. H iu hnh UNIX
dng tip cn ny cho cc lin kt khng biu tng (hay lin kt cng), gi mt s
m tham chiu trong khi thng tin tp tin (hay inode). Bng cch ngn cn hiu qu
nhiu tham chiu ti cc th mc, chng ta duy tr cu trc th khng cha chu
trnh.
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang

211
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

trnh vn ny, mt s h thng khng cho php th mc hay lin kt
c chia s. Th d, trong MS-DOS, cu trc th mc l mt cu trc cy hn l
th khng cha chu trnh.
V.5 Cu trc th mc dng th tng qut
Mt vn ln trong vic dng cu trc th khng cha chu trnh l m bo
rng khng c chu trnh trong th. Nu chng ta bt u vi th mc hai cp v cho
php ngi dng to th mc con, mt th mc c cu trc cy to ra. D thy rng
thm cc tp tin v th mc con mi ti mt th mc c cu trc cy c vn bo
m tnh t nhin ca cu trc cy. Tuy nhin, khi chng ta lin kt mt th mc cu
trc cy c, cu trc cy b ph v hnh thnh mt th n gin (nh hnh IX-9).


Hnh 0-9 th mc th tng qut
Mt li im chnh ca th khng cha chu trnh l tng i n gin
trong gii thut duyt th v xc nh khi khng c tham chiu na ti tp tin.
Chng ta mun trnh duyt cc phn c chia s ca th khng cha chu trnh hai
ln tng nng lc. Nu chng ta ch tm mt th mc con c chia s cho mt tp
tin xc nh, chng ta mun trnh vic tm kim th mc con mt ln na; tm
kim ln hai s lng ph thi gian.
Nu cc chu trnh c cho php tn ti trong th mc, chng ta mun trnh
tm kim bt c thnh phn no hai ln v tnh ng n cng nh nng lc. Mt gii
thut c thit k ngho nn dn ti vng lp v tn trn cc chu trnh. Mt gii
php l gii hn s lng th mc s c truy xut trong qu trnh tm kim.
Mt vn tng t tn ti khi chng ta c gng xc nh khi no mt tp tin
c th b xo. Nh vi cu trc th mc th khng cha chu trnh, mt gi tr 0
trong s m tham chiu c ngha l khng cn tham chiu na ti tp tin hay th
mc v tp tin c th b xo. Tuy nhin, khi c chu trnh tn ti, s m tham chiu
khc 0 ngay c khi khng cn tham chiu ti th mc hay tp tin. Sai st ny dn ti
kh nng tham chiu chnh n (hay chu trnh) trong cu trc th mc. Trong trng
hp ny, chng ta cn dng c ch thu dn rc (garbage colection) xc nh khi
tham chiu cui cng b xo v khng gian a c th c cp pht li. Thu dn rc
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang

212
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

lin quan n vic duyt ton b h thng tp tin, nh du mi th c th c truy
xut. Sau , duyt ln hai tp hp mi th khng c nh du trn danh sch
khng gian trng. Tuy nhin, thu dn rc cho mt a da trn h thng tp tin rt mt
thi gian v do him khi c thc hin.
Thu dn rc cn thit ch v c chu trnh trong th. Do , cu trc th
khng cha chu trnh d hn nhiu. Kh khn l trnh chu trnh khi cc lin kt mi
c thm vo cu trc. Chng ta bit nh th no v khi no mt lin kt mi s
hnh thnh chu trnh? C nhiu gii thut pht hin cc chu trnh trong th; tuy
nhin chi ph tnh ton cao, c bit khi th trn a lu tr. Mt gii thut n
gin hn trong trng hp c bit ca th mc v lin kt l b qua lin kt khi
duyt qua th mc. Chu trnh c th trnh c v khng c chi ph thm xy ra.
VI Gn h thng tp tin
Ging nh mt tp tin phi c m trc khi n c dng, mt h thng tp
tin phi c gn vo (mounted) trc khi n c th sn dng cho cc qu trnh trn
h thng. c bit hn, cu trc th mc c th c xy dng trn nhiu phn khu,
m phi c gn vo lm cho chng sn dng trong khng gian tn h thng tp
tin.
Th tc gn vo khng phc tp. H iu hnh c cho tn ca thit b v v
tr trong cu trc tp tin ti ni n c gn vo h thng tp tin (im gn-mount
point). in hnh, mt im gn thng l th mc rng ni h thng tp tin s c
gn vo. Th d, trn h thng UNIX, mt h thng tp tin cha cc th mc dnh
ring cho ngi dng (home directory) c th c gn vo nh /home; sau truy
xut ti cu trc tp tin trong h thng tp tin , ngi dng c th n trc cc tn
th mc /home, nh trong /home/jane. Gn vo h thng tp tin di /users s dn
ti tn ng dn /users/jane t cng th mc.
Tip theo, h iu hnh kim tra thit b cha mt h thng tp tin hp l
khng. N thc hin nh th bng cch yu cu trnh iu khin thit b c th mc
thit b v kim tra th mc c nh dng nh mong mun. Cui cng, h iu hnh
ghi nhn trong cu trc th mc ca n rng h thng tp tin c gn vo ti im
gn xc nh. C ch ny cho php h iu hnh duyt cu trc th mc ca n,
chuyn qua li gia cc h thng tp tin mt cch hp l.
hin th vic gn tp tin, xem xt h thng tp tin c m t nh hnh IX-10,
y hnh ny hnh tam gic hin th cy con ca cc th mc ang quan tm. Trong
hnh (a) hin th h thng tp tin c, trong hnh (b) hin th mt phn khu cha
c gn vo /device/dsk. Ti im ny, ch cc tp tin trn h thng tp tin tn ti
mi c th c truy xut. Trong hnh IX-11, hin th cc nh hng ca vic gn vo
phn khu ny trn /device/dsk qua /users. Nu phn khu ny cha c gn, h thng
tp tin c phc hi ti trng hp c m t nh hnh IX-10.
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang

213
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0



Hnh 0-10 H thng tp tin. (a) tn ti. (b) phn khu cha c gn

H thng ny p t cc ng ngha phn cp chc nng. Th d, mt h
thng khng c php vt qua mt th mc cha cc tp tin hay lm h thng tp
tin c gn vo sn dng ti th mc v che y cc tp tin c ca th mc
cho n khi h thng tp tin c g ra (unmounted), kt thc vic s dng h thng
tp tin v cho php truy xut ti cc tp tin trong th mc .
Xt cc hot ng ca h iu hnh Macintosh. Bt c khi no h thng gp
mt a ti thi im u tin (a cng ti thi im khi ng hay a mm ti thi
im chn a vo ), h iu hnh Macintosh tm kim mt h thng tp tin cho thit
b . Nu n tm thy mt h thng tp tin, n t ng gn h thng tp tin ti mc
gc, thm biu tng th mc trn mn hnh c ghi nhn vi tn ca h thng tp
tin (nh c lu trong th mc thit b). Sau , ngi dng c th nhp vo biu
tng hin th h thng tp tin va c gn vo.
H h iu hnh Microsoft Windows (95, 98, NT, 2000) duy tr mt cu trc
th mc hai cp m rng vi cc thit b v phn khu c gn mt k t a. Cc
phn khu c cu trc th mc th tng qut c gn lin vi k t a. Sau ,
ng dn ti mt tp tin xc nh c dng k t a:\ng dn\ti\tp tin. Nhng
h iu hnh ny t pht hin tt c thit b v gn vo tt c h thng tp tin c
nh v ti thi im khi ng. Trong mt vi h thng, nh UNIX, cc lnh gn vo
l hin (explicit). Mt tp tin cu hnh h thng cha danh sch thit b v cc im
gn vo t ng gn vo ti thi im khi ng, nhng nhng gn vo khc phi
c thc hin th cng.
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang

214
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0



Hnh 0-11 im gn vo
VII Chia s tp tin
VII.1 Nhiu ngi dng
Khi h iu hnh cung cp nhiu ngi dng, cc vn chia s tp tin, t
tn tp tin, v bo v tp tin tr nn quan trng. i vi mt cu trc th mc cho
php cc tp tin c chia s bi nhiu ngi dng, h thng phi dn xp vic chia
s tp tin. Mc nh, h thng c th cho php mt ngi dng truy xut cc tp tin
ca ngi dng khc hay n yu cu rng mt ngi dng gn quyn truy xut c th
ti cc tp tin.
ci t chia s v bo v, h thng phi duy tr nhiu thuc tnh tp tin v
th mc hn trn h thng n ngi dng. Mc d, c nhiu tip cn cho ch ny,
hu ht cc h thng a ra khi nim ngi s hu (owner) v nhm (group) tp
tin/th mc. Ngi s hu l ngi dng c th thay i cc thuc tnh, gn truy xut,
v c hu ht iu khin qua tp tin v th mc. Thuc tnh nhm ca tp tin c
dng nh ngha tp hp con cc ngi dng c th chia s truy xut ti tp tin.
VII.2 H thng tp tin xa
S pht trin ca mng cho php giao tip gia cc my tnh xa. Mng cho
php chia s cc ti nguyn tri rng trong mt khu hay thm ch khp th gii. Mt
ti nguyn quan trng chia s l d liu dng tp tin. Thng quan s pht trin
mng v cng ngh tp tin, phng php chia s tp tin thay i. Trong phng php
u tin c ci t, ngi dng truyn tp tin gia cc my tnh bng chng trnh
gi l ftp. Phng php quan trng th hai l h thng tp tin phn tn (distributed file
system-DFS) trong , cc th mc xa c th c nhn thy t my cc b. Trong
mt s cch, phng php th ba, World Wide Web l mt s tr li ca phng
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang

215
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

php u tin. Mt trnh duyt c yu cu t c truy xut cc tp tin t xa v
cc thao tc ring bit c dng truyn tp tin.
VIII Bo v
Khi thng tin c gi trong mt h thng my tnh, chng ta mun gi n an
ton t hng hc vt l (kh nng tin cy) v nhng truy xut khng hp l (bo v).
Kh nng tin cy thng c cung cp bi nhn bn cc tp tin. Nhiu my tnh c
cc chng trnh h thng t ng chp cc tp tin trn a ti bng t ti nhng
khong thi gian u n duy tr mt bn sao. H thng tp tin c th b hng bi
phn cng, thay i t ngt v in, nhit tng cao,..cc tp tin c th b xo do
ri ro. Nhng con b (bugs) trong phn mm h thng tp tin c th lm cho ni dung
tp tin b mt.
Bo v c th c cung cp trong nhiu cch. i vi mt h thng ngi
dng n nh, chng ta c th cung cp s bo v bng cch g b cc a mm v
kho chng trong ngn ko. Tuy nhin, trong h thng a ngi dng, nhng c ch
khc c yu cu.
VIII.1 Cc kiu truy xut
Nhu cu bo v tp tin l mt kt qu trc tip ca kh nng truy xut tp
tin. H thng khng cho php truy xut cc tp tin ca ngi dng khc th khng cn
bo v. Do , chng ta c th cung cp s bo v ton din bng cch cm truy xut.
Mt cch khc, chng ta c th cung cp truy xut thoi mi v khng cn bo v. C
hai tip cn l qu cc oan cho cc s dng thng thng. Yu cu truy xut c
kim sot l g?
Cc c ch bo v cung cp truy xut c kim sot bng cch gii hn kiu
truy xut tp tin c th thc hin. Truy xut c php hay b t chi ph thuc nhiu
yu t, mt trong nhng yu t l kiu truy xut c yu cu. Nhiu kiu thao tc c
th c kim sot:
c (Read): c t tp tin.
Vit (Write): vit hay vit li tp tin.
Thc thi (Execute): np tp tin vo b nh v thc thi n.
Chn cui (Append): vit thng tin mi vo cui tp tin.
Xo (Delete): xo tp tin v gii phng khng gian c th dng li
Lit k (List): lit k tn v thuc tnh ca tp tin
Nhng thao tc khc nh i tn, chp, son tho tp tin c th cng c
kim sot. Tuy nhin, i vi nhiu h thng, cc chc nng cao hn ny c th c
ci t bi mt chng trnh h thng thc hin li gi h thng cp thp hn. Bo v
c cung cp ch ti cp thp hn. Th d, chp mt tp tin c th c ci n gin
bi mt chui cc yu cu c. Trong trng hp ny, ngi dng vi truy xut c
cng c th lm cho tp tin c chp, in,..
Nhiu c ch bo v c ngh. Mi c ch c li im v nhc im v
phi ph hp cho ng dng c d nh. Mt h thng my tnh nh c dng ch
bi mt vi thnh vin ca mt nhm nghin cu c th khng cn cng kiu bo v
nh my tnh ca cng ty ln.
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang

216
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

VIII.2 Kim sot truy xut
Tip cn thng dng nht i vi vn bo v l thc hin truy xut ph
thuc nh danh ca ngi dng. Nhng ngi dng khc nhau cn cc kiu truy xut
khc nhau ti mt tp tin hay th mc. C ch thng dng nht ci t truy xut
ph thuc nh danh l gn vi mi tp tin v th mc mt danh sch kim sot truy
xut (access-control list-ACL) xc nh tn ngi dng v kiu truy xut c php
cho mi ngi dng. Khi mt ngi dng yu cu truy xut ti mt tp tin c th, h
iu hnh kim tra danh sch truy xut c gn ti tp tin . Nu ngi dng
c lit k cho truy xut c yu cu, truy xut c php. Ngc li, s vi phm
bo v xy ra v cng vic ca ngi dng b t chi truy xut ti tp tin.
Tip cn ny c li im ca vic cho php cc phng php truy xut phc
tp. Vn chnh vi cc danh sch truy xut l chiu di ca n. Nu chng ta mun
cho php mi ngi dng c mt tp tin, chng ta phi lit k tt c ngi dng vi
truy xut c. K thut ny c hai kt qu khng mong mun:
Xy dng mt danh sch nh th c th l mt tc v di dng v khng
ng, c bit nu chng ta khng bit trc danh sch ngi dng trong
h thng.
Mc t th mc, trc c kch thc c nh, by gi c kch thc
thay i, dn n vic qun l khng gian phc tp hn
Nhng vn ny c th c gii quyt bi vic dng n bn c ng ca
danh sch truy xut.
c ng chiu di ca danh sch kim sot truy xut, nhiu h thng nhn
thy 3 s phn cp ngi dng trong ni kt vi mi tp tin:
Ngi s hu (Owner): ngi dng to ra tp tin
Nhm (Group): tp hp ngi dng ang chia s tp tin v cn truy xut
tng t l nhm hay nhm lm vic
Ngi dng khc (universe): tt c ngi dng cn li trong h thng

Tip cn ph bin gn y nht l kt hp cc danh sch kim sot truy xut
vi ngi s hu, nhm v c ch kim sot truy xut c m t trn
c ch ny lm vic hp l, cc quyn v danh sch truy xut phi c
kim sot cht ch. Kim sot ny c th t c trong nhiu cch. Th d, trong h
thng UNIX, cc nhm c th c to v sa i ch bi ngi qun l ca tin ch.
Do , kim sot ny t c thng qua giao tip ngi dng.
Vi vic phn cp bo v c gii hn hn, ch c ba trng c yu cu
xc nh bo v. Mi trng thng l mt tp hp cc bit, mi trng cho php hay
ngn chn truy xut c gn vi n. Th d, h thng UNIX nh ngha 3 trng 3
bit-rwx, y r kim sot truy xut c, w kim sot truy xut vit, x kim sot truy
xut thc thi. Mt trng ring r c gi cho ngi s hu, cho nhm tp tin v
cho tt c ngi dng khc. Trong c ch ny, 9 bits trn tp tin c yu cu ghi
li thng tin bo v.
VIII.3 Cc tip cn bo v khc
Mt tip cn khc cho vn bo v l gn mt khu vi mi tp tin. Ging nh truy
xut ti h thng my tnh thng c kim sot bi mt mt khu, truy xut ti mi
tp tin c th c kim sot bi mt mt khu. Nu cc mt khu c chn mt
cch ngu nhin v thng c thay i th c ch ny c th hiu qu trong truy
xut c gii hn ti tp tin cho nhng ngi dng bit mt khu. Tuy nhin, c ch
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang

217
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

ny c nhiu nhc im. Th nht, s lng mt khu m ngi dng cn nh qu
nhiu, lm cho c ch ny khng thc t. Th hai, nu ch mt mt khu c dng
cho tt c tp tin th mt khi n b pht hin tt c tp tin c th truy xut. Mt s h
thng cho php ngi dng gn mt mt khu ti mt th mc con hn l vi tng
tp tin ring r gii quyt vn ny. Th ba, thng ch mt mt khu gn vi tt
c tp tin ngi dng. Do , bo v da trn c s tt c hay khng c g (all-or-
nothing). cung cp s bo v trn cp chi tit hn chng ta phi dng nhiu mt
khu.
IX Tm tt
Mt tp tin l mt kiu d liu tru tng c nh ngha v c ci t bi
h iu hnh. N l mt chui cc mu tin lun l. Mt mu tin lun l c th l mt
byte, mt dng (c chiu di c nh hay thay i), hay c thnh phn d liu phc
tp hn. H iu hnh c th h tr nhiu kiu mu tin khc nhau hay s h tr
ti mt chng trnh ng dng.
Mi thit b trong mt tp tin gi mt bng volume ni dung hay th mc thit
b lit k v tr cc tp tin trn thit b. Ngoi ra, n c ch to cc th mc cho
php cc tp tin c t chc trong th mc . Mt th mc n cp trong h thng
n ngi dng gy ra cc vn t tn v mi tp tin phi c tn duy nht. Th mc
hai cp gii quyt vn ny bng cch to mt th mc ring cho mi ngi dng.
Mi ngi dng c th mc ring, cha tp tin ring. Th mc lit k cc tp tin bng
tn v cha nhng thng tin nh v tr tp tin trn a, chiu di, kiu, ngi s hu,
thi gian to, thi im dng gn nht,
Tng qut ha tnh t nhin ca th mc hai cp l th mc c cu trc cy.
Th mc c cu trc cy cho php mt ngi dng to th mc con t chc cc tp
tin. Cu trc th mc th khng cha chu trnh cho php cc th mc con v tp tin
c chia s nhng tm kim v xa phc tp. Mt cu trc th tng qut linh ng
hn trong vic chia s tp tin v th mc, nhng yu cu thu dn rc phc hi
khng gian a khng c dng.
a c phn chia thnh mt hay nhiu phn khu, mi phn khu cha mt h
thng tp tin. H thng tp tin ny c gn vo cu trc t tn ca h thng lm
cho chng sn dng. C ch t tn khc nhau bi cc h iu hnh khc nhau. Mt
khi c gn vo, cc tp tin trong phn khu l sn dng. Cc h thng tp tin c th
c g ra (unmount) v hiu ha truy xut hay bo tr.
Chia s tp tin ph thuc vo ng ngha c cung cp bi h thng. Cc tp tin
c nhiu ngi c, vit hay b gii hn vic chia s. H thng tp tin phn tn cho
php my khch hng gn cc phn khu hay th mc vo t nhiu server. Vi iu
kin chng c th truy xut nhau qua mng. Cc h thng tp tin xa c nhng thch
thc v kh nng tin cy, nng lc v bo mt. H thng thng tin c phn tn duy
tr ngi dng, my ch, thng tin truy xut nh khch hng v thng tin trng thi
chia s servers qun l vic s dng v truy xut.
V cc tp tin l c ch lu tr thng tin quan trng trong hu ht cc h thng
my tnh nn bo v tp tin l cn thit. Truy xut ti cc tp tin c kim sot ring
cho mi loi truy xut-c, vit, thc thi, chn cui, xa, lit k th mc,..Bo v tp
tin c th c cung cp bi mt khu, bi danh sch truy xut hay bi nhng k
thut phc tp.
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang

218
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

CI T H THNG TP TIN
I Mc ch
Sau khi hc xong chng ny, ngi hc nm c nhng kin thc sau:
Hiu vic lu tr cc tp tin v truy xut cc tp tin trn cc thit b lu tr
ph.
Hiu cc phng php thit lp vic s dng tp tin
Hiu cch cp pht khng gian a, phc hi khng gian trng, ghi vt v tr d
liu
II Gii thiu
Trong chng trc chng ta thy rng, h thng tp tin cung cp c ch cho
vic lu tr trc tuyn (on-line storage) v truy xut ti ni dung tp tin, gm d liu
v chng trnh. H thng tp tin nh v vnh vin trn thit b lu tr ph. Cc thit
b ny c thit k qun l lng ln thng tin khng thay i.
Chng ny tp trung ch yu vi nhng vn xoay quanh vic lu tr tp tin
v truy xut trn cc thit b lu tr ph. Chng ta khm ph cc cch xy dng
cu trc s dng tp tin, cp pht khng gian a v phc hi khng gian trng ghi
li v tr d liu v giao tip vi cc phn khc ca h iu hnh ti thit b lu tr
ph. Cc vn v nng lc c xem xt thng qua chng ny.
III Cu trc h thng tp tin
a cung cp s lng thit b lu tr ph m trn h thng tp tin c duy
tr. C hai c im lm a tr thnh phng tin tin dng cho vic lu tr nhiu tp
tin:
Chng c th c vit li bng cch thay th; c th c mt khi t
a, sa mt khi v vit n ngc tr li a trong cng v tr.
Chng c th c truy xut trc tip bt c khi thng tin no trn
a.
ci tin tnh hiu qu nhp/xut, thay v chuyn mt byte ti mt thi im,
nhp/xut chuyn gia b nh v a c thc hin trong n v khi. Mi khi l
mt hay nhiu cung t (sector). Ph thuc a, cc cung t bin i t 32 bytes ti
4096 bytes; thng l 512 bytes.
cung cp vic truy xut hiu qu v tin dng ti a, h iu hnh p t
mt hay nhiu h thng tp tin cho php d liu c lu tr, nh v v truy xut
li d dng. Mt h thng tp tin t ra hai vn thit k rt khc nhau. Vn u
tin l nh ngha h thng tp tin nn quan tm n ngi dng nh th no. Tc v
ny lin quan n vic nh ngha mt tp tin v thuc tnh ca n, cc thao tc c
php trn mt tp tin v cc gii thut v cu trc cho vic t chc tp tin. Vn th
hai l to gii thut v cu trc d liu nh x h thng tp tin lun l vo cc thit
b lu tr ph.
H thng tp tin thng c to thnh t nhiu cp khc nhau. Cu trc c
hin th trong hnh X-1 l mt th d ca thit k phn cp. Mi cp trong thit k
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang

222
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

dng cc c im ca cp thp hn to cc c im mi cho vic s dng bi
cp cao hn.


Hnh 0-1 h thng tp tin phn tng
iu khin nhp/xut (I/O control): l cp thp nht cha cc trnh iu
khin thit b v cc b qun l ngt chuyn thng tin gia b nh
chnh v h thng a. Trnh iu khin thit b thng vit cc mu bit
xc nh ti cc v tr trong b nh ca b iu khin nhp/xut bo vi
b iu khin v tr trn thit b no v hot ng g xy ra.
H thng tp tin c bn (basic file system) ch cn pht ra cc lnh thng
thng ti cc trnh iu khin thit b tng ng c v vit cc khi
vt l trn a. Mi khi vt l c xc nh bi a ch a (th d, a 1,
cyclinder 73, track 2, sector 10).
Module t chc tp tin (file-organization module) bit cc tp tin v cc
khi lun l cng nh cc khi vt l. Bng cch bit kiu cp pht tp tin
c dng v v tr ca tp tin, module t chc tp tin c th dch cc a
ch khi lun l thnh cc a ch khi vt l cho h thng tp tin c bn
truyn. Cc khi lun l ca mi tp tin c nh s t 0 (hay 1) ti N,
ngc li cc khi vt l cha d liu thng khng khp vi cc s lun
l v th mt thao tc dch c yu cu nh v mi khi. Module t
chc tp tin cng cha b qun l khng gian trng (free-space
manager), m n ghi vt cc khi khng c cp pht v cung cp cc
khi ny ti module t chc tp tin khi c yu cu.
H thng tp tin lun l (logical file system) qun l thng tin siu d
liu (metadata). Metadata cha tt c cu trc h thng tp tin, ngoi tr
d liu tht s (hay ni dung ca cc tp tin). H thng tp tin lun l qun
l cu trc th mc cung cp module t chc tp tin nhng thng tin
yu cu sau , c cho tn tp tin k hiu. N duy tr cu trc tp tin
bng khi iu khin tp tin. Mt khi iu khin tp tin (file control
block-FCB) cha thng tin v tp tin, gm ngi s hu, quyn v v tr
ca ni dung tp tin.
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang

223
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

Nhiu h thng tp tin c ci t hin nay. Hu ht h iu hnh h tr
nhiu hn mt h thng tp tin. Mi h iu hnh c h thng tp tin da trn c s
a. UNIX dng h thng tp tin UNIX (UNIX file system-UFS) nh l c s.
Windows NT h tr cc nh dng tp tin FAT, FAT32 v NTFS cng nh CD-ROM,
DVD v cc nh dng h thng tp tin a mm. Bng cch dng cu trc phn cp
cho vic ci t h thng tp tin, nn nhn bn m l ti thiu. iu khin nhp/xut
v m h thng tp tin c bn c th c dng bi nhiu h thng tp tin. Mi h
thng tp tin c h thng tp tin lun l v module t chc tp tin ca chnh n.
IV Ci t h thng tp tin
Trong phn ny chng ta s nghin cu cc cu trc v cc thao tc c dng
ci t cc thao tc ca h thng tp tin.
IV.1 Tng quan
Nhiu cu trc trn a v trn b nh c dng ci t mt h thng tp
tin. Cc cu trc ny thay i da trn h iu hnh v h thng tp tin nhng c mt
s nguyn tc chung c p dng. Trn a, h thng tp tin cha thng tin v cch
khi ng h iu hnh c lu tr , tng s khi, s v v tr ca cc khi
trng, cu trc th mc, cc tp tin ring bit.
Cc cu trc trn a gm:
Khi iu khin khi ng (boot control block) c th cha thng tin
c yu cu bi h thng khi ng mt h iu hnh t phn khu .
Nu a khng cha h iu hnh th khi ny l rng. in hnh, n l
khi u tin ca a. Trong UFS, khi ny c gi l khi khi ng;
trong NTFS, n l cung khi ng phn khu (partition boot sector).
Khi iu khin phn khu (partition control block) cha chi tit v phn
khu, nh s lng khi trong phn khu, kch thc khi, b m khi
trng v con tr khi trng, b m FCB trng v con tr FCB. Trong
UFS khi ny c gi l siu khi (superblock); trong NTFS, n l bng
tp tin chnh (Master File Table)
Mt cu trc tp tin c dng t chc cc tp tin
Mt FCB cha nhiu chi tit tp tin gm cc quyn tp tin, ngi s hu,
kch thc, v v tr ca cc khi d liu. Trong UFS khi ny c gi l
inode. Trong NTFS, thng tin ny c lu trong Master File Table dng
cu trc c s d liu quan h vi mt dng cho mt tp tin.

Thng tin trong b nh c dng cho vic qun l h thng tp tin v ci tin
nng lc qua lu tr (caching). Cc cu trc ny c th bao gm:
Bng phn khu trong b nh cha thng tin v mi phn khu c gn
vo.
Cu trc th mc trong b nh qun l thng tin th mc ca nhng th
mc va c truy xut. (i vi cc th mc ni m cc phn khu c
gn vo, n c th cha mt con tr ch ti bng phn khu.)
Bng tp tin ang m ca h thng (system-wide open-file table) cha bn
sao ca FCB ca mi tp tin ang m cng nh cc thng tin khc.
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang

224
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

Bng tp tin ang m trn qu trnh (per-process open-file table) cha con
tr ch ti mc t tng ng trong bng tp tin ang m ca h thng cng
nh nhng thng tin khc.
to mt tp tin mi, mt chng trnh ng dng gi h thng tp tin lun l.
H thng tp tin lun l bit nh dng ca cc cu trc th mc. to mt tp tin
mi, n cp pht mt FCB mi, c th mc tng ng vo b nh, cp nht n vi
tn tp tin mi v FCB, v vit n tr li a. Mt FCB in hnh c hin th trong
hnh X-2.


Hnh 0-2 Mt khi iu khin tp tin in hnh

Mt s h iu hnh nh UNIX xem mt th mc nh l mt tp tin-mt tp
tin vi mt trng kiu hin th rng n l mt th mc. Cc h iu hnh khc nh
Windows NT ci t cc li gi h thng ring cho tp tin v th mc v xem cc th
mc nh cc thc th tch ri t cc tp tin. i vi cu trc ln hn, h thng tp tin
lun l c th gi module t chc tp tin nh x nhp/xut th mc vo s khi a
m chng c truyn trn c s h thng tp tin v h thng iu khin nhp/xut.
Module t chc tp tin cng cp pht cc khi cho vic lu tr d liu ca tp tin.
Mt tp tin c to, n c th c dng cho nhp/xut. u tin, n phi
c m. Li gi open truyn tn tp tin ti h thng tp tin. Khi mt tp tin c
m, cu trc th mc thng c lu vo b nh tng tc cc thao tc th
mc. Mt khi tp tin c tm thy, FCB c chp vo bng tp tin ang m ca h
thng trong b nh. Bng ny khng ch cha FCB m cn c cc mc t cho s m
ca s qu trnh c m tp tin.
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang

225
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0



Hnh 0-3 Cu trc h thng trong b nh. (a) m tp tin. (b) c tp tin.

Tip theo, mt mc t c to trong bng tp tin ang m trn qu trnh, vi
mt con tr ch ti mc t trong bng h thng tp tin ang m ca h thng v mt
s trng khc. Cc trng khc ny c th cha con tr ch ti v tr hin hnh trong
tp tin (cho cc thao tc read hay write tip theo) v ch truy xut trong tp tin
c m. Li gi open tr v mt con tr ch ti mc t tng ng trong bng h
thng tp tin trn qu trnh. Sau , tt c thao tc tp tin c thc hin bng con tr
ny. Tn tp tin khng phi l mt phn ca bng tp tin ang m, h thng khng
dng n mt khi FCB tng ng c nh v trn a. Tn c cho i vi mc t
rt a dng. Cc h thng UNIX ch ti n nh mt b m t tp tin (file discriptor);
Windows 2000 ch ti n nh mt b qun l tp tin (file handle). Do , vi iu
kin l tp tin khng ng, tt c cc thao tc tp tin c thc hin trn bng tp tin
ang m.
Khi mt qu trnh ng tp tin, mc t trong bng trn qu trnh b xo v b
m s ln m ca mc t h thng gim. Khi tt c ngi dng ng tp tin, thng
tin tp tin c cp nht s c chp tr li ti cu trc th mc da trn a v mc
t bng tp tin ang m b xa.
Trong thc t, li gi h thng open u tin tm bng tp tin ang m h
thng thy nu tp tin c s dng ri bi mt qu trnh khc. Nu n l mc t
bng tp tin ang m trn qu trnh c to ch ti bng tp tin ang m h thng
c. Gii thut ny c th tit kim chi ph khi cc tp tin m ri.
Cc cu trc iu hnh ca vic ci t h thng tp tin c tm tt nh hnh X-3.

Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang

226
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

IV.2 H thng tp tin o
Mt phng php ni bt cho vic ci t nhiu loi h thng tp tin l vit
cc chng trnh con th mc v tp tin cho mi loi. ng hn l hu ht cc h iu
hnh, gm UNIX, dng cc k thut hng i tng n gin ha, t chc, v
module ha vic ci t. S dng cc phng php ny cho php nhiu loi h thng
tp tin khc nhau c ci t trong cng cu trc, gm cc h thng tp tin mng
nh NFS. Ngi dng c th truy xut cc tp tin c cha trong nhiu h thng tp
tin trn a cc b, hay ngay c trn cc h thng tp tin sn dng qua mng.
Cc cu trc d liu v th tc c dng c lp chc nng li gi h thng
c bn t cc chi tit ci t. Do , ci t h thng tp tin cha ba tng chnh; n
c m t di dng lu trong hnh X-4. Tng u tin l giao din h thng tp
tin da trn c s li gi open, read, write, close v cc b m t tp tin.
Tng th hai c gi l h thng tp tin o (Virtual File System-VFS); n phc
v hai chc nng quan trng:
1) N tch bit cc thao tc h thng tp tin ging nhau t vic ci t bng cch
nh ngha mt giao din VFS r rng. Nhiu ci t cho giao din VFS c th
cng tn ti trn cng mt my, cho php truy xut trong sut ti cc loi h
thng tp tin khc nhau c gn cc b.
2) VFS da trn cu trc biu din tp tin, c gi l vnode, cha mt b gn
bng s (numerical designator) cho tp tin duy nht qua mng. (Inode ca
UNIX l duy nht ch trong mt h thng tp tin n). Tnh duy nht qua
mng c yu cu h tr cc h thng tp tin mng. Nhn duy tr mt cu
trc vnode cho mi nt hot ng (tp tin hay th mc).
Do , VFS c s khc bit cc tp tin cc b vi cc tp tin xa, v cc tp tin
cc b c phn bit da theo loi h thng tp tin ca chng.
VFS kch hot cc thao tc c t h thng tp tin qun l cc yu cu cc b
da theo cc loi h thng tp tin v ngay c cc li gi cc th tc giao thc NFS cho
cc yu cu xa. Qun l tp tin c xy dng t vnode tng ng v c truyn
nh cc tham s ti cc th tc ny. Tng ci t kiu h thng tp tin, hay giao thc
h thng tp tin xa, l tng di cng ca kin trc.


Hnh 0-4 Hnh nh dng lu ca h thng tp tin o
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang

227
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

V Ci t th mc
Chn gii thut cp pht th mc v qun l th mc c tc ng ln n tnh
hiu qu, nng lc, kh nng tin cy ca h thng tp tin. Do , chng ta cn hiu s
tho hip lin quan trong cc gii thut ny.
V.1 Danh sch tuyn tnh
Phng php n gin nht cho vic ci t th mc l dng mt danh sch tuyn
tnh cha tn tp tin vi con tr ch ti cc khi d liu. mt danh sch tuyn tnh vi
cc mc t th mc yu cu tm kim tuyn tnh xc nh mt mc t c th.
Phng php ny n gin lp trnh nhng mt nhiu thi gian thc thi.
to tp tin mi, trc tin chng ta phi tm th mc m bo rng
khng c tp tin no tn ti vi cng mt tn. Sau , chng ta thm mt
mc t mi vo cui th mc.
xo mt tp tin, chng ta tm kim th mc cho tp tin c xc nh
bi tn, sau gii phng khng gian c cp pht ti n.
dng li mc t th mc, chng ta c th thc hin mt vi bc.
Chng ta c th nh du mc t nh khng c dng (bng cch gn n
mt tn c bit, nh mt tn trng hay vi mt bit xc nh trng thi
c dng hoc khng c dng trong mi mc t), hay chng ta c th
gn n ti mt danh sch ca cc mc t th mc trng. Mt thay i th
ba l chp mc t cui cng trong th mc vo v tr trng v gim chiu
di ca th mc. Mt danh sch lin kt c th c dng gim thi
gian xo mt tp tin.
Bt li tht s ca danh sch tuyn tnh cha cc mc t th mc l tm kim
tuyn tnh tm mt tp tin. Thng tin th mc c dng thng xuyn v ngi
dng nhn thy vic truy xut ti tp tin l chm. khc phc nhc im ny,
nhiu h iu hnh ci t mt vng lu tr phn mm (software cache) lu hu
ht nhng thng tin th mc c dng gn nht. Mt chp d liu c lu tr s
trnh c li lin tc thng tin t a. Mt danh sch c sp xp cho php tm kim
nh phn v gim thi gian tm kim trung bnh. Tuy nhin, yu cu m mt danh sch
phi c sp xp c th phc tp vic to v xo tp tin v chng ta phi di chuyn
lng thng tin lin tc duy tr mt th mc c xp th t. Mt cu trc d liu
cy tinh vi hn nh B-tree c th gip gii quyt vn . Li im ca danh sch
c sp xp l lit k mt th mc c th t m khng cn mt bc sp xp ring.
V.2 Bng bm
Mt cu trc d liu khc thng c dng cho mt th mc tp tin l bng
bm (hash table). Trong phng php ny, mt danh sch tuyn tnh lu tr cc mc
t th mc nhng mt cu trc bng bm cng c dng. Bng bm ly mt gi tr
c tnh t tn tp tin v tr v con tr ch ti tn tp tin trong danh sch tuyn tnh.
Do , n c th gim rt ln thi gian tm kim th mc. Chn v xo cng tng
i n gin mc d c th pht sinh ng -nhng trng hp c hai tn tp tin
c bm cng v tr. Kh khn chnh vi mt bng bm l kch thc ca n thng
c nh v ph thuc vo hm bm trn kch thc .
Th d, gi s rng chng ta thc hin mt bng bm thm d tuyn tnh qun
l 64 mc t. Hm bm chuyn cc tp tin thnh cc s nguyn t 0 ti 63, th d
bng cch dng s d ca php chia cho 64. Sau , nu chng ta c to tp tin th
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang

228
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

65, chng ta phi m rng bng bm th mc-ti 128 mc t. Kt qu l chng ta cn
hm bm mi phi nh x ti dy 0-127 v chng ta phi sp xp li cc mc t th
mc c phn nh gi tr hm bm mi. Mt cch khc, mt bng bm vng c
th c dng. Mi mc t bm c th l danh sch lin kt thay v ch mt gi tr
ring v chng ta c th gii quyt cc ng bng cch thm mc t mi vo danh
sch lin kt. Tm kim c th chm v tm kim mt tn c th yu cu t bc thng
qua mt danh sch lin kt ca cc mc t bng ng ; nhng iu ny vn nhanh
hn tm kim tuyn tnh qua ton th mc.
VI Cc phng php cp pht
Tnh t nhin ca truy xut trc tip a cho php chng ta kh nng linh hot
trong vic ci t tp tin. Trong hu ht mi trng hp, nhiu tp tin s c lu trn
cng a. Vn chnh l khng gian cp pht ti cc tp tin ny nh th no m
khng gian a c s dng hiu qu v cc tp tin c th c truy xut nhanh
chng. Ba phng php quan trng cho vic cp pht khng gian a c s dng
rng ri: cp pht k, lin kt v ch mc. Mi phng php c u v nhc im.
Mt s h thng h tr c ba. Thng dng hn, mt h thng s dng mt phng
php c th cho tt c tp tin.
VI.1 Cp pht k
Phng php cp pht k yu cu mi tp tin chim mt tp hp cc khi k
nhau trn a. Cc a ch a nh ngha mt th t tuyn tnh trn a. Vi th t
ny, gi s rng ch mt cng vic ang truy xut a, truy xut khi b+1 sau khi khi
b khng yu cu di chuyn trc. Khi di chuyn u c c yu cu (t cung t
cui cng ca cylinder ti cung t u tin ca cylinder tip theo), n ch di chuyn
mt rnh (track). Do , s lng tm kim a c yu cu cho truy xut k ti cc
tp tin c cp pht l nh nht, nh l thi gian tm kim khi tm kim cui cng
c yu cu. H iu hnh IBM VM/CMS dng cp pht k.
Cp pht k ca mt tp tin c nh ngha bi a ch a v chiu di (tnh
bng n v khi) ca khi u tin. Nu tp tin c n khi v bt u ti khi b th n
chim cc khi b, b+1, b+2,..,b+n-1. Mc t th mc cho mi tp tin hin th a ch
ca khi bt u v chiu di ca vng c cp pht cho tp tin ny (hnh X-5).

Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang

229
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0


Hnh 0-5 Khng gian a c cp pht k
Truy xut mt tp tin c cp pht k rt d. i vi truy xut tun t, h
thng tp tin nh a ch a ca khi cui cng c tham chiu v c khi tip
theo. truy xut khi i ca tp tin m bt u ti khi b, chng ta c th lp tc truy
xut khi b+i. Do , c truy xut tun t v truy xut trc tip c th c h tr bi
cp pht k.
Tuy nhin, cp pht k c mt s vn . Mt kh khn l tm khng gian cho
mt tp tin mi. Vic ci t ca h thng qun l khng gian trng xc nh tc v
ny c hon thnh nh th no. Bt c h thng qun l no c th c dng
nhng nhanh chm khc nhau.
Vn cp pht khng gian k c th c xem l vn cp pht lu tr
ng ca ng dng tho mn yu cu kch thc n t danh sch cc l trng. First
fit v best fit l nhng chin lc chung nht c dng chn l trng t tp hp
cc l trng sn dng. Nhng m phng hin th rng c hai first fit v best fit hiu
qu hn worst fit v thi gian v s dng khng gian lu tr. First fit hay best fit u
khng phi l gii thut tt nht nhng thng th first fit nhanh hn best fit.
Cc gii thut ny gp phi vn phn mnh ngoi. Khi cc tp tin c cp
pht v xo, khng gian a trng b chia thnh nhng mnh nh. Phn mnh ngoi
tn ti bt c khi no khng gian trng c chia thnh nhng on. N tr thnh mt
vn khi on k ln nht khng cho mt yu cu; lu tr c phn thnh nhiu
l, khng l no ln lu d liu. Ph thuc vo tng lng lu tr a v kch
thc tp tin trung bnh, phn mnh ngoi c th l vn chnh hay ph.
Mt s h thng vi tnh c dng cp pht k trn a mm. ngn nga
lng ln khng gian a phn mnh ngoi, ngi dng phi chy th tc ng gi
li. Th tc ny chp ton b h thng tp tin ti mt a khc hay trn bng t. K
n, a mm ban u c gii phng hon ton, to mt khng gian trng k ln.
Sau , th tc ny chp cc tp tin tr li trn a mm bng cch cp pht khng
gian k t mt l ln. C ch ny hiu qu trong vic hp nht (compacts) tt c
khng gian trng thnh mt khng gian trng k, gii quyt vn phn mnh. Chi
ph cho vic hp nht l thi gian. Chi ph thi gian phc v cho cc a cng ln
dng cp pht k, y hp nht tt c khng gian mt hng gi. Trong thi gian ny,
cc thao tc h thng thng thng khng th c php v th hp nht trnh c
tt c chi ph do c thay i v d liu.
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang

230
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

Mt vn khc vi cp pht k l xc nh bao nhiu khng gian c yu
cu cho mt tp tin. Khi mt tp tin c to, ton b khng gian n cn phi c
tm kim v c cp pht. Ngi to (chng trnh hay ngi) bit kch thc tp tin
c to nh th no? Trong mt s trng hp vic xc nh ny tng i n gin
(th d chp mt tp tin c); tuy nhin, kch thc ca tp tin xut c th kh
c lng.
Nu chng ta cp qu t khng gian ti mt tp tin, chng ta thy rng tp tin
khng th m rng. c bit vi mt chin lc cp pht best fit, khng gian trn c
hai pha ca tp tin ang c dng. Do , chng ta khng th lm cho tp tin ln
hn. Hai kh nng c th. Th nht, chng trnh ngi dng c th c kt thc vi
mt thng bo li hp l. Sau , ngi dng phi cp pht nhiu khng gian hn v
chy chng trnh li. Vic lp ny c th gy ra chi ph. ngn chn chng, ngi
dng s m phng nhiu hn lng khng gian c yu cu. iu ny dn n
khng gian b lng ph.
Mt kh nng khc l tm mt l trng ln hn, chp ni dung ca tp tin ti
khng gian trng mi, v gii phng khng gian trc . Mt lot cc hot ng ny
c th c lp li vi iu kin l khng gian tn ti mc d n tiu tn nhiu thi
gian. Tuy nhin, trong trng hp ny ngi dng khng bao gi yu cu c thng
bo v nhng g ang xy ra; h thng tip tc mc d vn pht sinh.
Ngay c nu ton b khng gian c yu cu cho tp tin c bit trc, cp pht
trc l khng . Mt tp tin s ln ln trong khong thi gian di phi c cp
pht khng gian cho kch thc cui cng ca n mc d khng gian c th
khng c dng cho khong thi gian di. Do , tp tin c lng ln phn mnh
trong.
ti thiu cc kh khn ny, mt s h iu hnh dng mt c ch cp pht
k c hiu chnh. Trong c ch ny on khng gian k c cp pht trc v sau
khi lng khng gian khng ln, mt on khng gian k khc, mt on
m rng (extent), c thm vo cp pht ban u. Sau , v tr ca cc khi tp tin
c ghi li nh mt v tr v mt b m khi cng vi mt lin kt ti khi u tin
ca on m rng tip theo. Trn mt s h thng, ngi s hu tp tin c th t
kch thc on m rng, nhng vic t ny c th khng hiu qu nu ngi s hu
khng ng. Phn mnh trong vn cn l vn nu on m rng qu ln v phn
mnh ngoi c th l vn khi cc on m rng c kch thc khc nhau c cp
pht v thu hi.
VI.2 Cp pht lin kt
Cp pht lin kt gii quyt vn ca cp pht k. Vi cp pht lin kt, mi
tp tin l mt danh sch cc khi a c lin kt; cc khi a c th c phn tn
khp ni trn a. Th mc cha mt con tr ch ti khi u tin v cc khi cui
cng ca tp tin. Th d, mt tp tin c 5 khi c th bt u ti khi s 9, tip tc l
khi 16, sau khi 1, khi 10 v cui cng khi 25 (nh hnh X-6). Mi khi cha
mt con tr ch ti khi k tip. Cc con tr ny khng c lm sn dng cho ngi
dng. Do , nu mi khi l 512 bytes, v a ch a (con tr) yu cu 4 bytes th
phn cha d liu ca khi l 508 bytes.
to mt tp tin mi, chng ta n gin to mt mc t mi trong th mc.
Vi cp pht lin kt, mi mc t th mc c mt con tr ch ti khi a u tin ca
tp tin. Con tr ny c khi to ti nil (gi tr con tr cui danh sch) ch mt
tp tin rng. Trng kch thc cng c t ti 0. Mt thao tc vit ti tp tin lm
mt khi trng c tm thy bng h thng qun l khng gian trng, sau khi
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang

231
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

mi ny c vit ti v c lin kt ti cui tp tin. c mt tp tin, chng ta
n gin c cc khi bng cch ln theo cc con tr t khi ny ti khi khc.
Khng c s phn mnh ngoi vi cp pht lin kt, v bt c khi trng trn
danh sch khng gian trng c th c dng tho mn yu cu. Kch thc ca
mt tp tin khng cn c khai bo khi tp tin c to. Mt tp tin c th tip
tc ln ln vi iu kin l cc khi trng sn c. Do , n khng bao gi cn thit
hp nht khng gian trng.




Hnh 0-6 cp pht khng gian a lin kt

Tuy nhin, cp pht lin kt c mt vi nhc im. Vn ch yu l n c
th c dng hiu qu ch cho cc tp tin truy xut tun t. tm khi th i ca tp
tin, chng ta phi bt u ti im bt u ca tp tin , v ln theo con tr cho n
khi chng ta nhn c khi th i. Mi truy xut ti con tr yu cu mt thao tc c
a, v i khi l mt tm kim a. Do , n khng h tr mt kh nng truy xut
trc tip cho cc tp tin cp pht lin kt.
Mt nhc im khc ca cp pht lin kt l khng gian c yu cu cho
cc con tr. Nu mt con tr yu cu 4 bytes ca khi 512 bytes th 0.77% ca a
c dng cho cc con tr thay v l thng tin.
Mt gii php thng thng gii quyt vn ny l tp hp cc khi vo
cc nhm (clusters) v cp pht cc nhm hn l cc khi. Th d, h thng tp tin c
th nh ngha nhm gm 4 khi v thao tc trn a ch trong n v nhm th cc
con tr dng % nh hn ca khng gian ca tp tin. Phng php ny cho php nh
x khi lun l ti vt l vn cn n gin, nhng ci tin thng lng a v gim
khng gian c yu cu cho cp pht khi v qun l danh sch trng. Chi ph ca
tip cn ny l tng phn mnh trong v nhiu khng gian hn b lng ph nu mt
nhm ch y mt phn hn l mt khi y mt phn. Cc nhm c th c dng
ci tin thi gian truy xut a cho nhiu gii thut khc nhau v th chng c
dng trong hu ht cc h iu hnh.
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang

232
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

Mt vn khc ca cp pht lin kt l kh nng tin cy. V cc tp tin c
lin kt vi nhau bi cc con tr c phn tn khp a, xem xt iu g xy ra nu
mt con tr b mt hay b ph hng. Mt con b (bug) trong phn mm h iu hnh
hay li phn cng a c th dn ti vic chn con tr sai. Li ny c th dn ti vic
lin kt vo danh sch khng gian trng hay vo mt tp tin khc. Cc gii php mt
phn l dng cc danh sch lin kt i hay lu tn tp tin v s khi tng i trong
mi khi; tuy nhin, cc c ch ny yu cu nhiu chi ph hn cho mi tp tin.
Mt thay i quan trng trn phng php cp pht lin kt l dng bng cp
pht tp tin (file allocation table-FAT). iu ny n gin nhng l phng php
cp pht khng gian a hiu qu c dng bi h iu hnh MS-DOS v OS/2. Mt
phn a ti phn bt u ca mi phn khu c thit lp cha bng ny. Bng
ny c mt mc t cho mi khi a v c lp ch mc bi khi a. FAT c
dng nhiu nh l mt danh sch lin kt. Mc t th mc cha s khi ca khi u
tin trong tp tin. Mc t bng c lp ch mc bi s khi sau cha s khi
ca khi tip theo trong tp tin. Chui ny tip tc cho n khi khi cui cng, c gi
tr cui tp tin c bit nh mc t bng. Cc khi khng c dng c hin th bi
gi tr bng 0. Cp pht mt khi mi ti mt tp tin l mt vn n gin cho vic
tm mc t bng c gi tr 0 u tin v thay th gi tr kt thc tp tin trc vi
a ch ca khi mi. Sau , s 0 c thay th vi gi tr kt thc tp tin. Mt th d
minh ho l cu trc FAT ca hnh X-7 cho mt tp tin cha cc khi a 217, 618 v
339.

Hnh 0-7 Bng cp pht tp tin
C ch cp pht FAT c th dn ti s lng ln tm kim u c a nu
FAT khng c lu tr(cache). u c a phi di chuyn ti im bt u ca
phn khu c FAT v tm v tr khi sau di chuyn ti v tr ca chnh khi a
. Trong trng hp xu nht, c hai di chuyn xy ra cho mi khi a. Li im l
thi gian truy xut ngu nhin c ci tin v u c a c th tm v tr ca bt c
khi no bng cch c thng tin trong FAT.
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang

233
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

VI.3 Cp pht c lp ch mc
Cp pht lin kt gii quyt vic phn mnh ngoi v vn khai bo kch
thc ca cp pht k. Tuy nhin, cp pht lin kt khng h tr truy xut trc tip
hiu qu v cc con tr ch ti cc khi c phn tn vi chnh cc khi qua a
v cn c ly li trong th t. Cp pht c lp ch mc gii quyt vn ny
bng cch mang tt c con tr vo mt v tr: khi ch mc (index block).
Mi tp tin c khi ch mc ca chnh n, khi ny l mt mng cc a ch
khi a. Mc t th i trong khi ch mc ch ti khi i ca tp tin. Th mc cha a
ch ca khi ch mc (nh hnh X-8). c khi i, chng ta dng con tr trong mc
t khi ch mc tm v c khi mong mun. C ch ny tng t nh c ch phn
trang.


Hnh 0-8 Cp pht khng gian a c lp ch mc
Khi mt tp tin c to, tt c con tr trong khi ch mc c t ti nil.
Khi khi th i c vit u tin, khi c cha t b qun l khng gian trng v
a ch ca n c t trong mc t khi ch mc.
Cp pht c lp ch mc h tr truy xut trc tip, khng gp phi s phn
mnh ngoi v bt c khi trng trn a c th p ng yu cu thm khng gian.
Cp pht c lp ch mc gp phi s lng ph khng gian. Chi ph con tr ca khi
ch mc thng ln hn chi ph con tr ca cp pht lin kt. Xt trng hp thng
thng trong chng ta c mt tp tin vi ch mt hoc hai khi. Vi cp pht lin
kt, chng ta mt khng gian ca ch mt con tr trn khi (mt hay hai con tr). Vi
cp pht c lp ch mc, ton b khi ch mc phi c cp pht thm ch nu mt
hay hai con tr l khc nil.
im ny sinh ra cu hi khi ch mc nn ln bao nhiu? Mi tp tin phi c
mt khi ch mc m chng ta mun khi ch mc nh nht c th. Tuy nhin, nu
khi ch mc qu nh n khng th qun l cc con tr cho mt tp tin ln v mt
c ch s phi sn c gii quyt vn ny:
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang

234
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

C ch lin kt (linked scheme): mt khi ch mc thng l mt khi
a. Do , n c th c c v vit trc tip bi chnh n. cho php
i vi cc tp tin ln, chng ta c th lin kt nhiu khi ch mc vi
nhau. Th d, mt khi ch mc c th cha mt header nh cho tn tp tin
v mt tp hp ca cc a ch 100 khi a u tin. a ch tip theo (t
cui cng trong khi ch mc) l nil (i vi mt tp tin nh) hay mt con
tr ti khi ch mc khc (cho mt tp tin ln)
Ch mc nhiu cp (multilevel index): mt bin dng ca biu din lin
kt l dng khi ch mc cp 1 ch ti khi ch mc cp 2. Khi cp 2
ch ti cc khi tp tin. truy xut mt khi, h iu hnh dng ch mc
cp 1 tm mt khi ch mc cp 2 v khi tm khi d liu mong
mun. Tip cn ny c th c tip tc ti cp 3 hay cp 4, tu thuc vo
kch thc tp tin ln nht c mong mun. Vi khi c kch thc
4,096 bytes, chng ta c th lu 1,024 con tr 4 bytes trong mt khi ch
mc. Ch mc hai cp cho php 1,048,576 khi d liu, cho php tp tin c
kch thc ti 4GB.
C ch kt hp (combined scheme): mt bin dng khc c dng trong
UFS l gi 15 con tr u tin ca khi ch mc trong inode ca tp tin.
12 con tr u tin ca 15 con tr ny ch ti khi trc tip (direct blocks);
ngha l chng cha cc a ch ca khi m cha d liu ca tp tin. Do
, d liu i vi cc tp tin nh (khng ln hn 12 khi) khng cn mt
khi ch mc ring. Nu kch thc khi l 4 KB, th ti 48 KB d liu c
th truy xut trc tip. 3 con tr tip theo ch ti cc khi gin tip
(indirect blocks). Con tr khi gin tip th nht l a ch ca khi gin
tip n (single indirect blocks). Khi gin tip n l mt khi ch mc
khng cha d liu nhng cha a ch ca cc khi cha d liu. Sau ,
c con tr khi gin tip i (double indirect block) cha a ch ca mt
khi m khi ny cha a ch ca cc khi cha con tr ch ti khi d
liu tht s. Con tr cui cng cha cha a ch ca khi gin tip ba
(triple indirect block). Vi phng php ny, s khi c th c cp pht
ti mt tp tin vt qu lng khng gian c th nh a ch bi cc con
tr tp tin 4 bytes hay 4 GB. Nhiu ci t UNIX gm Solaris v AIX ca
IBM h tr ti 64 bit con tr tp tin. Cc con tr c kch thc ny cho
php cc tp tin v h thng tp tin c kch thc ti terabytes. Mt inode
c hin th trong hnh X-9:
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang

235
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0



Hnh 0-9 Inode ca UNIX
C ch cp pht lp ch mc gp mt s kh khn v nng lc nh cp pht
lin kt. c bit, cc khi ch mc c th c lu tr (cache) trong b nh; nhng
cc khi d liu c th c tri rng khp phn khu.
VI.4 Nng lc
Cc phng php cp pht trn khc nhau v tnh hiu qu lu tr v thi
gian truy xut khi d liu. C hai yu t ny l tiu chun quan trng trong vic chn
phng php hp l hay cc phng php cho mt h iu hnh ci t.
Trc khi chn mt phng php, chng ta cn xc nh h thng s c dng nh
th no. Mt h thng vi hu ht truy xut tun t nn dng mt phng php khc
t h thng vi hu ht truy xut ngu nhin. i vi bt c loi truy xut no, cp
pht k yu cu ch mt truy xut t c mt khi a. V chng ta c th gi d
dng a ch khi u ca tp tin trong b nh, chng ta c th tnh lp tc a ch a
ca khi th i (hay khi k tip) v c n trc tip.
i vi cp pht lin kt, chng ta cng c th gi a ch khi k tip trong
b nh v c n trc tip. Phng php ny l tt cho truy xut tun t; tuy nhin,
i vi truy xut trc tip mt truy xut ti khi th i phi yu cu c I a. Vn
ny minh ho l do cp pht lin kt khng c dng cho mt ng dng yu cu truy
xut trc tip.
Do , mt s h thng h tr cc tp tin truy xut trc tip bng cch dng
cp pht k v truy xut tun t bi cp pht lin kt. i vi cc h thng ny, loi
truy xut c thc hin phi c khai bo khi tp tin c to. Mt tp tin c to
cho truy xut tun t s c lin kt v khng th c dng cho truy xut trc tip.
Mt tp tin c to cho truy xut trc tip s k nhau v c th h tr c hai truy
xut trc tip v truy xut tun t nhng chiu di ti a ca n phi c khai bo
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang

236
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

khi n c to. Trong trng hp ny, h iu hnh phi c cu trc d liu hp l
v cc gii thut h tr c hai phng php cp pht. Cc tp tin c th c
chuyn t mt kiu ny sang mt kiu khc bng cch to mt tp tin mi ca loi
mong mun v cc ni dung ca tp tin c c chp vo tp tin mi. Sau , tp tin
c c th b xo v tp tin mi c i tn.
Cp pht dng ch mc phc tp hn. Nu khi ch mc trong b nh ri
th truy xut c th c thc hin trc tip. Tuy nhin, gi khi ch mc trong b
nh yu cu khng gian c th xem xt. Nu khng gian b nh ny khng sn dng
th chng ta phi c trc khi ch mc v sau khi d liu mong mun. i vi
ch mc hai cp, c hai khi ch mc l cn thit. i vi tp tin rt ln, truy xut
mt khi gn cui tp tin yu cu c tt c khi ch mc ln theo chui con tr
trc khi khi d liu c yu cu cui cng c c. Do , nng lc ca cp pht
ch mc ph thuc cu trc ch mc trn kch thc tp tin v v tr ca khi mong
mun.
Mt s h thng kt hp cp pht k v cp pht ch mc bng cch dng cp
pht k cho cc tp tin nh (ba hay bn khi) v t ng chuyn ti cp pht ch mc
nu tp tin ln ln. V hu ht cc tp tin l nh v cp pht k l hiu qu cho cc tp
tin nh, nng lc trung bnh l rt tt.
Nhiu ti u khc l c th v ang c dng. Vi s chnh lch tc gia
CPU v a, n l khng hp l thm hng ngn ch th ti h iu hnh tit
kim ch mt vi di chuyn ca u c. Ngoi ra, s chnh lch ny tng theo thi
gian, ti im ni m hng trm ca hng ngn ch th ph hp c th c dng
ti u s di chuyn ca u c.
VII Qun l khng gian trng
V khng gian trng l gii hn nn chng ta cn dng li khng gian t cc tp
tin b xo cho cc tp tin mi nu c th. gi vt ca khng gian a trng, h
thng duy tr mt danh sch khng gian trng. Danh sch khng gian trng ghi li tt
c khi a trng. to tp tin, chng ta tm trong danh sch khng gian trng lng
khng gian c yu cu v cp pht khng gian ti tp tin mi. Sau , khng
gian ny c xo t danh sch khng gian trng. Khi mt tp tin b xo, khng gian
a ca n c thm vo danh sch khng gian trng. Mc d tn ca n l danh
sch nhng danh sch khng gian trng c th khng c ci nh mt danh sch.
VII.1 Bit vector
Thng th danh sch khng gian trng c ci t nh mt bn bit (bit
map) hay mt vector bit (bit vector). Mi khi c biu din bi 1 bit. Nu khi l
trng, bit ca n c t l 1, nu khi c cp pht bit ca n c t l 0.
Th d, xt mt a khi cc khi 2, 3, 4, 5, 8, 9, 10, 11, 12, 13, 17, 18, 25, 26, v 27 l
trng v cc khi cn li c cp pht. Bn bit khng gian trng s l:
001111001111110001100000011100000
Li im chnh ca tip cn ny l tnh tng i n gin v hiu qu ca n
trong vic tm khi trng u tin, hay n khi trng tip theo trn a.
Mt ln na, chng ta thy cc c im phn cng nh hng chc nng
phn mm. Tuy nhin, cc vector bit l khng tr khi ton b vector c gi
trong b nh chnh. Gi n trong b nh chnh l c th cho cc a nh hn, nh trn
cc my vi tnh nhng khng th cho cc my ln hn. Mt a 1.3 GB vi khi 512
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang

237
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

bytes s cn mt bn bit 332 KB ghi li cc khi trng. Gom bn khi vo mt
nhm c th gim s ny xung cn 83 KB trn a.
VII.2 Danh sch lin kt

Hnh 0-10 danh sch khng gian trng c lin kt trn a
Mt tip cn khc qun l b nh trng l lin kt tt c khi trng, gi mt
con tr ti khi trng u tin trong mt v tr c bit trn a v lu n trong b
nh. Khi u tin ny cha con tr ch ti khi a trng tip theo,..Trong th d trn,
chng ta c th gi mt con tr ch ti khi 2 nh l khi trng u tin. Khi 2 s
cha mt con tr ch ti khi 3, khi ny s ch ti khi 4,(nh hnh X-10). Tuy
nhin, c ch ny khng hiu qu duyt danh sch, chng ta phi c mi khi,
yu cu thi gian nhp/xut ng k. Tuy nhin, duyt danh sch trng khng l hot
ng thng xuyn. Thng th, h iu hnh cn mt khi trng m n c th cp
pht khi ti mt tp tin, v th khi u tin trong danh sch trng c dng.
Phng php FAT kt hp vi m khi trng thnh cu trc d liu cp pht.
VII.3 Nhm
Thay i tip cn danh sch trng lu a ch ca n khi trng trong khi
trng u tin. n-1 khi u tin ny tht s l khi trng. Khi cui cng cha a
ch ca n khi trng khc, S quan trng ca vic ci t ny l a ch ca mt s
lng ln khi trng c th c tm thy nhanh chng, khng ging nh trong tip
cn danh sch lin kt chun.
VII.4 B m
Mt tip cn khc t c li im trong thc t l nhiu khi k c th c
cp pht v gii phng cng lc, c bit khi khng gian c cp pht vi gii thut
cp pht k hay thng qua nhm. Do , thay v gi mt danh sch n a ch a trng,
chng ta c th gi a ch ca khi trng u tin v s n khi k trng theo sau khi
u tin. Mi mc t trong danh sch khng gian trng sau cha mt a ch a v
b m. Mc d mi mc t yu cu nhiu khng gian hn mt a ch a n,
nhng ton b danh sch s ngn hn vi iu kin l b m ln hn 1.
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang

238
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0

VIII Tm tt
H thng tp tin nh v khng i trn thit b lu tr ph c thit k
qun l mt lng ln d liu khng i. Phng tin lu tr ph ph bin nht l
a.
a vt l c th c chia thnh nhiu phn khu iu khin vic s dng
phng tin v cho php nhiu h thng tp tin (c th khc nhau) trn a. Cc h
thng tp tin ny c gn vo kin trc h thng tp tin lun l lm cho chng sn
dng. Cc h thng tp tin thng c ci t trong mt kin trc phn tng hay
module. Nhng cp thp hn gii quyt cc thuc tnh vt l ca cc thit b lu tr.
Cp cao hn gii quyt cc tn tp tin biu tng v cc thuc tnh lun l ca tp tin.
Cc cp trung gian nh x cc khi nim tp tin lun l thnh cc thuc tnh thit b
vt l.
Mi kiu h thng tp tin c cc cu trc v gii thut khc nhau. Mt tng VFS
cho php cc tng cao hn gii quyt mi kiu h thng tp tin khc nhau trong cng
mt cch. Ngay c cc h thng tp tin xa c th c tch hp vo cu trc th
mc ca h thng v c hot ng trn cc li gi h thng chun bng giao din
VFS.
Nhng tp tin khc nhau c th c cp pht khng gian trn a trong 3 cch:
k, lin kt hay ch mc. Cp pht k c th gp phi s phn mnh ngoi. Truy xut
trc tip l km hiu qu vi cp pht lin kt. Cp pht ch mc yu cu chi ph ng
k cho khi ch mc ca n. Cc gii thut ny c th ti u trong nhiu cch. Khng
gian k c th ln ln thng qua on m rng tng kh nng linh hot v gim
phn mnh ngoi. Cp pht ch mc c th c thc hin trong vic nhm nhiu
khi tng thng lng v gim s lng cc mc t ch mc c yu cu. Lp ch
mc trong cc nhm l tng t nh cp pht k vi cc on m rng.
Cc phng php cp pht khng gian trng cng nh hng ti tnh hiu qu
ca khng gian a, nng lc h thng tp tin v kh nng tin cy ca thit b lu tr
ph. Cc phng php c dng gm cc vector bit v cc danh sch lin kt. Cc
ti u gm nhm, m v FAT, m t danh sch lin kt trong mt vng k.


Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang

239
i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0



QUN L H THNG NHP/XUT
I Mc ch
Sau khi hc xong chng ny, ngi hc nm c nhng kin thc sau:
Hiu cc c s ca phn cng nhp/xut
Hiu cc dch v nhp/xut c cung cp bi h iu hnh
Hiu cch h iu hnh lm cu ni gia giao din phn cng v giao din ng
dng
Bit cc kha cnh nng lc ca nhp/xut v cc nguyn l thit k h iu
hnh ci tin nng lc nhp/xut
II Gii thiu
Vai tr ca h iu hnh trong nhp/xut my tnh l qun l v iu khin cc
thao tc nhp/xut v cc thit b nhp/xut. Trong chng ny chng ta s m t cc
khi nim c bn ca phn cng nhp/xut. K n chng ta s tho lun cc dch v
nhp/xut c cung cp bi h iu hnh v hin thn ca cc dch v ny trong giao
din ng dng nhp/xut. Sau , chng ta gii thch h iu hnh lm cu ni gia
giao din phn cng v giao din ng dng nh th no. Cui cng, chng ta tho
lun cc kha cnh nng lc ca nhp/xut v cc nguyn l thit k h iu hnh
ci tin nng lc nhp/xut.
III Cc khi nim c bn
iu khin cc thit b c ni kt ti my tnh l mi quan tm ch yu ca
ngi thit k h iu hnh. V cc thit b nhp/xut rt khc nhau v chc nng v
tc (xem xt chut, a cng, v CD-ROM) nn s a dng v phng php l cn
thit iu khin chng. Cc phng php ny hnh thnh mt h thng nhp/xut
con (I/O subsystem) ca nhn, tch ri phn cn li ca nhn t s phc tp ca vic
qun l cc thit b nhp/xut.
Cng ngh thit b nhp/xut th hin hai xu hng tri ngc nhau. Xu hng
th nht, chng ta tng s chun ho phn mm v giao din phn cng. Xu hng
ny gip chng ta hp tc nhng th h thit b c ci tin vo cc my tnh v h
iu hnh c. Xu hng th hai, chng ta tng s a dng ca cc thit b
nhp/xut. Thit b mi l rt khc vi cc thit b trc to ra mt tr ngi
hp nht chng vo my tnh v h iu hnh ca chng ta. Tr ngi ny c gii
quyt bi s kt hp k thut phn cng v phn mm. Cc thnh phn phn cng
nhp/xut c bn nh cng, bus v b iu khin thit b cha trong mt dy rng cc
thit b nhp/xut. ng gi cc chi tit v s khc bit ca cc thit b khc nhau,
nhn ca h iu hnh c ch dn dng cc modules trnh iu khin thit b.
Cc trnh iu khin thit b (device driver) hin din mt giao din truy xut thit b
ng nht ti h thng con nhp/xut, nh cc li gi h thng cung cp mt giao
din chun gia ng dng v h iu hnh.
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang 242


i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0



IV Phn cng nhp/xut
Cc my tnh iu hnh nhiu loi thit b. Hu ht chng thuc cc chng loi
ph bin nh thit b lu tr (a, bng t), thit b truyn (card mng, modem) v
thit b giao din ngi dng (mn hnh, bn phm, chut),.... Mc d c s a dng
v cc thit b nhp/xut, nhng chng ta ch cn hiu mt vi khi nim nh cc thit
b c gn nh th no v phn mm c th iu khin phn cng nh th no.
Mt thit b giao tip vi mt h thng my tnh bng cch gi cc tn hiu qua
dy cp hay thm ch qua khng kh. Cc thit b giao tip vi my bng mt im ni
kt (cng-port) nh cng tun t. Nu mt hay nhiu thit b dng mt tp hp dy
dn, ni kt c gi l bus. Mt bus l mt tp hp dy dn v giao thc c nh
ngha cht ch xc nh tp hp thng ip c th c gi qua dy. Trong thut
ng in t, cc thng ip c truyn bi cc mu in th in t c p dng
ti cc dy dn vi thi gian c xc nh. Khi thit b A c mt cp gn vo thit b
B, thit b B c mt cp gn vo thit b C v thit b C gn vo mt cng my tnh,
s sp xp ny c gi l chui ni tip. Mt chui ni tip thng iu hnh nh
mt bus.
IV.1 Thm d
Giao thc hon chnh cho vic giao tip gia my tnh v b iu khin rt phc
tp nhng k hiu bt tay (handshaking) l n gin. Chng ta gii thch bt tay bng
th d sau. Chng ta gi s rng 2 bits c dng hp tc trong mi quan h ngi
sn xut-ngi tiu th gia b iu khin v my ch. B iu khin hin th trng
thi ca n thng qua bit bn (busy bit) trong thanh ghi trng thi. B iu khin t
bit bn khi n ang lm vic v xo bit bn khi n sn sng nhn lnh tip theo. My
tnh ra tn hiu mong mun bng bit sn sng nhn lnh (command-ready bit) trong
thanh ghi lnh. My tnh thit lp bit sn sng nhn lnh khi mt lnh sn dng cho b
iu khin thc thi. Th d, my tnh vit d liu xut thng qua mt cng, hp tc
vi b iu khin bng cch bt tay nh sau:

1. My tnh lp li vic c bit bn cho ti khi bit ny b xo
2. My tnh thit lp bit vit trong thanh ghi lnh v vit mt byte vo thanh ghi
d liu xut
3. My tnh t bit sn sng nhn lnh
4. Khi b iu khin nhn thy rng bit sn sng nhn lnh c t, n t bit
bn
5. B iu khin c thanh ghi lnh v thy lnh vit. N c thanh ghi xut d
liu ly mt byte v thc hin nhp/xut ti thit b.
6. B iu khin xo bit sn sng nhn lnh, xo bit li trong thanh ghi trng thi
hin th rng thit b nhp/xut thnh cng, v xo bit bn hin th rng
n c kt thc.

Vng lp ny c lp cho mi byte.
Trong bc 1, my tnh l ch i bn hay thm d. N trong mt vng lp, c
thanh ghi trng thi cho n khi bit bn c xo. Nu b iu khin v thit b nhanh
th phng php ny l mt phng php ph hp. Nhng nu ch lu my ch
chuyn sang mt tc v khc. Sau , my tnh lm th no bit khi no b iu
khin rnh? i vi mt s thit b, my tnh phi phc v thit b nhanh chng hoc
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang 243


i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0



d liu s b mt. Th d, khi d liu ang truyn vo cng tun t t bn phm, mt
vng m nh trn b iu khin s trn v d liu s b mt nu my tnh ch qu lu
trc khi tr v cc bytes c c.
Trong nhiu kin trc my tnh, 3 chu k lnh CPU thm d mt thit b:
read mt thanh ghi thit b, thc hin php tnh lun l and ly bit trng thi v
tch ra (branch) nu khc 0. R rng, thao tc thm d c bn l . Nhng thm d
tr nn khng khi c lp li nhiu ln, him khi tm mt thit b sn sng phc
v trong ln thm d u tin, trong khi cn dng CPU x l cho cc cng vic
khc. Trong trng hp nh th, s hiu qu hn sp xp b iu khin phn cng
thng bo cho CPU khi no thit b sn sng phc v hn l yu cu CPU lp li vic
thm d cho vic hon thnh nhp/xut. C ch phn cng cho php mt thit b
thng bo ti CPU c gi l ngt (interrupt).
IV.2 Ngt

Hnh 0-1 Chu k nhp/xut hng ngt
C ch ngt c bn lm vic nh sau: phn cng CPU c mt dy dn c
gi l dng yu cu ngt (interrup-request line) m CPU cm ng sau khi thc thi
mi ch th. Khi mt CPU pht hin mt b iu khin xc nhn mt tn hiu trn
dng yu cu ngt th CPU lu mt lng nh trng thi nh gi tr hin hnh ca con
tr lnh, v nhy ti th tc ca b qun l ngt (interrupt-handler) ti a ch c
nh trong b nh. B qun l ngt xc nh nguyn nhn gy ra ngt, thc hin x l
cn thit, thc thi ch th return from interrupt tr v CPU trng thi thc thi trc
khi ngt. Chng ta ni rng b iu khin thit b sinh ra mt ngt bng cch xc nh
tn hiu trn dng yu cu ngt v b qun l xo ngt bng cch phc v thit b.
Hnh XI-1 tm tt chu k nhp/xut hng ngt (interrupt-driven I/O cycle)
IV.3 Truy xut b nh trc tip
i vi mt thit b thc hin vic truyn ln nh a, n s lng ph khi dng
b vi x l theo di cc bit trng thi v y d liu vo thanh ghi iu khin tng
byte mt. Nhiu my tnh mun gim i gnh nng cho CPU bng cch chuyn mt
s cng vic ny ti mt b iu khin c mc ch c bit c gi l b iu
khin truy xut b nh trc tip (direct memory-access-DMA).
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang 244


i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0




















Hnh 0-2 Cc bc trong vic truyn d liu ca DMA

khi to mt thao tc chuyn DMA, my tnh vit mt khi lnh DMA vo
b nh. Khi ny cha mt con tr ch ti ngun chuyn, mt con tr ch ti ch
chuyn v m s lng byte c chuyn. CPU vit a ch ca khi lnh ny ti b
iu khin DMA, sau CPU tip tc lm cng vic khc. B iu khin DMA x l
iu hnh bus b nh trc tip, t cc a ch trn bus thc hin vic chuyn
m khng c s tr gip ca CPU. Mt b iu khin DMA n gin l mt thnh
phn chun trong PCs, v bng nhp/xut bus chnh (bus-mastering I/O boards)
PC thng cha phn cng DMA tc cao. Qu trnh ny c m t trong hnh
XI-2.
V Giao din nhp/xut ng dng
Trong phn ny, chng ta tho lun cc k thut cu trc v cc giao din cho
h iu hnh cho php cc thit b nhp/xut c i x trong cch chun, khng
i. Th d, chng ta gii thch mt ng dng c th m mt tp tin trn a m khng
bit loi a l g v cc a mi v cc thit b khc c th c thm ti my tnh
nh th no m khng lm h iu hnh b gin on.
Nh nhng vn cng ngh phn mm phc tp khc, tip cn y lin quan
n tnh tru tng, bao gi v phn tng phn mm. c bit, chng ta c th tru
tng s khc nhau chi tit trong cc thit b nhp/xut bng cch xc nh mt vi
loi thng dng. Mi loi thng dng c truy xut thng qua mt tp hp hm
chun-mt giao din. S khc bit ny c bao gi trong module nhn c gi l
trnh iu khin thit b (device driver) m qui nh bn trong c p t cho mi
thit b, nhng c nhp vo mt trong nhng giao din chun. Hnh XI-3 hin th
cch cc thnh phn lin quan nhp/xut ca nhn c cu trc trong cc tng phn
mm.




Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang 245


i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0






















Hnh 0-3 Cu trc ca nhn nhp/xut

Mc ch ca tng cha trnh iu khin thit b l che y s khc bit gia
cc b iu khin thit b t h con nhp/xut ca nhn, nhiu li gi h thng
nhp/xut ng gi cc hnh vi ca thit b trong mt vi lp pht sinh che y s
khc bit t cc ng dng. Thc hin h thng con nhp/xut c lp vi phn cng
n gin ha cng vic ca ngi pht trin h iu hnh. N cng em li s thun
li cho cc nh sn xut phn cng. H thit k cc thit b mi tng thch vi giao
din b iu khin ch c (nh SCSI-2) hay h vit cc trnh iu khin thit b
giao tip phn cng mi i vi cc h iu hnh ph bin. Do , cc thit b ngoi
vi mi c th c gn ti mt my tnh m khng phi ch nh cung cp h iu
hnh pht trin thm m.
Tuy nhin, i vi mt s nh sn xut thit b phn cng, mi loi h iu
hnh c chun ring ca n cho giao din trnh iu khin thit b. Mt thit b c
cho c th mang nhiu trnh iu khin-th d, trnh iu khin cho MS-DOS,
Windows 95/98, Windows NT/2000 v Solaris. Cc thit b khc nhau trong nhiu
hng nh c hin th trong hnh XI-4.












Hnh 0-4 Cc c im ca cc thit b nhp/xut
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang 246


i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0



Dng k t hay khi: cc thit b dng k t chuyn tng byte mt,
ngc li mt thit b khi chuyn n v l khi byte.
Truy xut tun t v ngu nhin: thit b tun t chuyn d liu theo
mt th t c nh c nh ngha bi thit b, ngc li ngi dng
ca mt thit b truy xut ngu nhin c th ch dn thit b tm bt
c v tr lu tr d liu sn c.
ng b v bt ng b: mt thit b ng b l mt thit b thc hin
vic chuyn d liu vi s ln p ng c th on trc. Mt thit b
bt ng b hin th s ln p ng khng u n hay khng th on
trc.
C th chia s hay tn hin: mt thit b c th chia s c dng ng
hnh bi nhiu qu trnh hay lung; mt thit b tn hin th khng th.
Tc thao tc: tc thit b tri di t mt vi byte trn giy ti mt
vi gigabyte trn giy.
c-vit, ch c, hay ch vit: mt s thit b thc hin c hai nhp,
xut, nhng mt s thit b khc h tr ch mt hng d liu
VI H thng con nhp/xut ca nhn (kernel I/O
subsytem)
Nhn cung cp nhiu dch v lin quan n nhp/xut. Mt vi dch v-nh
thi biu, vng m (buffering), vng lu tr (cache), t trc thit b, qun l li-
c cung cp bi h thng con nhp/xut ca nhn v xy dng trn phn cng v
c s h tng trnh iu khin thit b.
VI.1 nh thi biu nhp/xut
nh thi biu cho tp hp cc yu cu nhp xut c ngha l xc nh mt th
t tt thc thi chng. Th t cc ng dng pht ra li gi h thng rt him khi l
mt chn la tt nht. nh thi biu c th ci tin nng ton b lc h thng, c th
chia s truy xut thit b ng u gia cc qu trnh v c th gim thi gian ch i
trung bnh cho nhp/xut hon thnh. .
Ngi pht trin h iu hnh ci t b nh thi biu bng cch duy tr mt
hng i cho mi thit b. Khi mt ng dng pht ra mt li gi h thng nhp/xut
nghn, yu cu c t vo hng i cho thit b . B nh thi biu nhp/xut sp
xp li th t ca hng i ci tin ton b tnh hiu qu h thng v thi gian p
ng trung bnh da theo kinh nghim bi ng dng. H iu hnh cng c gng gi
bnh ng m khng ng dng no nhn c dch v ngho nn hay n cho dch
v u tin i vi cc yu cu tr hon nhy cm. Th d, cc yu cu t h thng con
b nh o c th ly u tin qua cc yu cu ca ng dng.
Mt cch m h thng con nhp/xut ci tin tnh hiu qu ca my tnh l bng
cch nh thi biu cc hot ng nhp/xut. Mt cch khc l dng khng gian lu
tr trong b nh chnh hay trn a, vi cc k thut c gi l vng m, vng lu
tr v vng cha.
VI.2 Vng m
Vng m l mt vng b nh lu tr d liu trong khi chng c chuyn gia
hai thit b hay gia thit b v ng dng. Vng m c thc hin vi 3 l do.
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang 247


i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0



L do th nht l i ph vi vic khng tng thch v tc gia ngi sn
xut v ngi tiu dng ca dng d liu.
L do th hai cho vic s dng vng l lm thch ng gia cc thit b c kch
thc truyn d liu khc nhau.
L do th ba cho vic dng vng m l h tr ng ngha sao chp cho
nhp/xut ng dng.
VI.3 Vng lu tr
Vng lu tr (cache) l mt vng b nh nhanh qun l cc bn sao d liu.
Truy xut ti mt bn sao c lu tr hiu qu hn truy xut ti bn gc. Th d, cc
ch th ca qu trnh hin ang chy c lu trn a, c lu tr trong b nh vt
l v c sao chp mt ln na trong vng lu tr ph v chnh. S khc nhau gia
vng m l vng lu tr l vng m c th gi ch bn sao ca thnh phn d liu
c, ngc li mt vng lu tr gi va mt bn sao trn thit b lu tr nhanh
hn ca mt thnh phn nm mt ni no khc.Vng lu tr v vng m c chc
nng khc nhau nhng i khi mt vng b nh c th c dng cho c hai mc
ch.
VI.4 Vng cha v t trc thit b
Mt vng cha (spool) l mt vng m gi d liu xut cho mt thit b nh
my in m khng th chp nhn cc dng d liu an xen nhau. Mc d mt my in
c th phc v ch mt cng vic ti mt thi im, nhng nhiu ng dng mun in
ng thi m khng c d liu xut ca chng an xen vi nhau. H iu hnh gii
quyt vn ny bng cch ngn chn tt c d liu xut ti my in. D liu xut ca
mi ng dng c cha trong mt tp tin ring. Khi mt ng dng kt thc vic in,
h thng vng cha xp tp tin cha tng ng cho d liu xut ti my in. H thng
vng cha chp cc tp tin c xp hng ti my in mt tp tin ti mt thi im.
Trong mt h iu hnh, vng cha c qun l bi mt qu trnh h thng chy
ch nn. Trong mt s h iu hnh khc, n c qun l bi lung nhn. Trong
mi trng hp, h iu hnh cung cp mt giao din iu khin cho php ngi
dng v ngi qun tr h thng hin th hng i xa cc cng vic khng mong
mun trc khi cc cng vic in, tm dng vic in trong khi my in c phc
v,..
VI.5 Qun l li
Mt h iu hnh s dng b nh bo v c th chng li nhiu li phn cng
v ng dng v th mt li ton h thng khng l kt qu ca mi s trc trc c hc
th yu. Cc thit b v truyn nhp/xut c th b li trong nhiu cch, c th l cc
l do tm thi nh mng tr nn qu ti, hay cc l do thng xuyn nh trnh iu
khin a b li. Cc h iu hnh thng tr gi cho tnh hiu qu v cc li tm thi.
Th d, li c a read() dn n c gng lm li read() v li gi d liu trn
mng send() dn ti vic gi li resend() nu giao thc c xc nh r. Tuy nhin,
nu mt thnh phn quan trng b li thng xuyn th h iu hnh khng ngh n
vic phc hi.
Nh mt qui tc thng thng, mt li gi h thng nhp/xut tr v 1 bit ca
thng tin v trng thi ca li gi, biu th thnh cng hay tht bi. Trong h iu
hnh UNIX, mt bin nguyn c tn errno c dng tr v mt m li- mt trong
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang 248


i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0



100 gi tr-hin th tnh t nhin ca li (th d: i s vt qu gii hn, li con tr,
tp tin khng th m,..). Ngc li, mt s phn cng cung cp thng tin li c m
t chi tit mc d nhiu h iu hnh hin ti khng c thit k truyn t thng
tin ny ti ng dng.
VI.6 Cu trc d liu nhn

Nhn cn gi thng tin trng thi v vic dng cc thnh phn nhp/xut. N thc
hin nh th thng qua mt dy cc cu trc d liu trong nhn nh bng tp tin ang
m. Nhn dng nhiu cu trc tng t ghi vt cc ni kt mng, giao tip thit b
dng k t v cc hot ng nhp/xut khc.
Tm li, h thng con nhp/xut iu phi tp hp dch v m rng sn c i vi
ng dng v nhng phn khc ca nhn. H thng con nhp/xut iu khin
Qun l khng gian tn cho cc tp tin v cc thit b
iu khin truy xut ti cc tp tin v cc thit b
iu khin hot ng (th d, mt modem khng th tm seek())
Cp pht khng gian h thng tp tin
Cp pht thit b
Vng m, vng lu tr v vng cha
nh thi biu nhp/xut
iu khin trng thi thit b, qun l li, v phc hi li
Cu hnh v khi to trnh iu khin thit b
Cp cao hn ca h thng con nhp/xut truy xut thit b qua giao din ng nht
c cung cp bi cc trnh iu khin thit b
VII Chuyn nhp/xut ti hot ng phn cng
Phn trc chng ta m t vic bt tay gia mt trnh iu khin thit b v b
iu khin thit b, nhng chng ta khng gii thch cch h iu hnh ni kt yu cu
ng dng ti tp hp dy mng hay mt sector a xc nh nh th no. Chng ta hy
xem xt mt th d c mt tp tin t a. ng dng tham chiu ti d liu bng tn
tp tin. Trong mt a, h thng tp tin nh x t tn tp tin thng qua cc th mc h
thng tp tin ly khng gian cp pht ca tp tin.
Cc h iu hnh hin i t c kh nng linh hot cao t nhiu giai on
ca bng tra cu trong ng dn gia yu cu v b iu khin thit b vt l. Cc c
ch truyn yu cu gia ng dng v trnh iu khin l ph bin. Do , chng ta c
th gii thiu cc thit b mi v trnh iu khin vo my tnh m khng bin dch li
nhn. Tht vy, mt s h iu hnh c kh nng np trnh iu khin thit b theo yu
cu. Ti thi im khi ng, h thng u tin thm d cc bus phn cng xc
nh thit b no hin din v sau h thng np cc trnh iu khin cn thit ngay
lp tc hay khi c yu cu bi mt yu cu nhp/xut u tin.
By gi chng ta m t chu trnh sng in hnh ca mt yu cu c b nghn,
nh trong hnh XI-5. Hnh ny ngh rng mt thao tc nhp/xut yu cu nhiu
bc v tiu tn s lng ln chu k CPU.

1) Mt qu trnh pht ra mt li gi h thng read() ti b m t tp tin c
m trc .
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang 249


i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0



2) M li gi h thng trong nhn kim tra tnh ng n ca cc tham s. Trong
trng hp nhp, nu d liu c sn trong vng m th d liu c tr v
ti qu trnh v yu cu nhp/xut c hon thnh.
3) Ngc li, nhp/xut vt l cn c thc hin m qu trnh c xa t
hng i thc thi v c t vo hng i ch cho thit b, v yu cu
nhp/xut c lp thi biu. Cui cng, h con nhp/xut gi yu cu ti
trnh iu khin thit b. Ph thuc vo h iu hnh, yu cu c gi bng
li gi th tc con hay bng thng ip trong nhn.
4) Trnh iu khin thit b cp pht vng m nhn nhn d liu v lp thi
biu nhp/xut. Cui cng, trnh iu khin gi lnh ti b iu khin thit b
bng cch vit vo thanh ghi iu khin ca thit b.
5) Trnh iu khin thit b thao tc trn phn cng thit b thc hin truyn
d liu.
6) Trnh iu khin c th thm d trng thi v d liu hay thit lp truyn
DMA vo b nh nhn. Chng ta tha nhn rng truyn c qun l bi b
iu khin DMA sinh ra mt ngt khi vic truyn hon thnh.
7) B qun l ngt tng ng nhn ngt bng bng vector ngt, lu bt c d liu
cn thit, bo hiu trnh iu khin thit b v tr v t ngt.
8) Trnh iu khin thit b nhn tn hiu, xc nh yu cu nhp/xut hon thnh,
xc nh trng thi yu cu v bo hiu cho h con nhp/xut nhn rng yu
cu hon thnh.
9) Nhn truyn d liu hay tr v m ti khng gian a ch ca qu trnh c
yu cu v di chuyn qu trnh t hng i ch ti hng i sn sng.
10) Di chuyn qu trnh ti hng i sn sng khng lm nghn qu trnh. Khi b
nh thi biu gn qu trnh ti CPU, qu trnh tip tc thc thi ti thi im
hon thnh ca li gi h thng.
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang 250


i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0




Hnh 0-5 Chu trnh sng ca yu cu nhp/xut
VIII Nng lc
Nhp/xut l mt yu t quan trng trong nng lc h thng. N t nhiu yu
cu trn CPU thc thi m trnh iu khin thit b v nh thi biu qu trnh cng
bng v hiu qu khi cc qu trnh ny nghn v khng nghn. Chuyn i ng cnh
ch trng n CPU v vng lu tr phn cng. Nhp/xut cng hin th tnh khng
hiu qu trong cc c ch qun l ngt trong nhn, v nhp/xut ti xung bus b nh
trong sut thi gian chp gia vng m nhn v khng gian d liu ng dng. Chp
mt cch hp l tt c yu cu ny l mt trong nhng quan tm chnh ca kin trc
my tnh.
Mc d cc my tnh hin i c th qun l hng ngn ngt trn giy, qun l
ngt l mt tc v tng i t: mi ngt gy cho h thng thc hin mt thay i
trng thi, thc thi b qun l ngt v sau phc hi trng thi. Nhp/xut c
lp trnh c th hiu qu hn nhp/xut hng ngt (interrupt-driven I/O) nu s chu
k tiu tn cho vic ch i bn l khng qu mc. Hon thnh mt thao tc
nhp/xut khng nghn mt qu trnh dn n ton b chi ph ca vic chuyn i
ng cnh.
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang 251


i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0



Chng ta c th tn dng nhiu nguyn tc ci tin tnh hiu qu ca
nhp/xut:
Ct gim s lng chuyn ng cnh
Ct gim s ln d liu phi c chp vo b nh trong khi truyn gia thit
b v ng dng.
Ct gim tn s xut hin ngt bng cch dng s truyn ln, b iu khin
thng tin v vng cha (nu ch i bn c th l nh nht).
Gia tng tnh ng hnh dng cc b iu khin tri thc DMA (DMA-
knowledgeable controllers) hay cc knh gim gnh nng chp d liu n
gin t CPU.
Di chuyn cc hm x l c bn vo phn cng, cho php hat ng ca
chng trong cc b iu khin thit b ng hnh vi cc thao tc CPU v bus.
Cn bng CPU, h con b nh, bus v nng lc nhp/xut v qu ti trong mt
vng bt k s gy rnh ri trong vng khc.

y cc chc nng nhp/xut nn c ci t-trong phn cng thit b, trong
trnh iu khin thit b hay trong phn mm ng dng? Chng ta quan st tin trnh
c m t trong hnh XI-6.

Hnh 0-6 Tin trnh m t chc nng thit b

Khi u, chng ta ci t gii thut nhp/xut th nghim ti cp ng dng v
m ng dng l linh hat v nhng li ng dng l khng chc gy ra s sp
h thng. Ngoi ra, bng pht trin m ti cp ng dng, chng ta trnh yu
cu khi ng hay np li trnh iu khin thit b sau mi thay i ti m.
Tuy nhin, ci t cp ng dng c th khng v chi ph chuyn ng cnh
v v ng dng khng th ly li im ca nhng cu trc d liu nhn bn
trong v chc nng nhn (nh truyn thng ip hu hiu trong nhn, lung v
kha).
Khi mt gii thut cp ng dng chng minh tnh gi tr ca n, chng ta c
th ci t li n trong nhn. iu ny c th ci tin nng lc nhng n lc
pht trin c th thch nhiu hn v nhn h iu hnh ln, phn mm h
thng phc tp. Ngoi ra, vic ci t trong nhn phi c g ri ton b
trnh h hng d liu v sp h thng.
Nng lc cao nht c th t c bi ci t chuyn dng trong phn cng,
trong thit b hay trong b iu khin. S bt li ca vic ci t phn cng
Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang 252


i Hc Cn Th - Khoa Cng Ngh Thng Tin - Gio Trnh H iu Hnh V1.0



gm kh khn v chi ph ca vic to nhng ci tin xa hn hay sa li, thi
gian pht trin tng (thng hn l ngy) v kh nng linh hot gim.
IX Tm tt
Cc thnh phn phn cng c bn c np vo nhp/xut l cc bus, cc b
iu khin thit b, v chnh cc thit b. Cng vic chuyn d liu gia thit b v b
nh chnh c thc hin bi CPU khi nhp/xut c lp trnh, hay c chuyn ti
ti b iu khin DMA. Module nhn iu khin mt thit b l mt trnh iu khin
thit b. Giao din li gi h thng cung cp ti ng dng c thit k qun l
nhiu chng loi c bn ca phn cng, sockets mng v b m thi gian n c
lp trnh.
H con nhp/xut ca nhn cung cp nhiu dch v. Cc dch v ny l nh
thi biu nhp/xut, vng m, vng cha, qun l li v t trc thit b. Mt dch
v khc l dch tn, to ni kt gia cc thit b phn cng v tn tp tin tng
trng c dng bi ng dng. N lin quan nhiu cp nh x m dch t tn chui
k t ti mt trnh iu khin thit b xc nh v a ch thit b v sau ti a ch
vt l ca cng nhp/xut hay b iu khin bus
Cc li gi h thng nhp/xut tnh chi ph theo thut ng tiu tn CPU v
nhiu lp phn mm gia thit b vt l v ng dng. Cc lp ny ng chi ph
chuyn ng cnh i qua phm vi bo v ca nhn, ca tn hiu v b qun l ngt
phc v cc thit b nhp/xut, v ca ti trn CPU v h thng b nh chp d
liu gia vng m nhn v khng gian ng dng.

Bin son: Th.s Nguyn Ph Trng - 09/2005 Trang 253

You might also like