View
219
Download
3
Category
Preview:
Citation preview
7/29/2019 Nguyen Ly Cac He Dieu Hanh 1283 (1)
1/145
Nguyn l cc h iu hnh
1
7/29/2019 Nguyen Ly Cac He Dieu Hanh 1283 (1)
2/145
CHNG 1: TNG QUAN V H IU HNH
1.1 Khi nim h iu hnh
H iu hnhl mt h thng cc chng trnh hot ng gia ngi s dng
(user) v phn cng ca my tnh. Mc tiu ca h iu hnh l cung cp mt mitrng ngi s dng c th thi hnh cc chng trnh. N lm cho my tnh d s
dng hn, thun li hn v hiu qu hn.
H iu hnh l mt phn quan trng ca hu ht cc h thng my tnh. Mt h
thng my tnh thng c chia lm bn phn chnh : phn cng, h iu hnh, cc
chng trnh ng dng v ngi s dng.
Phn cng bao gm CPU, b nh, cc thit b nhp xut, y l nhng tinguyn ca my tnh.
Chng trnh ng dngnh cc chng trnh dch, h thng c s d liu, cc
tr chi, v cc chng trnh thng mi. Cc chng trnh ny s dng ti nguyn
ca my tnh gii quyt cc yu cu ca ngi s dng.
H iu hnh iu khin v phi hp vic s dng phn cng cho nhng ng
dng khc nhau ca nhiu ngi s dng khc nhau. H iu hnh cung cp mt mi
trng m cc chng trnh c th lm vic hu hiu trn .
Hnh 1.1 M hnh tru tng ca h thng my tnh
H iu hnh c th c coi nh l b phn phi ti nguyn ca my tnh.
Nhiu ti nguyn ca my tnh nh thi gian s dng CPU, vng b nh, vng lu tr
2
7/29/2019 Nguyen Ly Cac He Dieu Hanh 1283 (1)
3/145
tp tin, thit b nhp xut v.v c cc chng trnh yu cu gii quyt vn .
H iu hnh hot ng nh mt b qun l cc ti nguyn v phn phi chng cho
cc chng trnh v ngi s dng khi cn thit. Do c rt nhiu yu cu, h iu hnh
phi gii quyt vn tranh chp v phi quyt nh cp pht ti nguyn cho nhng
yu cu theo th t no hot ng ca my tnh l hiu qu nht. Mt h iu hnhcng c th c coi nh l mt chng trnh kim sot vic s dng my tnh, c
bit l cc thit b nhp xut.
Tuy nhin, nhn chung cha c nh ngha no l hon ho v h iu hnh. H
iu hnh tn ti gii quyt cc vn s dng h thng my tnh. Mc tiu c bn
ca n l gip cho vic thi hnh cc chng trnh d dng hn. Mc tiu th hai l h
tr cho cc thao tc trn h thng my tnh hiu qu hn. Mc tiu ny c bit quan
trng trong nhng h thng nhiu ngi dng v trong nhng h thng ln(phn cng
+ quy m s dng). Tuy nhin hai mc tiu ny cng c phn tng phn v vy l
thuyt v h iu hnh tp trung vo vic ti u ha vic s dng ti nguyn ca my
tnh.
1.2 Lch s pht trin ca h iu hnh
Th h 1 (1945 1955)
Vo khong gia thp nin 1940, Howard Aiken Havard v John vonNeumann Princeton, thnh cng trong vic xy dng my tnh dng ng chn
khng. Nhng my ny rt ln vi hn 10000 ng chn khng nhng chm hn nhiu
so vi my r nht ngy nay.
Mi my c mt nhm thc hin tt c t thit k, xy dng lp trnh, thao
tc n qun l. Lp trnh bng ngn ng my tuyt i, thng l bng cch dng
bng iu khin thc hin cc chc nng c bn. Ngn ng lp trnh cha c bit
n v h iu hnh cng cha nghe n.
Vo u thp nin 1950, phiu c l ra i v c th vit chng trnh trn
phiu thay cho dng bng iu khin.
Th h 2 (1955 1965)
S ra i ca thit b bn dn vo gia thp nin 1950 lm thay i bc tranh
tng th. My tnh tr nn tin cy hn. N c sn xut v cung cp cho cc
3
7/29/2019 Nguyen Ly Cac He Dieu Hanh 1283 (1)
4/145
khch hng. Ln u tin c s phn chia r rng gia ngi thit k, ngi xy dng,
ngi vn hnh, ngi lp trnh, v ngi bo tr.
thc hin mt cng vic (mt chng trnh hay mt tp hp cc chng
trnh), lp trnh vin trc ht vit chng trnh trn giy (bng hp ng hay
FORTRAN) sau c l trn phiu v cui cng a phiu vo my. Sau khi thchin xong n s xut kt qu ra my in.
H thng x l theo lra i, n lu cc yu cu cn thc hin ln bng t, v
h thng s c v thi hnh ln lt. Sau , n s ghi kt qu ln bng t xut v cui
cng ngi s dng s em bng t xut i in.
H thng x l theo l hot ng di s iu khin ca mt chng trnh c
bit l tin thn ca h iu hnh sau ny. Ngn ng lp trnh s dng trong giai onny ch yu l FORTRAN v hp ng.
Th h 3 (1965 1980)
Trong giai on ny, my tnh c s dng rng ri trong khoa hc cng nh
trong thng mi. My IBM 360 l my tnh u tin s dng mch tch hp (IC). T
kch thc v gi c ca cc h thng my gim ng k v my tnh cng ph bin
hn. Cc thit b ngoi vi dnh cho my xut hin ngy cng nhiu v thao tc iu
khin bt u phc tp.
H iu hnh ra i nhm iu phi, kim sot hot ng v gii quyt cc yu
cu tranh chp thit b. Chng trnh h iu hnh di c triu dng hp ng v do
hng ngn lp trnh vin thc hin.
Sau , h iu hnh ra i khi nim a chng. CPU khng phi ch thc
hin cc thao tc nhp xut. B nh c chia lm nhiu phn, mi phn c mt cng
vic (job) khc nhau, khi mt cng vic ch thc hin nhp xut CPU s x l cccng vic cn li. Tuy nhin khi c nhiu cng vic cng xut hin trong b nh, vn
l phi c mt c ch bo v trnh cc cng vic nh hng n nhau. H iu hnh
cng ci t thuc tnh spool.
Giai on ny cng nh du s ra i ca h iu hnh chia x thi gian nh
CTSS ca MIT. ng thi cc h iu hnh ln ra i nh MULTICS, UNIX v h
thng cc my mini cng xut hin nh DEC PDP-1.
Th h 4 (1980 - nay)
4
7/29/2019 Nguyen Ly Cac He Dieu Hanh 1283 (1)
5/145
Giai on ny nh du s ra i ca my tnh c nhn, c bit l h thng
IBM PC vi h iu hnh MS-DOS v Windows sau ny. Bn cnh l s pht trin
mnh ca cc h iu hnh ta Unix trn nhiu h my khc nhau nh Linux. Ngoi
ra, t u thp nin 90 cng nh du s pht trin mnh m ca h iu hnh mng
v h iu hnh phn tn.
1.3. Phn loi h thng
1.3.1 H thng x l theo l
B gim st thng trc c thit k gim st vic thc hin dy cc cng
vic mt cch t ng, chng trnh ny lun lun thng tr trong b nh chnh.
H iu hnh theo lthc hin cc cng vic ln lt theo nhng ch th nh
trc.
1.3.2 H thng x l theo l a chng
a chng(multiprogram) gia tng khai thc CPU bng cch t chc cc cng
vic sao cho CPU lun lun phi trong tnh trng lm vic .
tng nh sau : h iu hnh lu gi mt phn ca cc cng vic ni lu
tr trong b nh . CPU s ln lt thc hin cc phn cng vic ny. Khi ang thchin, nu c yu cu truy xut thit b th CPU khng ngh m thc hin tip cng vic
th hai
Vi h a chng h iu hnh ra quyt nh cho ngi s dng v vy, h
iu hnh a chngrt tinh vi. H phi x l cc vn lp lch cho cng vic, lp
lch cho b nh v cho c CPU na.
1.3.3 H thng chia x thi gian
H thng chia x thi gian l mt m rng logic ca h a chng. H thng
ny cn c gi l h thng a nhim (multitasking). Nhiu cng vic cng c
thc hin thng qua c ch chuyn i ca CPU nh h a chng nhng thi gian
mi ln chuyn i din ra rt nhanh.
H thng chia x c pht trin cung cp vic s dng bn trong ca mt
my tnh c gi tr hn. H iu hnh chia x thi gian dng lp lch CPU v a
chng cung cp cho mi ngi s dng mt phn nh trong my tnh chia x. Mtchng trnh khi thi hnh c gi l mt tin trnh. Trong qu trnh thi hnh ca mt
5
7/29/2019 Nguyen Ly Cac He Dieu Hanh 1283 (1)
6/145
tin trnh, n phi thc hin cc thao tc nhp xut v trong khong thi gian CPU
s thi hnh mt tin trnh khc. H iu hnh chia x cho php nhiu ngi s dng
chia x my tnh mt cch ng b do thi gian chuyn i nhanh nn h c cm gic
l cc tin trnh ang c thi hnh cng lc.
H iu hnh chia x phc tp hn h iu hnh a chng. N phi c ccchc nng : qun tr v bo v b nh, s dng b nh o. N cng cung cp h thng
tp tin truy xut on-line
H iu hnh chia x l kiu ca cc h iu hnh hin i ngy nay.
1.3.4 H thng song song
Ngoi cc h thng ch c mt b x l cn c cc h thng c nhiu b x l
cng chia x h thng ng truyn d liu, ng h, b nh v cc thit b ngoi vi.
Cc b x l ny lin lc bn trong vi nhau .
Vi s gia tng s lng b x l, cng vic c thc hin nhanh chng hn.
H thng vi my nhiu b x l s ti u hn h thng c nhiu my c mt b x l
v cc b x l chia x cc thit b ngoi vi, h thng lu tr, ngun v rt thun
tin cho nhiu chng trnh cng lm vic trn cng mt tp hp d liu.
Mt l do na l tin cy. Cc chc nng c x l trn nhiu b x l v shng hc ca mt b x l s khng nh hng n ton b h thng.
H thng a x l thng thng s dng cch a x l i xng, trong cch
ny mi b x l chy vi mt bn sao ca h iu hnh, nhng bn sao ny lin lc
vi nhau khi cn thit. Mt s h thng s dng a x l bt i xng, trong mi b
x l c giao mt cng vic ring bit.. Mt b x l chnh kim sot ton b h
thng, cc b x l khc thc hin theo lnh ca b x l chnh hoc theo nhng ch
th c nh ngha trc. M hnh ny theo dng quan h ch t. B x l chnh slp lch cho cc b x l khc.
Mt v d v h thng x l i xng l version Encore ca UNIX cho my tnh
Multimax. H thng ny c hng t b x l. u im ca n l nhiu tin trnh c th
thc hin cng lc . Mt h thng a x l cho php nhiu cng vic v ti nguyn
c chia x t ng trong nhng b x l khc nhau.
H thng a x l khng ng b thng xut hin trong nhng h thng ln,
trong hu ht thi gian hot ng u dnh cho x l nhp xut.
6
7/29/2019 Nguyen Ly Cac He Dieu Hanh 1283 (1)
7/145
1.3.5 H thng phn tn
H thng ny cng tng t nh h thng chia x thi gian nhng cc b x l
khng chia x b nh v ng h, thay vo mi b x l c b nh cc b ring.
Cc b x l thng tin vi nhau thng qua cc ng truyn thng nh nhng bus tc
cao hay ng dy in thoi.
Cc b x l trong h phn tn thng khc nhau v kch thc v chc nng.
N c th bao gm my vi tnh, trm lm vic, my mini, v nhng h thng my ln.
Cc nguyn nhn phi xy dng h thng phn tn l:
Chia x ti nguyn : h thng phn tn cung cp mt c ch chia x tp tin
v tr xa, x l thng tin trong mt c s d liu phn tn, in n ti mt v tr xa, s
dng nhng thit b xa h thc hin cc thao tc.
Tng tc tnh ton : Mt thao tc tnh ton c chia lm nhiu phn nh
cng thc hin mt lc. H thng phn tn cho php phn chia vic tnh ton trn
nhiu v tr khc nhau tnh ton song song.
An ton : Nu mt v tr trong h thng phn tn b hng, cc v tr khc vn
tip tc lm vic.
Thng tin lin lc vi nhau :C nhiu lc , chng trnh cn chuyn i d
liu t v tr ny sang v tr khc. V d trong h thng Windows, thng c s chia x
v chuyn d liu gia cc ca s. Khi cc v tr c ni kt vi nhau trong mt h
thng mng, vic trao i d liu din ra rt d. Ngi s dng c th chuyn tp tin
hay cc E_mail cho nhau t cng v tr hay nhng v tr khc.
1.3.6 H thng x l thi gian thc
H thng x l thi gian thcc s dng khi c nhng i hi kht khe vthi gian trn cc thao tc ca b x l hoc dng d liu.
Mt h iu hnh x l thi gian thc phi c nh ngha tt, thi gian x l
nhanh. H thng phi cho kt qu chnh xc trong khong thi gian b thc p nhanh
nht. C hai h thng x l thi gian thc l h thng thi gian thc cng v h thng
thi gian thc mm..
7
7/29/2019 Nguyen Ly Cac He Dieu Hanh 1283 (1)
8/145
H thng thi gian thc cng l cng vic c hon tt ng lc. Lc d
liu thng c lu trong b nh ngn hn hay trong ROM. Vic x l theo thi gian
thc s xung t vi tt c h thng lit k trn.
Dng th hai l h thng thi gian thc mm, mi cng vic c mt u tin
ring v s c thi hnh theo u tin . C mt s lnh vc p dng hu hiuphng php ny l multimedia hay thc ti o.
1.4 Cc thnh phn ca h iu hnh
a) Qun l tin trnh
Mt tin trnh l mt chng trnh ang c thi hnh. Mt tin trnh phi s
dng ti nguyn nh thi gian s dng CPU, b nh, tp tin, cc thit b nhp xut
hon tt cng vic ca n. Cc ti nguyn ny c cung cp khi tin trnh c to
hay trong qu trnh thi hnh.
Mt tin trnh l hot ng (active) hon ton-ngc li vi mt tp tin trn a
l th ng (passive)-vi mt b m chng trnh cho bit lnh k tip c thi
hnh.Vic thi hnh c thc hin theo c ch tun t , CPU s thi hnh t lnh u
n lnh cui.
Mt tin trnh c coi l mt n v lm vic ca h thng. Mt h thng cth c nhiu tin trnh cng lc , trong mt s tin trnh l ca h iu hnh, mt s
tin trnh l ca ngi s dng. cc tin trnh ny c th din ra ng thi.
Vai tr ca h iu hnh trong vic qun l tin trnh l :
- To v hy cc tin trnh ca ngi s dng v ca h thng.
- Tm dng v thc hin tip mt tin trnh.
- Cung cp cc c ch ng b tin trnh.
- Cung cp cc c ch giao tip gia cc tin trnh.
- Cung cp c ch kim sot deadlock
b)Qun l b nh chnh :
Trong h thng my tnh hin i, b nh chnh l trung tm ca cc thao tc,x l. Bnh chnh c th xem nh mt mng kiu byte hay kiu word. Mi phn t
8
7/29/2019 Nguyen Ly Cac He Dieu Hanh 1283 (1)
9/145
u c a ch. l ni lu d liu c CPU truy xut mt cch nhanh chng so vi
cc thit b nhp/xut. CPU c nhng ch th t b nh chnh. Cc thit b nhp/xut
ci t c ch DMA cng c v ghi d liu trong b nh chnh. Thng thng b nh
chnh cha cc thit b m CPU c th nh v trc tip. V d CPU truy xut d liu
t a, nhng d liu ny c chuyn vo b nh qua li gi h thng nhp/xut.Mt chng trnh mun thi hnh trc ht phi c nh x thnh a ch tuyt
i v np vo b nh chnh.Khi chng trnh thi hnh, h thng truy xut cc ch th
v d liu ca chng trnh trong b nh chnh. Ngay c khi tin trnh kt thc , d
liu vn cn trong b nh cho n khi mt tin trnh khc c ghi chng ln.
H iu hnh c nhng vai tr nh sau trong vic qun l b nh chnh :
- Lu gi thng tin v cc v tr trong b nh c s dng v tin trnh noang s dng.
- Quyt nh tin trnh no c np vo b nh chnh, khi b nh c th
dng c.
- Cp pht v thu hi b nh khi cn thit.
c) Qun l b nh ph :
B nh chnh qu nh c th lu gi mi d liu v chng trnh, ngoi ra
d liu s mt khi khng cn c cung cp nng lng. H thng my tnh ngy nay
cung cp h thng lu tr ph. a s cc my tnh u dng a lu tr c chng
trnh v d liu. Hu nh tt c chng trnh : chng trnh dch, hp ng, th tc,
trnh son tho, nh dng... u c lu tr trn a cho ti khi n c thc hin,
np vo trong b nh chnh v cng s dng a cha d liu v kt qu x l. Vai
tr ca h iu hnh trong vic qun l a :
- Qun l vng trng trn a.
- nh v lu tr.
- Lp lch cho a.
d) Qun l h thng vo/ ra :
9
7/29/2019 Nguyen Ly Cac He Dieu Hanh 1283 (1)
10/145
Mt trong nhng mc tiu ca h iu hnh l che du nhng c th ca cc
thit b phn cng i vi ngi s dng thay vo l mt lp thn thin hn, ngi
s dng d thao tc hn. Mt h thng vo/ra bao gm :
- Thnh phn qun l b nh cha vng m (buffering), lu tr (caching) v
spooling (vng cha).
- Giao tip iu khin thit b (device drivers) tng qut.
- B iu khin cho cc thit b xc nh.
Ch c b iu khin cho cc thit b xc nh mi hiu n cu trc c th ca
thit b m n m t.
e) Qun l h thng tp tin :
My tnh c th lu tr thng tin trong nhiu dng thit b vt l khc nhau :
bng t, a t, a quang, ... Mi dng c nhng c th ring v mt t chc vt l.
Mi thit b c mt b kim sot nh b iu khin a (disk driver) v c nhng tnh
cht ring. Nhng tnh cht ny l tc , kh nng lu tr, tc truyn d liu v
cch truy xut.
cho vic s dng h thng my tnh thun tin, h iu hnh cung cp mtci nhn logic ng nht v h thng lu tr thng tin. H iu hnh nh ngha mt
n v lu tr logic l tp tin. H iu hnh to mt nh x t tp tin n vng thng
tin trn a v truy xut nhng tp tin ny thng qua thit b lu tr.
Mt tp tin l mt tp hp nhng thng tin do ngi to ra n xc nh. Thng
thng mt tp tin i din cho mt chng trnh v d liu. D liu ca tp tin c th
l s, l k t, hay k s.
Vai tr ca h iu hnh trong vic qun l tp tin :
- To v xo mt tp tin.
- To v xo mt th mc.
- H tr cc thao tc trn tp tin v th mc.
- nh x tp tin trn h thng lu tr ph.
- Sao lu d phng cc tp tin trn cc thit b lu tr.
10
7/29/2019 Nguyen Ly Cac He Dieu Hanh 1283 (1)
11/145
f) H thng bo v :
Trong mt h thng nhiu ngi s dng v cho php nhiu tin trnh din ra
ng thi, cc tin trnh phi c bo v i vi nhng hot ng khc.Do , h
thng cung cp c ch m bo rng tp tin, b nh, CPU, v nhng ti nguyn
khc ch c truy xut bi nhng tin trnh c quyn. V d, b nh m bo rngtin trnh ch c thi hnh trong phm vi a ch ca n. B thi gian m bo rng
khng c tin trnh no c chim CPU. Cui cng cc thit b ngoi vi cng c bo
v.
H thng bo v l mt c ch kim sot qu trnh truy xut ca chng trnh,
tin trnh, hoc ngi s dng vi ti nguyn ca h thng. C ch ny cng cung cp
cch thc m t li mc kim sot.
H thng bo v cng lm tng an ton khi kim tra li trong giao tip gia
nhng h thng nh bn trong.
g) H thng thng dch lnh :
Mt trong nhng phn quan trng ca chng trnh h thng trong mt h iu
hnh l h thng thng dch lnh, l giao tip gia ngi s dng v h iu hnh.
Mt s h iu hnh t c ch dng lnh bn trong ht nhn, s khc nh MS-DOS
v UNIX th xem h iu hnh nh l mt chng trnh t bit, c thi hnh khi cc
cng vic bt u hoc khi ngi s dng login ln u tin.
Cc lnh a vo h iu hnh thng qua b iu khin lnh. Trong cc h
thng chia x thi gian mt chng trnh c th c v thng dch cc lnh iu khin
c thc hin mt cch t ng. Chng trnh ny thng c gi l b thng dch
iu khin card, c ch dng lnh hoc Shell. Chc nng ca n rt n gin l ly
lnh k tip v thi hnh.
Mi h iu hnh s c nhng giao tip khc nhau, dng n gin theo c ch
dng lnh, dng thn thin vi ngi s dng nh giao din ca Macintosh c cc biu
tng, ca s thao tc dng chut.
Cc lnh c quan h vi vic to v qun l cc tin trnh, kim sot nhp xut,
qun l b lu tr ph, qun l b nh chnh, truy xut h thng tp tin v c ch bo
v.
1.5 Cu trc h thng
11
7/29/2019 Nguyen Ly Cac He Dieu Hanh 1283 (1)
12/145
a) Cu trc n gin
Thng thng h iu hnh bt u l mt h thng nh, n gin v c gii
hn.
HH l mt tp hp cc th tc, c th gi ln nhau. Cu trc ti thiu phnchia cc th tc trong h thng thnh 3 cp :
Cc th tc chnh: gi n mt th tc ca HH, hay cn gi l li gi h thng
Cc th tc dch v: x l nhng li gi h thng
Cc th tc tin ch h tr cc th tc dch v x l cc li gi h thng
Nhc im:
Khng c s che du d liu, mi th tc c th gi n tt c cc th tc khc.
Chng trnh ng dng c th truy xut cc th tc cp thp tc ng n c phn
cng do vy HH kh kim sot v bo v h thng.
Cc mc phn chia th tc khng r rng
MS-DOS l mt h iu hnh c cu trc n gin, n cung cp nhng chc
nng cn thit nht trong mt khng gian nh nht do s gii hn ca phn cng mn chy trn v khng chia thnh nhng n th r rt.
Hnh 1.2 Cu trc ca MS-DOS
12
7/29/2019 Nguyen Ly Cac He Dieu Hanh 1283 (1)
13/145
Mc d MS-DOS c cu trc nhng gia giao din v chc nng khng c s
phn chia r rt. Cc chng trnh ng dng c th truy xut trc tip cc th tc nhp
xut c bn v ghi trc tip ln mn hnh hay b iu khin a.
b) Cu trc phn lp
Bng cch s dng k thut topdown, nhng chc nng v c tnh ca h
thng c chia lm nhiu thnh phn nh. Che du thng tin, khng cho chng trnh
ca ngi s dng c th ci t nhng hm truy xut cp thp , thay vo l nhng
lp giao tip bn trong.
H iu hnh c chia thnh nhiu lp. Lp di cng l phn cng, lp trn
cng l giao tip vi ngi s dng. Lp h iu hnh c ci t thnh nhng i
tng tru tng. Thng thng mt lp ca h iu hnh bao gm mt s cu trc dliu v cc hm c th c gi bi lp trn v bn thn n gi nhng chc nng ca
lp bn di.
u im l tnh module. Cc lp c chn da trn c s lp trn s dng
chc nng v cc dch v ch ca lp di n. Tip cn ny n gin ha vic g ri
v kim tra h thng. Lp u tin c th c g ri m khng c bt c s quan tm
no cho lp 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 lp u tin c g ri, chc nng sali ca n c th c m ng trong khi lp th 2 c g ri, Nu mt li
c tm thy trong khi g ri cho mt lp xc nh, li phi c nm trn lp v
cc lp 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 lp.
Mi lp c ci t ch vi cc thao tc c cung cp bi cc lp bn di.
Mt lp khng cn bit cc thao tc c ci t nh th no; n ch cn bit cc thao
tc lm g. Do , mi lp che giu s tn ti ca cu trc d liu, thao tc v phncng t cc lp cp cao hn.
Kh khn chnh ca tip cn phn lp lin quan ti vic nh ngha cn thn cc
lp v mt lp ch c th s dng cc lp 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.
13
7/29/2019 Nguyen Ly Cac He Dieu Hanh 1283 (1)
14/145
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
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 lp 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 lp nhp/xut, n yu cu tng qun l b nh, sau gi tng nh thi CPU, sau
c truyn ti phn cng. Ti mi lp, 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.
Cu trc lp ny ln u tin c thit k v p dng cho h iu hnh
THE (Technische Hogeschool Eindhoven). H thng ny c chia thnh su lp
nh hnh sau:
Hnh 1.3 Cu trc ca h iu hnh THE
Cc v d khc nh cu trc lp ca h iu hnh VENUS v OS/2
c) My o
Cc my o l nhng bn sao o chnh xc cc c tnh phn cng ca my tnh
thc s v cho php mt h iu hnh khc hot ng trn nh trn phn cng thc
s. Phn nhn h thng thc hin gim st my o chu trch nhim giao tip vi phn
cng v cho php kh nng a chng bng cch cung cp nhiu my o cho cc lpbn trn.
14
7/29/2019 Nguyen Ly Cac He Dieu Hanh 1283 (1)
15/145
Bng cch s dng lp lch cho CPU v k thut b nh o, mt h iu hnh
c th to nhiu tin trnh phc o, mi ci s thc hin trn mt b x l v b nh
ring. Nhng tin trnh ny c nhng c im ring nh li gi h thng v h thng
tp tin khng c cung cp phn cng trc tip.
Ti nguyn ca h thng c chia x to nhng my o. Lp lch CPU chiax CPU cho cc ngi s dng. Spooling v h thng tp tin c chia thnh nhng
card c o v my in o. Mt terminal cung cp cc chc nng to cc thao tc mn
hnh o.
Vn phc tp nht ca my o l h thng a. Gi s h thng ch c ba b
iu khin a nhng c ti by my o. Nh vy khng th gn cho mi my o mt
b iu khin a v gii php l xy dng h thng a o.
Mc d khi nim my o rt hu ch nhng kh ci t. My o phi thc hin
hai dng: dng gim st (monitor) v dng ngi s dng. Ngoi ra my o cn phi
gii quyt cc vn v vn chuyn d liu v thi gian.
Hnh 1.4 So snh gia my thc v my o
d) 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
15
7/29/2019 Nguyen Ly Cac He Dieu Hanh 1283 (1)
16/145
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).
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 (DigitalUNIX 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 trongQNX 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 thngip gia cc ng dng khch hng v server ng dng.
16
7/29/2019 Nguyen Ly Cac He Dieu Hanh 1283 (1)
17/145
Khuynh hng ca cc h iu hnh hin i l chuyn dn cc on m ca h
thng ln nhng lp cao hn v b dn cc chc nng trong ht nhn, ch cn li mt
ht nhn ti thiu. Cch tip cn l ci t hu ht nhng chc nng ca h iu hnh
trong cc x l ca ngi s dng. yu cu mt dch v, nh c mt khi t tp
tin, mt x l ca ngi s dng (cn c gi l tin trnh client) s gi nhng yucu cho mt x l ca b phn dch v (cn c gi l tin trnh server). Sau ,
n s thc hin v gi kt qu tr li.
Trong m hnh ny, chc nng ca ht nhn ch l kim sot qu trnh thng tin
gia client v server. Bng cch chia h iu hnh thnh nhng phn nh, mi phn
ch kim sot mt mt ca h thng nh cc dch v v tp tin, tin trnh, terminal, b
nh, mi phn s gn hn v d qun l hn. Hn na, tt c server thc hin nh
nhng tin trnh mc ngi dng (user-mode) khng phi mc ht nhn
(kernel-mode), nn n khng truy xut trc tip phn cng. Do , nu server tp tin
b li, cc dch v v tp tin c th b hng nhng n thng khng gy nh hng n
ton b h thng.
17
7/29/2019 Nguyen Ly Cac He Dieu Hanh 1283 (1)
18/145
Hnh 1.5 M hnh Client-Server trong h thng phn tn
Mt u im khc ca m hnh client-server l n c th tng thch d dng
vi m hnh h thng phn tn. Nu mt client giao tip vi mt server bng cch gi
nhng thng ip, h khng bit l khi no thng ip ang c x l cc b ti
my hay c gi vo mng n server trn mt my t xa. Khi client quan tm n,
mt yu cu c gi i v mt tr li p ng din ra nh nhau.
1.6 Cc tnh cht c bn ca h iu hnh
a) Tin cy
Mi hot ng, mi thng bo ca HH u phi chun xc, tuyt i. ch khi
no bit chc chn l ng th HH mi cung cp thng tin cho ngi s dng.
m bo c yu cu ny, phn thit b k thut phi c nhng phng tin h trkim tra tnh ng n ca d liu trong cc php lu tr v x l. Trong cc trng
18
7/29/2019 Nguyen Ly Cac He Dieu Hanh 1283 (1)
19/145
hp cn li HH thng bo li v ngng x l trao quyn quyt nh cho ngi vn
hnh hoc ngi s dng.
b) An ton
H thng pah t chc sao cho chng trnh v d liu khng b xo hoc bthay i ngoi mun trong mi trng hp v mi ch hot ng. iu ny c
bit quan trng khi h thng l a nhim. Cc ti nguyn khc nhau i hi nhng yu
cu khc nhau trong vic m bo an ton.
c) Hiu qu
Cc ti nguyn ca h thng phi c khai thc trit sao chon gay c iu
kin ti nguyn hn ch vn c th gii quyt nhng yu cu phc tp. Mt kha cnh
quan trng ca m bo hiu qu l duy tr ng b trong ton b h thng, khng
cc thit b tc chm tr hon hot ng ca ton b h thng.
d) Tng qut theo thi gian
HH phi c tnh k tha, ng thi c kh nng thch nghi vi nhng thay i
cso th cso trong tng lai. Tnh tha k l rt quan trng ngay c vi cc h iu hnh
th h mi. i vi vic nng cp, tnh k tha l bt buc. Cc thao tc, thng bo l
khng c thay i, hoc nu c th khng ng k v phi c hng dn c thkhi chuyn t phin bn ny sang phin bn khc, bng cc phng tin nhn bit ca
h thng. m bo tnh k tha s duy tr v pht trin i ng ngi s dng-mt
nhn t quan trng HH c th tn ti. Ngoi ra ngi s dng cng rt quan tm,
liu nhng kinh nghim v kin thc ca mnh v HH hin ti cn c s dng bao
lu na. Kh nng thch nghi vi nhng thay i i hi HH phi c thit k theo
mt s nguyn tc nht nh.
e) Thun tin
H thng phi d dng s dng, c nhiu mc hiu qu khc nhau tu theo kin
thc v kinh nghim ngi dng. H thng tr gip phong ph ngi s dng c
th t o to ngay trong qu trnh khai thc.
Trong mt chng mc no , cc tnh cht trn mu thun ln nhau. Mi HH
c mt gii php trung ho, u tin hp l tnh cht ny hay tnh cht khc.
1.7 Nguyn l xy dng chng trnh HH
19
7/29/2019 Nguyen Ly Cac He Dieu Hanh 1283 (1)
20/145
a) Module
- HH phi c xy dng t cc module c lp nhng c kh nng lin kt
thnh mt h thng c th thu gn hoc m rng tu .
- Cc module ng cp quan h vi nhau thng qua d liu vo v ra.
- Tn ti quan h phn cp khi cc lien kt cc module to thnh nhng module
c kh nng gii qut nhng vn phc tp hn.
b) Nguyn tc tng i trong nh v
Cc modul chng trnh c vit theo i ch tng i k t u b nh. Khi
thc hin chng mi c nh v ti vng b nh c th. Nguyn tc ny cho php h
thng s dng b nh mt cch linh hot v h iu hnh khng b ph thuc vo cuhnh b nh c th.
c) Nguyn tc Macroproccessor
Theo nguyn tc ny khi c nhim v c th h thng s xy dng cc phiu
yu cu, lit k cc bc phi thc hin v trn c s xy dng chng trnh tng
ng, sau thc hin chng trnh ni trn. Mi h iu hnh u phi xy dng
nguyn l ny trong i thoi gia ngi v my trn ngn ng vn hnh. D nhin su trong vic phn tch v xy dng chng trnh l khc nhau nhng h thng khc
nhau. Chnh nguyn tc ny lm cho qu trnh i thoi c linh hot m khng
cn ti mt chng trnh dch phc tp.
d) Nguyn tc khi to trong ci t
Nguyn tc Macroproccessor c th p dng khng nhng vi tng nhim v
m cn vi ton b HH hoc cc thnh phn ca n. Ngi s dng c cung cp
cc b chng trnh ci t. Chng trnh ci t s to phin bn lm vic thch hpvi cc tham s k thut hin c, loi b nhng modul khng cn thit c mt phin
bn ti u c v cu trc ln phng thc hot ng
e) Nguyn tc lp chc nng
Mi cng vic bao gi cng c nhiu cch thc hin khc nhau vi nhng t
hp modul khc nhau. Nguyn tc ny trc ht m bo an ton ca h thng cao:
vn c th khai thc h thng bnh thng ngay c khi thiu hoc hng nhiu thnhphn h thng. Ngoi ra, vi nguyn tc ny ngi s dng s thoi mi hn khi giao
20
7/29/2019 Nguyen Ly Cac He Dieu Hanh 1283 (1)
21/145
tip vi h thng: vi mt cng vic, ai nh hoc thch phng tin no th s dng
phng tin . Nh vy ngi s dng khai thc c c nhng hiu ng ph ca cc
modul chng trnh. i khi trong h thng tn ti nhiu modul khc nhau cng gii
quyt mt vn , chng hn c nhiu chng tnh dch cho mt ngn ng thut ton
no . S a dng cho php ngi s dng chn gii thut ti u i vi bi tonca mnh.
f) Nguyn tc gi tr chun
Mt modun, cu lnhc th c nhiu tham s. Vic nh ht cc tham s: s
lng, ngha, quy cchl v cng phc tp v cu lnh hoc chng trnh tr nn
cng cch mt cch khng cn thit. Li thot ra khi tnh trng l chun b sn b
gi tr cc tham s ng vi trng hp thng gp nht. Nu trong cu lnh hay li gi
modul thiu tham s no th h thng s b sung bng cc gi t quy c trc.Nguyn tc ny th hin rt r trong cc h thng ci t.
g) Nguyn tc bo v nhiu mc
m bo an ton h thng v an ton d liu, chng trnh v d liu phi
c bo v bng nhiu khoa nhiu mc. V d i vi file, c th bo v mc c
i t hoc tng th mc hay tng file ring bit, bo v thng xuyn hay tng ch
m fileVic bo v nhiu mc lm gim ng k cc li khng c . Nguyntc ny c nghin cu p dng rt hiu qu vi thng tin ghi trong RAM.
1.8 Cc hnh thi giao tip
a) Hnh thi dng lnh
Ngi s dng giao tip vi h iu hnh qua cc dng lnh, mi lnh c cc
tham s tng ng
-u im:
D xy dng v gim cng sc cho ngi xy dng h thng.
Ngi s dng c th a tham s ca lnh mt cch chnh xc theo mong
mun.
- Nhc im:
Tc a lnhvo chm, ngi s dng phi nh cc tham s.
21
7/29/2019 Nguyen Ly Cac He Dieu Hanh 1283 (1)
22/145
i vi cc thao tc vin khng c kinh nghim, th hnh thi ny gy cn tr
n hiu qu lm vic.
Hnh thi giao tip ny b cn tr bi hng ro ngn ng.
b) Hnh thi thc n
Ngi s dng giao tip vi h iu hnh thng qua cc thc n, cc thc n
thng c dng tri xung(popup). Mi thc n con tng ng vi mt chc nng.
Cc tham s c th c a vo thng qua giao tip vi ngi s dng.
-u im:
Hnh thi ny khng yu cu nh lnh
Ngi s dng c th truy nhp vo thc n qua bn phm hoc qua chut
- Nhc im:
Hnh thi giao tip ny b cn tr bi hng ro ngn ng.
i khi cc t trn thc n khng nu bt c chc nng ca n.
c) Hnh thi ca s-biu tng
Ngi s dng giao tip vi h iu hnh thng qua cc thanh cng c v cc
biu tng. Mi biu tng tng ng vi mt chc nng. Cc tham s c th c
a vo thng qua giao tip vi ngi s dmg.
-u im:
Hnh thi ny khng yu cu nh lnh
Ngi s dng khng b ang ro ngn ng gy cn tr.
- Nhc im:
C th c rt nhiu biu tng do gy s nhp nhng v chc nng.
Khng thun li khi thao tc bng bn phm.
d) Hnh thi kt hp
22
7/29/2019 Nguyen Ly Cac He Dieu Hanh 1283 (1)
23/145
HH thng kt hp nhiu hnh thi giao tip to ra tnh thn thin vi
ngi s dng. V d: vic kt hp thc n vi cc biu tng, hoc kt hp gia cc
biu tng vi cc t gi .
Hnh thi giao tip kt hp ny khc phc c cc nhc im ca cc hnh
thi giao tip n l.
23
7/29/2019 Nguyen Ly Cac He Dieu Hanh 1283 (1)
24/145
CHNG 2 QUN L TIN TRNH
2.1 Tin trnh
2.1.1 Khi nim v tin trnh (Process) v m hnh a tin trnh
(Multiprocess)
Tin trnh l mt chng trnh ang x l, s hu mt con tr lnh, tp cc
thanh ghi v cc bin. hon thnh cng vic ca mnh, mt tin trnh c th cn n
mt s ti nguyn nh CPU, b nh chnh, cc tp tin v thit b nhp/xut.
Cn phn bit hai khi nim chng trnh v tin trnh. Mt chng trnh l
mt thc th th ng, cha ng cc ch th iu khin my tnh tin hnh mt tc
v no ; khi cho thc hin cc ch th ny, chng trnh chuyn thnh tin trnh, lmt thc th hot ng, vi con tr lnh xc nh ch th k tip s thi hnh, km theo
tp cc ti nguyn phc v cho hot ng ca tin trnh.
h tr s a chng, my tnh phi c kh nng thc hin nhiu cng vic
ng thi. Nhng vic iu khin nhiu hot ng song song cp phn cng l rt
kh khn. V th cc nh thit k h iu hnh xut mt m hnhsong song ga lp
bng cch chuyn i b x l qua li gia cc chng trnh duy tr hot ng ca
nhiu chng trnh cng lc, iu ny to cm gic c nhiu hot ng c thc hin
ng thi.
V mt nim, c th xem nh mi tin trnh s hu mt b x l o cho ring
n, nhng trong thc t, ch c mt b x l tht s c chuyn i qua li gia cc
tin trnh. S chuyn i nhanh chng ny c gi l s a chng
(multiprogramming) . H iu hnh chu trch nhim s dng mt thut ton iu phi
quyt nh thi im cn dng hot ng ca tin trnh ang x l phc v mt
24
7/29/2019 Nguyen Ly Cac He Dieu Hanh 1283 (1)
25/145
tin trnh khc, v la chn tin trnh tip theo s c phc v. B phn thc hin
chc nng ny ca h iu hnh c gi l b iu phi (scheduler).
Nhu cu x l ng hnh
C 2 ng lc chnh khin cho cc h iu hnh hin i thng h tr mitrng a nhim (multitask) trong chp nhn nhiu tc v thc hin ng thi trn
cng mt my tnh :
- Tng hiu sut s dng CPU
Phn ln cc cng vic khi thi hnh u tri qua nhiu chu k x l (s dng
CPU) v chu k nhp xut (s dng cc thit b nhp xut) xen k nh sau :
CPU IO CPU IO CPUNu ch c 1 tin trnh duy nht trong h thng, th vo cc chu k IO ca cng
vic, CPU s hon ton nhn ri. tng tng cng s lng cng vic trong h
thng l tn dng CPU : nu cng vic 1 x l IO, th c th s dng CPU thc
hin cng vic 2...
CPU IO CPU IO CPU
Cng vic 1
CPU IO CPU IOCng vic 2
Khi CPU, b nh v cc ti nguyn khc s c tn dng ti a, nng cao
hiu sut s dng ti nguyn.
- Tng tc x l
Mt s bi ton c bn cht x l song song nu c xy dng thnh nhiu
module hot ng ng thi th s tit kim c thi gian x l.
V d : Xt bi ton tnh gi tr biu thc kq = a*b + c*d . Nu tin hnh tnh
ng thi (a*b) v (c*d) th thi gian x l s ngn hn l thc hin tun t.
Trong cc trng hp , cn c mt m hnh x l ng hnh thch hp. Trn
my tnh c cu hnh nhiu CPU, h tr x l song song (multiprocessing) tht s,
iu ny s gip tng hiu qu thi hnh ca ht thng ng k.
2.1.2 Khi nim tiu trnh (Thread) v m hnh a tiu trnh (Multithread)
25
7/29/2019 Nguyen Ly Cac He Dieu Hanh 1283 (1)
26/145
Trong hu ht cc h iu hnh, mi tin trnh c mt khng gian a ch v ch
c mt dng x l. Tuy nhin, c nhiu tnh hung ngi s dng mong mun c
nhiu dng x l cng chia s mt khng gian a ch, v cc dng x l ny hot
ng song song tng t nh cc tin trnh phn bit (ngoi tr vic chia s khng
gian a ch).V d: Mt server qun l tp tin thnh thong phi t kha ch cc thao tc
truy xut a hon tt.Nu server c nhiu dng x l, h thng c th x l cc yu
cu mi trong khi mt dng x l b kho. Nh vy vic thc hin chng trnh s c
hiu qu hn. iu ny khng th t c bng cch to hai tin trnh server ring
bit v cn phi chia s cng mt vng m, do vy bt buc phi chia s khng gian
a ch.
Chnh v cc tnh hung tng t, ngi ta cn c mt c ch x l mi chophp c nhiu dng x l trong cng mt tin trnh.
Ngy nay c nhiu h iu hnh cung cp mt c ch nh th v gi l tiu
trnh(threads).
Nguyn l chung :
Mt tiu trnh l mt n v x l c bn trong h thng . Mi tiu trnh x l
tun t on code ca n, s hu mt con tr lnh, tp cc thanh ghi v mt vng nh
stack ring. Cc tiu trnh chia s CPU vi nhau ging nh cch chia s gia cc tin
trnh: mt tiu trnh x l trong khi cc tiu trnh khc ch n lt. Mt tiu trnh
cng c th to lp cc tin trnh con, v nhn cc trng thi khc nhau nh mt tin
trnh tht s. Mt tin trnh c th s hu nhiu tiu trnh.
Cc tin trnh to thnh nhng thc th c lp. Mi tin trnh c mt tp ti
nguyn v mt mi trng ring (mt con tr lnh, mt Stack , cc thanh ghi v khng
gian a ch ). Cc tin trnh hon ton c lp vi nhau, ch c th lin lc thng qua
cc c ch thng tin gia cc tin trnh m h iu hnh cung cp. Ngc li, cc tiu
trnh trong cng mt tin trnh li chia s mt khng gian a ch chung , iu ny c
ngha l cc tiu trnh c th chia s cc bin ton cc ca tin trnh. Mt tiu trnh c
th truy xut n c cc stack ca nhng tiu trnh khc trong cng tin trnh. Cu trc
ny khng ngh mt c ch bo v no, v iu ny cng khng tht cn thit v cc
tiu trnh trong cng mt tin trnh thuc v cng mt s hu ch to ra chng
trong nh cho php chng hp tc vi nhau.
26
7/29/2019 Nguyen Ly Cac He Dieu Hanh 1283 (1)
27/145
Cc tiu trnh trong cng mt tiu trnh
Phn b thng tin lu tr
Cu trc m t tin trnh v tiu trnh
2.1.3 Phn loi tin trnh
- Tin trnh tun t:
Hai hay nhiu tin trnh gi l tun t khi im kt thc ca tin trnh ny l s
bt u ca tin trnh khc.
- Tin trnh song song
im bt u ca tin trnh ny nm gia im bt u v kt thc ca tin
trnh khc.
- Tin trnh c quan h thng tin
Trao i thng tin qua mt vng nh c biu din nh mt hp th c th
trao i thng tin qua .
-Tin trnh c lp
Hai hay nhiu tin trnh gi l c lp khi chng khng c quan h thng tin vi
nhau, hot ng ca tin trnh ny khng nh hng n hot ng ca tin trnh khcv ngc li.
27
7/29/2019 Nguyen Ly Cac He Dieu Hanh 1283 (1)
28/145
-Tin trnh cha v tin trnh con
Mt tin trnh c sinh ra t mt tin trnh khc th c gi l s phn cp
ca tin trnh hay c gi l tin trnh cha v tin trnh con
-Tin trnh ng mc
Th hin cc tin trnh truy nhp ti nguyn dung chung theo nguyn tc ln
lt.
2.1.4. Cc trng thi ca tin trnh
Trng thi ca tin trnh ti mt thi im c xc nh bi hot ng hin
thi ca tin trnh ti thi im .
Ti mt thi im, mt tin trnh c th nhn mt trong cc trng thi sau y :
- Mi to : tin trnh ang c to lp.
- Running : cc ch th ca tin trnh ang c x l.
- Blocked : tin trnh ch c cp pht mt ti nguyn, hay ch mt
s kin xy ra (hon thnh nhp xut hay nhn mt tn hiu) .
- Ready : tin trnh ch c cp pht CPU x l.
- Kt thc : tin trnh hon tt x l.
Ti mt thi im, ch c mt tin trnh c th nhn trng thi runningtrn mt
b x l bt k. Trong khi , nhiu tin trnh c th trng thi blockedhay ready.
S cung chuyn i trng thi:
Hnh 2.3
2.1.5. Cu trc d liu khi qun l tin trnh
Mi to Kt thc
Ready Running
Blocked
28
7/29/2019 Nguyen Ly Cac He Dieu Hanh 1283 (1)
29/145
H iu hnh qun l cc tin trnh trong h thng thng qua khi qun l tin
trnh (process control block -PCB). PCB l mt vng nh lu tr cc thng tin m t
cho tin trnh, vi cc thnh phn ch yu bao gm :
- nh danh ca tin trnh (1) : gip phn bit cc tin trnh
- Trng thi tin trnh (2): xc nh hot ng hin hnh ca tin trnh.
- Ng cnh ca tin trnh (3): m t cc ti nguyn tin trnh ang trong qu
trnh, hoc phc v cho hot ng hin ti, hoc lm c s phc hi hot ng
cho tin trnh, bao gm cc thng tin v:
Trng thi CPU: bao gm ni dung cc thanh ghi, quan trng nht l con tr
lnh IP lu tr a ch cu lnh k tip tin trnh s x l. Cc thng tin ny cn c
lu tr khi xy ra mt ngt, nhm c th cho php phc hi hot ng ca tin trnh
ng nh trc khi b ngt.
B x l: dng cho my c cu hnh nhiu CPU, xc nh s hiu CPU m tin
trnh ang s dng.
B nh chnh: danh sch cc khi nh c cp cho tin trnh.
Ti nguyn s dng: danh sch cc ti mguyn h thng m tin trnh ang sdng.
Ti nguyn to lp: danh sch cc ti nguyn c tin trnh to lp.
-Thng tin giao tip (4): phn nh cc thng tin v quan h ca tin trnh vi
cc tin trnh khc trong h thng :
Tin trnh cha: tin trnh to lp tin trnh ny .
Tin trnh con: cc tin trnh do tin trnh ny to lp .
29
7/29/2019 Nguyen Ly Cac He Dieu Hanh 1283 (1)
30/145
Hnh 2.4 Khi m t tin trnh
u tin : gip b iu phi c thng tin la chn tin trnh c cp
CPU.
-Thng tin thng k (5): y l nhng thng tin thng k v hot ngca tin trnh, nh thi gian s dng CPU,thi gian ch. Cc thng tin ny
c th c ch cho cng vic nh gi tnh hnh h thng v d on cc tnh
hung tng lai.
2.1.6. Cc thao tc trn tin trnh
H iu hnh cung cp cc thao tc ch yu sau y trn mt tin trnh :
-To lp tin trnh (create)
-Kt thc tin trnh (destroy)
-Tm dng tin trnh (suspend)
-Ti kch hot tin trnh (resume)
-Thay i u tin tin trnh
a) To lp tin trnh
30
7/29/2019 Nguyen Ly Cac He Dieu Hanh 1283 (1)
31/145
Mt tin trnh c to lp khi:
-Ngi s dng chy mt chng trnh.
-H iu hnh thc hin mt s dch v.
-Tin trnh cha sinh tin trnh con
-Mt ngi truy nhp h thng.
Trong qu trnh x l, mt tin trnh c th to lp nhiu tin trnh mi bng
cch s dng mt li gi h thng tng ng. Tin trnh gi li gi h thng to
tin trnh mi s c gi l tin trnh cha, tin trnh c to gi l tin trnh con.
Mi tin trnh con n lt n li c th to cc tin trnh miqu trnh ny tip tc
s to ra mt cy tin trnh. V d trong UNIX: li gi h thng l fork
Hnh 2.5 Mt cy tin trnh trong h thng UNIX
Cc cng vic h iu hnh cn thc hin khi to lp tin trnh bao gm :
- nh danh cho tin trnh mi pht sinh
-a tin trnh vo danh sch qun l ca h thng
- Xc nh u tin cho tin trnh
- To PCB cho tin trnh
-Cp pht cc ti nguyn ban u cho tin trnh
Khi mt tin trnh to lp mt tin trnh con, tin trnh con c th s c h
iu hnh trc tip cp pht ti nguyn hoc c tin trnh cha cho tha hng mt
s ti nguyn ban u.
31
7/29/2019 Nguyen Ly Cac He Dieu Hanh 1283 (1)
32/145
Khi mt tin trnh to tin trnh mi, tin trnh ban u c th x l theo mt
trong hai kh nng sau :
Tin trnh cha tip tc x l ng hnh vi tin trnh con. V d
UNIX
Tin trnh cha ch n khi mt tin trnh con no , hoc tt c cc tin trnh
con kt thc x l. V d MSDOS
Cc h iu hnh khc nhau c th chn la cc ci t khc nhau thc hin
thao tc to lp mt tin trnh.
b). Kt thc tin trnh
Mt tin trnh kt thc khi:
- Tin trnh hon tt cng vic.
- Tin trnh kt thc khi vt qu thi hn
- Tin trnh kt thc khi s dng qu ti nguyn quy nh
- Tin trnh kt thc khi b nh khng .
- Tin trnh vi phm mt s quy nh
- Tin trnh mc mt s li v php ton
- Thit b ngoi vi b li
-Khi cc lnh b sai
- Khi c quyn u tin
- D liu sai
- HH dng mt s tin trnh
Mt tin trnh kt thc x l khi n hon tt ch th cui cng v s dng mt
li gi h thng yu cu h iu hnh hy b n. i khi mt tin trnh c th kt
thc x l ca mt tin trnh khc bng mt li gi h thng tng ng. Khi mt tin
trnh kt thc, h iu hnh thc hin cc cng vic :
32
7/29/2019 Nguyen Ly Cac He Dieu Hanh 1283 (1)
33/145
-Thu hi cc ti nguyn h thng cp pht cho tin trnh
-Hy tin trnh khi tt c cc danh sch qun l ca h thng
- Hy b PCB ca tin trnh
Hu ht cc h iu hnh khng cho php cc tin trnh con tip tc tn ti nu
tin trnh cha kt thc. Trong nhng h thng nh th, h iu hnh s t ng pht
sinh mt lot cc thao tc kt thc tin trnh con.
2.1.7 Cp pht ti nguyn cho tin trnh
Khi c nhiu ngi s dng ng thi lm vic trong h thng, h iu hnh
cn phi cp pht cc ti nguyn theo yu cu cho mi ngi s dng. Do ti nguyn
h thng thng rt gii hn v c khi khng th chia s, nn him khi tt c cc yucu ti nguyn ng thi u c tha mn. V th cn phi nghin cu mt phng
php chia s mt s ti nguyn hu hn gia nhiu tin trnh ngi dng ng thi.
H iu hnh qun l nhiu loi ti nguyn khc nhau (CPU, b nh chnh, cc thit b
ngoi vi ), vi mi loi cn c mt c ch cp pht v cc chin lc cp pht hiu
qa. Mi ti nguyn c biu din thng qua mt cu trc d liu, khc nhau v chi
tit cho tng loi ti nguyn, nhng c bn cha ng cc thng tin sau :
- nh danh ti nguyn
- Trng thi ti nguyn : y l cc thng tin m t chi tit trng thi ti
nguyn : phn no ca ti nguyn cp pht cho tin trnh, phn no cn c th s
dng ?
- Hng i trn mt ti nguyn : danh sch cc tin trnh ang ch c cp
pht ti nguyn tng ng.
- B cp pht: l on code m nhim vic cp pht mt ti nguyn c th.Mt s ti nguyn i hi cc gii thut c bit (nh CPU, b nh chnh, h thng tp
tin), trong khi nhng ti nguyn khc (nh cc thit b nhp/xut) c th cn cc gii
thut cp pht v gii phng tng qut hn.
33
7/29/2019 Nguyen Ly Cac He Dieu Hanh 1283 (1)
34/145
Hnh 2.6Khi qun l ti nguyn
Cc mc tiu ca k thut cp pht :
Bo m mt s lng hp l cc tin trnh truy xut ng thi n cc ti
nguyn khng chia s c.
Cp pht ti nguyn cho tin trnh c yu cu trong mt khong thi gian tr
hon c th chp nhn c.
Ti u ha s s dng ti nguyn.
c th tha mn cc mc tiu k trn, cn phi gii quyt cc vn ny
sinh khi c nhiu tin trnh ng thi yu cu mt ti nguyn khng th chia s.
2.2. iu phi tin trnh
Trong mi trng a chng, c th xy ra tnh hung nhiu tin trnh ng
thi sn sng x l. Mc tiu ca cc h phn chia thi gian (time-sharing) l
chuyn i CPU qua li gia cc tin trnh mt cch thng xuyn nhiu ngi s
dng c th tng tc cng lc vi tng chng trnh trong qu trnh x l.
thc hin c mc tiu ny, h iu hnh phi la chn tin trnh c x
l tip theo. B iu phi s s dng mt gii thut iu phi thch hp thc hin
nhim v ny. Mt thnh phn khc ca h iu hnh cng tim n trong cng tc iu
phi l b phn phi (dispatcher). B phn phi s chu trch nhim chuyn i ng
cnh v trao CPU cho tin trnh c chn bi b iu phi x l.
2.2.1. Mc tiu iu phi
B iu phi khng cung cp c ch, m a ra cc quyt nh. Cc h iu
hnh xy dng nhiu chin lc khc nhau thc hin vic iu phi, nhng tuchung cn t c cc mc tiu sau :
a) S cng bng ( Fairness) :
Cc tin trnh chia s CPU mt cch cng bng, khng c tin trnh no phi
ch i v hn c cp pht CPU
34
7/29/2019 Nguyen Ly Cac He Dieu Hanh 1283 (1)
35/145
b) Tnh hiu qa (Efficiency) :H thng phi tn dng c CPU nhiu nht c
th.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).
c) Thi gian p ng hp l (Response time) :
Cc tiu ho thi gian hi p cho cc tng tc ca ngi s
dng
d) Thi gian lu li trong h thng ( Turnaround Time) :
Cc tiu ha thi gian hon tt cc tc v x l heo l.
e) Thng lng ti a (Throughput ) :
Cc i ha s cng vic c x l trong mt n v thi gian.
Tuy nhin thng khng th tha mn tt c cc mc tiu k trn v bn thn
chng c s mu thun vi nhau m ch c th dung ha chng mc no .
2.2.2 iu phi khng c quyn v iu phi c quyn
(preemptive/nopreemptive)
Thut ton iu phi cn xem xt v quyt nh thi im chuyn i CPU giacc tin trnh. H iu hnh c th thc hin c ch iu phi theo nguyn l c
quyn hoc khng c quyn.
iu phi c quyn :Nguyn l iu phi c quyn cho php mt tin trnh
khi nhn c CPU s c quyn c chim CPU n khi hon tt x l hoc t nguyn
gii phng CPU. Khi quyt nh iu phi CPU s xy ra trong cc tnh hung sau:
- Khi tin trnh chuyn t trng thi ang x l(running) sang trng thi b kha
blocked ( v d ch mt thao tc nhp xut hay ch mt tin trnh con kt thc).
- Khi tin trnh kt thc.
Cc gii thut c quyn thng n gin v d ci t. Tuy nhin chng
thng khng thch hp vi cc h thng tng qut nhiu ngi dng, v nu cho php
mt tin trnh c quyn x l bao lu ty , c ngha l tin trnh ny c th gi CPU
mt thi gian khng xc nh, c th ngn cn nhng tin trnh cn li trong h thng
c mt c hi x l.
35
7/29/2019 Nguyen Ly Cac He Dieu Hanh 1283 (1)
36/145
iu phi khng c quyn : Ngc vi nguyn l c quyn, iu phi theo
nguyn l khng c quyn cho php tm dng hot ng ca mt tin trnh ang sn
sng x l. Khi mt tin trnh nhn c CPU, n vn c s dng CPU n khi
hon tt hoc t nguyn gii phng CPU, nhng mt tin trnh khc c u tin c
th dnh quyn s dng CPU ca tin trnh ban u. Nh vy l tin trnh c th btm dng hot ng bt c lc no m khng c bo trc, tin trnh khc x l.
Cc quyt nh iu phi xy ra khi :
- Khi tin trnh chuyn t trng thi ang x l (running) sang trng thi b
kha blocked ( v d ch mt thao tc nhp xut hay ch mt tin trnh con kt
thc).
- Khi tin trnh chuyn t trng thi ang x l (running) sang trng thi ready (
v d xy ra mt ngt).
- Khi tin trnh chuyn t trng thi ch (blocked) sang trng thi ready ( v d
mt thao tc nhp/xut hon tt).
- Khi tin trnh kt thc.
Cc thut ton iu phi theo nguyn tc khng c quyn ngn cn c tnh
trng mt tin trnh c chim CPU, nhng vic tm dng mt tin trnh c th dn
n cc mu thun trong truy xut, i hi phi s dng mt phng php ng b ha
thch hp gii quyt.
Trong cc h thng s dng nguyn l iu phi c quyn c th xy ra tnh
trng cc tc v cn thi gian x l ngn phi ch tc v x l vi thi gian rt di
hon tt! Nguyn l iu phi c quyn thng ch thch hp vi cc h x l theo l.
i vi cc h thng tng tc(time sharing), cc h thi gian thc (real
time),cn phi s dng nguyn l iu phi khng c quyn cc tin trnh quantrng c c hi hi p kp thi. Tuy nhin thc hin iu phi theo nguyn l khng
c quyn i hi nhng c ch phc tp trong vic phn nh u tin, v pht sinh
thm chi ph khi chuyn i CPU qua li gia cc tin trnh.
2.2.3. Cc danh sch s dng trong qu trnh iu phi.
H iu hnh s dng hai loi danh sch thc hin iu phi cc tin trnh l
danh sch sn sng (ready list) v danh sch ch i(waiting list).
36
7/29/2019 Nguyen Ly Cac He Dieu Hanh 1283 (1)
37/145
Khi mt tin trnh bt u i vo h thng, n c chn vo danh sch cc tc
v (job list). Danh sch ny bao gm tt c cc tin trnh ca h thng. Nhng ch cc
tin trnh ang thng tr trong b nh chnh v trng thi sn sng tip nhn CPU
hot ng mi c a vo danh sch sn sng.
B iu phi s chn mt tin trnh trong danh sch sn sng v cp CPU chotin trnh . Tin trnh c cp CPU s thc hin x l, v c th chuyn sang trng
thi ch khi xy ra cc s kin nh i mt thao tc nhp/xut hon tt, yu cu ti
nguyn cha c tha mn, c yu cu tm dng ...Khi tin trnh s c
chuyn sang mt danh sch ch i.
Hnh 2.7Cc danh sch iu phi
H iu hnh ch s dng mt danh sch sn sng cho ton h thng, nhng mi
mt ti nguyn ( thit b ngoi vi ) c mt danh sch ch i ring bao gm cc tin
trnh ang ch c cp pht ti nguyn .
Qu trnh x l ca mt tin trnh tri qua nhng chu k chuyn i qua li gia
danh sch sn sng v danh sch ch i. S di y m t s iu phi cc tin
trnh da trn cc danh sch ca h thng.
Thot u tin trnh mi c t trong danh sch cc tin trnh sn sng (ready
list), n s i trong danh sch ny cho n khi c chn cp pht CPU v bt u
x l. Sau c th xy ra mt trong cc tnh hung sau :
Tin trnh pht sinh mt yu cu mt ti nguyn m h thng cha th p ng,
khi tin trnh s c chuyn sang danh sch cc tin trnh ang ch ti nguyn
tng ng.
37
7/29/2019 Nguyen Ly Cac He Dieu Hanh 1283 (1)
38/145
Tin trnh c th b bt buc tm dng x l do mt ngt xy ra, khi tin
trnh c a tr li vo danh sch sn sng ch c cp CPU cho lt tip theo.
Hnh 2.8S chuyn i gia cc danh sch iu phi
Trong trng hp u tin, tin trnh cui cng s chuyn t trng thi blocked
sang trng thi ready v li c a tr vo danh sch sn sng. Tin trnh lp li chu
k ny cho n khi hon tt tc v th c h thng hy b khi mi danh sch iu
phi.
2.2.4. Cc chin lc iu phi
a). Chin lc FIFO
Nguyn tc : CPU c cp pht cho tin trnh u tin trong danh sch snsng c yu cu, l tin trnh c a vo h thng sm nht. y l thut ton iu
phi theo nguyn tc c quyn. Mt khi CPU c cp pht cho tin trnh, CPU ch
c tin trnh t nguyn gii phng khi kt thc x l hay khi c mt yu cu
nhp/xut.
Hnh 2.9iu phi FIFO
V d :
Tin trnh Thi im vo RL Thi gian x lP1 0 24P2 1 3P3 2 3
Th t cp pht CPU cho cc tin trnh l :
P1 P2 P3
38
7/29/2019 Nguyen Ly Cac He Dieu Hanh 1283 (1)
39/145
0 24 27 30
thi gian ch i c x l l 0 i vi P1, (24 -1) vi P2 v (24+3-2) vi P3.
Thi gian ch trung bnh l ( 0+23+25)/3 = 16 milisecondes.
Thi gian ch trung bnh khng t cc tiu, v bin i ng k i vi cc gi
tr v thi gian yu cu x l v th t khc nhau ca cc tin trnh trong danh sch
sn sng. C th xy ra hin tng tch ly thi gian ch, khi cc tt c cc tin trnh
(c th c yu cu thi gian ngn) phi ch i mt tin trnh c yu cu thi gian di
kt thc x l.
Gii thut ny c bit khng ph hp vi cc h phn chia thi gian, trong cc
h ny, cn cho php mi tin trnh c cp pht CPU u n trong tng khong
thi gian.
b). Chin lc phn phi xoay vng (Round Robin)
Nguyn tc : Danh sch sn sng c x l nh mt danh sch vng, b iu
phi ln lt cp pht cho tng tin trnh trong danh sch mt khong thi gian ti a
s dng CPU cho trc gi l quantum. Tin trnh n trc th c cp pht CPU
trc. y l mt gii thut iu phi khng c quyn : khi mt tin trnh s dng
CPU n ht thi gian quantum dnh cho n, h iu hnh thu hi CPU v cp cho
tin trnh k tip trong danh sch. Nu tin trnh b kha hay kt thc trc khi sdng ht thi gian quantum, h iu hnh cng lp tc cp pht CPU cho tin trnh
khc. Khi tin trnh tiu th ht thi gian CPU dnh cho n m cha hon tt, tin
trnh c a tr li vo cui danh sch sn sng i c cp CPU trong lt k
tip.
V d :
Hnh 2.10 iu phi Round Robin
Tin trnh Thi im vo RL Thi gian x lP1 0 24P2 1 3
P3 2 3
39
7/29/2019 Nguyen Ly Cac He Dieu Hanh 1283 (1)
40/145
Nu s dng quantum l 4 milisecondes, th t cp pht CPU s
l
P1 P2 P3 P1 P1 P1 P1 P10 4 7 10 14 18 22 26 30
Thi gian ch i trung bnh s l (0+6+3+5)/3 = 4.66 milisecondes.
Nu c n tin trh trong danh sch sn sng v s dng quantum q, th mi tin
trnh s c cp pht CPU 1/n trong tng khong thi gian q. Mi tin trnh s khng
phi i qu (n-1)q n v thi gian trc khi nhn c CPU cho lt k tip.
Vn ng quan tm i vi gii thut RR l di ca quantum. Nu thi
lng quantum qu b s pht sinh qu nhiu s chuyn i gia cc tin trnh v
khin cho vic s dng CPU km hiu qa. Nhng nu s dng quantum qu ln s
lm tng thi gian hi p v gim kh nng tng tc ca h thng.
c). iu phi vi u tin
Nguyn tc : Mi tin trnh c gn cho mt u tin tng ng, tin trnh
c u tin cao nht s c chn cp pht CPU u tin. Cc tin trnh c u
tin bng nhau th tin trnh no n trc th s c cp trc. u tin c th
c nh ngha ni ti hay nh vo cc yu t bn ngoi. u tin ni ti s dng
cc i lng c th o lng tnh ton u tin ca tin trnh, v d cc gii hnthi gian, nhu cu b nh u tin cng c th c gn t bn ngoi da vo cc
tiu chun do h iu hnh nh tm quan trng ca tin trnh, loi ngi s dng s
hu tin trnh
Gii thut iu phi vi u tin c th theo nguyn tc c quyn hay khng
c quyn. Khi mt tin trnh c a vo danh sch cc tin trnh sn sng, u
tin ca n c so snh vi u tin ca tin trnh hin hnh ang x l. Gii thut
iu phi vi u tin v khng c quyn s thu hi CPU t tin trnh hin hnh cp pht cho tin trnh mi nu u tin ca tin trnh ny cao hn tin trnh hin
hnh. Mt gii thut c quyn s ch n gin chn tin trnh mi vo danh sch sn
sng, v tin trnh hin hnh vn tip tc x l ht thi gian dnh cho n.
V d : ( u tin 1 > u tin 2> u tin 3)
Tintrnh
Thi im vo RL u tin Thi gian xl
P1 0 3 24P2 1 1 3
40
7/29/2019 Nguyen Ly Cac He Dieu Hanh 1283 (1)
41/145
P3 2 2 3
S dng thut gii c quyn, th t cp pht CPU nh sau :
P1 P2 P30 24 27 30
S dng thut gii khng c quyn, th t cp pht CPU nh sau :
P1 P2 P3 P10 1 4 7 30
Tho lun : Tnh trng i CPU (starvation) l mt vn chnh yu ca cc
gii thut s dng u tin. Cc gii thut ny c th cc tin trnh c u tin
thp ch i CPU v hn ! ngn cn cc tin trnh c u tin cao chim dng
CPU v thi hn, b iu phi s gim dn u tin ca cc tin trnh ny sau mi
ngt ng h. Nu u tin ca tin trnh ny gim xung thp hn tin trnh c u tin cao th nh, s xy ra s chuyn i quyn s dng CPU.Qu trnh ny gi l
s lo ha (aging) tin trnh.
d). Chin lc cng vic ngn nht trc (Shortest-job-first SJF)
Nguyn tc : y l mt trng hp c bit ca gii thut iu phi vi u
tin. Trong gii thut ny, u tin p c gn cho mi tin trnh l nghch o ca
thi gian x l tm tin trnh yu cu :p = 1/t. Khi CPU c t do, n s c cp
pht cho tin trnh yu cu t thi gian nht kt thc- tin trnh ngn nht. Gii thut
ny cng c th c quyn hay khng c quyn. S chn la xy ra khi c mt tin
trnh mi c a vo danh sch sn sng trong khi mt tin trnh khc ang x l.
Tin trnh mi c th s hu mt yu cu thi gian s dng CPU cho ln tip theo
(CPU-burst) ngn hn thi gian cn li m tin trnh hin hnh cn x l. Gii thut
SJF khng c quyn s dng hot ng ca tin trnh hin hnh, trong khi gii thut
c quyn s cho php tin trnh hin hnh tip tc x l. Nu hai tin trnh c cng
thi gian s dng CPU, tin trnh n trc s c yu cu CPU trc.
V d :
Tin trnh Thi im vo RL Thi gian xl
P1 0 6P2 1 8P3 2 4P4 3 2
S dng thut gii SJF c quyn, th t cp pht CPU nh sau:
41
7/29/2019 Nguyen Ly Cac He Dieu Hanh 1283 (1)
42/145
P1 P4 P3 P2
0 6 8 12 20
S dng thut gii SJF khng c quyn, th t cp pht CPU nh sau:
P1 P4 P1 P3 P2
0 3 5 8 12 20
Tho lun : Gii thut ny cho php t c thi gian ch trung bnh cc tiu.
Kh khn thc s ca gii thut SJF l khng th bit c thi gian yu cu chu k
CPU tip theo? Ch c th d on gi tr ny theo cch tip cn sau : gi tn l di
ca thi gian x l ln th n, t n+1 l gi tr d on cho ln x l tip theo. Vi hy
vng gi tr d on s gn ging vi cc gi tr trc , c th s dng cng thc:
t n+1 = a tn + (1-a )t n
Trong cng thc ny,tn cha ng thng tin gn nht ; t n cha ng cc thng
tin qu kh c tch ly. Tham s a ( 0
7/29/2019 Nguyen Ly Cac He Dieu Hanh 1283 (1)
43/145
Thng thng, mt tin trnh s c gn vnh vin vi mt danh sch cp u
tin i khi n c a vo h thng. Cc tin trnh khng di chuyn gia cc danh
sch. Cch t chc ny s lm gim chi ph iu phi, nhng li thiu linh ng v c
th dn n tnh trng i CPU cho cc tin trnh thuc v nhng danh sch c u
tin thp. Do vy c th xy dng gii thut iu phi nhiu cp u tin v xoay vng.Gii thut ny s chuyn dn mt tin trnh t danh sch c u tin cao xung danh
sch c u tin thp hn sau mi ln s dng CPU. Cng vy, mt tin trnh ch
qu lu trong cc danh sch c u tin thp cng c th c chuyn dn ln cc
danh sch c u tin cao hn. Khi xy dng mt gii thut iu phi nhiu cp u
tin v xoay vng cn quytnh cc tham s :
S lng cc cp u tin
Gii thut iu phi cho tng danh sch ng vi mt cp u tin.
Phng php xc nh thi im di chuyn mt tin trnh ln danh sch c
u tin cao hn.
Phng php xc nh thi im di chuyn mt tin trnh ln danh sch c
u tin thp hn.
Phng php s dng xc nh mt tin trnh mi c a vo h thng s
thuc danh sch ng vi tin no.
Hnh 2.12iu phi Multilevel Feedback
2.3. Thng tin lin lc gia cc tin trnh43
7/29/2019 Nguyen Ly Cac He Dieu Hanh 1283 (1)
44/145
2.3.1. Nhu cu lin lc gia cc tin trnh
Trong mi trng a chng, mt tin trnh khng n c trong h thng , m
c th nh hng n cc tin trnh khc , hoc b cc tin trnh khc tc ng. Ni
cch khc, cc tin trnh l nhng thc th c lp , nhng chng vn c nhu cu lin
lc vi nhau :
Chia s thng tin: nhiu tin trnh c th cng quan tm n nhng d liu no
, do vy h iu hnh cn cung cp mt mi trng cho php s truy cp ng thi
n cc d liu chung.
Hp tc hon thnh tc v: i khi t c mt s x l nhanh chng,
ngi ta phn chia mt tc v thnh cc cng vic nh c th tin hnh song song.
Thng th cc cng vic nh ny cn hp tc vi nhau cng hon thnh tc v banu, v d d liu kt xut ca tin trnh ny li l d liu nhp cho tin trnh khc
Trong cc trng hp , h iu hnh cn cung cp c ch cc tin trnh c th
trao i thng tin vi nhau.
2.3.2. Cc C Ch Thng Tin Lin lc
a). Tn hiu (Signal)
Tn hiu l mt c ch phn mm tng t nh cc ngt cng tc ng n cctin trnh. Mt tn hiu c s dng thng bo cho tin trnh v mt s kin no
xy ra. C nhiu tn hiu c nh ngha, mi mt tn hiu c mt ngha tng ng
vi mt s kin c trng.
V d : Mt s tn hiu ca UNIX
Tn hiu M tSIGINT Ngi dng nhn phm DEL ngt x l tin
trnhSIGQUIT Yu cu thot x l
SIGILL Tin trnh x l mt ch th bt hp l
SIGKILL Yu cu kt thc mt tin trnh
SIGFPT Li floating point xy ra ( chia cho 0)
SIGPIPE Tin trnh ghi d liu vo pipe m khng c reader
SIGSEGV Tin trnh truy xut n mt a ch bt hp l
44
7/29/2019 Nguyen Ly Cac He Dieu Hanh 1283 (1)
45/145
Tn hiu M tSIGCLD Tin trnh con kt thcSIGUSR1 Tn hiu 1 do ngi dng nh ngha
SIGUSR2 Tn hiu 2 do ngi dng nh ngha
Mi tin trnh s hu mt bng biu din cc tn hiu khc nhau. Vi mi tn
hiu s c tng ng mt trnh x l tn hiu (signal handler) qui nh cc x l ca
tin trnh khi nhn c tn hiu tng ng.
Cc tn hiu c gi i bi :
Phn cng (v d li do cc php tnh s hc)
Ht nhn h iu hnh gi n mt tin trnh ( v d lu tin trnh khi c mtthit b nhp/xut t do).
Mt tin trnh gi n mt tin trnh khc ( v d tin trnh cha yu cu mt tin
trnh con kt thc)
Ngi dng ( v d nhn phm Ctl-C ngt x l ca tin trnh)
Khi mt tin trnh nhn mt tn hiu, n c th x s theo mt trong cc cch
sau :
Hnh2.13 Lin lc bng tn hiu
B qua tn hiu
X l tn hiu theo kiu mc nh
Tip nhn tn hiu v x l theo cch c bit ca tin trnh.
45
7/29/2019 Nguyen Ly Cac He Dieu Hanh 1283 (1)
46/145
Lin lc bng tn hiu mang tnh cht khng ng b, ngha l mt tin trnh
nhn tn hiu khng th xc nh trc thi im nhn tnh hiu. Hn na cc tin
trnh khng th kim tra c s kin tng ng vi tn hiu c tht s xy ra ? Cui
cng, cc tin trnh ch c th thng bo cho nhau v mt bin c no , m khng
trao i d liu theo c ch ny c.b). Pipe
Mt pipe l mt knh lin lc trc tip gia hai tin trnh : d liu xut ca tin
trnh ny c chuyn n lm d liu nhp cho tin trnh kia di dng mt dng cc
byte.
Khi mt pipe c thit lp gia hai tin trnh, mt trong chng s ghi d liu
vo pipe v tin trnh kia s c d liu t pipe. Th t d liu truyn qua pipe cbo ton theo nguyn tc FIFO. Mt pipe c kch thc gii hn (thng l 4096 k
t)
Hnh 2.14 Lin lc qua pipe
Mt tin trnh ch c th s dng mt pipe do n to ra hay k tha t tin trnh
cha. H iu hnh cung cp cc li gi h thng read/write cho cc tin trnh thc hin
thao tc c/ghi d liu trong pipe. H iu hnh cng chu trch nhim ng b ha
vic truy xut pipe trong cc tnh hung:
Tin trnh c pipe s b kha nu pipe trng, n s phi i n khi pipe c d
liu truy xut.
Tin trnh ghi pipe s b kha nu pipe y, n s phi i n khi pipe c ch
trng cha d liu.
Lin lc bng pipe l mt c ch lin lc mt chiu (unidirectional), ngha l
mt tin trnh kt ni vi mt pipe ch c th thc hin mt trong hai thao tc c hoc
ghi, nhng khng th thc hin c hai. Mt s h iu hnh cho php thit lp hai pipe
gia mt cp tin trnh to lin lc hai chiu. Trong nhng h thng , c nguy c
xy ra tnh trng tc nghn (deadlock) : mt pipe b gii hn v kch thc, do vy nu
c hai pipe ni kt hai tin trnh u y(hoc u trng) v c hai tin trnh u mun
46
7/29/2019 Nguyen Ly Cac He Dieu Hanh 1283 (1)
47/145
ghi (hay c) d liu vo pipe(mi tin trnh ghi d liu vo mt pipe), chng s cng
b kha v ch ln nhau mi mi !
C ch ny cho php truyn d liu vi cch thc khng cu trc.
Ngoi ra, mt gii hn ca hnh thc lin lc ny l ch cho php kt ni haitin trnh c quan h cha-con, v trn cng mt my tnh.
c). Vng nh chia s
Cch tip cn ca c ch ny l cho nhiu tin trnh cng truy xut n mt
vng nh chung gi l vng nh chia s (shared memory).Khng c bt k hnh vi
truyn d liu no cn phi thc hin y, d liu ch n gin c t vo mt
vng nh m nhiu tin trnh c th cng truy cp c.
Vi phng thc ny, cc tin trnh chia s mt vng nh vt l thng qua
trung gian khng gian a ch ca chng. Mt vng nh chia s tn ti c lp vi cc
tin trnh, v khi mt tin trnh mun truy xut n vng nh ny, tin trnh phi kt
gn vng nh chung vo khng gian a ch ring ca tng tin trnh, v thao tc
trn nh mt vng nh ring ca mnh.
Hnh 2.15 Lin lc qua vng nh chia s
y l phng php nhanh nht trao i d liu gia cc tin trnh. Nhng
phng thc ny cng lm pht sinh cc kh khn trong vic bo m s ton vn d
liu (coherence) , v d : lm sao bit c d liu m mt tin trnh truy xut l d
liu mi nht m tin trnh khc ghi ? Lm th no ngn cn hai tin trnh cng
ng thighi d liu vo vng nh chung ?R rng vng nh chia s cn c bo
v bng nhng c ch ng b ha thch hp..
Mt khuyt im ca phng php lin lc ny l khng th p dng hiu qu
trong cc h phn tn , trao i thng tin gia cc my tnh khc nhau.
d). Trao i thng ip (Message)
47
7/29/2019 Nguyen Ly Cac He Dieu Hanh 1283 (1)
48/145
H iu hnh cn cung cp mt c ch lin lc gia cc tin trnh khng thng
qua vic chia s mt ti nguyn chung , m thng qua vic gi thng ip. h tr
c ch lin lc bng thng ip, h iu hnh cung cp cc hm IPC chun
(Interprocess communication), c bn l hai hm:
Send(message) : gi mt thng ip
Receive(message) : nhn mt thng ip
Nu hai tin trnh P v Q mun lin lc vi nhau, cn phi thit lp mt mi
lin kt gia hai tin trnh, sau P, Q s dng cc hm IPC thch hp trao i
thng ip, cui cng khi s lin lc chm dt mi lin kt gia hai tin trnh s b
hy. C nhiu cch thc thc hin s lin kt gia hai tin trnh v ci t cc theo
tc send /receive tng ng : lin lc trc tip hay gin tip, lin lc ng b hockhng ng b , kch thc thng ip l c nh hay khng Nu cc tin trnh lin
lc theo kiu lin kt tng minh, cc hm Send v Receive s c ci t vi tham
s :
Send(destination, message) : gi mt thng ip n destination
Receive(source,message) : nhn mt thng ip tsource
n v truyn thng tin trong c ch trao i thng ip l mt thng ip, do cc tin trnh c th trao i d liu dng c cu trc.
nh dng thng ip
Loi thng ip
a ch ch
a ch ngun
di thng ip
Cc thng tin iu kin
Ni dung thng ip
e) Sockets
48
7/29/2019 Nguyen Ly Cac He Dieu Hanh 1283 (1)
49/145
Gii thiu: Mt socket l mt thit b truyn thng hai chiu tng t nh tp
tin, chng ta c th c hay ghi ln n, tuy nhin mi socket l mt thnh phn trong
mt mi ni no gia cc my trn mng my tnh v cc thao tc c/ghi chnh l
s trao i d liu gia cc ng dng trn nhiu my khc nhau.
S dng socket c th m phng hai phng thc lin lc trong thc t : lin lcth tn (socket ng vai tr bu cc) v lin lc in thoi (socket ng vai tr tng
i)
Cc thuc tnh ca socket:
Domaine: nh ngha dng thc a ch v cc nghi thc s dng. C nhiu
domaines, v d UNIX, INTERNET, XEROX_NS, ...
Type: nh ngha cc c im lin lc:
S tin cy
S bo ton th t d liu
Lp li d liu
Ch ni kt
Bo ton gii hn thng ip
Kh nng gi thng ip khn
thc hin lin lc bng socket, cn tin hnh cc thao tc :
To lp hay m mt socket
Gn kt mt socket vi mt a ch
Lin lc : c hai kiu lin lc ty thuc vo ch ni kt:
Lin lc trong ch khng lin kt: lin lc theo hnh thc hp th:
hai tin trnh lin lc vi nhau khng kt ni trc tip
mi thng ip phi km theo a ch ngi nhn.
Hnh thc lin lc ny c c im c :
49
7/29/2019 Nguyen Ly Cac He Dieu Hanh 1283 (1)
50/145
ngi gi khng chc chn thng ip ca hc c gi n ngi nhn,
mt thng ip c th c gi nhiu ln,
hai thng ip gi theo mt th t no c th n tay ngi nhn theo
mt th t khc.
Mt tin trnh sau khi m mt socket c th s dng n lin lc vi nhiu
tin trnh khc nhau nh s hai primitivesendv receive.
Lin lc trong ch ni kt:
Mt lin kt c thnh lp gia hai tin trnh. Trc khi mi lin kt ny c
thit lp, mt trong hai tin trnh phi i c mt tin trnh khc yu cu kt ni.C th
s dng socket lin lc theo m hnh client-serveur. Trong m hnh ny, server sdng li gi h thng listen v accept ni kt vi client, sau , client v server c
th trao i thng tin bng cch s dng cc primitive send v receive.
Hy mt socket
V d :
Trong nghi thc truyn thng TCP, mi mi ni gia hai my tnh c xc
nh bi mt port, khi nim port y khng phi l mt cng giao tip trn thit bvt l m ch l mt khi nim logic trong cch nhn ca ngi lp trnh, mi port
c tng ng vi mt s nguyn dng.
Hnh 2.16 Cc socket v port trong mi ni TCP.
Hnh 2.16 minh ha mt cch giao tip gia hai my tnh trong nghi thc truyn
thng TCP. My A to ra mt socket v kt buc (bind) socket ny vi mt port X (tc
l mt s nguyn dng c ngha cc b trong my A), trong khi my B to mt
socket khc v mc vo (connect) port X trong my A.
C ch socket c th s dng chun ho mi lin lc gia cc tin trnh vn
khng lin h vi nhau, v c th hot ng trong nhng h thng khc nhau.
50
7/29/2019 Nguyen Ly Cac He Dieu Hanh 1283 (1)
51/145
2.4 ng b ho tin trnh
2.4.1 Nhu cu ng b ha (synchronisation)
Trong mt h thng cho php cc tin trnh lin lc vi nhau, bao gi h iu
hnh cng cn cung cp km theo nhng c ch ng b ha bo m hot ngca cc tin trnh ng hnh khng tc ng sai lch n nhau. Truy xut ng hnh
d liu c chia s c th dn ti vic khng ng nht d liu. Trong phn ny
chng ta s tho lun cc c ch m bo vic thc thi c th t ca cc tin trnh hp
tc chia s khng gian a ch tnh ng n ca d liu lun c duy tr.
a). Yu cu c quyn truy xut (Mutual exclusion)
Cc ti nguyn trong h thng c phn thnh hai loi: ti nguyn c th chia
s cho php nhiu tin trnh ng thi truy xut, v ti nguyn khng th chia s ch
chp nhn mt ( hay mt s lng hn ch ) tin trnh s dng ti mt thi im. Tnh
khng th chia s ca ti nguyn thng c ngun gc t mt trong hai nguyn nhn
sau y:
c tnh cu to phn cng ca ti nguyn khng cho php chia s.
Nu nhiu tin trnh s dng ti nguyn ng thi, c nguy c xy ra cc kt
qu khng d on c do hot ng ca cc tin trnh trn ti nguyn nh hng lnnhau.
gii quyt vn , cn bo m tin trnh c quyn truy xut ti nguyn,
ngha l h thng phi kim sot sao cho ti mt thi im, ch c mt tin trnh c
quyn truy xut mt ti nguyn khng th chia s.
b). Yu cu phi hp (Synchronization)
Nhn chung, mi tng quan v tc thc hin ca hai tin trnh trong h
thng l khng th bit trc, v iu ny ph thuc vo nhiu yu t ng nh tn
sut xy ra cc ngt ca tng tin trnh, thi gian tin trnh c cp pht b x l
C th ni rng cc tin trnh hot ng khng ng b vi nhau. Nhng c nhng
tnh hung cc tin trnh cn hp tc trong vic hon thnh tc v, khi cn phi
ng b ha hot ng ca cc tin trnh , v d mt tin trnh ch c th x l nu mt
tin trnh khc kt thc mt cng vic no
2.4.2. Bi ton ng b ho
51
7/29/2019 Nguyen Ly Cac He Dieu Hanh 1283 (1)
52/145
a). Vn tranh ot iu khin (race condition)
Gi s c hai tin trnh P1 v P2 thc hin cng vic ca cc k ton, v cng
chia s mt vng nh chung lu tr bin taikhoan phn nh thng tin v ti khon.
Mi tin trnh mun rt mt khon tin tienrutt ti khon:
if (taikhoan - tienrut >=0)
taikhoan = taikhoan - tienrut;
else
error( khong the rut tien ! );
Gi s trong ti khon hin cn 800, P1 mun rt 500 v P2 mun rt 400. Nuxy ra tnh hung nh sau :
Sau khi kim tra iu kin (taikhoan - tienrut >=0) v nhn kt qu l 300, P 1
ht thi gian x l m h thng cho php, h iu hnh cp pht CPU cho P2.
P2 kim tra cng iu kin trn, nhn c kt qu l 400 (do P1 vn cha rt
tin) v rt 400. Gi tr ca taikhoan c cp nht li l 400.
Khi P1 c ti kch hot v tip tc x l, n s khng kim tra li iu kin(taikhoan - tienrut >=0)-v kim tra trong lt x l trc- m thc hin rt tin.
Gi tr ca taikhoan s li c cp nht thnh -100. Tnh hung li xy ra !
Cc tnh hung tng t nh th - c th xy ra khi c nhiu hn hai tin trnh
c v ghi d liu trn cng mt vng nh chung, v kt qu ph thuc vo s iu
phi tin trnh ca h thng- c gi l cc tnh hung tranh ot iu khin (race
condition) .
b). Min gng (critical section)
ngn chn cc tnh hung li c th ny sinh khi cc tin trnh truy xut
ng thi mt ti nguyn khng th chia s, cn phi p t mt s truy xut c
quyn trn ti nguyn : khi mt tin trnh ang s dng ti nguyn, th nhng tin
trnh khc khng c truy xut n ti nguyn.
on chng trnh trong c kh nng xy ra cc mu thun truy xut trn ti
nguyn chung c gi l min gng (critical section). Trong v d trn, on m :
52
7/29/2019 Nguyen Ly Cac He Dieu Hanh 1283 (1)
53/145
if (taikhoan - tienrut >=0)
taikhoan = taikhoan - tienrut;
ca mi tin trnh to thnh mt min gng.
C th gii quyt vn mu thun truy xut nu c th bo m ti mt thi
im ch c duy nht mt tin trnh c x l lnh trong min gng.
Mt phng php gii quyt tt bi ton min gng cn tha mn 4 iu kin
sau:
-Khng c hai tin trnh cng trong min gng cng lc.
-Khng c gi thit no t ra cho s lin h v tc ca cc tin trnh, cngnh v s lng b x l trong h thng.
-Mt tin trnh tm dng bn ngoi min gng khng c ngn cn cc tin
trnh khc vo min gng.
-Khng c tin trnh no phi ch v hn c vo min gng.
2.4.3 Cc gii php ng b ho
2.4.3.1 Gii php busy waiting
2.4.3.1.1. Cc gii php phn mm
a). S dng cc bin c hiu:
Tip cn : cc tin trnh chia s mt bin chung ng vai tr cht ca
(lock) , bin ny c khi ng l 0. Mt tin trnh mun vo min gng trc tin
phi kim tra gi tr ca bin lock. Nu lock = 0, tin trnh t li gi tr cho lock = 1v i vo min gng. Nu lock ang nhn gi tr 1, tin trnh phi ch bn ngoi min
gng cho n khi lock c gi tr 0. Nh vy gi tr 0 ca lock mang ngha l khng
c tin trnh no ang trong min gng, v lock=1 khi c mt tin trnh ang trong
min gng.
while (TRUE) {
while (lock==1);//wait
lock = 1;
53
7/29/2019 Nguyen Ly Cac He Dieu Hanh 1283 (1)
54/145
critical-section ();
lock = 0;
Noncritical-section ();
}
Hnh 3.5 Cu trc mt chng trnh s dng bin kha ng b
Gii php ny c th vi phm iu kin th nht: hai tin trnh c th cng
trong min gng ti mt thi im. Gi s mt tin trnh nhn thy lock = 0 v chun
b vo min gng, nhng trc khi n c th t li gi tr cho lock l 1, n b tm
dng mt tin trnh khc hot ng. Tin trnh th hai ny thy lock vn l 0 th vo
min gng v t li lock = 1. Sau tin trnh th nht c ti kch hot, n gn
lock = 1 ln na ri va min gng. Nh vy ti thi im c hai tin trnh u trong min gng.
b). S dng vic kim tra lun phin :
Tip cn : y l mt gii php ngh cho hai tin trnh. Hai tin trnh ny s
dng chung bin turn (phn nh phin tin trnh no c vo min gng), c khi
ng vi gi tr 0. Nu turn = 0, tin trnh A c vo min gng. Nu turn = 1, tin
trnh A i vo mt vng lp ch n khi turn nhn gi tr 0. Khi tin trnh A ri khi
min gng, n t gi tr turn v 1 cho php tin trnh B i vo min gng.
while (TRUE) {
while (turn != 0); // wait
critical-section ();
turn = 1;
Noncritical-section ();
}
(a) Cu trc tin trnh A
while (TRUE) {
while (turn != 1); // wait
critical-section ();
turn = 0;Noncritical-section ();
54
7/29/2019 Nguyen Ly Cac He Dieu Hanh 1283 (1)
55/145
}
(b) Cu trc tin trnh B
Hnh 3.6 Cu trc cc tin trnh trong gii php kim tra lun phin
Gii php ny da trn vic thc hin s kim tra nghim nht n lt tin
trnh no c vo min gng. Do n c th ngn chn c tnh trng hai tin
trnh cng vo min gng, nhng li c th vi phm iu kin th ba: mt tin trnh c
th b ngn chn vo min gng bi mt tin trnh khc khng trong min gng. Gi
s tin trnh B ra khi min gng rt nhanh chng. C hai tin trnh u ngoi min
gng, v turn = 0. Tin trnh A vo min gng v ra khi nhanh chng, t li gi tr
ca turn l1, ri li x l on lnh ngoi min gng ln na. Sau , tin trnh A li
kt thc nhanh chng on lnh ngoi min gng ca n v mun vo min gng mtln na. Tuy nhin lc ny B vn cn mi x l on lnh ngoi min gng ca mnh,
v turn li mang gi tr 1 ! Nh vy, gii php ny khng c gi tr khi c s khc bit
ln v tc thc hin ca hai tin trnh, n vi phm c iu kin th hai.
c). Gii php ca Peterson
Tip cn : Petson a ra mt gii php kt hp tng ca c hai gii php k
trn. Cc tin trnh chia s hai bin chung :
int turn; // n phin ai
int interesse[2]; // khi ng l FALSE
Nu interesse[i] = TRUE c ngha l tin trnh Pi mun vo min gng. Khi
u, interesse[0]=interesse[1]=FALSEv gi tr ca est c khi ng l 0 hay 1.
c th vo c min gng, trc tin tin trnh Pi t gi tr interesse[i]=TRUE
( xc nh rng tin trnh mun vo min gng), sau t turn=j ( ngh th tintrnh khc vo min gng). Nu tin trnh Pj khng quan tm n vic vo min gng
(interesse[j]=FALSE), th Pi c th vo min gng, nu khng, Pi phi ch n khi
interesse[j]=FALSE. Khi tin trnh Pi ri khi min gng, n t li gi tr cho
interesse[i]= FALSE.
while (TRUE) {
int j = 1-i; // j l tin trnh cn li
interesse[i]= TRUE;
55
7/29/2019 Nguyen Ly Cac He Dieu Hanh 1283 (1)
56/145
turn = j;
while (turn == j && interesse[j]==TRUE);
critical-section ();
interesse[i] = FALSE;
Noncritical-section ();}
Hnh 3.7 Cu trc tin trnh Pi trong gii php Peterson
gii php ny ngn chn c tnh trng mu thun truy xut : mi tin trnh Pi
ch c th vo min gng khi interesse[j]=FALSEhoc turn = i. Nu c hai tin trnh
u mun vo min gng th interesse[i] =interesse[j] =TRUEnhng gi tr ca turn
ch c th hoc l 0 hoc l 1, do vy ch c mt tin trnh c vo min gng.
2.4.3.1.2. Cc gii php phn cng
a) Cm ngt:
Tip cn: cho php tin trnh cm tt c cc ngt trc khi vo min gng, v
phc hi ngt khi ra khi min gng. Khi , ngt ng h cng khng xy ra, do vy
h thng khng th tm dng hot ng ca tin trnh ang x l cp pht CPU cho
tin trnh khc, nh tin trnh hin hnh yn tm thao tc trn min gng m khngs b tin trnh no khc tranh chp.
gii php ny khng c a chung v rt thiu thn trng khi cho php tin
trnh ngi dng c php thc hin lnh cm ngt. Hn na, nu h thng c nhiu
b x l, lnh cm ngt ch c tc dng trn b x l ang x l tin trnh, cn cc tin
trnh hot ng trn cc b x l khc vn c th truy xut n min gng !
b). Ch th TSL (Test-and-Set):Tip cn: y l mt gii php i hi s tr gip ca c ch phn cng. Nhiu
my tnh cung cp mt ch th c bit cho php kim tra v cp nht ni dung mt
vng nh trong mt thao tc khng th phn chia, gi l ch th Test-and-Set Lock
(TSL) v c nh ngha nh sau:
Test-and-Setlock(boolean target)
{
56
7/29/2019 Nguyen Ly Cac He Dieu Hanh 1283 (1)
57/145
Test-and-Setlock = target;
target = TRUE;
}
Nu c hai ch th TSL x l ng thi (trn hai b x l khc nhau), chng sc x l tun t . C th ci t gii php truy xut c quyn vi TSL bng cch s
dng thm mt bin lock, c khi gn l FALSE. Tin trnh phi kim tra gi tr ca
bin lock trc khi vo min gng, nu lock = FALSE, tin trnh c th vo min
gng.
while (TRUE) {
while(Test-and-Setlock(lock));
critical-section ();
lock = FALSE;
Noncritical-section ();
}
Hnh 3.8 Cu trc mt chng trnh trong gii php TSL
cng ging nh cc gii php phn cng khc, ch th TSL gim nh cng viclp trnh gii quyt vn , nhng li khng d dng ci t ch th TSL sao cho
c x l mt cch khng th phn chia, nht l trn my vi cu hnh nhiu b x
l.
Tt c cc gii php trn y u phi thc hin mt vng lp kim tra liu
n c c php vo min gng, nu iu kin cha cho php, tin trnh phi ch tip
tc trong vng lp kim tra ny. Cc gii php buc tin trnh phi lin tc kim tra
iu kin pht hin thi im thch hp c vo min gng nh th c gi ccgii php busy waiting. Lu rng vic kim tra nh th tiu th rt nhiu thi
gian s dng CPU, do vy tin trnh ang ch vn chim dng CPU. Xu hng gii
quyt vn ng b ho l nn trnh cc gii php busy waiting.
2.4.3.2. Cc gii php SLEEP and WAKEUP
loi b cc bt tin ca gii php busy waiting , chng ta c th tip cn
theo hng cho mt tin trnh cha iu kin vo min gng chuyn sang trng thi
blocked, t b quyn s dng CPU. thc hin iu ny, cn phi s dng cc th
57
7/29/2019 Nguyen Ly Cac He Dieu Hanh 1283 (1)
58/145
tc do h iu hnh cung cp thay i trng thi tin trnh. Hai th tc c bn
SLEEPv WAKEUPthng c s dng phc v mc ch ny.
SLEEP l mt li gi h thng c tc dng tm dng hot ng ca tin trnh
(blocked) gi n v ch n khi c mt tin trnh khc nh thc . Li gi h
thng WAKEUPnhn mt tham s duy nht : tin trnh s c ti kch hot (t vtrng thi ready).
tng s dng SLEEP v WAKEUP nh sau : khi mt tin trnh cha
iu kin vo min gng, n gi SLEEP t kha n khi c mt tin trnh khc gi
WAKEUP gii phng cho n. Mt tin trnh gi WAKEUPkhi ra khi min gng
nh thc mt tin trnh ang ch, to c hi cho tin trnh ny vo min gng :
Cu trc chng trnh trong gii php SLEEP and WAKEUP
int busy; // 1 nu min gng ang b chim, nu khng l 0
int blocked; // m s lng tin trnh ang b kha
while (TRUE) {
if (busy){
blocked = blocked + 1;sleep();
}
else busy = 1;
critical-section ();
busy = 0;
if(blocked){wakeup(process);
blocked = blocked - 1;
}
Noncritical-section ();
}
Khi s dng SLEEP v WAKEUP cn ht sc cn thn, nu khng mun xyra tnh trng mu thun truy xut trong mt vi tnh hung c bit nh sau : gi s
58
7/29/2019 Nguyen Ly Cac He Dieu Hanh 1283 (1)
59/145
tin trnh A vo min gng, v trc khi n ri khi min gng th tin trnh B c
kch hot. Tin trnh B th vo min gng nhng n nhn thy A ang trong , do
vy B tng gi tr bin blockedv chun b gi SLEEP t kho. Tuy nhin trc khi
B c th thc hin SLEEP, tin trnh A li c ti kch hot v ra khi min gng.
Khi ra khi min gng A nhn thy c mt tin trnh ang ch ( blocked=1) nn giWAKEUPv gim gi tr ca blocked. Khi tn hiu WAKEUPs lc mt do tin
trnh B cha tht s ng nhn tn hiu nh thc !Khi tin trnh B c tip tc
x l, n mi goi SLEEPv t kh vnh vin !
Vn ghi nhn c l tnh trng li ny xy ra do vic kim tra t cch vo
min gng v vic gi SLEEP hay WAKEUP l nhng hnh ng tch bi, c th b
ngt na chng trong qu trnh x l, do c khi tn hiu WAKEUP gi n mt tin
trnh cha b kha s lc mt.
trnh nhng tnh hung tng t, h iu hnh cung cp nhng c ch ng
b ha da trn tng ca chin lc SLEEP and WAKEUP nhng c xy
dng bao hm c phng tin kim tra iu kin vo min gng gip s dng an ton.
a). Semaphore
Tip cn: c Dijkstra xut vo 1965, mt semaphore s l mt bin c cc
thuc tnh sau:
Mt gi tr nguyn dng e(s)
Mt hng i f(s) lu danh sch cc tin trnh ang b kha (ch) trn
semaphores
Ch c hai thao tc c nh ngha trn semaphore
Down(s): gim gi tr ca semaphores i 1 n v nu semaphore c tr e(s) >0, v tip tc x l. Ngc li, nu e(s) 0, tin trnh phi ch n khi e(s) >0.
Up(s): tng gi tr ca semaphore s ln 1 n v. Nu c mt hoc nhiu tin
trnh ang ch trn semaphores, b kha bi thao tc Down, th h thng s chn mt
trong cc tin trnh ny kt thc thao tc Down v cho tip tc x l.
59
7/29/2019 Nguyen Ly Cac He Dieu Hanh 1283 (1)
60/145
Hnh 2.17 Semaphore s
Ci t: Gip l tin trnh thc hin thao tcDown(s) hay Up(s).
Down(s):
e(s) = e(s) - 1;
if e(s) < 0 {
status(P)= blocked;
enter(P,f(s));
}
Up(s):
e(s) = e(s) + 1;
if s 0 {
exit(Q,f(s)); //Q l tin trnh ang ch trn s
status (Q) = ready;
enter(Q,ready-list);}
Lu ci t ny c th a n mt gi tr m cho semaphore, khi tr tuyt
i ca semaphore cho bit s tin trnh ang ch trn semaphore.
iu quan trng l cc thao tc ny cn thc hin mt cch khng b phn chia,
khng b ngt na chng, c ngha l khng mt tin trnh no c php truy xut
n semaphore nu tin trnh ang thao tc trn semaphore ny cha kt thc x lhay chuyn sang trng thi blocked.
60
7/29/2019 Nguyen Ly Cac He Dieu Hanh 1283 (1)
61/145
S dng: c th dng semaphore gii quyt vn truy xut c quyn hay
t chc phi hp gia cc tin trnh.
T chc truy xut c quyn vi Semaphores: khi nimsemaphore cho php
bo m nhiu tin trnh cng truy xut n min gng m khng c s mu thun truy
xut. n tin trnh cng s dng mt semaphore s, e(s) c khi gn l 1. thc hinng b ha, tt c cc tin trnh cn phi p dng cng cu trc chng trnh sau y:
while (TRUE) {
Down(s)
critical-section ();
Up(s)
Noncritical-section ();
}
Hnh 3.11 Cu trc mt chng trnh trong gii php semaphore
V d:
Ln Tintrnh
Thaotc
E(s) CS F(s)
1 A Down 0 A
2 B Down -1 A B
3 C Down -2 A B, C
4 A Up -1 B C
T chc ng b ha vi Semaphores: vi semaphore c th ng b ha hot
ng ca hai tin trnh trong tnh hung mt tin trnh phi i mt tin trnh khc
hon tt thao tc no mi c th bt u hay tip tc x l. Hai tin trnh chia s
mt semaphore s, khi gn e(s) l 0. C hai tin trnh c cu trc nh sau:
P1:
while (TRUE) {
job1();
Up(s); //nh thc P2
61
7/29/2019 Nguyen Ly Cac He Dieu Hanh 1283 (1)
62/145
}
P2:
while (TRUE) {
Down(s); // ch P1
job2();
}
Hnh 3.12 Cu trc chng trnh trong gii php semaphore
Nh c thc hin mt cc khng th phn chia, semaphore gii quyt c
vn tn hiu "nh thc" b tht lc. Tuy nhin, nu lp trnh vin v tnh t ccprimitive Down v Up sai v tr, th t trong chng trnh, th tin trnh c th b kha
vnh vin.
V d : while (TRUE) {
Down(s)
critical-section ();
Noncritical-section ();
}
tin trnh trn y qun gi Up(s), v kt qu l khi ra khi min gng n s
khng cho tin trnh khc vo min gng !
V th vic s dng ng cch semaphore ng b ha ph thuc hon ton
vo lp trnh vin v i hi lp trnh vin phi ht sc thn trng.
b). Monitors
Tip cn: c th d vit ng cc chng trnh ng b ha hn,
Hoare(1974) v Brinch & Hansen (1975) ngh mt c ch cao hn c cung
cp bi ngn ng lp trnh , l monitor. Monitor l mt cu trc c bit bao gm cc
th tc, cc bin v cu trc d liu c cc thuc tnh sau :
Cc bin v cu trc d liu bn trong monitor ch c th c thao tc bi cc
th tc nh ngha bn trong monitor . (encapsulation).
62
7/29/2019 Nguyen Ly Cac He Dieu Hanh 1283 (1)
63/145
Ti mt thi im, ch c mt tin trnh duy nht c hot ng bn trong mt
monitor (mutualexclusive).
Trong mt monitor, c th nh ngha cc bin iu kin v hai thao tc km
theo l Wait v Signal nh sau : gi c l bin iu kin c nh ngha trong
monitor:
Wait(c): chuyn trng thi tin trnh gi sang blocked , v t tin trnh ny vo
hng i trn bin iu kin c.
Signal(c): nu c mt tin trnh ang b kha trong hng i ca c, ti kch hot
tin trnh , v tin trnh gi s ri khi monitor.
Hnh 2.18 Monitor v cc bin iu kin
Ci t : trnh bin dch chu trch nhim thc hin vic truy xut c quyn
n d liu trong monitor. thc hin iu ny, mt semaphore nh phn thng
c s dng. Mi monitor c mt hng i ton cc lu cc tin trnh ang ch c
vo monitor, ngoi ra, mi bin iu kin c cng gn vi mt hng if(c) v hai thao
tc trn c nh ngha nh sau:
Wait(c) :
status(P)= blocked;
enter(P,f(c));
Signal(c) :
63
7/29/2019 Nguyen Ly Cac He Dieu Hanh 1283 (1)
64/145
if (f(c) != NULL){
exit(Q,f(c)); //Q l tin trnh ch trn c
statusQ) = ready;
enter(Q,ready-list);
}
S dng: Vi mi nhm ti nguyn cn chia s, c th nh ngha mt monitor
trong c t tt c cc thao tc trn ti nguyn ny vi mt s iu kin no .:
monitor
condition ;
;
procedure Action1();
{
} ....
procedure Actionn();
{
}
end monitor;
Hnh 3.14 Cu trc mt monitor
Cc tin trnh mun s dng ti nguyn chung ny ch c th thao tc thng quacc th tc bn trong monitor c gn kt vi ti nguyn:
while (TRUE) {
Noncritical-section ();
.Actioni; //critical-section();
Noncritical-section ();
}
64
7/29/2019 Nguyen Ly Cac He Dieu Hanh 1283 (1)
65/145
Hnh 3.15 Cu trc tin trnh Pitrong giiphp monitor
Vi monitor, vic truy xut c quyn c bo m bi trnh bin dch m
khng do lp trnh vin, do vy nguy c thc hin ng b ha sai gim rt nhiu. Tuy
nhin gii php monitor i hi phi c mt ngn ng lp trnh nh ngha khi nim
monitor, v cc ngn ng nh th cha c nhiu.
c). Trao i thng ip
Tip cn: gii php ny da trn c s trao i thng ip vi hai primitive
Send v Receive thc hin s ng b ha:
Send(destination, message): gi mt thng ip n mt tin trnh hay gi vo
hp th.
Receive(source,message): nhn mt thng ip th mt tin trnh hay t bt k
mt tin trnh no, tin trnh gi s ch nu khng c thng ip no nhn.
S dng: C nhiu cch thc thc hin vic truy xut c quyn bng c ch
trao i thng ip. y l mt m hnh n gin: mt tin trnh kim sot vic s
dng ti nguyn v nhiu tin trnh khc yu cu ti nguyn ny. Tin trnh c yu cu
ti nguyn s gi mt thng ip n tin trnh kim sot v sau chuy
Recommended