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

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


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

Tin quyt x

III KIN THC TON CN THIT


STT Ni dung kin thc Hiu Khi nim 1 2 Gii thut Ngn ng Pascal v C Mc yu cu Vn dng Chng minh Cng thc/ Cng thc/ nh l nh l x Vn dng Phng php 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/XUT 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
T

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. 2. 3. 4. 5. [Jean Bacon & Tim Harris], Operating Systems, Addison-Wesley, 2003. [Nguyn Hong Vit], Bi ging H iu Hnh, Khoa CNTT-H Cn Th, 1998 [Silberschatz, Galvin, Gagne], Operating System Concepts, John Wiley & Sons, 2003 [L Khc Nhin n, Hong Kim], Gio trnh Nhp mn h iu hnh, i hc Khoa hc T nhin, 2003. [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

User1

User2

... ...

UserN

compliler

text editor

database t

System and Application Programs Operating System

Hardware 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. 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 chtp 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. 0 H iu hnh Cng vic 1 Cng vic 2 Cng vic 3
512K

Cng vic 4

Hnh 0-3 Sp xp b nh cho h a chng 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 (handson 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 (LANLocal 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 (shortterm 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 (generalpurpose 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/Obound 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 createprocess, 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 F1 trn mn hnh. Khi n c to, n s ly d liu vo t qu trnh cha, tn ca tp tin F1 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, F1 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.
Trang 49

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

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 P1, P2 v P3 chia s mt hp th A. Qu trnh P1 gi mt thng ip ti A trong khi P2 v P3 thc thi vic nhn t A. Qu trnh no s nhn thng ip c gi bi P1? 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 P1 hoc P3 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 P1 P2 P3 Thi gian x l 24 3 3

Nu cc qu trnh n theo th t P1, P2, P3 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 P1, 24 mili giy cho qu trnh P2 v 27 mili giy cho qu trnh P3. 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 P2, P3, P1 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

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 P1 P2 P3 P4 Thi gian x l 6 8 7 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

16

24

Thi gian ch i l 3 mili giy cho qu trnh P1, 16 mili giy cho qu trnh P2, 9 mili giy cho qu trnh P3, v 0 mili giy cho qu trnh P4. 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 tn l chiu di ca chu k CPU th n v gi Tn+1 gi tr c on cho chu k CPU k tip. Th i vi , vi 0 1, nh ngha Tn+1 = tn + (1- ) Tn Cng thc ny nh ngha mt gi tr trung bnh s m. Gi tr ca tn cha thng tin mi nht; Tn 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 Tn+1=Tn v lch s gn y khng c nh hng (iu kin hin hnh c m bo l ngn); nu =1 th Tn+1=tn 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 T0 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 T0=10. hiu hnh vi ca gi tr trung bnh dng m, chng ta c th m rng cng thc cho Tn+1 bng cch thay th Tn tm Tn+1= tn+(1-) tn-1++(1-)j tn-j++(1-)n - 1T0 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 P1 P2 P3 P4 Thi gian n 0 1 2 3 Thi gian x l 8 4 9 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 0 1 5 P3 10 17 26

Qu trnh P1 c bt u ti thi im 0, v n l qu trnh duy nht trong hng i. Qu trnh P2 n ti thi im 1. Thi gian cn li cho P1 (7 mili giy) l ln hn thi gian c yu cu bi qu trnh P2 (4 mili giy) v th qu trnh P1 b trng dng CPU v qu trnh P2 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 P1, P2,, P5 vi chiu di thi gian chu k CPU c tnh bng mili giy: Qu trnh P1 P2 P3 P4 P5 Thi gian x l 10 1 2 1 5 u tin 3 1 4 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 0 1 6 P1 16 P3 18 P4 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 P1 P2 P3 Thi gian x l 24 3 3

Nu s dng nh mc thi gian l 4 mili giy th qu trnh P1 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 P2. V P2 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 P3. Mt khi mi qu trnh nhn 1 nh mc thi gian th CPU tr v qu trnh P1 cho nh mc thi gian tip theo. Thi biu RR l:

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 nhnni 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 P1 P2 P3 P4 P5 Thi gian x l 10 29 3 7 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 P1, 32 mili giy cho qu trnh P2, 39 giy cho qu trnh P3, 42 giy cho qu trnh P4 v 49 mili giy cho qu trnh P5. 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 0 3 10 20 P5 32 P2 61

Thi gian ch i l 10 mili giy cho qu trnh P1, 32 mili giy cho qu trnh P2, 0 mili giy cho qu trnh P3, 3 mili giy cho qu trnh P4, v 20 giy cho qu trnh P5. 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 0 10 P2 20 P3 P4 23 30 P5 40 P2 50 P5 P2 52 61

Thi gian ch i l 0 mili giy cho qu trnh P1, 32 mili giy cho qu trnh P2, 20 mili giy cho qu trnh P3, 23 mili giy cho qu trnh P4, v 40 mili giy cho qu trnh P5. 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 (queueingnetwork 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=xW 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 UIthreads. 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 callsAPC). 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) ; nextConsumed = buffer[out];
Bin son: Th.s Nguyn Ph Trng - 09/2005

/*khng lm g c*/
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: register1 = counter register1 = register1 + 1 counter = register1 y register1 l mt thanh ghi CPU cc b. Tng t, cu lnh counter-- c ci t nh sau: register2 = counter register2 = register2 - 1 counter = register2 y register2 l thanh ghi CPU cc b. D l register1 v register2 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: T0: producer T1: producer T2: consumer T3: consumer T4: producer T5: consumer thc thi thc thi thc thi thc thi thc thi thc thi register1 = counter {register1 = 5} register1 = register1 + 1 {register1 = 6} register2 = counter {register2 = 5} register2 = register2 1 {register2 = 4} counter = register1 {counter = 6} counter = register2 {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 T4 v T5, 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 (P0, P1, ,Pn-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 {

entry section
critical section

exit section
remainder section } while (1);
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 Pi 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 Pi 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 {

while (turn!=i) ;
critical section

turn = j;
remainder section } while (1);
Hnh 0-2-Cu trc ca qu trnh Pi 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
V.1.1

Gii php ch i bn
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 P0 v P1. thun li, khi trnh by Pi, chng ta dng Pj 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 Pi c php thc thi trong vng tng trc ca n. Cu trc ca qu trnh Pi 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 P1 sn sng i vo vng tng trc ca n th P1 khng th i vo vng tng trc thm ch khi P0 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 Pi sn sng i vo vng tng trc. Cu trc ca qu trnh Pi c hin th trong hnh V.-3 di y: do{

flag[i] = true; while (flag[j]);


critical section

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

Trong gii thut ny, qu trnh Pi trc tin thit lp flag[i] ti true, hin th rng n sn sng i vo min tng trc. Sau , Pi kim tra rng qu trnh qu trnh Pj cng khng sn sng i vo min tng trc ca n. Nu Pj sn sng th Pi s ch cho ti khi Pj 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, Pi s i vo min tng trc. Thot ra khi min tng trc, Pi 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: T0: P0 thit lp flag[0] = true; T1: P1 thit lp flag[1] = true; By gi P0 v P1 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 T0 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 Pi 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 Pi trong gii thut 3

i vo min tng trc, qu trnh Pi 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 Pi 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 P0 v P1 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-Pj phi c thc thi thnh cng cu lnh while, ngc li Pi 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 Pj 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 Pi 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 Pj khng sn sng i vo min tng trc th flag[j] == false v Pi c th i vo min tng trc ca n. Nu Pj 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 Pi s i vo min tng trc. Nu turn ==j th Pj s i vo min tng trc. Tuy nhin, mt khi Pj 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 Pi i vo min tng trc ca n. Nu Pj t li flag[j] ti true, n cng phi t turn ti i. Do , v Pi khng thay i gi tr ca bin turn trong khi thc thi cu lnh while, nn Pi s i vo min tng trc (tin trnh) sau khi nhiu nht ch Pj 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 Pi v Pj nhn cng mt s v nu (i < j) th Pi 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(a0,,an-1) l s k ai vi i = 0,,n-1 Cu trc ca qu trnh Pi 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 Pi trong gii thut Bakery

Kt qu c cho ny th hin rng loi tr h tng c tun theo. Tht vy, xt Pi trong vng tng trc ca n v Pk c gng i vo vng tng trc Pk. Khi qu trnh Pk thc thi cu lnh while th hai cho j==i, nhn thy rng number[ i ] != 0 (number[ i ], i ) < (number[k], k).
Trang 88

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

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 Pi ri khi vng tng trc Pi. 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 Pi 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 Pi 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 Pi 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 int busy; // 1 nu min tng trc ang b chim blocked; // m s lng qu trnh ang b kho
Trang 91

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

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 Pi 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: P1 vi cu lnh S1 v P2 vi cu lnh S2. Gi s chng ta yu cu rng S2 c thc thi ch sau khi S1 hon thnh. Chng ta c th hon thnh c ch ny mt cch d dng bng cch P1 v P2 chia s mt semaphore chung synch, c khi to 0 v bng cch chn cc cu lnh: S1; signal(sync); vo qu trnh P1 v cc cu lnh: wait(synch); S2; vo trong qu trnh P2. V synch c khi to 0. P2 s thc thi S2 ch sau khi P1 np signal(synch) m sau l S1;

.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 P0 v P1, mi truy xut hai semaphore, S v Q, c t gi tr 1. P0 wait(S); wait(Q); . . signal(S); Signal(Q); P1 wait(Q); wait(S); . . signal(Q); signal(S);

Gi s rng P0 thc thi wait(S) v sau P1 thc thi wait(Q). Khi P0 thc thi wait(Q), n phi ch cho n khi P1 thc thi signal(Q). Tng t, khi P1 thc thi wait(S), n phi ch cho ti khi P0 thc thi signal(S). V cc thao tc signal ny khng th c thc thi nn P0 v P1 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 Pi ang gi a t v qu trnh Pj ang gi my in. Nu Pi yu cu my in v Pj 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 {P0, P1,,Pn} ang ch m trong P0 ang ch mt ti nguyn c gi bi P1, P1 ang ch ti nguyn ang gi bi P2,,Pn-1 ang ch ti nguyn ang c gi bi qu trnh P0. 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 = {P1, P2,,Pn} l tp hp cc qu trnh hot ng trong h thng, v R = {R1, R2, ..., Rm} l tp hp cha tt c cc loi ti nguyn trong h thng. Mt cnh c hng t qu trnh Pi ti loi ti nguyn Rj c k hiu Pi Rj; n biu th rng qu trnh Pi yu cu loi ti nguyn Rj v hin ang ch loi ti nguyn . Mt cnh c hng t loi ti nguyn Rj ti qu trnh Pi c hin th bi Rj Pi; n hin th rng th hin ca loi ti nguyn Rj c cp pht ti qu trnh Pi. Mt cnh c hng Pi Rj c gi l cnh yu cu; mt cnh c hng Rj Pi c gi l cnh gn. Bng hnh tng, chng ta hin th mi qu trnh Pi l mt hnh trn, v mi loi ti nguyn Rj l hnh ch nht. V loi ti nguyn Rj 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 Rj, tri li mt cnh gn cng phi gn ti mt trong cc du chm trong hnh vung. Khi qu trnh Pi yu cu mt th hin ca loi ti nguyn Rj, 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 = {P1, P2, P3} o R = {R1, R2, R3, R4} o E = {P1R1, P2 R3, R1 P2, R2P2, R3P3} Cc th hin ti nguyn o Mt th hin ca ti nguyn loi R1 o Hai th hin ca ti nguyn loi R2 o Mt th hin ca ti nguyn loi R3 o Mt th hin ca ti nguyn loi R4 Trng thi qu trnh o Qu trnh P1 ang gi mt th hin ca loi ti nguyn R2 v ang ch mt th hin ca loi ti nguyn R1. o Qu trnh P2 ang gi mt th hin ca loi ti nguyn R1 v R2 v ang ch mt th hin ca loi ti nguyn R3. o Qu trnh P3 ang gi mt th hin ca R3 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 P3 yu cu mt th hin ca loi ti nguyn R2. V khng c th hin ti nguyn hin c, mt cnh yu cu P3 R2 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

P1 R1 P2 R3 P3 R2 P1 P2 R3 P3 R2 P2

Hnh 0-2 th cp pht ti nguyn vi deadlock

Qu trnh P1, P2, v P3 b deadlock. Qu trnh P3 ang ch ti nguyn R3, hin c gi bi qu trnh P2. Hay ni cch khc, qu trnh P3 ang ch qu trnh P1 hay P2 gii phng ti nguyn R2. Ngoi ra, qu trnh P1 ang ch qu trnh P2 gii phng ti nguyn R1. 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 P1 R1 P3 R2 P1

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 P4 c th gii phng th hin ca loi ti nguyn R2. Ti nguyn c th c cp pht ti P3 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 = {R1, R2, , Rm} 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 Ri. Sau , mt qu trnh c th yu cu cc th hin ca loi ti nguyn Rj nu v ch nu F(Rj) > F(Ri). 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 Rj, n gii phng bt c ti nguyn Ri sao cho F(Ri) F(Rj). 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 {P0, P1, , Pn}, y Pi ang ch mt ti nguyn Ri, m Ri c gi bi qu trnh Pi+1. V sau qu trnh Pi+1 ang gi ti nguyn Ri trong khi yu cu ti nguyn Ri+1, nn chng ta c F(Ri) < F(Ri+1) cho tt c i. Nhng iu kin ny c ngha l F(R0) < F(R1) < < F(Rn) < F(R0). Bng qui tc bt cu F(R0) < F(R0), 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 <P1, P2, , Pn> 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 Pi, cc ti nguyn m Pi yu cu vn c th c tho mn bi ti nguyn hin c cng vi cc ti nguyn c gi bi tt c Pj, vi j<i. Trong trng hp ny, nu nhng ti nguyn m qu trnh Pi yu cu khng sn dng tc th th Pi c th ch cho n khi tt c Pj hon thnh. Khi chng hon thnh, Pi 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 Pi kt thc, Pi+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: P0, P1, P2. Qu trnh P0 yu cu 10 bng t, qu trnh P1 c th cn 4 v qu trnh P2 c th cn ti 9 bng t. Gi s rng ti thi im t0, qu trnh P0 gi 5 bng t, qu trnh P1 gi 2 v qu trnh P2 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 t0, h thng trng thi an ton. Th t <P1,P0, P2> tho iu kin an ton v qu trnh P1 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 P0 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 P2 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 t1, qu trnh P2 yu cu v c cp 1 bng t na. H thng khng cn trong trng thi an ton. Ti im ny, ch qu trnh P1 c th c cp tt c bng t ca n. Khi n tr li chng, ch qu trnh P1 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 P0 c cp pht 5 bng t, nhng c ti a 10, qu trnh P0 phi ch. Tng t, qu trnh P2 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 P2 cho 1 bng t na. Nu chng ta lm cho P2 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 Pi Rj hin th qu trnh Pi c th yu cu ti nguyn Rj 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 Pi yu cu ti nguyn Rj, cnh thnh cu Pi Rj chuyn ti cnh yu cu. Tng t, khi mt ti nguyn Rj c gii phng bi Pi, cnh gn Rj Pi c chuyn tr li thnh cnh thnh cu Pi Rj. Chng ta ch rng cc ti nguyn phi c yu cu trc trong h thng. Ngha l, trc khi Pi 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 Pi Rj c thm ti th ch nu tt c cc cnh gn lin vi qu trnh Pi l cc cnh thnh cu. Gi s rng Pi yu cu ti nguyn Rj. Yu cu c th c gn ch nu chuyn cnh yu cu Pi Rj ti cnh gn RjPi 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 n2 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 Pi s phi ch yu cu ca n c tho. minh ho gii thut ny, chng ta xt th cp pht ti nguyn ca hnh VI5. Gi s rng P2 yu cu R2. Mc d R2 hin rnh nhng chng ta khng th cp pht n ti P2 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 P1 yu cu R2 v P2 yu cu R1 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 Rj 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 Pi c th yu cu nhiu nht k th hin ca loi ti nguyn Rj. 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 Pi hin c cp k th hin ca loi ti nguyn Rj.

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 Pi c th cn thm k th hin ca loi ti nguyn Rj 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 Allocationi v Needi tng ng. Vector Allocationi xc nh ti nguyn hin c cp pht ti qu trnh Pi; vector Needi xc nh cc ti nguyn b sung m qu trnh Pi 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 mxn2 thao tc quyt nh trng thi l an ton hay khng.

VII.3.2 Gii thut yu cu ti nguyn


Cho Requesti l vector yu cu cho qu trnh Pi. Nu Requesti[j] = k, th qu trnh Pi mun k th hin ca loi ti nguyn Rj. Khi mt yu cu ti nguyn c thc hin bi qu trnh Pi, th cc hot ng sau c thc hin: 1) Nu Requesti Needi, 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 Requesti Available, di chuyn ti bc 3. Ngc li, Pi phi ch v ti nguyn khng sn c. 3) Gi s h thng cp pht cc ti nguyn c yu cu ti qu trnh Pi bng cch thay i trng thi sau: Available := Available Requesti; Allocationi := Allocationi + Requesti; Needi := Needi Requesti; Nu kt qu trng thi cp pht ti nguyn l an ton, th giao dch c hon thnh v qu trnh Pi c cp pht ti nguyn ca n. Tuy nhin, nu trng thi mi l khng an ton, th Pi phi ch Requesti 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 P0 ti P4, 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 T0 trng thi hin ti ca h thng nh sau: Allocation A B 0 1 2 0 3 0 2 1 0 0 C 0 0 2 1 2 Max A 7 3 9 2 4 B 5 2 0 2 3 C 3 2 2 2 3 Available A B 3 3 C 2

P0 P1 P2 P3 P4

Ni dung ma trn Need c nh ngha l Max-Allocation v l Need A 7 1 6 0 4 B 4 2 0 1 3 C 3 2 2 1 1

P0 P1 P2 P3 P4

Chng ta khng nh rng h thng hin trong trng thi an ton. Tht vy, th t <P1, P3, P4, P2, P0> tha tiu chun an ton. Gi s by gi P1 yu cu thm mt th hin loi A v hai th hin loi C, v th Request1 = (1, 0, 2). quyt nh yu cu ny c th c cp tc th hay khng, trc tin chng ta phi kim tra Request1 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 A B 0 1 3 0 3 0 2 1 0 0 C 0 2 2 1 2 Max A 7 0 6 0 4 B 4 2 0 1 3 C 3 0 0 1 1 Available A B 2 3 C 0

P0 P1 P2 P3 P4

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 <P1, P3, P4, P0, P2> tha yu cu an ton. Do , chng ta c th cp lp tc yu cu ca qu trnh P1. Tuy nhin, chng ta cng thy rng, khi h thng trong trng thi ny, mt yu cu (3, 3, 0) bi P4 khng th c gn v cc ti nguyn l khng sn dng. Mt yu cu cho (0, 2, 0) bi P0 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 Pi ti Pj trong th ch hin th rng qu trnh Pi ang ch mt qu trnh Pj gii phng ti nguyn m Pi cn. Cnh Pi Pj tn ti trong th ch nu v ch nu th cp pht ti nguyn tng ng cha hai cnh Pi Rq v Rq Pj i vi mt s ti nguyn Rq. 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 n2 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 Pi ang yu cu k th hin na ca loi ti nguyn Rj. 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 Allocationi v Requesti 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 Allocationi 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 Pi b deadlock. Gii thut ny yu cu phc tp mxn2 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 Pi (trong bc 3) ngay sau khi chng ta xc nh rng Requesti Work (trong bc 2b). Chng ta bit rng Pi hin ti khng lin quan deadlock (v Requesti Work). Do , chng ta lc quan v khng nh rng Pi 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 P0 n P4 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 T0, 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

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 <P0, P2, P3, P1, P4> s dn n trong Finish[i] = true cho tt c i. By gi gi s rng qu trnh P2 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 P0, 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 P1, P2, P3, P4.

P4

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 baremachine) 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 (memorymanagement 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 P1 ra v hon v P2 vo th thao tc nhp/xut c th c gng s dng b nh hin thuc v qu trnh P2. 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. 0xFFF

User process

Operating system

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

Partition 3 Partition 4

200K 600K

Partition 3 Partition 4

Partition 1 Operating system


a. S dng nhiu hng i

400K

Partition 1 Operating system

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

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

C B A OS A OS B A OS

C B

C B

C E

D OS OS

D OS

D 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.
A B C a) D E

B nh c 5 qu trnh v 3 l trng

11111000 11111111 11001111 11111000

b)

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. (Firstfit 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 (20) n 1 byte (220). 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 request 70 request 35 request 80 return A A A A 128 128 B B B 64 64 64 C C 256 256 128 128 512 512 512 512

1 Hole 3 3 3 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 return B return D return C

128 128

B 256

C C C

128 128 128 1024

512 512 512

4 4 3 1

64 D

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 2k bytes t do, b qun l b nh ch cn tm trong bng lit k l hng c kch thc 2k 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 2m, v kch thc trang l 2n 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 P m n di trang D 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 232. Nu mt khung l 4 KB, th h thng vi nhng mc t 4 bytes c th nh a ch cho 244 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 registerPTBR) 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 identifersASID) 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 lkhng 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 (232 ti 264). 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 (232/212). 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 P1 10 P2 10 di trang d 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 p1 l ch mc trong bng trang bn ngoi v p2 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 230 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 S 2 trang. Trang P 21 di D 9

y s ch r s phn, p l ch mc trong bng trang v d l di trong

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 221 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 (212). Trong trng hp ny, bng trang s cha ti 252 mc t. Nu chng ta dng c ch phn trang hai cp th cc bng bn trong c th l mt trang di cha 210 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 P1 42

Trang bn trong P2 10

di D 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 P1 32 Trang bn ngoi P2 10 Trang bn trong P3 10 di D 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 trangmi 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) 2) 3) 4) Cc bin ton cc; Ngn xp gi th tc, lu tr cc tham s v tr v cc a ch; Phn m ca mi th tc hay hm; 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 TableGDL). 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 13 G 1 P 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 10 P2 10 D 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 trong 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 c 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. 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. Ti nhng 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: mt phng tin khc gia tng cp a chng l 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 cp, cc phn khc nhau 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 VIII5). 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 SR 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 SR. 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 SR) 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 si = kch thc ca b nh o cho qu trnh pi ii. S = si iii. m = tng s khung trang c th s dng iv. Cp pht ai khung trang ti qu trnh pi: ai = (si / 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 pi 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

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

i.

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 WSSi, cho mi tin trnh trong h thng th c th xem: D = WSSi 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 WSSi 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.
Trang 201

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

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-ornothing). 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 lic 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 (DMAknowledgeable 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
Trang 252

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

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