You are on page 1of 153

BI 1

TNG QUAN V H IU HNH

Bi hc ny cung cp cho chng ta mt ci nhn tng qut v nhng nguyn l c bn ca h iu hnh. Chng ta bt u vi vic xem xt mc tiu v cc chc nng ca h iu ny, sau kho st cc dng khc nhau ca chng cng nh xem xt qu trnh pht trin qua tng giai on. Cc phn ny c trnh by thng qua cc ni dung nh sau: Khi nim v h iu hnh Phn loi h iu hnh Cu trc ca h iu hnh Lch s pht trin ca h iu hnh Bi hc ny gip chng ta hiu c h iu hnh l g, c cu trc ra sao. H iu hnh c phn loi theo nhng tiu chun no. Qu trnh pht trin ca h iu hnh ph thuc vo nhng yu t no. Bi hc ny i hi nhng kin thc v : kin trc my tnh.

I.KHI NIM V H IU HNH H iu hnh l mt chng trnh hay mt h chng trnh hot ng gia ngi s dng (user) v phn cng ca my tnh. Mc tiu ca h iu hnh l cung cp mt mi trng ngi s dng c th thi hnh cc chng trnh. N lm cho my tnh d s dng hn, thun li hn v hiu qu hn. H iu hnh l mt phn quan trng ca hu ht cc h thng my tnh. Mt h thng my tnh thng c chia lm bn phn chnh : phn cng, h iu hnh, cc chng trnh ng dng v ngi s dng. Phn cng bao gm CPU, b nh, cc thit b nhp xut, y l nhng ti nguyn ca my tnh. Chng trnh ng dng nh cc chng trnh dch, h thng c s d liu, cc tr chi, v cc chng trnh thng mi. Cc chng trnh ny s dng ti nguyn ca my tnh gii quyt cc yu cu ca ngi s dng. H iu hnh iu khin v phi hp vic s dng phn cng cho nhng ng dng khc nhau ca nhiu ngi s dng khc nhau. H iu hnh cung cp mt mi trng m cc chng trnh c th lm vic hu hiu trn .

Hnh 1.1 M hnh tru tng ca h thng my tnh H iu hnh c th c coi nh l b phn phi ti nguyn ca my tnh. Nhiu ti nguyn ca my tnh nh thi gian s dng CPU, vng b nh, vng lu tr tp tin, thit b nhp xut v.v c cc chng trnh yu cu gii quyt vn . H iu hnh hot ng nh mt b qun l cc ti nguyn v phn phi chng cho cc chng trnh v ngi s dng khi cn thit. Do c rt nhiu yu cu, h iu hnh phi gii quyt vn tranh chp v phi quyt nh cp pht ti nguyn cho nhng yu cu theo th t no hot ng ca my tnh l hiu qu nht. Mt h iu hnh cng c th c coi nh l mt chng trnh kim sot vic s dng my tnh, c bit l cc thit b nhp xut. Tuy nhin, nhn chung cha c nh ngha no l hon ho v h iu hnh. H iu hnh tn ti gii quyt cc vn s dng h thng my tnh. Mc tiu c bn ca n l gip cho vic thi hnh cc chng trnh d dng hn. Mc tiu th hai l h tr cho cc thao tc trn h thng my tnh hiu qu hn. Mc tiu ny c bit quan trng trong nhng h thng nhiu ngi dng v trong nhng h thng ln(phn cng + quy m s dng). Tuy nhin hai mc tiu ny cng c phn tng phn v vy l thuyt v h iu hnh tp trung vo vic ti u ha vic s dng ti nguyn ca my tnh.

II.PHN LOI H IU HNH

II.1 H thng x l theo l


B gim st thng trc : Khi mt cng vic chm dt, h thng s thc hin cng vic k tip m khng cn s can thip ca ngi lp trnh, do thi gian thc hin s mau hn. Mt chng trnh,

cn gi l b gim st thng trc c thit k gim st vic thc hin dy cc cng vic mt cch t ng, chng trnh ny lun lun thng tr trong b nh chnh. H iu hnh theo l thc hin cc cng vic ln lt theo nhng ch th nh trc. CPU v thao tc nhp xut : CPU thng hay nhn ri do tc lm vic ca cc thit b nhp xut (thng l thit b c) chm hn rt nhiu ln so vi cc thit b in t. Cho d l mt CPU chm nht, n cng nhanh hn rt nhiu ln so vi thit b nhp xut. Do phi c cc phng php ng b ha vic hot ng ca CPU v thao tc nhp xut. X l off_line : X l off_line l thay v CPU phi c trc tip t thit b nhp v xut ra thit b xut, h thng dng mt b lu tr trung gian. CPU ch thao thc vi b phn ny. Vic c hay xut u n v t b lu tr trung gian. Spooling : Spool (simultaneous peripheral operation on-line) l ng b ha cc thao tc bn ngoi on-line. C ch ny cho php x l ca CPU l on-line, s dng a lu cc d liu nhp cng nh xut.

II.2 H thng x l theo l a chng


Khi c nhiu cng vic cng truy xut ln thit b, vn lp lch cho cc cng vic l cn thit. Kha cnh quan trng nht trong vic lp lch l kh nng a chng. a chng (multiprogram) gia tng khai thc CPU bng cch t chc cc cng vic sao cho CPU lun lun phi trong tnh trng lm vic . tng nh sau : h iu hnh lu gi mt phn ca cc cng vic ni lu tr trong b nh . CPU s ln lt thc hin cc phn cng vic ny. Khi ang thc hin, nu c yu cu truy xut thit b th CPU khng ngh m thc hin tip cng vic th hai Vi h a chng h iu hnh ra quyt nh cho ngi s dng v vy, h iu hnh a chng rt tinh vi. H phi x l cc vn lp lch cho cng vic, lp lch cho b nh v cho c CPU na.

II.3 H thng chia x thi gian


H thng chia x thi gian l mt m rng logic ca h a chng. H thng ny cn c gi l h thng a nhim (multitasking). Nhiu cng vic cng c thc hin

thng qua c ch chuyn i ca CPU nh h a chng nhng thi gian mi ln chuyn i din ra rt nhanh. H thng chia x c pht trin cung cp vic s dng bn trong ca mt my tnh c gi tr hn. H iu hnh chia x thi gian dng lp lch CPU v a chng cung cp cho mi ngi s dng mt phn nh trong my tnh chia x. Mt chng trnh khi thi hnh c gi l mt tin trnh. Trong qu trnh thi hnh ca mt tin trnh, n phi thc hin cc thao tc nhp xut v trong khong thi gian CPU s thi hnh mt tin trnh khc. H iu hnh chia x cho php nhiu ngi s dng chia x my tnh mt cch ng b do thi gian chuyn i nhanh nn h c cm gic l cc tin trnh ang c thi hnh cng lc. H iu hnh chia x phc tp hn h iu hnh a chng. N phi c cc chc nng : qun tr v bo v b nh, s dng b nh o. N cng cung cp h thng tp tin truy xut on-line H iu hnh chia x l kiu ca cc h iu hnh hin i ngy nay.

II.4 H thng song song


Ngoi cc h thng ch c mt b x l cn c cc h thng c nhiu b x l cng chia x h thng ng truyn d liu, ng h, b nh v cc thit b ngoi vi. Cc b x l ny lin lc bn trong vi nhau . C nhiu nguyn nhn xy dng dng h thng ny. Vi s gia tng s lng b x l, cng vic c thc hin nhanh chng hn, Nhng khng phi theo ng t l thi gian, ngha l c n b x l khng c ngha l s thc hin nhanh hn n ln. H thng vi my nhiu b x l s ti u hn h thng c nhiu my c mt b x l v cc b x l chia x cc thit b ngoi vi, h thng lu tr, ngun v rt thun tin cho nhiu chng trnh cng lm vic trn cng mt tp hp d liu. Mt l do na l tin cy. Cc chc nng c x l trn nhiu b x l v s hng hc ca mt b x l s khng nh hng n ton b h thng. H thng a x l thng thng s dng cch a x l i xng, trong cch ny mi b x l chy vi mt bn sao ca h iu hnh, nhng bn sao ny lin lc vi nhau khi cn thit. Mt s h thng s dng a x l bt i xng, trong mi b x l c giao mt cng vic ring bit.. Mt b x l chnh kim sot ton b h thng, cc b x l khc thc hin theo lnh ca b x l chnh hoc theo nhng ch th c nh ngha trc. M hnh ny theo dng quan h ch t. B x l chnh s lp lch cho cc b x l khc. Mt v d v h thng x l i xng l version Encore ca UNIX cho my tnh Multimax. H thng ny c hng t b x l. u im ca n l nhiu tin trnh c th

thc hin cng lc . Mt h thng a x l cho php nhiu cng vic v ti nguyn c chia x t ng trong nhng b x l khc nhau. H thng a x l khng ng b thng xut hin trong nhng h thng ln, trong hu ht thi gian hot ng u dnh cho x l nhp xut.

II.5 H thng phn tn


H thng ny cng tng t nh h thng chia x thi gian nhng cc b x l khng chia x b nh v ng h, thay vo mi b x l c b nh cc b ring. Cc b x l thng tin vi nhau thng qua cc ng truyn thng nh nhng bus tc cao hay ng dy in thoi. Cc b x l trong h phn tn thng khc nhau v kch thc v chc nng. N c th bao gm my vi tnh, trm lm vic, my mini, v nhng h thng my ln. Cc b x l thng c tham kho vi nhiu tn khc nhau nh site, node, computer v.v.... ty thuc vo trng thi lm vic ca chng. Cc nguyn nhn phi xy dng h thng phn tn l: Chia x ti nguyn : Mt ngi s dng A c th s dng my in laser ca ngi s dng B v ngi s dng B c th truy xut nhng tp tin ca A. Tng qut, chia x ti nguyn trong h thng phn tn cung cp mt c ch chia x tp tin v tr xa, x l thng tin trong mt c s d liu phn tn, in n ti mt v tr xa, s dng nhng thit b xa thc hin cc thao tc. Tng tc tnh ton : Mt thao tc tnh ton c chia lm nhiu phn nh cng thc hin mt lc. H thng phn tn cho php phn chia vic tnh ton trn nhiu v tr khc nhau tnh ton song song. An ton : Nu mt v tr trong h thng phn tn b hng, cc v tr khc vn tip tc lm vic. Thng tin lin lc vi nhau :C nhiu lc , chng trnh cn chuyn i d liu t v tr ny sang v tr khc. V d trong h thng Windows, thng c s chia x v chuyn d liu gia cc ca s. Khi cc v tr c ni kt vi nhau trong mt h thng mng, vic trao i d liu din ra rt d. Ngi s dng c th chuyn tp tin hay cc E_mail cho nhau t cng v tr hay nhng v tr khc.

II.6 H thng x l thi gian thc


H thng x l thi gian thc c s dng khi c nhng i hi kht khe v thi gian trn cc thao tc ca b x l hoc dng d liu, n thng c dng iu khin cc thit b trong cc ng dng tn hin (dedicated). My tnh phn tch d liu v c th chnh cc iu khin gii quyt cho d liu nhp.

Mt h iu hnh x l thi gian thc phi c nh ngha tt, thi gian x l nhanh. H thng phi cho kt qu chnh xc trong khong thi gian b thc p nhanh nht. C hai h thng x l thi gian thc l h thng thi gian thc cng v h thng thi gian thc mm.. H thng thi gian thc cng l cng vic c hon tt ng lc. Lc d liu thng c lu trong b nh ngn hn hay trong ROM. Vic x l theo thi gian thc s xung t vi tt c h thng lit k trn. Dng th hai l h thng thi gian thc mm, mi cng vic c mt u tin ring v s c thi hnh theo u tin . C mt s lnh vc p dng hu hiu phng php ny l multimedia hay thc ti o.

BI 2:

CC M HNH X L NG HNH

Hu ht cc h iu hnh hin i u cho php ngi dng thi hnh nhiu cng vic ng thi trn cng mt my tnh. Nhu cu x l ng hnh (concurrency) ny xut pht t u, v h iu hnh cn phi t chc h tr nh th no cho cc mi trng a nhim (multitask) nh th ? l ni dung chng ta s tm hiu trong bi ny.

I.NHU CU X L NG HNH C 2 ng lc chnh khin cho cc h iu hnh hin i thng h tr mi trng a nhim (multitask) trong chp nhn nhiu tc v thc hin ng thi trn cng mt my tnh :

Tng hiu sut s dng CPU


Phn ln cc tc v (job) khi thi hnh u tri qua nhiu chu k x l (s dng CPU) v chu k nhp xut (s dng cc thit b nhp xut) xen k nh sau : CPU IO CPU IO CPU

Nu ch c 1 tin trnh duy nht trong h thng, th vo cc chu k IO ca tc v, CPU s hon ton nhn ri. tng tng cng s lng tc v trong h thng l tn dng CPU : nu tc v 1 x l IO, th c th s dng CPU thc hin tc v 2... CPU Tc v 1 CPU Tc v IO CPU IO IO CPU IO CPU

Tng tc x l
Mt s bi ton c bn cht x l song song nu c xy dng thnh nhiu module hot ng ng thi th s tit kim c thi gian x l. V d : Xt bi ton tnh gi tr biu thc kq = a*b + c*d . Nu tin hnh tnh ng thi (a*b) v (c*d) th thi gian x l s ngn hn l thc hin tun t.

Trong cc trng hp , cn c mt m hnh x l ng hnh thch hp. Trn my tnh c cu hnh nhiu CPU, h tr x l song song (multiprocessing) tht s, iu ny s gip tng hiu qu thi hnh ca ht thng ng k.

II. KHI NIM TIN TRNH(PROCESS) V M HNH A TIN TRNH (MULTIPROCESS) h tr s a chng, my tnh phi c kh nng thc hin nhiu tc v ng thi. Nhng vic iu khin nhiu hot ng song song cp phn cng l rt kh khn. V th cc nh thit k h iu hnh xut mt m hnh song song ga lp bng cch chuyn i b x l qua li gia cc chng trnh duy tr hot ng ca nhiu chng trnh cng lc, iu ny to cm gic c nhiu hot ng c thc hin ng thi. Trong m hnh ny, tt c cc phn mm trong h thng c t chc thnh mt s nhng tin trnh (process). Tin trnh l mt chng trnh ang x l, s hu mt con tr lnh, tp cc thanh ghi v cc bin. hon thnh tc v ca mnh, mt tin trnh c th cn n mt s ti nguyn nh CPU, b nh chnh, cc tp tin v thit b nhp/xut. Cn phn bit hai khi nim chng trnh v tin trnh. Mt chng trnh l mt thc th th ng, cha ng cc ch th iu khin my tnh tin hnh mt tc v no ; khi cho thc hin cc ch th ny, chng trnh chuyn thnh tin trnh, l mt thc th hot ng, vi con tr lnh xc nh ch th k tip s thi hnh, km theo tp cc ti nguyn phc v cho hot ng ca tin trnh. V mt nim, c th xem nh mi tin trnh s hu mt b x l o cho ring n, nhng trong thc t, ch c mt b x l tht s c chuyn i qua li gia cc tin trnh. S chuyn i nhanh chng ny c gi l s a chng (multiprogramming) . H iu hnh chu trch nhim s dng mt thut ton iu phi quyt nh thi im cn dng hot ng ca tin trnh ang x l phc v mt tin trnh khc, v la chn tin trnh tip theo s c phc v. B phn thc hin chc nng ny ca h iu hnh c gi l b iu phi (scheduler).

III. KHI NIM TIU TRNH (THREAD) V M HNH A TIU TRNH(MULTITHREAD) Trong hu ht cc h iu hnh, mi tin trnh c mt khng gian a ch v ch c mt dng x l. Tuy nhin, c nhiu tnh hung ngi s dng mong mun c nhiu dng x l cng chia s mt khng gian a ch, v cc dng x l ny hot ng song song tng t nh cc tin trnh phn bit (ngoi tr vic chia s khng gian a ch). V d : Mt server qun l tp tin thnh thong phi t kha ch cc thao tc truy xut a hon tt.Nu server c nhiu dng x l, h thng c th x l cc yu cu mi trong khi mt dng x l b kho. Nh vy vic thc hin chng trnh s c hiu qu hn. iu ny khng th t c bng cch to hai tin trnh server ring bit v cn phi chia s cng mt vng m, do vy bt buc phi chia s khng gian a ch. Chnh v cc tnh hung tng t, ngi ta cn c mt c ch x l mi cho php c nhiu dng x l trong cng mt tin trnh. Ngy nay c nhiu h iu hnh cung cp mt c ch nh th v gi l tiu trnh (threads). Nguyn l chung : Mt tiu trnh l mt n v x l c bn trong h thng . Mi tiu trnh x l tun t on code ca n, s hu mt con tr lnh, tp cc thanh ghi v mt vng nh stack ring. Cc tiu trnh chia s CPU vi nhau ging nh cch chia s gia cc tin trnh: mt tiu trnh x l trong khi cc tiu trnh khc ch n lt. Mt tiu trnh cng c th to lp cc tin trnh con, v nhn cc trng thi khc nhau nh mt tin trnh tht s. Mt tin trnh c th s hu nhiu tiu trnh.

Cc tin trnh to thnh nhng thc th c lp. Mi tin trnh c mt tp ti nguyn v mt mi trng ring (mt con tr lnh, mt Stack , cc thanh ghi v khng gian a ch ). Cc tin trnh hon ton c lp vi nhau, ch c th lin lc thng qua cc c ch thng tin gia cc tin trnh m h iu hnh cung cp. Ngc li, cc tiu trnh trong cng mt tin trnh li chia s mt khng gian a ch chung , iu ny c ngha l cc tiu trnh c th chia s cc bin ton cc ca tin trnh. Mt tiu trnh c th truy xut n c cc stack ca nhng tiu trnh khc trong cng tin trnh. Cu trc ny khng ngh mt c ch bo v no, v iu ny cng khng tht cn thit v cc tiu trnh trong cng mt tin trnh thuc v cng mt s hu ch to ra chng trong nh cho php chng hp tc vi nhau.

Cc tiu trnh trong cng mt tiu trnh Phn b thng tin lu tr

Cu trc m t tin trnh v tiu trnh Kernel thread v user thread Khi nim tiu trnh c th c ci t trong kernel ca H iu hnh, khi n v c s s dng CPU x l l tiu trnh, H iu hnh s phn phi CPU cho cc tiu trnh trong h thng. Tuy nhin i vi mt s h iu hnh, khi nim tiu trnh ch c h tr nh mt i tng ngi dng, cc thao tc tiu trnh c cung cp km theo do mt b th vin x l trong ch ngi dng khng c quyn (user mode). Lc ny H iu hnh s ch bit n khi nim tin trnh, do vy cn co c ch lin kt cc tiu trnh cng mt tin trnh vi tin trnh cha trong kernel_ i tng ny i lc c gi l LWP (lightweight process).

IV. TM TT Tin trnh l mt chng trnh ang hot ng. s dng hiu qu CPU, s a chng cn c a vo h thng S a chng c t chc bng cch lu tr nhiu tin trnh trong b nh ti mt thi im, v iu phi CPU qua li gia cc tin trnh trong h thng. M hnh a tiu trnh cho php mi tin trnh c th tin hnh nhiu dng x l ng thi trong cng mt khng gian a ch nhm thc hin tc v hiu qa hn trong mt s trng hp.

Cng c bi hc
Cc cu hi cn tr li c sau bi hc ny : 1. Ti sao cc h iu hnh hin i h tr mi trng a nhim ? 2. Phn bit multitask, multiprogramming v multiprocessing.

3. Khi nim tin trnh c xy dng nhm mc ch g ? 4. S khc bit, mi quan h gia tin trnh v tiu trnh ?

Bi tp
Bi 1. Nhiu h iu hnh khng cho php x l ng hnh. Tho lun v cc phc tp pht sinh khi h iu hnh cho php a nhim ? Bi 2. Tm mt s ng dng thch hp vi m hnh a tin trnh; v mt s ng dng thch hp vi m hnh a tiu trnh.

Bi 3:

QUN L TIN TRNH

Trong bi ny chng ta s tm hiu chc nng qun l tin trnh ca H iu hnh : lm th no phn chia CPU cho cc tin trnh ? Theo vt x l ca tin trnh ? V cc thao tc trn tin trnh ? I. T chc qun l tin trnh I.1. Cc trng thi ca tin trnh Trng thi ca tin trnh ti mt thi im c xc nh bi hot ng hin thi ca tin trnh ti thi im . Trong qu trnh sng, mt tin trnh thay i trng thi do nhiu nguyn nhn nh : phi ch mt s kin no xy ra, hay i mt thao tc nhp/xut hon tt, buc phi dng hot ng do ht thi gian x l Ti mt thi im, mt tin trnh c th nhn trong mt cc trng thi sau y : Mi to : tin trnh ang c to lp. Running : cc ch th ca tin trnh ang c x l. Blocked : tin trnh ch c cp pht mt ti nguyn, hay ch mt s kin xy ra . Ready : tin trnh ch c cp pht CPU x l. Kt thc : tin trnh hon tt x l.

Hnh 2.2 S chuyn trng thi gia cc tin trnh Ti mt thi im, ch c mt tin trnh c th nhn trng thi running trn mt b x l bt k. Trong khi , nhiu tin trnh c th trng thi blocked hay ready.

Cc cung chuyn tip trong s trng thi biu din su s chuyn trng thi c th xy ra trong cc iu kin sau : Tin trnh mi to c a vo h thng B iu phi cp pht cho tin trnh mt khong thi gian s dng CPU Tin trnh kt thc Tin trnh yu cu mt ti nguyn nhng cha c p ng v ti nguyn cha sn sng cp pht ti thi im ; hoc tin trnh phi ch mt s kin hay thao tc nhp/xut. B iu phi chn mt tin trnh khc cho x l . Ti nguyn m tin trnh yu cu tr nn sn sng cp pht ; hay s kin hoc thao tc nhp/xut tin trnh ang i hon tt. I.2. Ch x l ca tin trnh m bo h thng hot ng ng n, h iu hnh cn phi c bo v khi s xm phm ca cc tin trnh. Bn thn cc tin trnh v d liu cng cn c bo v trnh cc nh hng sai lc ln nhau. Mt cch tip cn gii quyt vn l phn bit hai ch x l cho cc tin trnh : ch khng c quyn v ch c quyn nh vo s tr gip ca c ch phn cng. Tp lnh ca CPU c phn chia thnh cc lnh c quyn v lnh khng c quyn. C ch phn cng ch cho php cc lnh c quyn c thc hin trong ch c quyn. Thng thng ch c h iu hnh hot ng trong ch c quyn, cc tin trnh ca ngi dng hot ng trong ch khng c quyn, khng thc hin c cc lnh c quyn c nguy c nh hng n h thng. Nh vy h iu hnh c bo v. Khi mt tin trnh ngi dng gi n mt li gi h thng, tin trnh ca h iu hnh x l li gi ny s hot ng trong ch c quyn, sau khi hon tt th tr quyn iu khin v cho tin trnh ngi dng trong ch khng c quyn.

Hnh v 2.3 Hai ch x l I.3. Cu trc d liu khi qun l tin trnh

H iu hnh qun l cc tin trnh trong h thng thng qua khi qun l tin trnh (process control block -PCB). PCB l mt vng nh lu tr cc thng tin m t cho tin trnh, vi cc thnh phn ch yu bao gm : nh danh ca tin trnh (1) : gip phn bit cc tin trnh Trng thi tin trnh (2): xc nh hot ng hin hnh ca tin trnh. Ng cnh ca tin trnh (3): m t cc ti nguyn tin trnh ang trong qu trnh, hoc phc v cho hot ng hin ti, hoc lm c s phc hi hot ng cho tin trnh, bao gm cc thng tin v: Trng thi CPU: bao gm ni dung cc thanh ghi, quan trng nht l con tr lnh IP lu tr a ch cu lnh k tip tin trnh s x l. Cc thng tin ny cn c lu tr khi xy ra mt ngt, nhm c th cho php phc hi hot ng ca tin trnh ng nh trc khi b ngt. B x l: dng cho my c cu hnh nhiu CPU, xc nh s hiu CPU m tin trnh ang s dng. B nh chnh: danh sch cc khi nh c cp cho tin trnh. Ti nguyn s dng: danh sch cc ti mguyn h thng m tin trnh ang s dng. Ti nguyn to lp: danh sch cc ti nguyn c tin trnh to lp. Thng tin giao tip (4): phn nh cc thng tin v quan h ca tin trnh vi cc tin trnh khc trong h thng : Tin trnh cha: tin trnh to lp tin trnh ny . Tin trnh con: cc tin trnh do tin trnh ny to lp . u tin : gip b iu phi c thng tin la chn tin trnh c cp CPU. Thng tin thng k (5): y l nhng thng tin thng k v hot ng ca tin trnh, nh thi gian s dng CPU,thi gian ch. Cc thng tin ny c th c ch cho cng vic nh gi tnh hnh h thng v d on cc tnh hung tng lai.

Hnh v 2.4 Khi m t tin trnh I.4. Thao tc trn tin trnh H iu hnh cung cp cc thao tc ch yu sau y trn mt tin trnh : to lp tin trnh (create) kt thc tin trnh (destroy) tm dng tin trnh (suspend) ti kch hot tin trnh (resume) thay i u tin tin trnh I.4.1. To lp tin trnh Trong qu trnh x l, mt tin trnh c th to lp nhiu tin trnh mi bng cch s dng mt li gi h thng tng ng. Tin trnh gi li gi h thng to tin trnh mi s c gi l tin trnh cha, tin trnh c to gi l tin trnh con. Mi tin trnh con n lt n li c th to cc tin trnh miqu trnh ny tip tc s to ra mt cy tin trnh.

Hnh v2.5 Mt cy tin trnh trong h thng UNIX Cc cng vic h iu hnh cn thc hin khi to lp tin trnh bao gm : nh danh cho tin trnh mi pht sinh a tin trnh vo danh sch qun l ca h thng xc nh u tin cho tin trnh to PCB cho tin trnh cp pht cc ti nguyn ban u cho tin trnh Khi mt tin trnh to lp mt tin trnh con, tin trnh con c th s c h iu hnh trc tip cp pht ti nguyn hoc c tin trnh cha cho tha hng mt s ti nguyn ban u. Khi mt tin trnh to tin trnh mi, tin trnh ban u c th x l theo mt trong hai kh nng sau : Tin trnh cha tip tc x l ng hnh vi tin trnh con. Tin trnh cha ch n khi mt tin trnh con no , hoc tt c cc tin trnh con kt thc x l. Cc h iu hnh khc nhau c th chn la cc ci t khc nhau thc hin thao tc to lp mt tin trnh. I.4.2. Kt thc tin trnh Mt tin trnh kt thc x l khi n hon tt ch th cui cng v s dng mt li gi h thng yu cu h iu hnh hy b n. i khi mt tin trnh c th yu cu h iu

hnh kt thc x l ca mt tin trnh khc. Khi mt tin trnh kt thc, h iu hnh thc hin cc cng vic : thu hi cc ti nguyn h thng cp pht cho tin trnh hy tin trnh khi tt c cc danh sch qun l ca h thng hy b PCB ca tin trnh Hu ht cc h iu hnh khng cho php cc tin trnh con tip tc tn ti nu tin trnh cha kt thc. Trong nhng h thng nh th, h iu hnh s t ng pht sinh mt lot cc thao tc kt thc tin trnh con. I.5. Cp pht ti nguyn cho tin trnh Khi c nhiu ngi s dng ng thi lm vic trong h thng, h iu hnh cn phi cp pht cc ti nguyn theo yu cu cho mi ngi s dng. Do ti nguyn h thng thng rt gii hn v c khi khng th chia s, nn him khi tt c cc yu cu ti nguyn ng thi u c tha mn. V th cn phi nghin cu mt phng php chia s mt s ti nguyn hu hn gia nhiu tin trnh ngi dng ng thi. H iu hnh qun l nhiu loi ti nguyn khc nhau (CPU, b nh chnh, cc thit b ngoi vi ), vi mi loi cn c mt c ch cp pht v cc chin lc cp pht hiu qa. Mi ti nguyn c biu din thng qua mt cu trc d liu, khc nhau v chi tit cho tng loi ti nguyn, nhng c bn cha ng cc thng tin sau : nh danh ti nguyn Trng thi ti nguyn : y l cc thng tin m t chi tit trng thi ti nguyn : phn no ca ti nguyn cp pht cho tin trnh, phn no cn c th s dng ? Hng i trn mt ti nguyn : danh sch cc tin trnh ang ch c cp pht ti nguyn tng ng. B cp pht : l on code m nhim vic cp pht mt ti nguyn c th. Mt s ti nguyn i hi cc gii thut c bit (nh CPU, b nh chnh, h thng tp tin), trong khi nhng ti nguyn khc (nh cc thit b nhp/xut) c th cn cc gii thut cp pht v gii phng tng qut hn.

Hnh 2.6 Khi qun l ti nguyn Cc mc tiu ca k thut cp pht : Bo m mt s lng hp l cc tin trnh truy xut ng thi n cc ti nguyn khng chia s c. Cp pht ti nguyn cho tin trnh c yu cu trong mt khong thi gian tr hon c th chp nhn c. Ti u ha s s dng ti nguyn. c th tha mn cc mc tiu k trn, cn phi gii quyt cc vn ny sinh khi c nhiu tin trnh ng thi yu cu mt ti nguyn khng th chia s.

II. iu phi tin trnh Trong mi trng a chng, c th xy ra tnh hung nhiu tin trnh ng thi sn sng x l. Mc tiu ca cc h phn chia thi gian (time-sharing) l chuyn i CPU qua li gia cc tin trnh mt cch thng xuyn nhiu ngi s dng c th tng tc cng lc vi tng chng trnh trong qu trnh x l. thc hin c mc tiu ny, h iu hnh phi la chn tin trnh c x l tip theo. B iu phi s s dng mt gii thut iu phi thch hp thc hin nhim v ny. Mt thnh phn khc ca h iu hnh cng tim n trong cng tc iu phi l b phn phi (dispatcher). B phn phi s chu trch nhim chuyn i ng cnh v trao CPU cho tin trnh c chn bi b iu phi x l. II.1. Gii thiu II.1.1. Mc tiu iu phi

B iu phi khng cung cp c ch, m a ra cc quyt nh. Cc h iu hnh xy dng nhiu chin lc khc nhau thc hin vic iu phi, nhng tu chung cn t c cc mc tiu sau : a) S cng bng ( Fairness) : Cc tin trnh chia s CPU mt cch cng bng, khng c tin trnh no phi ch i v hn c cp pht CPU b) Tnh hiu qa (Efficiency) : H thng phi tn dng c CPU 100% thi gian. c) Thi gian p ng hp l (Response time) : Cc tiu ho thi gian hi p cho cc tng tc ca ngi s dng d) Thi gian lu li trong h thng ( Turnaround Time) : Cc tiu ha thi gian hon tt cc tc v x l theo l. e) Thng lng ti a (Throughput ) : Cc i ha s cng vic c x l trong mt n v thi gian. Tuy nhin thng khng th tha mn tt c cc mc tiu k trn v bn thn chng c s mu thun vi nhau m ch c th dung ha chng mc no . II.1.2. Cc c im ca tin trnh iu phi hot ng ca cc tin trnh l mt vn rt phc tp, i hi h iu hnh khi gii quyt phi xem xt nhiu yu t khc nhau c th t c nhng mc tiu ra. Mt s c tnh ca tin trnh cn c quan tm nh tiu chun iu phi : a) Tnh hng xut / nhp ca tin trnh ( I/O-boundedness): Khi mt tin trnh nhn c CPU, ch yu n ch s dng CPU n khi pht sinh mt yu cu nhp xut ? Hot ng ca cc tin trnh nh th thng bao gm nhiu lt s dng CPU , mi lt trong mt thi gian kh ngn. b) Tnh hng x l ca tin trnh ( CPU-boundedness): Khi mt tin trnh nhn c CPU, n c khuynh hng s dng CPU n khi ht thi gian dnh cho n ? Hot ng ca cc tin trnh nh th thng bao gm mt s t lt s dng CPU , nhng mi lt trong mt thi gian di.

c) Tin trnh tng tc hay x l theo l : Ngi s dng theo kiu tng tc thng yu cu c hi p tc thi i vi cc yu cu ca h, trong khi cc tin trnh ca tc v c x l theo l ni chung c th tr hon trong mt thi gian chp nhn c. d) u tin ca tin trnh : Cc tin trnh c th c phn cp theo mt s tiu chun nh gi no , mt cch hp l, cc tin trnh quan trng hn ( c u tin cao hn) cn c u tin hn. e) Thi gian s dng CPU ca tin trnh : Mt s quan im u tin chn nhng tin trnh s dng CPU nhiu thi gian nht v hy vng chng s cn t thi gian nht hon tt v ri khi h thng . Tuy nhin cng c quan im cho rng cc tin trnh nhn c CPU trong t thi gian l nhng tin trnh phi ch lu nht, do vy u tin chn chng. f) Thi gian cn li tin trnh cn hon tt : C th gim thiu thi gian ch i trung bnh ca cc tin trnh bng cch cho cc tin trnh cn t thi gian nht hon tt c thc hin trc. Tuy nhin ng tic l rt him khi bit c tin trnh cn bao nhiu thi gian na kt thc x l. II.1.3. iu phi khng c quyn v iu phi c quyn (preemptive/nopreemptive) Thut ton iu phi cn xem xt v quyt nh thi im chuyn i CPU gia cc tin trnh. H iu hnh c th thc hin c ch iu phi theo nguyn l c quyn hoc khng c quyn. iu phi c quyn : Nguyn l iu phi c quyn cho php mt tin trnh khi nhn c CPU s c quyn c chim CPU n khi hon tt x l hoc t nguyn gii phng CPU. Khi quyt nh iu phi CPU s xy ra trong cc tnh hung sau: Khi tin trnh chuyn t trng thi ang x l(running) sang trng thi b kha blocked ( v d ch mt thao tc nhp xut hay ch mt tin trnh con kt thc). Khi tin trnh kt thc. Cc gii thut c quyn thng n gin v d ci t. Tuy nhin chng thng khng thch hp vi cc h thng tng qut nhiu ngi dng, v nu cho php mt tin trnh c quyn x l bao lu ty , c ngha l tin trnh ny c th gi CPU mt thi gian khng xc nh, c th ngn cn nhng tin trnh cn li trong h thng c mt c hi x l. iu phi khng c quyn : Ngc vi nguyn l c quyn, iu phi theo nguyn l khng c quyn cho php tm dng hot ng ca mt tin trnh ang sn sng x l.

Khi mt tin trnh nhn c CPU, n vn c s dng CPU n khi hon tt hoc t nguyn gii phng CPU, nhng mt tin trnh khc c u tin c th dnh quyn s dng CPU ca tin trnh ban u. Nh vy l tin trnh c th b tm dng hot ng bt c lc no m khng c bo trc, tin trnh khc x l. Cc quyt nh iu phi xy ra khi : Khi tin trnh chuyn t trng thi ang x l (running) sang trng thi b kha blocked ( v d ch mt thao tc nhp xut hay ch mt tin trnh con kt thc). Khi tin trnh chuyn t trng thi ang x l (running) sang trng thi ready ( v d xy ra mt ngt). Khi tin trnh chuyn t trng thi ch (blocked) sang trng thi ready ( v d mt thao tc nhp/xut hon tt). Khi tin trnh kt thc. Cc thut ton iu phi theo nguyn tc khng c quyn ngn cn c tnh trng mt tin trnh c chim CPU, nhng vic tm dng mt tin trnh c th dn n cc mu thun trong truy xut, i hi phi s dng mt phng php ng b ha thch hp gii quyt. Trong cc h thng s dng nguyn l iu phi c quyn c th xy ra tnh trng cc tc v cn thi gian x l ngn phi ch tc v x l vi thi gian rt di hon tt! Nguyn l iu phi c quyn thng ch thch hp vi cc h x l theo l. i vi cc h thng tng tc(time sharing), cc h thi gian thc (real time),cn phi s dng nguyn l iu phi khng c quyn cc tin trnh quan trng c c hi hi p kp thi. Tuy nhin thc hin iu phi theo nguyn l khng c quyn i hi nhng c ch phc tp trong vic phn nh u tin, v pht sinh thm chi ph khi chuyn i CPU qua li gia cc tin trnh. II.2. T chc iu phi II.2.1. Cc danh sch s dng trong qu trnh iu phi. H iu hnh s dng hai loi danh sch thc hin iu phi cc tin trnh l danh sch sn sng (ready list) v danh sch ch i(waiting list). Khi mt tin trnh bt u i vo h thng, n c chn vo danh sch cc tc v (job list). Danh sch ny bao gm tt c cc tin trnh ca h thng. Nhng ch cc tin trnh ang thng tr trong b nh chnh v trng thi sn sng tip nhn CPU hot ng mi c a vo danh sch sn sng. B iu phi s chn mt tin trnh trong danh sch sn sng v cp CPU cho tin trnh . Tin trnh c cp CPU s thc hin x l, v c th chuyn sang trng thi ch khi

xy ra cc s kin nh i mt thao tc nhp/xut hon tt, yu cu ti nguyn cha c tha mn, c yu cu tm dng ...Khi tin trnh s c chuyn sang mt danh sch ch i. H iu hnh ch s dng mt danh sch sn sng cho ton h thng, nhng mi mt ti nguyn ( thit b ngoi vi ) c mt danh sch ch i ring bao gm cc tin trnh ang ch c cp pht ti nguyn .

Hnh 2.9 Cc danh sch iu phi Qu trnh x l ca mt tin trnh tri qua nhng chu k chuyn i qua li gia danh sch sn sng v danh sch ch i. S di y m t s iu phi cc tin trnh da trn cc danh sch ca h thng. Thot u tin trnh mi c t trong danh sch cc tin trnh sn sng (ready list), n s i trong danh sch ny cho n khi c chn cp pht CPU v bt u x l. Sau c th xy ra mt trong cc tnh hung sau : Tin trnh pht sinh mt yu cu mt ti nguyn m h thng cha th p ng, khi tin trnh s c chuyn sang danh sch cc tin trnh ang ch ti nguyn tng ng. Tin trnh c th b bt buc tm dng x l do mt ngt xy ra, khi tin trnh c a tr li vo danh sch sn sng ch c cp CPU cho lt tip theo.

Hnh 2.10 S chuyn i gia cc danh sch iu phi Trong trng hp u tin, tin trnh cui cng s chuyn t trng thi blocked sang trng thi ready v li c a tr vo danh sch sn sng. Tin trnh lp li chu k ny cho n khi hon tt tc v th c h thng hy b khi mi danh sch iu phi. II.2.2. Cc cp iu phi Thc ra cng vic iu phi c h iu hnh thc hin hai mc : iu phi tc v (job scheduling) v iu phi tin trnh ( process scheduling). a) iu phi tc v Quyt nh la chn tc v no c a vo h thng, v np nhng tin trnh ca tc v vo b nh chnh thc hin. Chc nng iu phi tc v quyt nh mc a chng ca h thng ( s lng tin trnh trong b nh chnh). Khi h thng to lp mt tin trnh, hay c mt tin trnh kt thc x l th chc nng iu phi tc v mi c kch hot. V mc a chng tng i n nh nn chc nng iu phi tc v c tn sut hot ng thp . h thng hot ng tt, b iu phi tc v cn bit tnh cht ca tin trnh l hng nhp xut (I/O bounded) hay hng x l ( CPU bounded). Mt tin trnh c gi l hng nhp xut nu n ch yu n ch s dng CPU thc hin cc thao tc nhp xut. Ngc li mt tin trnh c gi l hng x l nu n ch yu n ch s dng CPU thc hin cc thao tc tnh ton. cn bng hot ng ca CPU v cc thit b ngoi vi, b iu phi tc v nn la chn cc tin trnh np vo b nh sao cho h thng l s pha trn hp l gia cc tin trnh hng nhp xut v cc tin trnh hng x l b) iu phi tin trnh Chn mt tin trnh trng thi sn sng ( c np vo b nh chnh, v c ti nguyn hot ng ) v cp pht CPU cho tin trnh thc hin. B iu phi tin trnh c tn sut hot ng cao, sau mi ln xy ra ngt ( do ng h bo gi, do cc thit

b ngoi vi...), thng l 1 ln trong khong 100ms. Do vy nng cao hiu sut ca h thng, cn phi tng tc x l ca b iu phi tin trnh. Chc nng iu phi tin trnh l mt trong chc nng c bn, quan trng nht ca h iu hnh. Trong nhiu h iu hnh, c th khng c b iu phi tc v hoc tch bit rt t i vi b iu phi tin trnh. Mt vi h iu hnh li a ra mt cp iu phi trung gian kt hp c hai cp iu phi tc v v tin trnh

Hnh 2.11 Cp iu phi trung gian

II.3. Cc chin lc iu phi II.3.1. Chin lc FIFO Nguyn tc : CPU c cp pht cho tin trnh u tin trong danh sch sn sng c yu cu, l tin trnh c a vo h thng sm nht. y l thut ton iu phi theo nguyn tc c quyn. Mt khi CPU c cp pht cho tin trnh, CPU ch c tin trnh t nguyn gii phng khi kt thc x l hay khi c mt yu cu nhp/xut.

Hnh 2.12 iu phi FIFO V d : Tin trnh P1 Thi im vo RL 0 Thi gian x l 24

P2 P3

1 2

3 3

Th t cp pht CPU cho cc tin trnh l : P1


0

P2
24

P3
27 30

thi gian ch i c x l l 0 i vi P1, (24 -1) vi P2 v (24+3-2) vi P3. Thi gian ch trung bnh l ( 0+23+25)/3 = 16 milisecondes. Tho lun : Thi gian ch trung bnh khng t cc tiu, v bin i ng k i vi cc gi tr v thi gian yu cu x l v th t khc nhau ca cc tin trnh trong danh sch sn sng. C th xy ra hin tng tch ly thi gian ch, khi cc tt c cc tin trnh (c th c yu cu thi gian ngn) phi ch i mt tin trnh c yu cu thi gian di kt thc x l. Gii thut ny c bit khng ph hp vi cc h phn chia thi gian, trong cc h ny, cn cho php mi tin trnh c cp pht CPU u n trong tng khong thi gian. II.3.2. Chin lc phn phi xoay vng (Round Robin) Nguyn tc : Danh sch sn sng c x l nh mt danh sch vng, b iu phi ln lt cp pht cho tng tin trnh trong danh sch mt khong thi gian s dng CPU gi l quantum. y l mt gii thut iu phi khng c quyn : khi mt tin trnh s dng CPU n ht thi gian quantum dnh cho n, h iu hnh thu hi CPU v cp cho tin trnh k tip trong danh sch. Nu tin trnh b kha hay kt thc trc khi s dng ht thi gian quantum, h iu hnh cng lp tc cp pht CPU cho tin trnh khc. Khi tin trnh tiu th ht thi gian CPU dnh cho n m cha hon tt, tin trnh c a tr li vo cui danh sch sn sng i c cp CPU trong lt k tip. V d :

Hnh 2.13 iu phi Round Robin Tin Thi im vo Thi gian x

trnh P1 P2 P3

RL 0 1 2

l 24 3 3

Nu s dng quantum l 4 milisecondes, th t cp pht CPU s l : P1


0 4

P2
7

P3

P1
10

P1
14

P1
18

P1
22

P1
26 30

Thi gian ch i trung bnh s l (0+6+3+5)/3 = 4.66 milisecondes. Nu c n tin trh trong danh sch sn sng v s dng quantum q, th mi tin trnh s c cp pht CPU 1/n trong tng khong thi gian q. Mi tin trnh s khng phi i qu (n-1)q n v thi gian trc khi nhn c CPU cho lt k tip. Tho lun : Vn ng quan tm i vi gii thut RR l di ca quantum. Nu thi lng quantum qu b s pht sinh qu nhiu s chuyn i gia cc tin trnh v khin cho vic s dng CPU km hiu qa. Nhng nu s dng quantum qu ln s lm tng thi gian hi p v gim kh nng tng tc ca h thng. II.3.3. iu phi vi u tin Nguyn tc : Mi tin trnh c gn cho mt u tin tng ng, tin trnh c u tin cao nht s c chn cp pht CPU u tin. u tin c th c nh ngha ni ti hay nh vo cc yu t bn ngoi. u tin ni ti s dng cc i lng c th o lng tnh ton u tin ca tin trnh, v d cc gii hn thi gian, nhu cu b nh u tin cng c th c gn t bn ngoi da vo cc tiu chun do h iu hnh nh tm quan trng ca tin trnh, loi ngi s dng s hu tin trnh Gii thut iu phi vi u tin c th theo nguyn tc c quyn hay khng c quyn. Khi mt tin trnh c a vo danh sch cc tin trnh sn sng, u tin ca n c so snh vi u tin ca tin trnh hin hnh ang x l. Gii thut iu phi vi u tin v khng c quyn s thu hi CPU t tin trnh hin hnh cp pht cho tin trnh mi nu u tin ca tin trnh ny cao hn tin trnh hin hnh. Mt gii thut c quyn s ch n gin chn tin trnh mi vo danh sch sn sng, v tin trnh hin hnh vn tip tc x l ht thi gian dnh cho n. V d : ( u tin 1 > u tin 2> u tin 3) Tin Thi im vo u Thi gian

trnh P1 P2 P3

RL 0 1 2

tin 3 1 2

x l 24 3 3

S dng thut gii c quyn, th t cp pht CPU nh sau : P1


0

P2
24

P3
27 30

S dng thut gii khng c quyn, th t cp pht CPU nh sau : P1


0 1

P2
4

P3

P1
7 30

Tho lun : Tnh trng i CPU (starvation) l mt vn chnh yu ca cc gii thut s dng u tin. Cc gii thut ny c th cc tin trnh c u tin thp ch i CPU v hn ! ngn cn cc tin trnh c u tin cao chim dng CPU v thi hn, b iu phi s gim dn u tin ca cc tin trnh ny sau mi ngt ng h. Nu u tin ca tin trnh ny gim xung thp hn tin trnh c u tin cao th nh, s xy ra s chuyn i quyn s dng CPU.Qu trnh ny gi l s lo ha (aging) tin trnh. II.3.4. Chin lc cng vic ngn nht (Shortest-job-first SJF) Nguyn tc : y l mt trng hp c bit ca gii thut iu phi vi u tin. Trong gii thut ny, u tin p c gn cho mi tin trnh l nghch o ca thi gian x l t m tin trnh yu cu : p = 1/t. Khi CPU c t do, n s c cp pht cho tin trnh yu cu t thi gian nht kt thc- tin trnh ngn nht. Gii thut ny cng c th c quyn hay khng c quyn. S chn la xy ra khi c mt tin trnh mi c a vo danh sch sn sng trong khi mt tin trnh khc ang x l. Tin trnh mi c th s hu mt yu cu thi gian s dng CPU cho ln tip theo (CPU-burst) ngn hn thi gian cn li m tin trnh hin hnh cn x l. Gii thut SJF khng c quyn s dng hot ng ca tin trnh hin hnh, trong khi gii thut c quyn s cho php tin trnh hin hnh tip tc x l. V d : Tin trnh P1 Thi im vo RL 0 Thi gian x l 6

P2 P3 P4

1 2 3

8 4 2

S dng thut gii SJF c quyn, th t cp pht CPU nh sau: P1


0 6

P4
8

P3

P2
12 20

S dng thut gii SJF khng c quyn, th t cp pht CPU nh sau: P1


0 3

P4
5

P1
8

P3

P2
12 20

Tho lun : Gii thut ny cho php t c thi gian ch trung bnh cc tiu. Kh khn thc s ca gii thut SJF l khng th bit c thi gian yu cu x l cn li ca tin trnh ? Ch c th d on gi tr ny theo cch tip cn sau : gi tn l di ca thi gian x l ln th n, n+1 l gi tr d on cho ln x l tip theo. Vi hy vng gi tr d on s gn ging vi cc gi tr trc , c th s dng cng thc: n+1 = tn + (1- ) n Trong cng thc ny,tn cha ng thng tin gn nht ; n cha ng cc thng tin qu kh c tch ly. Tham s ( 0 1) kim sot trng s ca hin ti gn hay qu kh nh hng n cng thc d n. II.3.5. Chin lc iu phi vi nhiu mc u tin Nguyn tc : tng chnh ca gii thut l phn lp cc tin trnh ty theo u tin ca chng c cch thc iu phi thch hp cho tng nhm. Danh sch sn sng c phn tch thnh cc danh sch ring bit theo cp u tin, mi danh sch bao gm cc tin trnh c cng u tin v c p dng mt gii thut iu phi thch hp iu phi. Ngoi ra, cn c mt gii thut iu phi gia cc nhm, thng gii thut ny l gii thut khng c quyn v s dng u tin c nh.Mt tin trnh thuc v danh sch cp u tin i s ch c cp pht CPU khi cc danh sch cp u tin ln hn i trng.

Hnh 2.14 iu phi nhiu cp u tin Tho lun : Thng thng, mt tin trnh s c gn vnh vin vi mt danh sch cp u tin i khi n c a vo h thng. Cc tin trnh khng di chuyn gia cc danh sch. Cch t chc ny s lm gim chi ph iu phi, nhng li thiu linh ng v c th dn n tnh trng i CPU cho cc tin trnh thuc v nhng danh sch c u tin thp. Do vy c th xy dng gii thut iu phi nhiu cp u tin v xoay vng. Gii thut ny s chuyn dn mt tin trnh t danh sch c u tin cao xung danh sch c u tin thp hn sau mi ln s dng CPU. Cng vy, mt tin trnh ch qu lu trong cc danh sch c u tin thp cng c th c chuyn dn ln cc danh sch c u tin cao hn. Khi xy dng mt gii thut iu phi nhiu cp u tin v xoay vng cn quytnh cc tham s : S lng cc cp u tin Gii thut iu phi cho tng danh sch ng vi mt cp u tin. Phng php xc nh thi im di chuyn mt tin trnh ln danh sch c u tin cao hn. Phng php xc nh thi im di chuyn mt tin trnh ln danh sch c u tin thp hn. Phng php s dng xc nh mt tin trnh mi c a vo h thng s thuc danh sch ng vi tin no.

Hnh 2.15 iu phi Multilevel Feedback II.3.6. Chin lc iu phi X s (Lottery) Nguyn tc : tng chnh ca gii thut l pht hnh mt s v s v phn phi cho cc tin trnh trong h thng. Khi n thi im ra quyt nh iu phi, s tin hnh chn 1 v "trng gii", tin trnh no s hu v ny s c nhn CPU Tho lun : Gii thut Lottery cung cp mt gii php n gin nhng bo m tnh cng bng cho thut ton iu phi vi chi ph thp cp nht u tin cho cc tin trnh : III. Tm tt Trong sut chu trnh sng, tin trnh chuyn i qua li gia cc trng thi ready, running v blocked. B iu phi ca h iu hnh chu trch nhim p dng mt gai thut iu phi thch hp chn tin trnh thch hp c s dng CPU, v b phn phi s chuyn giao CPU cho tin trnh ny. Cc gii thut iu phi thng dng : FIFO, RoundRobin, iu phi vi u tin, SJF, Multilevel Feedback

Cu hi cng c bi hc
Cc cu hi cn tr li c sau bi hc ny :

1. Thng tin lu tr trong PCB v TCB ? 2. T chc iu phi tin trnh ? 3. Phn tch u, khuyt ca cc chin lc iu phi

Bi tp
Bi 1. Xt tp cc tin trnh sau (vi thi gian yu cu CPU v u tin km theo) : Tin trnh P1 P2 P3 P4 P5 Thi im vo RL 0 1 2 3 4 Thi gian CPU 10 1 2 1 5 u tin 3 1 3 4 2

Gi s cc tin trnh cng c a vo h thng ti thi im 0 a)Cho bit kt qu iu phi hot ng ca cc tin trnh trn theo thut ton FIFO; SJF; iu phi theo u tin c quyn ( u tin 1 > 2 > ...); v RR (quantum=2). b)Cho bit thi gian lu li trong h thng (turnaround time) ca tng tin trnh trong tng thut ton iu phi cu a. c)Cho bit thi gian ch trong h thng (waiting time) ca tng tin trnh trong tng thut ton iu phi cu a. d)Thut ton iu phi no trong cc thut ton cu a cho thi gian ch trung bnh l cc tiu ? Bi 2. Gi s c cc tin trnh sau trong h thng : Tin trnh P1 P2 P3 Thi im vo RL 0.0 0.4 1.0 Thi gian CPU 8 4 1

S dng nguyn tc iu phi c quyn v cc thng tin c c ti thi im ra quyt nh tr li cc cu hi sau y : a)Cho bit thi gian lu li trung bnh trong h thng (turnaround time) ca cc tin trnh trong thut ton iu phi FIFO. b)Cho bit thi gian lu li trung bnh trong h thng (turnaround time) ca cc tin trnh trong thut ton iu phi SJF. c)Thut ton SJF d nh ci tin s thc hin ca h thng , nhng lu chng ta phi chn iu phi P1 ti thi im 0 v khng bit rng s c hai tin trnh ngn hn vo h thng sau . Th tnh thi gian lu li trung bnh trong thng nu CPU nhn ri trong 1 n v thi gian u tin v sau s dng SJF iu phi. Lu P1 v P2 s phi ch trong sut thi gian nhn ri ny, do vy thi gian ch ca chng tng ln. Thut ton iu phi ny c bit n nh iu phi da trn thng tin v tng lai. Bi 3. Phn bit s khc nhau trong cch tip cn u tin cho tin trnh ngn trong cc thut ton iu phi sau : a) FIFO. b)RR c)iu phi vi u tin a cp Bi 4. Cho bit hai u im chnh ca m hnh a tiu trnh so vi a tin trnh. M t mt ng dng thch hp v m hnh a tiu trnh v mt ng dng khc khng thch hp. Bi 5. M t cc x l h iu hnh phi thc hin khi chuyn i ng cnh gia : a)cc tin trnh b)cc tiu trnh Bi 6. Xc nh thi lng quantum q l mt nhim v kh khn. Gi s chi ph trung bnh cho mt ln chuyn i ng cnh l s, v thi gian trung bnh mt tin trnh hng nhp xut s dng CPU trc khi pht sinh mt yu cu nhp xut l t ( t>>s). Tho lun cc tc ng n s thc hin ca h thng khi chn q theo cc quy tc sau : a)q bt nh b)q ln hn 0 1 t c)q = s d)s < q < t

e)q = t f)q > t Bi 7. Gi s mt h iu hnh p dng gii thut iu phi multilevel feedback vi 5 mc u tin (gim dn). Thi lng quantum dnh cho hng i cp 1 l 0,5s. Mi hng i cp thp hn s c thi lng quantum di gp i hng i ng vi mc u tin cao hn n. Mt tin trnh khi vo h thng s c a vo hng i mc cao nht, v chuyn dn xung cc hng i bn di sau mi lt s dng CPU. Mt tin trnh ch c th b thu hi CPU khi s dng ht thi lng quantum dnh cho n. H thng c th thc hin cc tc v x l theo l hoc tng tc, v mi tc v li c th hng x l hay hng nhp xut. a)Gii thch ti sao h thng ny hot ng khng hiu qu ? b)Cn phi thay i (ti thiu) nh th no h thng iu phi cc tc v vi nhng bn cht khc bit nh th tt hn ?

BI 4 :

LIN LC GIA CC TIN TRNH & VN NG B HO

Cc tin trnh trn nguyn tc l hon ton c lp, nhng thc t c th nh th khng ? Trong bi ny chng ta s tm hiu l do cc tin trnh c nhu cu lin lc, cc c ch h tr vic lin lc ny cng nh nhng vn t ra khi cc tin trnh trao i thng tin vi nhau.

I. LIN LC GIA CC TIN TRNH


I.1. Nhu cu lin lc gia cc tin trnh Trong mi trng a chng, mt tin trnh khng n c trong h thng , m c th nh hng n cc tin trnh khc , hoc b cc tin trnh khc tc ng. Ni cch khc, cc tin trnh l nhng thc th c lp , nhng chng vn c nhu cu lin lc vi nhau : Chia s thng tin: nhiu tin trnh c th cng quan tm n nhng d liu no , do vy h iu hnh cn cung cp mt mi trng cho php s truy cp ng thi n cc d liu chung. Hp tc hon thnh tc v: i khi t c mt s x l nhanh chng, ngi ta phn chia mt tc v thnh cc cng vic nh c th tin hnh song song. Thng th cc cng vic nh ny cn hp tc vi nhau cng hon thnh tc v ban u, v d d liu kt xut ca tin trnh ny li l d liu nhp cho tin trnh khc Trong cc trng hp , h iu hnh cn cung cp c ch cc tin trnh c th trao i thng tin vi nhau. I.2. Cc vn ny sinh trong vic lin lc gia cc tin trnh Do mi tin trnh s hu mt khng gian a ch ring bit, nn cc tin trnh khng th lin lc trc tip d dng m phi nh vo cc c ch do h iu hnh cung cp. Khi cung cp c ch lin lc cho cc tin trnh, h iu hnh thng phi tm gii php cho cc vn chnh yu sau : Lin kt tng minh hay tim n (explicit naming/implicit naming) : tin trnh c cn phi bit tin trnh no ang trao i hay chia s thng tin vi n ? Mi lin kt c gi l tng minh khi c thit lp r rng , trc tip gia cc tin trnh, v l tim n khi cc tin trnh lin lc vi nhau thng qua mt qui c ngm no . Lin lc theo ch ng b hay khng ng b (blocking / non-blocking): khi mt tin trnh trao i thng tin vi mt tin trnh khc, cc tin trnh c cn phi i cho thao tc lin lc hon tt ri mi tip tc cc x l khc ? Cc tin trnh lin lc theo c ch ng b s ch nhau hon tt vic lin lc, cn cc tin trnh lin lc theo c ch nonblocking th khng.

Lin lc gia cc tin trnh trong h thng tp trung v h thng phn tn: c ch lin lc gia cc tin trnh trong cng mt my tnh c s khc bit vi vic lin lc gia cc tin trnh gia nhng my tnh khc nhau? Hu ht cc h iu hnh a ra nhiu c ch lin lc khc nhau, mi c ch c nhng c tnh ring, v thch hp trong mt hon cnh chuyn bit.

II. Cc C Ch Thng Tin Lin lc


II.1. Tn hiu (Signal) Gii thiu: Tn hiu l mt c ch phn mm tng t nh cc ngt cng tc ng n cc tin trnh. Mt tn hiu c s dng thng bo cho tin trnh v mt s kin no xy ra. C nhiu tn hiu c nh ngha, mi mt tn hiu c mt ngha tng ng vi mt s kin c trng. V d : Mt s tn hiu ca UNIX Tn hiu
SIGINT SIGQUIT SIGILL SIGKILL SIGFPT SIGPIPE SIGSEGV SIGCLD SIGUSR1 SIGUSR2

M t
Ngi dng nhn phm DEL ngt x l tin trnh Yu cu thot x l Tin trnh x l mt ch th bt hp l Yu cu kt thc mt tin trnh Li floating point xy ra ( chia cho 0) Tin trnh ghi d liu vo pipe m khng c reader Tin trnh truy xut n mt a ch bt hp l Tin trnh con kt thc Tn hiu 1 do ngi dng nh ngha Tn hiu 2 do ngi dng nh ngha

Mi tin trnh s hu mt bng biu din cc tn hiu khc nhau. Vi mi tn hiu s c tng ng mt trnh x l tn hiu (signal handler) qui nh cc x l ca tin trnh khi nhn c tn hiu tng ng. Cc tn hiu c gi i bi : Phn cng (v d li do cc php tnh s hc) Ht nhn h iu hnh gi n mt tin trnh ( v d lu tin trnh khi c mt thit b nhp/xut t do). Mt tin trnh gi n mt tin trnh khc ( v d tin trnh cha yu cu mt tin trnh con kt thc) Ngi dng ( v d nhn phm Ctl-C ngt x l ca tin trnh) Khi mt tin trnh nhn mt tn hiu, n c th x s theo mt trong cc cch sau : B qua tn hiu X l tn hiu theo kiu mc nh Tip nhn tn hiu v x l theo cch c bit ca tin trnh.

Hnh 3.1 Lin lc bng tn hiu Tho lun: Lin lc bng tn hiu mang tnh cht khng ng b, ngha l mt tin trnh nhn tn hiu khng th xc nh trc thi im nhn tnh hiu. Hn na cc tin trnh khng th kim tra c s kin tng ng vi tn hiu c tht s xy ra ? Cui cng, cc tin trnh ch c th thng bo cho nhau v mt bin c no , m khng trao i d liu theo c ch ny c.

II.2. Pipe

Gii thiu: Mt pipe l mt knh lin lc trc tip gia hai tin trnh : d liu xut ca tin trnh ny c chuyn n lm d liu nhp cho tin trnh kia di dng mt dng cc byte. Khi mt pipe c thit lp gia hai tin trnh, mt trong chng s ghi d liu vo pipe v tin trnh kia s c d liu t pipe. Th t d liu truyn qua pipe c bo ton theo nguyn tc FIFO. Mt pipe c kch thc gii hn (thng l 4096 k t)

Hnh 3.2 Lin lc qua pipe Mt tin trnh ch c th s dng mt pipe do n to ra hay k tha t tin trnh cha. H iu hnh cung cp cc li gi h thng read/write cho cc tin trnh thc hin thao tc c/ghi d liu trong pipe. H iu hnh cng chu trch nhim ng b ha vic truy xut pipe trong cc tnh hung: Tin trnh c pipe s b kha nu pipe trng, n s phi i n khi pipe c d liu truy xut. Tin trnh ghi pipe s b kha nu pipe y, n s phi i n khi pipe c ch trng cha d liu. Tho lun: Lin lc bng pipe l mt c ch lin lc mt chiu (unidirectional), ngha l mt tin trnh kt ni vi mt pipe ch c th thc hin mt trong hai thao tc c hoc ghi, nhng khng th thc hin c hai. Mt s h iu hnh cho php thit lp hai pipe gia mt cp tin trnh to lin lc hai chiu. Trong nhng h thng , c nguy c xy ra tnh trng tc nghn (deadlock) : mt pipe b gii hn v kch thc, do vy nu c hai pipe ni kt hai tin trnh u y(hoc u trng) v c hai tin trnh u mun ghi (hay c) d liu vo pipe(mi tin trnh ghi d liu vo mt pipe), chng s cng b kha v ch ln nhau mi mi ! C ch ny cho php truyn d liu vi cch thc khng cu trc. Ngoi ra, mt gii hn ca hnh thc lin lc ny l ch cho php kt ni hai tin trnh c quan h cha-con, v trn cng mt my tnh. II.3. Vng nh chia s Gii thiu: Cch tip cn ca c ch ny l cho nhiu tin trnh cng truy xut n mt vng nh chung gi l vng nh chia s (shared memory).Khng c bt k hnh vi

truyn d liu no cn phi thc hin y, d liu ch n gin c t vo mt vng nh m nhiu tin trnh c th cng truy cp c. Vi phng thc ny, cc tin trnh chia s mt vng nh vt l thng qua trung gian khng gian a ch ca chng. Mt vng nh chia s tn ti c lp vi cc tin trnh, v khi mt tin trnh mun truy xut n vng nh ny, tin trnh phi kt gn vng nh chung vo khng gian a ch ring ca tng tin trnh, v thao tc trn nh mt vng nh ring ca mnh.

Hnh 3.3 Lin lc qua vng nh chia s Tho lun:. y l phng php nhanh nht trao i d liu gia cc tin trnh. Nhng phng thc ny cng lm pht sinh cc kh khn trong vic bo m s ton vn d liu (coherence) , v d : lm sao bit c d liu m mt tin trnh truy xut l d liu mi nht m tin trnh khc ghi ? Lm th no ngn cn hai tin trnh cng ng thighi d liu vo vng nh chung ?R rng vng nh chia s cn c bo v bng nhng c ch ng b ha thch hp.. Mt khuyt im ca phng php lin lc ny l khng th p dng hiu qu trong cc h phn tn , trao i thng tin gia cc my tnh khc nhau. II.4. Trao i thng ip (Message) Gii thiu: H iu hnh cn cung cp mt c ch lin lc gia cc tin trnh khng thng qua vic chia s mt ti nguyn chung , m thng qua vic gi thng ip. h tr c ch lin lc bng thng ip, h iu hnh cung cp cc hm IPC chun (Interprocess communication), c bn l hai hm: Send(message) : gi mt thng ip Receive(message) : nhn mt thng ip Nu hai tin trnh P v Q mun lin lc vi nhau, cn phi thit lp mt mi lin kt gia hai tin trnh, sau P, Q s dng cc hm IPC thch hp trao i thng ip, cui cng khi s lin lc chm dt mi lin kt gia hai tin trnh s b hy. C nhiu cch thc thc hin s lin kt gia hai tin trnh v ci t cc theo tc send /receive tng ng : lin lc trc tip hay gin tip, lin lc ng b hoc khng ng b , kch thc thng ip l c nh hay khng Nu cc tin trnh lin lc theo kiu lin kt tng minh, cc hm Send v Receive s c ci t vi tham s :

Send(destination, message) : gi mt thng ip n destination Receive(source,message) : nhn mt thng ip t source Tho lun: n v truyn thng tin trong c ch trao i thng ip l mt thng ip, do cc tin trnh c th trao i d liu dng c cu trc. II.5. Sockets Gii thiu: Mt socket l mt thit b truyn thng hai chiu tng t nh tp tin, chng ta c th c hay ghi ln n, tuy nhin mi socket l mt thnh phn trong mt mi ni no gia cc my trn mng my tnh v cc thao tc c/ghi chnh l s trao i d liu gia cc ng dng trn nhiu my khc nhau. S dng socket c th m phng hai phng thc lin lc trong thc t : lin lc th tn (socket ng vai tr bu cc) v lin lc in thoi (socket ng vai tr tng i) . Cc thuc tnh ca socket: Domaine: nh ngha dng thc a ch v cc nghi thc s dng. C nhiu domaines, v d UNIX, INTERNET, XEROX_NS, ... Type: nh ngha cc c im lin lc: a) S tin cy b) S bo ton th t d liu c) Lp li d liu d) Ch ni kt e) Bo ton gii hn thng ip f) Kh nng gi thng ip khn thc hin lin lc bng socket, cn tin hnh cc thao tc :: To lp hay m mt socket Gn kt mt socket vi mt a ch Lin lc : c hai kiu lin lc ty thuc vo ch ni kt: a) Lin lc trong ch khng lin kt : lin lc theo hnh thc hp th:

hai tin trnh lin lc vi nhau khng kt ni trc tip mi thng ip phi km theo a ch ngi nhn. Hnh thc lin lc ny c c im c : ngi gi khng chc chn thng ip ca hc c gi n ngi nhn, mt thng ip c th c gi nhiu ln, hai thng ip gi theo mt th t no c th n tay ngi nhn theo mt th t khc. Mt tin trnh sau khi m mt socket c th s dng n lin lc vi nhiu tin trnh khc nhau nh s hai primitive send v receive. b) Lin lc trong ch ni kt: Mt lin kt c thnh lp gia hai tin trnh. Trc khi mi lin kt ny c thit lp, mt trong hai tin trnh phi i c mt tin trnh khc yu cu kt ni.C th s dng socket lin lc theo m hnh client-serveur. Trong m hnh ny, server s dng li gi h thng listen v accept ni kt vi client, sau , client v server c th trao i thng tin bng cch s dng cc primitive send v receive. Hy mt socket V d : Trong nghi thc truyn thng TCP, mi mi ni gia hai my tnh c xc nh bi mt port, khi nim port y khng phi l mt cng giao tip trn thit b vt l m ch l mt khi nim logic trong cch nhn ca ngi lp trnh, mi port c tng ng vi mt s nguyn dng.

Hnh 3.4 Cc socket v port trong mi ni TCP. Hnh 3.4 minh ha mt cch giao tip gia hai my tnh trong nghi thc truyn thng TCP. My A to ra mt socket v kt buc (bind) socket ny vi mt port X (tc l mt s nguyn dng c ngha cc b trong my A), trong khi my B to mt socket khc v mc vo (connect) port X trong my A.

Tho lun: C ch socket c th s dng chun ho mi lin lc gia cc tin trnh vn khng lin h vi nhau, v c th hot ng trong nhng h thng khc nhau.

III. Nhu cu ng b ha (synchronisation)


Trong mt h thng cho php cc tin trnh lin lc vi nhau, bao gi h iu hnh cng cn cung cp km theo nhng c ch ng b ha bo m hot ng ca cc tin trnh ng hnh khng tc ng sai lch n nhau v cc l do sau y: III.1. Yu cu c quyn truy xut (Mutual exclusion) Cc ti nguyn trong h thng c phn thnh hai loi: ti nguyn c th chia s cho php nhiu tin trnh ng thi truy xut, v ti nguyn khng th chia s ch chp nhn mt ( hay mt s lng hn ch ) tin trnh s dng ti mt thi im. Tnh khng th chia s ca ti nguyn thng c ngun gc t mt trong hai nguyn nhn sau y: c tnh cu to phn cng ca ti nguyn khng cho php chia s. Nu nhiu tin trnh s dng ti nguyn ng thi, c nguy c xy ra cc kt qu khng d on c do hot ng ca cc tin trnh trn ti nguyn nh hng ln nhau. gii quyt vn , cn bo m tin trnh c quyn truy xut ti nguyn, ngha l h thng phi kim sot sao cho ti mt thi im, ch c mt tin trnh c quyn truy xut mt ti nguyn khng th chia s. III.2. Yu cu phi hp (Synchronization) Nhn chung, mi tng quan v tc thc hin ca hai tin trnh trong h thng l khng th bit trc, v iu ny ph thuc vo nhiu yu t ng nh tn sut xy ra cc ngt ca tng tin trnh, thi gian tin trnh c cp pht b x l C th ni rng cc tin trnh hot ng khng ng b vi nhau. Nh ng c nhng tnh hung cc tin trnh cn hp tc trong vic hon thnh tc v, khi cn phi ng b ha hot ng ca cc tin trnh , v d mt tin trnh ch c th x l nu mt tin trnh khc kt thc mt cng vic no III.3. Bi ton ng b ho III.3.1. Vn tranh ot iu khin (race condition)

Gi s c hai tin trnh P1 v P2 thc hin cng vic ca cc k ton, v cng chia s mt vng nh chung lu tr bin taikhoan phn nh thng tin v ti khon. Mi tin trnh mun rt mt khon tin tienrut t ti khon:
if (taikhoan - tienrut >=0) taikhoan = taikhoan - tienrut; else error( khong the rut tien ! );

Gi s trong ti khon hin cn 800, P1 mun rt 500 v P2 mun rt 400. Nu xy ra tnh hung nh sau : Sau khi kim tra iu kin (taikhoan - tienrut >=0) v nhn kt qu l 300, P1 ht thi gian x l m h thng cho php, h iu hnh cp pht CPU cho P2. P2 kim tra cng iu kin trn, nhn c kt qu l 400 (do P1 vn cha rt tin) v rt 400. Gi tr ca taikhoan c cp nht li l 400. Khi P1 c ti kch hot v tip tc x l, n s khng kim tra li iu kin (taikhoan - tienrut >=0)-v kim tra trong lt x l trc- m thc hin rt tin. Gi tr ca taikhoan s li c cp nht thnh -100. Tnh hung li xy ra ! Cc tnh hung tng t nh th - c th xy ra khi c nhiu hn hai tin trnh c v ghi d liu trn cng mt vng nh chung, v kt qu ph thuc vo s iu phi tin trnh ca h thng- c gi l cc tnh hung tranh ot iu khin (race condition) . III.3.2. Min gng (critical section) ngn chn cc tnh hung li c th ny sinh khi cc tin trnh truy xut ng thi mt ti nguyn khng th chia s, cn phi p t mt s truy xut c quyn trn ti nguyn : khi mt tin trnh ang s dng ti nguyn, th nhng tin trnh khc khng c truy xut n ti nguyn. on chng trnh trong c kh nng xy ra cc mu thun truy xut trn ti nguyn chung c gi l min gng (critical section). Trong v d trn, on m :
if (taikhoan - tienrut >=0) taikhoan = taikhoan - tienrut;

ca mi tin trnh to thnh mt min gng. C th gii quyt vn mu thun truy xut nu c th bo m ti mt thi im ch c duy nht mt tin trnh c x l lnh trong min gng. Mt phng php gii quyt tt bi ton min gng cn tha mn 4 iu kin sau : Khng c hai tin trnh cng trong min gng cng lc. Khng c gi thit no t ra cho s lin h v tc ca cc tin trnh, cng nh v s lng b x l trong h thng. Mt tin trnh tm dng bn ngoi min gng khng c ngn cn cc tin trnh khc vo min gng. Khng c tin trnh no phi ch v hn c vo min gng.

IV. Tm tt
Mt s tin trnh trong h thng c nhu cu trao i thng tin phi hp hot ng, do mi tin trnh c mt khng gian a ch c lp nn vic lin lc ch c th thc hin thng qua cc c ch do h iu hnh cung cp. Mt s c ch trao i thng tin gia cc tin trnh : Tn hiu : thng bo s xy ra ca mt s kin Pipe : truyn d liu khng cu trc Vng nh chia s : cho php nhiu tin trnh truy cp n cng mt vng nh Trao i thng ip : truyn d liu c cu trc, c th vn dng trong cc h phn tn Socket : chun hon vic lin lc gia cc h thng khc bit Khi cc tin trnh trao i thng tin, chia s ti nguyn chung, cn phi ng b ho hot ng ca chng ch yu do yu cu c quyn truy xut hoc phi hp hot ng. Min gng l on lnh trong chng trnh c kh nng pht sinh mu thun truy xut. khng xy ra mu thun truy xut, cn m bo ti mt thi im ch c mt tin trnh c vo min gng.

Cng c bi hc
Cc cu hi cn tr li c sau bi hc ny : 1. Cc c ch trao i thng tin : tnh hung s dng, u, khuyt ? 2. Cc yu cu ng b ho ?

Bi tp
Phn tch cc bi ton sau y v xc nh nhng yu cu ng b ho, min gng : Bi 1.Bi ton To phn t H2O ng b hot ng ca mt phng th nghim s dng nhiu tin trnh ng hnh sau to cc phn t H2O: MakeH() // Mi tin trnh MakeH to 1 nguyn t H { Make-Hydro(); } MakeO() // Mi tin trnh MakeO to 1 nguyn t O { Make-Oxy(); } MakeWater() /* Tin trnh MakeWater hot ng ng hnh vi cc tin trnh MakeH, MakeO, ch c 2 H v 1 O to H2O */ { while (T) Make-Water(); //To 1 phn t H2O } Bi 2.Bi ton Cy cu c trnh sp , ngi ta ch c cho php ti a 3 xe lu thng ng thi qua mt cy cu rt c. Hy xy dng th tc ArriveBridge(int direction) v ExitBridge() kim sot giao thng trn cu sao cho : Ti mi thi im, ch cho php ti a 3 xe lu thng trn cu. Ti mi thi im, ch cho php ti a 3 xe luthng cng hng trn cu.

Mi chic xe khi n u cu s gi ArriveBridge(direction) kim tra iu kin ln cu, v khi qua cu c s gi ExitBridge() bo hiu kt thc. Gi s hot ng ca mi chic xe c m t bng mt tin trnh Car() sau y: Car(int direction) /* direction xc nh hng di chuyn ca mi chic xe.*/ { RuntoBridge(); // i v pha cu ArriveBridge(direction); PassBridge(); // Qua cu Exit Bridge(); RunfromBridge(); // qua cu } Bi 3. Bi ton Qua sng vt qua sng, cc nhn vin Microsof v cc Linux hacker cng s dng mt bn sng v phi chia s mt s thuyn c bit. Mi chic thuyn ny ch cho php ch 1 ln 4 ngi, v phi c 4 ngi mi khi hnh c. bo m an ton cho c 2 pha, cn tun th cc lut sau : a. Khng chp nhn 3 nhn vin Microsoft v 1 Linux hacker trn cng mt chic thuyn. b. Ngc li, khng chp nhn 3 Linux hacker v 1 nhn vin Microsoft trn cng mt chic thuyn. c. Tt c cc trng hp kt hp khc u hp php. d. Thuyn ch khihnh khi c 4 hnh khch. Cn xy dng 2 th tc HackerArrives() v EmployeeArrives() c gi tng ng bi 1 hacker hoc 1 nhn vin khi h n b sng kim tra iu kin c cho php h xung thuyn khng ? Cc th tc ny s sp xp nhng ngi thch hp c th ln thuyn. Nhng ngi c ln thuyn khi thuyn cha y s phi ch n khi ngi th 4 xung thuyn mi c th khi hnh qua sng. (Khng quan tm n s lng thuyn hay vic thuyn qua sng ri tr liXem nh lun c thuyn sp xp theo cc yu cu hp l) Gi s hot ng ca mi hacker c m t bng mt tin trnh Hacker() sau y:

Hacker() { RuntoRiver(); // i n b sng HackerArrives (); // Kim tra iu kin xung thuyn CrossRiver(); // Khi hnh qua sng } v hot ng ca mi nhn vin c m t bng mt tin trnh Employee() sau y: Employee() { RuntoRiver(); // i n b sng EmployeeArrives (); // Kim tra iu kin xung thuyn CrossRiver(); // Khi hnh qua sng } Bi 4. Bi ton iu phi hnh khch xe bus Hy tng tng bn chu trch nhim kim sot hnh khch ln xe bus ti mt trm dng. Mi xe bus c ch cho 10 hnh khch. Trong 4 ch ch dnh cho khch ngi xe ln, 6 ch cn li ch dnh cho khch bnh thng. Cng vic ca bn l cho khch ln xe theo ng qui nh ch, khi xe y khch s khi hnh. C th c nhiu xe v nhiu hnh khch vo bn cng lc, nguyn tc iu phi s xp khch vo y mt xe, cho xe ny khi hnh ri mi iu phi cho xe khc. Gi s hot ng iu phi khch ca bn cho 1 chic xe bus c m t qua tin trnh GetPassengers(); hot ng ca mi hnh khch ty loi c m t ln lt bng tin trnh WheelPassenger() v NonWheelPassenger() sau y , hy sa cha cc on code, s dng c ch semaphore thc hin cc nguyn tc ng b ho cn thit. GetPassenger() { ArriveTerminal(); // tip nhn mt xe vo bn OpenDoor(); // m ca xe, th tc ny xem nh c for (int i=0; i<4; i++) // tip nhn cc hnh khch ngi xe ln

{ ArrangeSeat(); // a 1 khch vo ch } for (int i=0; i<6; i++) // tip nhn cc hnh khch bnh thng { ArrangeSeat(); // a 1 khch vo ch } CloseDoor(); // ng ca xe, th tc ny xem nh c DepartTerminal(); // cho mt xe ri bn } WheelPassenger() { ArriveTerminal(); // n bn GetOnBus(); // ln xe } NonWheelPassenger() { ArriveTerminal(); // n bn GetOnBus(); // ln xe } Bi 5. Bi ton sn xut thit b xe hi Hng Pontiac c 2 b phn hot ng song song : - B phn sn xut 1 khung xe : MakeChassis() { // to khung xe Produce_chassis(); } - B phn sn xut 1 bnh xe :

MakeTires() { // to bnh xe v gn vo khung xe Produce_tire(); Put_tire_to_Chassis(); } Hy ng b hot ng trong vic sn xut xe hi theo nguyn tc sau : o Sn xut mt khung xe, o cn c 4 bnh xe cho 1 khung xe c sn xut ra, sau mi tip tc sn xut khung xe khc

BI 5 :

CC GII PHP NG B HO

Bi hc ny s gii thiu cc gii php c th x l bi ton ng b ho. C nhiu gii php thc hin vic truy xut min gng, cc gii php ny c phn bit thnh hai lp ty theo cch tip cn trong x l ca tin trnh b kha :cc gii php busy waiting v cc gii php sleep and wakeup . I. Gii php busy waiting I.1. Cc gii php phn mm I.1.1. S dng cc bin c hiu: Tip cn : cc tin trnh chia s mt bin chung ng vai tr cht ca (lock) , bin ny c khi ng l 0. Mt tin trnh mun vo min gng trc tin phi kim tra gi tr ca bin lock. Nu lock = 0, tin trnh t li gi tr cho lock = 1 v i vo min gng. Nu lock ang nhn gi tr 1, tin trnh phi ch bn ngoi min gng cho n khi lock c gi tr 0. Nh vy gi tr 0 ca lock mang ngha l khng c tin trnh no ang trong min gng, v lock=1 khi c mt tin trnh ang trong min gng.
while (TRUE) { while (lock == 1); // wait lock = 1; critical-section (); lock = 0; Noncritical-section (); }

Hnh 3.5 Cu trc mt chng trnh s dng bin kha ng b Tho lun : Gii php ny c th vi phm iu kin th nht: hai tin trnh c th cng trong min gng ti mt thi im. Gi s mt tin trnh nhn thy lock = 0 v chun b vo min gng, nhng trc khi n c th t li gi tr cho lock l 1, n b tm dng mt tin trnh khc hot ng. Tin trnh th hai ny thy lock vn l 0 th vo min gng v t li lock = 1. Sau tin trnh th nht c ti kch hot, n gn lock = 1 ln na ri va min gng. Nh vy ti thi im c hai tin trnh u trong min gng. I.1.2. S dng vic kim tra lun phin : Tip cn : y l mt gii php ngh cho hai tin trnh. Hai tin trnh ny s dng chung bin turn (phn nh phin tin trnh no c vo min gng), c khi ng vi gi tr 0. Nu turn = 0, tin trnh A c vo min gng. Nu turn = 1, tin trnh A i vo mt vng lp ch n khi turn nhn gi tr 0. Khi tin trnh A ri khi min gng, n t gi tr turn v 1 cho php tin trnh B i vo min gng.

while (TRUE) { while (turn != 0); // wait critical-section (); turn = 1; Noncritical-section (); }

(a) Cu trc tin trnh A


while (TRUE) { while (turn != 1); // wait critical-section (); turn = 0; Noncritical-section (); }

(b) Cu trc tin trnh B Hnh 3.6 Cu trc cc tin trnh trong gii php kim tra lun phin Tho lun: Gii php ny da trn vic thc hin s kim tra nghim nht n lt tin trnh no c vo min gng. Do n c th ngn chn c tnh trng hai tin trnh cng vo min gng, nhng li c th vi phm iu kin th ba: mt tin trnh c th b ngn chn vo min gng bi mt tin trnh khc khng trong min gng. Gi s tin trnh B ra khi min gng rt nhanh chng. C hai tin trnh u ngoi min gng, v turn = 0. Tin trnh A vo min gng v ra khi nhanh chng, t li gi tr ca turn l1, ri li x l on lnh ngoi min gng ln na. Sau , tin trnh A li kt thc nhanh chng on lnh ngoi min gng ca n v mun vo min gng mt ln na. Tuy nhin lc ny B vn cn mi x l on lnh ngoi min gng ca mnh, v turn li mang gi tr 1 ! Nh vy, gii php ny khng c gi tr khi c s khc bit ln v tc thc hin ca hai tin trnh, n vi phm c iu kin th hai. I.1.3. Gii php ca Peterson Tip cn : Petson a ra mt gii php kt hp tng ca c hai gii php k trn. Cc tin trnh chia s hai bin chung :
int turn; //
n phin ai khi ng l

int interesse[2]; //

FALSE

Nu interesse[i] = TRUE c ngha l tin trnh Pi mun vo min gng. Khi u, interesse[0]=interesse[1]=FALSE v gi tr ca est c khi ng l 0 hay 1. c th vo c min gng, trc tin tin trnh Pi t gi tr interesse[i]=TRUE ( xc nh

rng tin trnh mun vo min gng), sau t turn=j ( ngh th tin trnh khc vo min gng). Nu tin trnh Pj khng quan tm n vic vo min gng (interesse[j]=FALSE), th Pi c th vo min gng, nu khng, Pi phi ch n khi interesse[j]=FALSE. Khi tin trnh Pi ri khi min gng, n t li gi tr cho interesse[i]= FALSE.
while (TRUE) { int j = 1-i; // j l tin trnh cn li interesse[i]= TRUE; turn = j; while (turn == j && interesse[j]==TRUE); critical-section (); interesse[i] = FALSE; Noncritical-section (); }

Hnh 3.7 Cu trc tin trnh Pi trong gii php Peterson Tho lun: gii php ny ngn chn c tnh trng mu thun truy xut : mi tin trnh Pi ch c th vo min gng khi interesse[j]=FALSE hoc turn = i. Nu c hai tin trnh u mun vo min gng th interesse[i] = interesse[j] =TRUE nhng gi tr ca turn ch c th hoc l 0 hoc l 1, do vy ch c mt tin trnh c vo min gng.

I.2. Cc gii php phn cng I.2.1. Cm ngt: Tip cn: cho php tin trnh cm tt c cc ngt trc khi vo min gng, v phc hi ngt khi ra khi min gng. Khi , ngt ng h cng khng xy ra, do vy h thng khng th tm dng hot ng ca tin trnh ang x l cp pht CPU cho tin trnh khc, nh tin trnh hin hnh yn tm thao tc trn min gng m khng s b tin trnh no khc tranh chp. Tho lun: gii php ny khng c a chung v rt thiu thn trng khi cho php tin trnh ngi dng c php thc hin lnh cm ngt. Hn na, nu h thng c nhiu b x l, lnh cm ngt ch c tc dng trn b x l ang x l tin trnh, cn cc tin trnh hot ng trn cc b x l khc vn c th truy xut n min gng ! I.2.2. Ch th TSL (Test-and-Set): Tip cn: y l mt gii php i hi s tr gip ca c ch phn cng. Nhiu my tnh cung cp mt ch th c bit cho php kim tra v cp nht ni dung mt vng nh

trong mt thao tc khng th phn chia, gi l ch th Test-and-Set Lock (TSL) v c nh ngha nh sau:
Test-and-Setlock(boolean target) { Test-and-Setlock = target; target = TRUE; }

Nu c hai ch th TSL x l ng thi (trn hai b x l khc nhau), chng s c x l tun t . C th ci t gii php truy xut c quyn vi TSL bng cch s dng thm mt bin lock, c khi gn l FALSE. Tin trnh phi kim tra gi tr ca bin lock trc khi vo min gng, nu lock = FALSE, tin trnh c th vo min gng.
while (TRUE) { while (Test-and-Setlock(lock)); critical-section (); lock = FALSE; Noncritical-section (); }

Hnh 3.8 Cu trc mt chng trnh trong gii php TSL Tho lun : cng ging nh cc gii php phn cng khc, ch th TSL gim nh cng vic lp trnh gii quyt vn , nhng li khng d dng ci t ch th TSL sao cho c x l mt cch khng th phn chia, nht l trn my vi cu hnh nhiu b x l. Tt c cc gii php trn y u phi thc hin mt vng lp kim tra liu n c c php vo min gng, nu iu kin cha cho php, tin trnh phi ch tip tc trong vng lp kim tra ny. Cc gii php buc tin trnh phi lin tc kim tra iu kin pht hin thi im thch hp c vo min gng nh th c gi cc gii php busy waiting . Lu rng vic kim tra nh th tiu th rt nhiu thi gian s dng CPU, do vy tin trnh ang ch vn chim dng CPU. Xu hng gii quyt vn ng b ho l nn trnh cc gii php busy waiting .

II. Cc gii php SLEEP and WAKEUP loi b cc bt tin ca gii php busy waiting , chng ta c th tip cn theo hng cho mt tin trnh cha iu kin vo min gng chuyn sang trng thi blocked, t b quyn s dng CPU. thc hin iu ny, cn phi s dng cc th tc

do h iu hnh cung cp thay i trng thi tin trnh. Hai th tc c bn SLEEP v WAKEUP thng c s dng phc v mc ch ny. SLEEP l mt li gi h thng c tc dng tm dng hot ng ca tin trnh (blocked) gi n v ch n khi c mt tin trnh khc nh thc . Li gi h thng WAKEUP nhn mt tham s duy nht : tin trnh s c ti kch hot (t v trng thi ready). tng s dng SLEEP v WAKEUP nh sau : khi mt tin trnh cha iu kin vo min gng, n gi SLEEP t kha n khi c mt tin trnh khc gi WAKEUP gii phng cho n. Mt tin trnh gi WAKEUP khi ra khi min gng nh thc mt tin trnh ang ch, to c hi cho tin trnh ny vo min gng :
int busy; // 1 nu min gng ang b chim, nu khng l 0 int blocked; // m s lng tin trnh ang b kha while (TRUE) { if (busy){ blocked = blocked + 1; sleep(); } else busy = 1; critical-section (); busy = 0; if(blocked){ wakeup(process); blocked = blocked - 1; } Noncritical-section (); }

Hnh 3.9 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 c bit nh sau : gi s tin trnh A vo min gng, v trc khi n ri khi min gng th tin trnh B c kch hot. Tin trnh B th vo min gng nhng n nhn thy A ang trong , do vy B tng gi tr bin blocked v chun b gi SLEEP t kho. Tuy nhin trc khi B c th thc hin SLEEP, tin trnh A li c ti kch hot v ra khi min gng. Khi ra khi min gng A nhn thy c mt tin trnh ang ch (blocked=1) nn gi WAKEUP v gim gi tr ca blocked. Khi tn hiu WAKEUP s lc mt do tin trnh B cha tht s ng nhn tn hiu nh thc !Khi tin trnh B c tip tc x l, n mi goi SLEEP v t kh vnh vin ! Vn ghi nhn c l tnh trng li ny xy ra do vic kim tra t cch vo min gng v vic gi SLEEP hay WAKEUP l nhng hnh ng tch bi, c th b ngt na chng

trong qu trnh x l, do c khi tn hiu WAKEUP gi n mt tin trnh cha b kha s lc mt. trnh nhng tnh hung tng t, h iu hnh cung cp nhng c ch ng b ha da trn tng ca chin lc SLEEP and WAKEUP nhng c xy dng bao hm c phng tin kim tra iu kin vo min gng gip s dng an ton. II.1. Semaphore Tip cn: c Dijkstra xut vo 1965, mt semaphore s l mt bin c cc thuc tnh sau: Mt gi tr nguyn dng e(s) Mt hng i f(s) lu danh sch cc tin trnh ang b kha (ch) trn semaphore s Ch c hai thao tc c nh ngha trn semaphore
Down(s): gim gi tr ca semaphore s i 1 n v nu semaphore c tr e(s) > 0, v tip

tc x l. Ngc li, nu e(s) 0, tin trnh phi ch n khi e(s) >0.

Up(s): tng gi tr ca semaphore s ln 1 n v. Nu c mt hoc nhiu tin trnh ang ch trn semaphore s, b kha bi thao tc Down, th h thng s chn mt trong cc tin trnh ny kt thc thao tc Down v cho tip tc x l.

Hnh 3.10 Semaphore s Ci t: Gi p l tin trnh thc hin thao tc Down(s) hay Up(s).
Down(s): e(s) = e(s) - 1; if e(s) < 0 { status(P)= blocked; enter(P,f(s));

} Up(s): e(s) = e(s) + 1; if s 0 { exit(Q,f(s)); //Q


l tin trnh ang ch trn s

status (Q) = ready; enter(Q,ready-list); }

Lu ci t ny c th a n mt gi tr m cho semaphore, khi tr tuyt i ca semaphore cho bit s tin trnh ang ch trn semaphore. iu quan trng l cc thao tc ny cn thc hin mt cch khng b phn chia, khng b ngt na chng, c ngha l khng mt tin trnh no c php truy xut n semaphore nu tin trnh ang thao tc trn semaphore ny cha kt thc x l hay chuyn sang trng thi blocked. S dng: c th dng semaphore gii quyt vn truy xut c quyn hay t chc phi hp gia cc tin trnh. T chc truy xut c quyn vi Semaphores: khi nim semaphore cho php bo m nhiu tin trnh cng truy xut n min gng m khng c s mu thun truy xut. n tin trnh cng s dng mt semaphore s, e(s) c khi gn l 1. thc hin ng b ha, tt c cc tin trnh cn phi p dng cng cu trc chng trnh sau y:
while (TRUE) { Down(s) critical-section (); Up(s) Noncritical-section (); }

Hnh 3.11 Cu trc mt chng trnh trong gii php semaphore T chc ng b ha vi Semaphores: vi semaphore c th ng b ha hot ng ca hai tin trnh trong tnh hung mt tin trnh phi i mt tin trnh khc hon tt

thao tc no mi c th bt u hay tip tc x l. Hai tin trnh chia s mt semaphore s, khi gn e(s) l 0. C hai tin trnh c cu trc nh sau:
P1: while (TRUE) { job1(); Up(s); //nh thc P2 } P2: while (TRUE) { Down(s); // job2(); }
ch P1

Hnh 3.12 Cu trc chng trnh trong gii php semaphore

Tho lun : Nh c thc hin mt cc khng th phn chia, semaphore gii quyt c vn tn hiu "nh thc" b tht lc. Tuy nhin, nu lp trnh vin v tnh t cc primitive Down v Up sai v tr, th t trong chng trnh, th tin trnh c th b kha vnh vin. V d : while (TRUE) {
Down(s) critical-section (); Noncritical-section (); }

tin trnh trn y qun gi Up(s), v kt qu l khi ra khi min gng n s khng cho tin trnh khc vo min gng ! V th vic s dng ng cch semaphore ng b ha ph thuc hon ton vo lp trnh vin v i hi lp trnh vin phi ht sc thn trng. II.2. Monitors Tip cn: c th d vit ng cc chng trnh ng b ha hn, Hoare(1974) v Brinch & Hansen (1975) ngh mt c ch cao hn c cung cp bi ngn ng lp

trnh , l monitor. Monitor l mt cu trc c bit bao gm cc th tc, cc bin v cu trc d liu c cc thuc tnh sau : Cc bin v cu trc d liu bn trong monitor ch c th c thao tc bi cc th tc nh ngha bn trong monitor . (encapsulation). Ti mt thi im, ch c mt tin trnh duy nht c hot ng bn trong mt monitor (mutual exclusive). Trong mt monitor, c th nh ngha cc bin iu kin v hai thao tc km theo l Wait v Signal nh sau : gi c l bin iu kin c nh ngha trong monitor:
Wait(c): chuyn trng thi tin trnh gi sang blocked , v t tin trnh ny vo hng

i trn bin iu kin c.


Signal(c): nu c mt tin trnh ang b kha trong hng i ca c, ti kch hot tin

trnh , v tin trnh gi s ri khi monitor.

Hnh 3.13 Monitor v cc bin iu kin Ci t : trnh bin dch chu trch nhim thc hin vic truy xut c quyn n d liu trong monitor. thc hin iu ny, mt semaphore nh phn thng c s dng. Mi monitor c mt hng i ton cc lu cc tin trnh ang ch c vo monitor, ngoi ra, mi bin iu kin c cng gn vi mt hng i f(c) v hai thao tc trn c nh ngha nh sau:
Wait(c) :

status(P)= blocked; enter(P,f(c)); Signal(c) : if (f(c) != NULL){ exit(Q,f(c)); //Q l statusQ) = ready;
tin trnh ch trn c

enter(Q,ready-list); } S dng: Vi mi nhm ti nguyn cn chia s, c th nh ngha mt monitor trong c t tt c cc thao tc trn ti nguyn ny vi mt s iu kin no .:
monitor <tn monitor > condition <danh sch cc bin <dclaration de variables>; procedure Action1(); { } .... procedure Actionn(); { } end monitor;
iu

kin>;

Hnh 3.14 Cu trc mt monitor Cc tin trnh mun s dng ti nguyn chung ny ch c th thao tc thng qua cc th tc bn trong monitor c gn kt vi ti nguyn:
while (TRUE) { Noncritical-section (); <monitor>.Actioni; //critical-section(); Noncritical-section (); }

Hnh 3.15 Cu trc tin trnh Pi trong gii php monitor Tho lun: Vi monitor, vic truy xut c quyn c bo m bi trnh bin dch m khng do lp trnh vin, do vy nguy c thc hin ng b ha sai gim rt nhiu.

Tuy nhin gii php monitor i hi phi c mt ngn ng lp trnh nh ngha khi nim monitor, v cc ngn ng nh th cha c nhiu. II.3. Trao i thng ip Tip cn: gii php ny da trn c s trao i thng ip vi hai primitive Send v Receive thc hin s ng b ha:
Send(destination, message): gi mt thng ip n mt tin trnh hay gi vo hp

th.
Receive(source,message): nhn mt thng ip th mt tin trnh hay t bt k mt

tin trnh no, tin trnh gi s ch nu khng c thng ip no nhn. S dng: C nhiu cch thc thc hin vic truy xut c quyn bng c ch trao i thng ip. y l mt m hnh n gin: mt tin trnh kim sot vic s dng ti nguyn v nhiu tin trnh khc yu cu ti nguyn ny. Tin trnh c yu cu ti nguyn s gi mt thng ip n tin trnh kim sot v sau chuyn sang trng thi blocked cho n khi nhn c mt thng ip chp nhn cho truy xut t tin trnh kim sot ti nguyn.Khi s dng xong ti nguyn , tin trnh gi mt thng ip khc n tin trnh kim sot bo kt thc truy xut. V phn tin trnh kim sot , khi nhn c thng ip yu cu ti nguyn, n s ch n khi ti nguyn sn sng cp pht th gi mt thng ip n tin trnh ang b kha trn ti nguyn nh thc tin trnh ny.
while (TRUE) { Send(process controler, request message); Receive(process controler, accept message); critical-section (); Send(process controler, end message); Noncritical-section (); }

Hnh 3.16 Cu trc tin trnh yu cu ti nguyn trong gii php message Tho lun: Cc primitive semaphore v monitor c th gii quyt c vn truy xut c quyn trn cc my tnh c mt hoc nhiu b x l chia s mt vng nh chung. Nhng cc primitive khng hu dng trong cc h thng phn tn, khi m mi b x l s hu mt b nh ring bit v lin lc thng qua mng. Trong nhng h thng phn tn nh th, c ch trao i thng ip t ra hu hiu v c dng gii quyt bi ton ng b ha. III. Cc vn c in ca ng b ho III.1. Vn Ngi sn xut Ngi tiu th (Producer-Consumer)

Vn : hai tin trnh cng chia s mt b m c kch thc gii hn. Mt trong hai tin trnh ng vai tr ngi sn xut to ra d liu v t d liu vo b m- v tin trnh kia ng vai tr ngi tiu th ly d liu t b m ra x l.

Hnh 3.17 Producer v Consumer ng b ha hot ng ca hai tin trnh sn xut tiu th cn tun th cc quy nh sau : Tin trnh sn xut (producer) khng c ghi d liu vo b m y.(synchronisation) Tin trnh tiu th (consumer) khng c c d liu t b m ang trng.(synchronisation) Hai tin trnh sn xut v tiu th khng c thao tc trn b m cng lc . (exclusion mutuelle) Gii php: III.1.1. Semaphore S dng ba semaphore : full, m s ch c d liu trong b m; empty, m s ch cn trng trong b m; v mutex, kim tra vic Producer v Consumer khng truy xut ng thi n b m.
BufferSize = 3; // s ch trong b m

semaphore mutex = 1; // kim sot truy xut c quyn semaphore empty = BufferSize; // s ch trng semaphore full = 0; // s ch y Producer() { int item; while (TRUE) {

produce_item(&item); // to d liu mi down(&empty); // gim s ch trng down(&mutex); // bo hiu vo min gng enter_item(item); // t d liu vo b m up(&mutex); // ra khi min gng up(&full); // tng s ch y } } Consumer() { int item; while (TRUE) { down(&full); down(&mutex); remove_item(&item); up(&mutex); up(&empty); consume_item(item); } } // gim s ch y // bo hiu vo min gng // ly d liu t b m // ra khi min gng // tng s ch trng // x l d liu

III.1.2. Monitor nh ngha mt monitor ProducerConsumer vi hai th tc enter v remove thao tc trn b m. X l ca cc th tc ny ph thuc vo cc bin iu kin full v empty.
monitor ProducerConsumer condition full, empty; int count; procedure enter(); { if (count == N) wait(full); // nu b m y, phi ch enter_item(item); // t d liu vo b m count ++; // tng s ch y if (count == 1) // nu b m khng trng signal(empty); // th kch hot Consumer } procedure remove(); { if (count == 0) wait(empty) // nu b m trng, ch remove_item(&item); // ly d liu t b m count --; // gim s ch y if (count == N-1) // nu b m khng y signal(full); // th kch hot Producer } count = 0; end monitor; Producer(); {

while (TRUE) { produce_item(&item); ProducerConsumer.enter; } } Consumer(); { while (TRUE) { ProducerConsumer.remove; consume_item(item); } }

III.1.3. Trao i thng ip Thng ip empty hm c mt ch trng trong b m. Tin trnh Consumer bt u cng vic bng cch gi 4 thng ip empty ng Producer. Tin trnh Producer to ra mt d liu mi v ch n khi nhn c mt thng ip empty th gi ngc li cho Consumer mt thng ip cha d liu . Tin trnh Consumer ch nhn thng ip cha d liu, v sau khi x l xong d liu ny, Consumer s li gi mt thng ip empty n Producer, ...
BufferSize = 4; Producteur() { int item; message m; while (TRUE) { produce_item(&item); receive(consumer,&m); create_message(&m, item); send(consumer,&m); } } Consumer() { int item; message m; for(0 to N) send(producer, &m); // gi N thng ip empty while (TRUE) { receive(producer, &m); // ch thng ip d liu remove_item(&m,&item);// ly d liu t thng ip send(producer, &m); // gi thng ip empty consumer_item(item); // x l d liu } }

// thng ip

// ch thng ip empty // to thng ip d liu // gi d liu n Consumer

III.2. M hnh Readers-Writers Vn : Nhiu tin trnh ng thi s dng mt c s d liu. Cc tin trnh ch cn ly ni dung ca c s d liu c gi l cc tin trnh Reader, nhng mt s tin trnh khc li c nhu cu sa i, cp nht d liu trong c s d liu chung ny, chng c gi l cc tin trnh Writer. Cc quy nh ng b ha vic truy xut c s d liu cn tun th l : Khng cho php mt tin trnh Writer cp nht d liu trong c s d liu khi cc tin trnh Reader khc ang truy xut ni dung c s d liu.. (synchronisation) Ti mt thi im , ch cho php mt tin trnh Writer c sa i ni dung c s d liu. (mutuelle exclusion). Gii php: III.2.1. Semaphore S dng mt bin chung rc ghi nh s lng cc tin trnh Reader mun truy xut c s d liu. Hai semaphore cng c s dng : mutex, kim sot s truy cp n rc; v db, kim tra s truy xut c quyn n c s d liu.
semaphore mutex = 1; // Kim tra truy xut rc semaphore db = 1; // Kim tra truy xut c s d liu int rc; // S lng tin trnh Reader Reader() { while (TRUE) { down(&mutex); // ginh quyn truy xut rc rc = rc + 1; // thm mt tin trnh Reader if (rc == 1) // nu l Reader u tin th down(&db); // cm Writer truy xut d liu up(&mutex); // chm dt truy xut rc read_database(); // c d liu down(&mutex); // ginh quyn truy xut rc rc = rc - 1; // bt mt tin trnh Reader if (rc == 0) // nu l Reader cui cng th up(&db); // cho php Writer truy xut db up(&mutex); // chm dt truy xut rc use_data_read(); } } Writer() { while (TRUE) { create_data(); down(&db); // ginh quyn truy xut db write_database(); // cp nht d liu up(&db); // chm dt truy xut db }

III.2.2. Monitor S dng mt bin chung rc ghi nh s lng cc tin trnh Reader mun truy xut c s d liu. Mt tin trnh Writer phi chuyn sang trng thi ch nu rc > 0. KHi ra khi min gng, tin trnh Reader cui cng s nh thc tin trnh Writer ang b kha.
monitor ReaderWriter condition OKWrite, OKRead; int rc = 0; Boolean busy = false; procedure BeginRead() { if (busy) // nu db ang bn, ch wait(OKRead); rc++; // thm mt Reader signal(OKRead); } procedure FinishRead() { rc--; // bt mt Reader if (rc == 0) // nu l Reader cui cng signal(OKWrite); // th cho php Writer // truy xut db } procedure BeginWrite() { if (busy || rc != 0) // nu db ang bn, hay mt wait(OKWrite); // Reader ang c db,ch busy = true; } procedure FinishWrite() { busy = false; If (OKRead.Queue) signal(OKRead); else signal(OKWrite); } Reader() { while (TRUE) { ReaderWriter.BeginRead(); Read_database(); ReaderWriter.FinishRead(); } } Writer() { while (TRUE) {

create_data(&info); ReaderWriter.BeginWrite(); Write_database(); ReaderWriter.FinishWrite(); } }

III.2.3. Trao i thng ip Cn c mt tin trnh server iu khin vic truy xut c s d liu. Cc tin trnh Writer v Reader gi cc thng ip yu cu truy xut n server v nhn t server cc thng ip hi p tng ng .
Reader() { while (TRUE) { send (server, RequestRead); receive (server, value); print(value); } } Writer() { while (TRUE) { create_data(&value); send (server, RequestWrite,value); receive (server,OKWrite); } }

IV. Tc nghn (Deadlock) IV.1. nh ngha: Mt tp hp cc tin trnh c nh ngha trong tnh trng tc nghn khi mi tin trnh trong tp hp u ch i mt s kin m ch c mt tin trnh khc trong tp hp mi c th pht sinh c. Ni cch khc, mi tin trnh trong tp hp u ch c cp pht mt ti nguyn hin ang b mt tin trnh khc cng trng thi blocked chim gi. Nh vy khng c tin trnh no c th tip tc x l , cng nh gii phng ti nguyn cho tin trnh khc s dng, tt c cc tin trnh trong tp hp u b kha vnh vin ! Vn Ba n ti ca cc trit gia : 5 nh trit hc cng ngi n ti vi mn spaghetti ni ting. Mi nh trit hc cn dng 2 ci na c th n spaghetti . Nhng trn bn ch c tng cng 5 ci na xen k vi 5 ci a. Mi nh trit hc s suy ngm cc trit l ca mnh n khi cm thy i th d nh ln lt cm 1 ci na bn tri v 1 ci na bn phi n. Nu c 5 nh trit hc u cm ci na bn tri cng lc, th s khng c ai c

c ci na bn phi c th bt u thng thc spaghetti . y chnh l tnh trng tc nghn.

Hnh 3.18 Ba n ti ca cc trit gia IV.2. iu kin xut hin tc nghn Coffman, Elphick v Shoshani a ra 4 iu kin cn c th lm xut hin tc nghn: C s dng ti nguyn khng th chia s (Mutual exclusion): Mi thi im, mt ti nguyn khng th chia s c h thng cp pht ch cho mt tin trnh , khi tin trnh s dng xong ti nguyn ny, h thng mi thu hi v cp pht ti nguyn cho tin trnh khc. S chim gi v yu cu thm ti nguyn (Wait for): Cc tin trnh tip tc chim gi cc ti nguyn cp pht cho n trong khi ch c cp pht thm mt s ti nguyn mi. Khng thu hi ti nguyn t tin trnh ang gi chng (No preemption): Ti nguyn khng th c thu hi t tin trnh ang chim gi chng trc khi tin trnh ny s dng chng xong. Tn ti mt chu k trong th cp pht ti nguyn ( Circular wait): c t nht hai tin trnh ch i ln nhau : tin trnh ny ch c cp pht ti nguyn ang b tin trnh kia chim gi v ngc li. Khi c 4 iu kin ny, th tc nghn xy ra. Nu thiu mt trong 4 iu kin trn th khng c tc nghn.

IV.3. th cp pht ti nguyn C th s dng mt th m hnh ha vic cp pht ti nguyn. th ny c 2 loi nt : cc tin trnh c biu din bng hnh trn, v mi ti nguyn c hin th bng hnh vung

Hnh 3.19 th cp pht ti nguyn IV.4. Cc phng php x l tc nghn Ch yu c ba hng tip cn x l tc nghn : S dng mt nghi thc (protocol) bo m rng h thng khng bao gi xy ra tc nghn. Cho php xy ra tc nghn v tm cch sa cha tc nghn. Hon ton b qua vic x l tc nghn, xem nh h thng khng bao gi xy ra tc nghn. IV.5. Ngn chn tc nghn tc nghn khng xy ra, cn bo m ti thiu mt trong 4 iu kin cn khng xy ra: Ti nguyn khng th chia s : nhn chung gn nh khng th trnh c iu kin ny v bn cht ti nguyn gn nh c nh. Tuy nhin i vi mt s ti nguyn v kt xut, ngi ta c th dng cc c ch spooling bin i thnh ti nguyn c th chia s.

S chim gi v yu cu thm ti nguyn: phi bo m rng mi khi tin trnh yu cu thm mt ti nguyn th n khng chim gi cc ti nguyn khc. C th p t mt trong hai c ch truy xut sau : Tin trnh phi yu cu tt c cc ti nguyn cn thit trc khi bt u x l . => phng php ny c kh khn l tin trnh kh c th c lng chnh xc ti nguyn cn s dng v c th nhu cu ph thuc vo qu trnh x l . Ngoi ra nu tin trnh chim gi sn cc ti nguyn cha cn s dng ngay th vic s dng ti nguyn s km hiu qu. Khi tin trnh yu cu mt ti nguyn mi v b t chi, n phi gii phng cc ti nguyn ang chim gi , sau li c cp pht tr li cng ln vi ti nguyn mi. => phng php ny lm pht sinh cc kh khn trong vic bo v tnh ton vn d liu ca h thng. Khng thu hi ti nguyn: cho php h thng c thu hi ti nguyn t cc tin trnh b kho v cp pht tr li cho tin trnh khi n thot khi tnh trng b kha. Tuy nhin vi mt s loi ti nguyn, vic thu hi s rt kh khn v vi phm s ton vn d liu . Tn ti mt chu k: trnh to chu k trong th bng cch cp pht ti nguyn theo mt s phn cp nh sau : gi R = {R1, R2,...,Rm} l tp cc loi ti nguyn. Cc loi ti nguyn c phn cp t 1-N. V d : F(a) = 2, F(my in) = 12 Cc tin trnh khi yu cu ti nguyn phi tun th quy nh : khi tin trnh ang chim gi ti nguyn Ri th ch c th yu cu cc ti nguyn Rj nu F(Rj) > F(Ri). IV.6. Trnh tc nghn Ngn cn tc nghn l mt mi bn tm ln khi s dng ti nguyn. Trnh tc nghn l loi b tt c cc c hi c th dn n tc nghn trong tng lai. Cn phi s dng nhng c ch phc tp thc hin nh ny. Mt s khi nim c s Trng thi an ton : trng thi A l an ton nu h thng c th tha mn cc nhu cu ti nguyn (cho n ti a) ca mi tin trnh theo mt th t no m vn ngn chn c tc nghn.

Mt chui cp pht an ton: mt th t ca cc tin trnh <P1, P2,...,Pn> l an ton i vi tnh trng cp pht hin hnh nu vi mi tin trnh Pi nhu cu ti nguyn ca Pi c th c tha mn vi cc ti nguyn cn t do ca h thng, cng vi cc ti nguyn ang b chim gi bi cc tin trnh Pj khc, vi j<i. Mt trng thi an ton khng th l trng thi tc nghn. Ngc li mt trng thi khng an ton c th dn n tnh trng tc nghn. Chin lc cp pht : ch tha mn yu cu ti nguyn ca tin trnh khi trng thi kt qu l an ton! Gii thut xc nh trng thi an ton Cn s dng cc cu trc d liu sau :
int Available[NumResources]; /* Available[r]= s lng cc th hin cn t do ca ti nguyn r*/ int Max[NumProcs, NumResources]; /*Max[p,r]= nhu cu ti a ca tin trnh p v ti nguyn r*/ int Allocation[NumProcs, NumResources]; /* Allocation[p,r] = s lng ti nguyn r thc s cp pht cho p*/ int Need[NumProcs, NumResources]; /* Need[p,r] = Max[p,r] - Allocation[p,r]*/ 1.Gi s c cc mng int Work[NumProcs, NumResources] = Available; int Finish[NumProcs] = false; 2.Tm i sao cho Finish[i] == false Need[i] <= Work[i] Nu khng c i nh th, n bc 4. 3. Work = Work + Allocation[i]; Finish[i] = true; n bc 2 4.Nu Finish[i] == true vi mi i, th h thng trng thi an ton. V d : Gi s tnh trng hin hnh ca h thng c m t nh sau : Max R1 P1 P2 P3 P4 R2 3 6 3 4 R3 2 1 1 2 R1 2 3 4 2 Allocation R2 1 2 2 0 R3 0 1 1 0 R1 0 1 1 2 Available R2 R3

Nu tin trnh P2 yu cu 4 cho R1, 1 cho R3. hy cho bit yu cu ny c th p ng m bo m khng xy ra tnh trng deadlock hay khng ? Nhn thy Available[1] =4, Available[3] =2 tha mn yu cu ca P2, ta c

Need R1 P1 P2 P3 P4 R2 2 0 1 4 Need R1 P1 P2 P3 P4 R2 2 0 1 4 Need R1 P1 P2 P3 P4 R2 0 0 1 4 Need R1 P1 P2 P3 P4 R2 0 0 0 4 Need R1 P1 P2 R2 0 0 R3 0 0 R1 0 0 R3 0 0 0 2 R1 0 0 0 0 R3 0 0 0 2 R1 0 0 3 0 R3 2 0 0 2 R1 2 0 3 0 R3 2 0 0 2 R1 2 1 3 0

Allocation R2 1 6 2 0 Allocation R2 1 0 2 0 Allocation R2 0 0 2 0 Allocation R2 0 0 0 0 Allocation R2 0 0 R3 0 0 R1 0 0 R3 0 0 0 0 R1 0 0 0 2 R3 0 0 1 0 R1 0 0 1 2 R3 0 0 1 0 R1 0 0 1 2 R3 0 1 1 0 R1 0 2 1 2

Available R2 R3

Available R2 R3

Available R2 R3

Available R2 R3

Available R2 R3

P3 P4

0 0

0 0

0 0

0 0

0 0

0 0

Trng thi kt qa l an ton, c th cp pht. Gii thut yu cu ti nguyn Gi s tin trnh Pi yu cu k th hin ca ti nguyn r. 1.Nu k <= Need[i], n bc 2 Ngc li, xy ra tnh hung li 2.Nu k <= Available[i],n bc 3 Ngc li, Pi phi ch 3.Gi s h thng cp pht cho Pi cc ti nguyn m n yu cu v cp nht tnh trng h thng nh sau: Available[i] = Available[i] - k; Allocation[i]= Allocation[i]+ k; Need[i] = Need[i] - k; Nu trng thi kt qu l an ton, lc ny cc ti nguyn trn s c cp pht tht s cho Pi Ngc li, Pi phi ch IV.7. Pht hin tc nghn Cn s dng cc cu trc d liu sau :
int Available[NumResources]; // Available[r]= s lng cc th hin cn t do ca ti nguyn r int Allocation[NumProcs, NumResources]; // Allocation[p,r] =
s lng ti nguyn r thc s cp pht cho p

int Request[NumProcs, NumResources]; // Request[p,r] = s lng ti nguyn r tin trnh p yu cu thm

Gii thut pht hin tc nghn


1. int Work[NumResources] = Available; int Finish[NumProcs]; for (i = 0; i < NumProcs; i++)

Finish[i] = (Allocation[i] == 0); 2. Tm i sao cho Finish[i] == false Request[i] <= Work Nu khng c i nh th, n bc 4. 3. Work = Work + Allocation[i]; Finish[i] = true; n bc 2 4. Nu Finish[i] == true vi mi i, th h thng khng c tc nghn Nu Finish[i] == false vi mt s gi tr i, th cc tin trnh m Finish[i] == false s trong tnh trng tc nghn.

II.8. Hiu chnh tc nghn Khi pht hin c tc nghn, c hai la chn chnh hiu chnh tc nghn : nh ch hot ng ca cc tin trnh lin quan Cch tip cn ny da trn vic thu hi li cc ti nguyn ca nhng tin trnh b kt thc. C th s dng mt trong hai phng php sau : nh ch tt c cc tin trnh trong tnh trng tc nghn nh ch tng tin trnh lin quan cho n khi khng cn chu trnh gy tc nghn : chn c tin trnh thch hp b nh ch, phi da vo cc yu t nh u tin, thi gian x l, s lng ti nguyn ang chim gi , s lng ti nguyn yu cu... Thu hi ti nguyn C th hiu chnh tc nghn bng cch thu hi mt s ti nguyn t cc tin trnh v cp pht cc ti nguyn ny cho nhng tin trnh khc cho n khi loi b c chu trnh tc nghn. Cn gii quyt 3 vn sau: Chn la mt nn nhn: tin trnh no s b thu hi ti nguyn ? v thu hi nhng ti nguyn no ? Tr li trng thi trc tc nghn: khi thu hi ti nguyn ca mt tin trnh, cn phi phc hi trng thi ca tin trnh tr li trng thi gn nht trc m khng xy ra tc nghn. Tnh trng i ti nguyn : lm sao bo m rng khng c mt tin trnh lun lun b thu hi ti nguyn ? V.Tm tt

Cc gii php ng b ho do lp trnh vin xy dng khng c a chung v phi tiu th CPU trong thi gian ch vo min gng ( busy waiting ), v kh m rng. Thay vo , lp trnh vin c th s dng cc c ch ng b do h iu hnh hay trnh bin dch tr gip nh semaphore, monitor, trao i thng ip . Tc nghn l tnh trng xy ra trong mt tp cc tin trnh nu c hai hay nhiu hn cc tin trnh ch i v hn mt s kin ch c th c pht sinh bi mt tin trnh cng ang ch khc trong tp cc tin trnh ny. C 3 hng tip cn chnh trong x l tc nghn : Phng trnh tc nghn : tun th mt vi nghi thc bo m h thng khng bao gi lm vo trng thi tc nghn. Pht hin tc nghn : khi c tc nghn xy ra, pht hin cc tin trnh lin quan v tm cch phc hi. B qua tc nghn : xem nh h thng khng bao gi lm vo trng thi tc nghn.

Cng c bi hc
Cc cu hi cn tr li c sau bi hc ny : 1. Phn bit nhm gii php busy waiting v Sleep&Wakeup 2. Phn bit cch s dng semaphore, monitor v message ng b ho. 3. M hnh gii quyt nhu cu c quyn truy xut v m hnh gia quyt nhu cu phi hp hot ng.

Bi tp
Bi 1. Xt gii php phn mm do Dekker ngh t chc truy xt c quyn cho hai tin trnh . Hai tin trnh P0, P1 chia s cc bin sau :
var flag : array [0..1] of boolean; (khi ng l false) turn : 0..1;

Cu trc mt tin trnh Pi ( i =0 hay 1, v j l tin trnh cn li ) nh sau :


repeat flag[i] := true;

while flag[j] do if turn = j then begin flag[i]:= false; while turn = j do ; flag[i]:= true; end; critical_section(); turn:= j; flag[i]:= false; non_critical_section(); until false;

Gii php ny c phi l mt gii php ng tha mn 4 yu cu khng ? Bi 2.Xt gii php phn mm do Eisenberg v McGuire ngh t chc truy xt c quyn cho N tin trnh . Cc tin trnh chia s cc bin sau :
var flag : array [0..N-1] of (idle, want-in, in-cs); turn : 0..N-1;

Tt c cc phn t ca mng flag c khi ng l idle, turn c khi gn mt trong nhng gi tr t 0..N-1 Cu trc mt tin trnh Pi nh sau :
repeat repeat flag[i] := want-in; j := turn; while j<>i do if flag[j]<> idle then j:= turn else j:= j+1 mod n;

flag[i]:= in-cs; j:=0; while ( j<N) and ( j = i or flag[j] <> in-cs) do j:=j+1; until ( j>=N) and ( turn =i or flag[turn] = idle); turn := i; critical_section(); j:= turn + 1 mod N; while (flag[j]= idle) do j := j+1 mod N; turn := j; flag[i]:= idle; non_critical_section(); until false;

Gii php ny c phi l mt gii php ng tha mn 4 yu cu khng ? Bi 3.Xt gii php ng b ho sau :
while (TRUE) { int j = 1-i; flag[i]= TRUE; turn = i; while (turn == j && flag[j]==TRUE); critical-section (); flag[i] = FALSE; Noncritical-section (); }

y c phi l mt gii php bo m c c quyn truy xut khng ? Bi 4.Gi s mt my tnh khng c ch th TSL, nhng c ch th Swap c kh nng hon i ni dung ca hai t nh ch bng mt thao tc khng th phn chia :
procedure Swap() var a,b: boolean);

var temp : boolean; begin temp := a; a:= b; b:= temp; end;

S dng ch th ny c th t chc truy xut c quyn khng ? Nu c xy dng cu trc chng trnh tng ng. Bi 5.Chng t rng nu cc primitive Down v Up trn semaphore khng thc hin mt cch khng th phn chia, th s truy xut c quyn s b vi phm. Bi 6.S dng semaphore ci t c ch monitor. Bi 7.Xt hai tin trnh sau :
process A { while (TRUE) na = na +1; } process B { while (TRUE) nb = nb +1; }

a)ng b ho x l ca hai tin trnh trn, s dng hai semaphore tng qut, sao cho ti bt k thi im no cng c nb < na <= nb +10 b)Nu gim iu kin ch l na <= nb +10, gii php ca bn s c sa cha nh th no ? c)Gii php ca bn c cn ng nu c nhiu tin trnh loi A v B cng thc hin? Bi 8.Mt bin X c chia s bi hai tin trnh cng thc hin on code sau :
do

X = X +1; if ( X == 20) X = 0; while ( TRUE );

Bt u vi gi tr X = 0, chng t rng gi tr X c th vt qu 20. Cn sa cha on chng trnh trn nh th no bo m X khng vt qu 20 ? Bi 9.Xt hai tin trnh x l on chng trnh sau :
process P1 { A1 ; A2 } process P2 { B1 ; B2 }

ng b ho hot ng ca hai tin trnh ny sao cho c A1 v B1 u hon tt trc khi A2 hay B2 bt u . Bi 10.Tng qut ho cu hi 8) cho cc tin trnh x l on chng trnh sau :
process P1 { for ( i = 1; i <= 100; i ++) Ai } process P2 { for ( j = 1; j <= 100; j ++) Bj }

ng b ho hot ng ca hai tin trnh ny sao cho c vi k bt k ( 2 k 100), Ak ch c th bt u khi B(k-1) kt thc, v Bk ch c th bt u khi A(k-1) kt thc. Bi 11.S dng semaphore vit li chng trnh sau theo m hnh x l ng hnh:
w := x1 * x2 v := x3 * x4 y := v * x5 z := v * x6 y := w * y z := w * z ans := y + z

Bi 12.Xy dng mt gii php ( s dng semaphore ) gii quyt vn Readers_Writers trong : a) Readers c u tin ( khi khng c ai truy xut database, Reader c u tin truy cp database ngay, Writer phi i tt c cc Reader truy xut xong mi c vo database) b) Writers c u tin ( khi khng c ai truy xut database, Writer c u tin truy cp database ngay, Reader phi i tt c cc Write truy xut xong mi c vo database) c) Cng bng cho Reader, Writer ( khi khng c ai truy xut database, Writer hoc Reader c c hi ngang nhau truy cp database)

Bi 13.Dining Philosophers : Gi s hnh vi ca mt trit gia th i trong ba n ti c m t nh sau :


#define N 5 void philosopher( int i) { while (TRUE) { think(); // Suy ngh take_fork(i); // ly na bn tri take_fork((i+1)%N); // ly na bn phi eat(); // yum-yum, spaghetti put_fork(i); // t na bn tri ln bn li put_fork((i+1)%N); // t na bn phi ln bn li } }

a) Lu l trn bn ch c 5 ci na, v nu c 2 trit gia cng mun ly mt ci na, th ch mt ngi c quyn ly ci na . S dng semaphore t chc c quyn truy xut n cc ci na cho on chng trnh trn ( Gi : dng mi semaphore phn nh tnh trng s dng ca mi ci na) b) Liu gii php ca cu a) c l mt gii php tt cho bi ton Dining philosopher?Nu khng, cho bit cc tnh hung li s xy ra, v ngh phng php ci tin. Bi 14.Xt mt gii php ng cho bi ton Dining philosophers :
#define N 5 #define LEFT (i-1)%N #define RIGHT (i+1)%N #define THINKING 0 #define HUNGRY 1 #define EATING 2 int state[N]; semaphore mutex = 1; semaphore s[N]; void philosopher( int i) // i : xc nh trit gia no (0..N-1) { while (TRUE) { thinhk(); // Suy ngh

take_forks(i); // yu cu n khi c 2 na eat(); // yum-yum, spaghetti put_forks(i); // t c 2 na ln bn li } } void take_forks ( int i) // i : xc nh trit gia no (0..N-1) { while (TRUE) { down(mutex); // vo min gng state[i] = HUNGRY; // ghi nhn trit gia i i test(i); // c gng ly 2 na up(mutex); // ra khi min gng down(s[i]); // ch nu khng c 2 na } } } void put_forks ( int i) // i : xc nh trit gia no (0..N-1) { while (TRUE) { down(mutex); // vo min gng state[i] = THINKING; // ghi nhn trit gia i n xong test(LEFT); // kim tra ngi bn tri c th n? test(RIGHT); // kim tra ngi bn phi c th n? up(mutex); // ra khi min gng }

} void test ( int i) // i : xc nh trit gia no (0..N-1) { if(state[i]==HUNGRY && state[LEFT]!=EATING && state[RIGHT]!= EATING { state[i] = EATING; up(s[i]); }

} a)Ti sao phi t state[i] = HUNGRY trong take_forks ? b)Gi s trong put_forks, lnh gn state[i] = THINKING c thc hin sau hai lnh test(LEFT), test(RIGHT). iu ny nh hng th no n gii php cho 3 trit gia? Cho 100 trit gia? Bi 15.Xy dng gii php monitor cho bi ton Dining Philosophers. Bi 16.Baber problem : Mt ca hiu ct tc c mt th, mt gh ct tc v N gh cho khch i. Nu khng c khch hng, anh th ct tc s ngi vo gh ct tc v ng thip i. Khi mt khch hng vo tim, anh ta phi nh thc ngi th. Nu mt khch hng vo tim khi ngi th ang bn ct tc cho kh1ch hng khc, ngi mi vo s phi ngi ch nu c gh i trng, hoc ri khi tim nu c N ngi i. Xy dng mt gii php vi semaphore thc hin ng b ho hot ng ca th v khch hng trong ca hiu ct tc ny.
/* Semaphore to protect critical sections */ Semaphore mutex = 1; /* Semaphore for the number of waiting customers. * This lets the barber go to sleep when there are no customers */ Semaphore customers = 0; /* Number of waiting customers in the barber shop */ /* Just used to turn away customers when there are too many already. */ int waiting_customers = 0 /* Semaphore on which to wait for a haircut */ Semaphore haircut = 0;

/* Customer calls this function to try to get their hair cut * it returns true if the hair gets cut. */ int customer() { /* protect access to shared variables with semaphore mutex */ wait( mutex ); /* Make sure there is an empty chair */ if( waiting_customers >= 5 ){ signal( mutex ); return 0; } /* there is now a new waiting customer */ waiting_customers += 1; signal( mutex ); /* Wake the barber if the shop was empty */ signal( customers ); /* Wait for a haircut from the barber */ wait( haircut ); return 1; } /* Barber loops within this function */ void barber() { while( 1 ){ /* Go to sleep if there are no customers */ wait( customers ); // protect access to shared variables with semaphore mutex wait( mutex ); /* take customer out of a chair */ waiting_customers -= 1; signal( mutex ); /* cut hair of the current customer */ cut_hair(); /* Let the customer go. */ signal( haircut ); } }

Bi 17.Gii quyt bi ton Baber trong trng hp tim c nhiu th . Bi 18.Xt trng thi h thng :
Max R1 R2 R3 R1 Allocation R2 R3 R1 Available R2 R3

P1 P2 P3 P4

3 6 3 4

2 1 1 2

2 3 4 2

1 2 2 0

0 1 1 0

0 1 1 2

Nu tin trnh P2 yu cu 4 cho R1, 1 cho R3. hy cho bit yu cu ny c th p ng m bo m khng xy ra tnh trng deadlock hay khng ? Bi 19.Xt trng thi h thng :
Max A P1 P2 P3 P4 P5 B 0 1 2 0 0 C 0 7 3 6 6 D 1 5 5 5 5 A 2 0 6 2 6 Allocation B 0 1 1 0 0 C 0 0 3 6 0 D 1 0 5 3 1 A 2 0 4 2 4 Available B C D

a) Cho bit ni dung ca bng Need. b) H thng c trng thi an ton khng? c) Nu tin trnh P2 c yu cu ti nguyn ( 0,4,2,0), yu cu ny c c p ng tc thi khng?

BI 6 :

QUN L B NH

Bi hc ny s gip cc bn hnh dung nhng vn cn quan tm khi thit k module qun l b nh ca H iu hnh . Mt s m hnh t chc b nh cng c gii thiu v phn tch u, khuyt im cc bn c th hiu c cch thc cp pht v thu hi b nh din ra nh th no B nh chnh l thit b lu tr duy nht thng qua CPU c th trao i thng tin vi mi trng ngoi, do vy nhu cu t chc, qun l b nh l mt trong nhng nhim v trng tm hng u ca h iu hnh . B nh chnh c t chc nh mt mng mt chiu cc t nh (word), mi t nh c mt a ch . Vic trao i thng tin vi mi trng ngoi c thc hin thng qua cc thao tc c hoc ghi d liu vo mt a ch c th no trong b nh. Hu ht cc h iu hnh hin i u cho php ch a nhim nhm nng cao hiu sut s dng CPU. Tuy nhin k thut ny li lm ny sinh nhu cu chia s b nh gia cc tin trnh khc nhau . Vn nm ch : b nh th hu hn v cc yu cu b nh th v hn . H iu hnh chu trch nhim cp pht vng nh cho cc tin trnh c yu cu. thc hin tt nhim v ny, h iu hnh cn phi xem xt nhiu kha cnh : S tng ng gia a ch logic v a ch vt l (physic) : lm cch no chuyn i mt a ch tng trng (symbolic) trong chng trnh thnh mt a ch thc trong b nh chnh? Qun l b nh vt l: lm cch no m rng b nh c sn nhm lu tr c nhiu tin trnh ng thi? Chia s thng tin: lm th no cho php hai tin trnh c th chia s thng tin trong b nh? Bo v: lm th no ngn chn cc tin trnh xm phm n vng nh c cp pht cho tin trnh khc? Cc gii php qun l b nh ph thuc rt nhiu vo c tnh phn cng v tri qua nhiu giai on ci tin tr thnh nhng gip php kh tha ng nh hin nay.

I. Bi cnh

Thng thng, mt chng trnh c lu tr trn a nh mt tp tin nh phn c th x l. thc hin chng trnh, cn np chng trnh va b nh chnh, to lp tin trnh tng ng x l . Hng i nhp h thng l tp hp cc chng trnh trn a ang ch c np vo b nh tin hnh x l. Cc a ch trong chng trnh ngun l a ch tng trng , v th, mt chng trnh phi tri qua nhiu giai on x l chuyn i cc a ch ny thnh cc a ch tuyt i trong b nh chnh. C th thc hin kt buc cc ch th v d liu vi cc a ch b nh vo mt trong nhng thi im sau : Thi im bin dch: nu ti thi im bin dch, c th bit v tr m tin trnh s thng tr trong b nh, trnh bin dch c th pht sinh ngay m vi cc a ch tuyt i. Tuy nhin, nu v sau c s thay i v tr thng tr lc u ca chng trnh, cn phi bin dch li chng trnh. Thi im np : nu ti thi im bin dch, cha th bit v tr m tin trnh s thng tr trong b nh, trnh bin dch cn pht sinh m tng i (translatable). S lin kt a ch c tr hon n thi im chng trnh c np vo b nh, lc ny cc a ch tng i s c chuyn thnh a ch tuyt i do bit v tr bt u lu tr tin trnh. Khi c s thay i v tr lu tr, ch cn np li chng trnh tnh ton li cc a ch tuyt i, m khng cn bin dch li. Thi im x l : nu c nhu cu di chuyn tin trnh t vng nh ny sang vng nh khc trong qu trnh tin trnh x l, th thi im kt buc a ch phi tr hon n tn thi im x l. thc hin kt buc a ch vo thi im x l, cn s dng c ch phn cng c bit.

II. Khng gian a ch v khng gian vt l


Mt trong nhng hng tip cn trung tm nhm t chc qun l b nh mt cch hiu qa l a ra khi nim khng gian a ch c xy dng trn khng gian nh vt l, vic tch ri hai khng gian ny gip h iu hnh d dng xy dng cc c ch v chin lc qun l b nh hu hiu : a ch logic cn gi l a ch o , l tt c cc a ch do b x l to ra. a ch vt l - l a ch thc t m trnh qun l b nh nhn thy v thao tc. Khng gian a ch l tp hp tt c cc a ch o pht sinh bi mt chng trnh.

Khng gian vt l l tp hp tt c cc a ch vt l tng ng vi cc a ch o. a ch o v a ch vt l l nh nhau trong phng thc kt buc a ch vo thi im bin dch cng nh vo thi im np. Nhng c s khc bit gia a ch o v a ch vt l trong phng thc kt buc vo thi im x l. MMU (memory-management unit) l mt c ch phn cng c s dng thc hin chuyn i a ch o thnh a ch vt l vo thi im x l. Chng trnh ca ngi s dng ch thao tc trn cc a ch o, khng bao gi nhn thy cc a ch vt l . a ch tht s ng vi v tr ca d liu trong b nh ch c xc nh khi thc hin truy xut n d liu.

III. Cp pht lin tc


III.1. M hnh Linker_Loader tng : Tin trnh c np vo mt vng nh lin tc ln cha ton b tin trnh. Ti thi im bin dch cc a ch bn trong tin trnh vn l a ch tng i. Ti thi im np, H iu hnh s tr v a ch bt u np tin trnh, v tnh ton chuyn cc a ch tng i v a ch tuyt i trong b nh vt l theo cng thc a ch vt l = a ch bt u + a ch tng i.

Tho lun: Thi im kt buc a ch l thi im np, do vy sau khi np khng th di chuyn tin trnh trong b nh . Khng c kh nng kim sot a ch cc tin trnh truy cp, do vy khng c s bo v. III.2. M hnh Base &Bound

tng : Tin trnh c np vo mt vng nh lin tc ln cha ton b tin trnh. Ti thi im bin dch cc a ch bn trong tin trnh vn l a ch tng i. Tuy nhin b tc vo cu trc phn cng ca my tnh mt thanh ghi nn (base register) v mt thanh ghi gii hn (bound register). Khi mt tin trnh c cp pht vng nh, np vo thanh ghi nn a ch bt u ca phn vng c cp pht cho tin trnh, v np vo thanh ghi gii hn kch thc ca tin trnh. Sau , mi a ch b nh c pht sinh s t ng c cng vi a ch cha trong thanh ghi nn cho ra a ch tuyt i trong b nh, cc a ch cng c i chiu vi thanh ghi gii hn bo m tin trnh khng truy xut ngoi phm vi phn vng c cp cho n.

Hai thanh ghi h tr chuyn i a ch Tho lun: Mt u im ca vic s dng thanh ghi nn l c th di chuyn cc chng trnh trong b nh sau khi chng bt u x l, mi khi tin trnh c di chuyn n mt v tr mi, ch cn np li gi tr cho thanh ghi nn, cc a ch tuyt i s c pht sinh li m khng cn cp nht cc a ch tng i trong chng trnh Chu ng hin tng phn mnh ngoi vi( external fragmentation ) : khi cc tin trnh ln lt vo v ra khi h thng, dn dn xut hin cc khe h gia cc tin trnh. y l cc khe h c to ra do kch thc ca tin trnh mi c np nh hn kch thc vng nh mi c gii phng bi mt tin trnh kt thc v ra khi h thng. Hin

tng ny c th dn n tnh hung tng vng nh trng tho mn yu cu, nhng cc vng nh ny li khng lin tc ! Ngi ta c th p dng k thut dn b nh (memory compaction ) kt hp cc mnh b nh nh ri rc thnh mt vng nh ln lin tc. Tuy nhin, k thut ny i hi nhiu thi gian x l, ngoi ra, s kt buc a ch phi thc hin vo thi im x l, v cc tin trnh c th b di chuyn trong qu trnh dn b nh.

Phn mnh ngoi vi Vn ny sinh khi kch thc ca tin trnh tng trng trong qa trnh x l m khng cn vng nh trng gn k m rng vng nh cho tin trnh. C hai cch gii quyt: Di ch tin trnh : di chuyn tin trnh n mt vng nh khc ln tha mn nhu cu tng trng ca tin trnh. Cp pht d vng nh cho tin trnh : cp pht d phng cho tin trnh mt vng nh ln hn yu cu ban u ca tin trnh. Mt tin trnh cn c np vo b nh x l. Trong cc phng thc t chc trn y, mt tin trnh lun c lu tr trong b nh sut qu trnh x l ca n. Tuy nhin, trong trng hp tin trnh b kha, hoc tin trnh s dng ht thi gian CPU dnh cho n, n c th c chuyn tm thi ra b nh ph v sau ny c np tr li vo b nh chnh tip tc x l. Cc cch t chc b nh trn y u phi chu ng tnh trng b nh b phn mnh v chng u tip cn theo kiu cp pht mt vng nh lin tc cho tin trnh. Nh tho lun, c th s dng k thut dn b nh loi b s phn mnh ngoi vi, nhng chi ph thc hin rt cao. Mt gii php khc hu hiu hn l cho php khng gian a ch vt l ca tin trnh khng lin tc, ngha l c th cp pht cho tin trnh nhng vng nh t do bt k, khng cn lin tc.

IV. Cp pht khng lin tc


IV.1. Phn on (Segmentation) tng: quan nim khng gian a ch l mt tp cc phn on (segments) cc phn on l nhng phn b nh kch thc khc nhau v c lin h logic vi nhau. Mi phn on c mt tn gi (s hiu phn on) v mt di. Ngi dng s thit lp mi a ch vi hai gi tr : <s hiu phn on, offset>.

Hnh 4.17 M hnh phn on b nh C ch MMU trong k thut phn on: Cn phi xy dng mt nh x chuyn i cc a ch 2 chiu c ngi dng nh ngha thnh a ch vt l mt chiu. S chuyn i ny c thc hin qua mt bng phn on. Mi thnh phn trong bng phn on bao gm mt thanh ghi nn v mt thanh ghi gii hn. Thanh ghi nn lu tr a ch vt l ni bt u phn on trong b nh, trong khi thanh ghi gii hn c t chiu di ca phn on. Chuyn i a ch: Mi a ch o l mt b <s,d> : s hiu phn on s : c s dng nh ch mc n bng phn on a ch tng i d : c gi tr trong khong t 0 n gii hn chiu di ca phn on. Nu a ch tng i hp l, n s c cng vi gi tr cha trong thanh ghi nn pht sinh a ch vt l tng ng.

Hnh 4.18 C ch phn cng h tr k thut phn on

Hnh 4.19 H thng phn on Ci t bng phn on: C th s dng cc thanh ghi lu tr bng phn on nu s lng phn on nh. Trong trng hp chng trnh bao gm qu nhiu phn on, bng phn on phi c lu trong b nh chnh. Mt thanh ghi nn bng phn on (STBR) ch n a ch bt u ca bng phn on. V s lng phn on s dng trong mt chng trnh bin ng, cn s dng thm mt thanh ghi c t kch thc bng phn on (STLR).

Vi mt a ch logic <s,d>, trc tin s hiu phn on s c kim tra tnh hp l (s <STLR). K tip, cng gi tr s vi STBR c c a ch a ch ca phn t th s trong bng phn on (STBR+s). i ch vt l cui cng l (STBR+s + d)

Hnh 4.20 S dng STBR, STLR v bng phn on Bo v: Mt u im c bit ca c ch phn on l kh nng c t thuc tnh bo v cho mi phn on. V mi phn on biu din cho mt phn ca chng trnh vi ng ngha c ngi dng xc nh, ngi s dng c th bit c mt phn on cha ng nhng g bn trong, do vy h c th c t cc thuc tnh bo v thch hp cho tng phn on. C ch phn cng ph trch chuyn i a ch b nh s kim tra cc bit bo v c gn vi mi phn t trong bng phn on ngn chn cc thao tc truy xut bt hp l n phn on tng ng. Chia s phn on: Mt u im khc ca k thut phn on l kh nng chia s mc phn on. Nh kh nng ny, cc tin trnh c th chia s vi nhau tng phn chng trnh ( v d cc th tc, hm), khng nht thit phi chia s ton b chng trnh nh trng hp phn trang. Mi tin trnh c mt bng phn on ring, mt phn on c chia s khi cc phn t trong bng phn on ca hai tin trnh khc nhau cng ch n mt v tr vt l duy nht.

Hnh 4.21 Chia s code trong h phn on Tho lun: Phi gii quyt vn cp pht ng: lm th no tha mn mt yu cu vng nh kch thc N ? Cn phi chn vng nh no trong danh sch vng nh t do cp pht ? Nh vy cn phi ghi nh hin trng b nh c th cp pht ng. C hai phng php qun l ch yu : Qun l bng mt bng cc bit : b nh c chia thnh cc n v cp pht, mi n v c phn nh bng mt bit trong bng cc bit, mt bit nhn gi tr 0 nu n v b nh tng ng ang t do, v nhn gi tr 1 nu n v tng ng c cp pht cho mt tin trnh. Khi cn np mt tin trnh c kch thc k n v, cn phi tm trong bng cc bit mt dy con k bit nhn gi tr 0. y l mt gii php n gin, nhng thc hin chm nn t c s dng.

Hnh 4.5 Qun l b nh bng bng cc bit Qun l bng danh sch: T chc mt danh sch cc phn on cp pht v phn on t do, mt phn on c th l mt tin trnh (P) hay vng nh trng gia hai tin trnh (H).

Hnh 4.6 Qun l b nh bng danh sch Cc thut ton thng dng chn mt phn on t do trong danh sch cp pht cho tin trnh l : First-fit: cp pht phn on t do u tin ln. Best-fit: cp pht phn on t do nh nht nhng ln tha mn nhu cu. Worst-fit : cp pht phn on t do ln nht. Trong h thng s dng k thut phn on , hin tng phn mnh ngoi vi li xut hin khi cc khi nh t do u qu nh, khng cha mt phn on.

IV.2. Phn trang ( Paging) tng: Phn b nh vt l thnh cc khi (block) c kch thc c nh v bng nhau, gi l khung trang (page frame). Khng gian a ch cng c chia thnh cc khi c cng kch thc vi khung trang, v c gi l trang (page). Khi cn np mt tin trnh x l, cc trang ca tin trnh s c np vo nhng khung trang cn trng. Mt tin trnh kch thc N trang s yu cu N khung trang t do.

Hnh 4.8 M hnh b nh phn trang C ch MMU trong k thut phn trang: C ch phn cng h tr thc hin chuyn i a ch trong c ch phn trang l bng trang (pages table). Mi phn t trong bng trang cho bit cc a ch bt u ca v tr lu tr trang tng ng trong b nh vt l ( s hiu khung trang trong b nh vt l ang cha trang ). Chuyn i a ch: Mi a ch pht sinh bi CPU c chia thnh hai phn: s hiu trang (p): s dng nh ch mc n phn t tng ng trong bng trang. a ch tng i trong trang (d): kt hp vi a ch bt u ca trang to ra a ch vt l m trnh qun l b nh s dng. Kch thc ca trang do phn cng qui nh. d phn tch a ch o thnh s hiu trang v a ch tng i, kch thc ca mt trang thng thng l mt ly tha ca 2 (bin i trong phm vi 512 bytes v 8192 bytes). Nu kch thc ca khng gian a ch l 2m v kch thc trang l 2 n, th m-n bits cao ca a ch o s biu din s hiu trang, v n bits thp cho bit a ch tng i trong trang.

p m-n Ci t bng trang:

d n

Trong trng hp n gin nht, bng trang mt tp cc thanh ghi c s dng ci t bng trang. Tuy nhin vic s dng thanh ghi ch ph hp vi cc bng trang c kch thc nh, nu bng trang c kch thc ln, n phi c lu tr trong b nh chnh, v s dng mt thanh ghi lu a ch bt u lu tr bng trang (PTBR).

Theo cch t chc ny, mi truy xut n d liu hay ch th u i hi hai ln truy xut b nh : mt cho truy xut n bng trang v mt cho bn thn d liu!

Hnh 4.10 M hnh b nh phn trang

Hnh 4.11 S dng thanh ghi nn tr n bng trang C th n trnh bt vic truy xut b nh hai ln bng cch s dng thm mt vng nh c bit , vi tc truy xut nhanh v cho php tm kim song song, vng nh cache nh ny thng c gi l b nh kt hp (TLBs). Mi thanh ghi trong b nh kt hp gm mt t kha v mt gi tr, khi a n b nh kt hp mt i tng cn tm, i tng ny s c so snh cng lc vi cc t kha trong b nh kt hp tm ra phn t tng ng. Nh c tnh ny m vic tm kim trn b nh kt hp c thc hin rt nhanh, nhng chi ph phn cng li cao. Trong k thut phn trang, TLBs c s dng lu tr cc trang b nh c truy cp gn hin ti nht. Khi CPU pht sinh mt a ch, s hiu trang ca a ch s c so snh vi cc phn t trong TLBs, nu c trang tng ng trong TLBs, th s xc nh c ngay s hiu khung trang tng ng, nu khng mi cn thc hin thao tc tm kim trong bng trang.

T chc bng trang: Mi h iu hnh c mt phng php ring t chc lu tr bng trang. a s cc h iu hnh cp cho mi tin trnh mt bng trang. Tuy nhin phng php ny khng th chp nhn c nu h iu hnh cho php qun l mt khng gian a ch c dung lng qu (232, 264): trong cc h thng nh th, bn thn bng trang i hi mt vng nh qa ln! C hai gii php cho vn ny: Phn trang a cp: phn chia bng trang thnh cc phn nh, bn thn bng trang cng s c phn trang

Bng trang nghch o: s dng duy nht mt bng trang nghch o cho tt c cc tin trnh . Mi phn t trong bng trang nghch o phn nh mt khung trang trong b nh bao gm a ch logic ca mt trang ang c lu tr trong b nh vt l ti khung

trang ny, cng vi thng tin v tin trnh ang c s hu trang. Mi a ch o khi l mt b ba <idp, p, d > Trong : idp l nh danh ca tin trnh p l s hiu trang d l a ch tng i trong trang Mi phn t trong bng trang nghch o l mt cp <idp, p >. Khi mt tham kho n b nh c pht sinh, mt phn a ch o l <idp, p > c a n cho trnh qun l b nh tm phn t tng ng trong bng trang nghch o, nu tm thy, a ch vt l <i,d> s c pht sinh. Trong cc trng hp khc, xem nh tham kho b nh truy xut mt a ch bt hp l.

Bo v: C ch bo v trong h thng phn trang c thc hin vi cc bit bo v c gn vi mi khung trang. Thng thng , cc bit ny c lu trong bng trang , v mi truy xut n b nh u phi tham kho n bng trang pht sinh a ch vt l, khi , h thng c th kim tra cc thao tc truy xut trn khung trang tng ng c hp l vi thuc tnh bo v ca n khng. Ngoi ra, mt bit ph tri c thm vo trong cu trc mt phn t ca bng trang : bit hp l-bt hp l (valid-invalid). Hp l : trang tng ng thuc v khng gian a ch ca tin trnh. Bt hp l : trang tng ng khng nm trong khng gian a ch ca tin trnh, iu ny c ngha tin trnh truy xut n mt a ch khng c php.

Hnh 4.15 Cu trc mt phn t trong bng trang Chia s b nh trong c ch phn trang: Mt u im ca c ch phn trang l cho php chia s cc trang gia cc tin trnh.Trong trng hp ny, s chia s c thc hin bng cch nh x nhiu a ch logic vo mt a ch vt l duy nht. C th p dng k thut ny cho php c tin trnh chia s mt vng code chung: nu c nhiu tin trnh ca cng mt chng trnh, ch cn lu tr mt on code ca chng trnh ny trong b nh, cc tin trnh s c th cng truy xut n cc trang cha code chung ny. Lu c th chia s mt on code, on code ny phi c thuc tnh reenterable (cho php mt bn sao ca chng trnh c s dng ng thi bi nhiu tc v).

Tho lun: K thut phn trang loi b c hin tng phn mnh ngoi vi : mi khung trang u c th c cp pht cho mt tin trnh no c yu cu. Tuy nhin hin tng phn mnh ni vi vn c th xy ra khi kch thc ca tin trnh khng ng bng bi s ca kch thc mt trang, khi , trang cui cng s khng c s dng ht. Mt khi cnh tch cc rt quan trng khc ca k thut phn trang l s phn bit rch ri gc nhn ca ngi dng v ca b phn qun l b nh vt l: Gc nhn ca ngi s dng: mt tin trnh ca ngi dng nhn thy b nh nh l mt khng gian lin tc, ng nht v ch cha duy nht bn thn tin trnh ny.

Gc nhn ca b nh vt l: mt tin trnh ca ngi s dng c lu tr phn tn khp b nh vt l, trong b nh vt l ng thi cng cha nhng tin trnh khc. Phn cng m nhim vic chuyn i a ch logic thnh a ch vt l . S chuyn i ny l trong sut i vi ngi s dng. lu tr cc thng tin chi tit v qu trnh cp pht b nh, h iu hnh s dng mt bng khung trang, m mi phn t m t tnh trng ca mt khung trang vt l : t do hay c cp pht cho mt tin trnh no . Lu rng s phn trang khng phn nh ng cch thc ngi s dng cm nhn v b nh. Ngi s dng nhn thy b nh nh mt tp cc i tng ca chng trnh (segments, cc th vin...) v mt tp cc i tng d liu (bin ton cc, stack, vng nh chia s...). Vn t ra l cn tm mt cch thc biu din b nh sao cho c th cung cp cho ngi dng mt cch nhn gn vi quan im logic ca h hn v l k thut phn on K thut phn on tha mn c nhu cu th hin cu trc logic ca chng trnh nhng n dn n tnh hung phi cp pht cc khi nh c kch thc khc nhau cho cc phn on trong b nh vt l. iu ny lm rc ri vn hn rt nhiu so vi vic cp pht cc trang c kch thc tnh.Mt gii php dung ho l kt hp c hai k thut phn trang v phn on : chng ta tin hnh phn trang cc phn on.

IV.3. Phn on kt hp phn trang (Paged segmentation) tng: Khng gian a ch l mt tp cc phn on, mi phn on c chia thnh nhiu trang. Khi mt tin trnh c a vo h thng, h iu hnh s cp pht cho tin trnh cc trang cn thit cha cc phn on ca tin trnh. C ch MMU trong k thut phn on kt hp phn trang: h tr k thut phn on, cn c mt bng phn on, nhng gi y mi phn on cn c mt bng trang phn bit. Chuyn i a ch: Mi a ch logic l mt b ba: <s,p,d> s hiu phn on (s): s dng nh ch mc n phn t tng ng trong bng phn on. s hiu trang (p): s dng nh ch mc n phn t tng ng trong bng trang ca phn on.

a ch tng i trong trang (d): kt hp vi a ch bt u ca trang to ra a ch vt l m trnh qun l b nh s dng.

Hnh 4.22 M hnh phn on k hp phn trang

Tt c cc m hnh t chc b nh trn y u c khuynh hng cp pht cho tin trnh ton b cc trang yu cu trc khi tht s x l. V b nh vt l c kch thc rt gii hn, iu ny dn n hai im bt tin sau : Kch thc tin trnh b gii hn bi kch thc ca b nh vt l.

Kh c th bo tr nhiu tin trnh cng lc trong b nh, v nh vy kh nng cao mc a chng ca h thng.

V. Tm tt
C nhiu cch tip cn khc nhau t chc qun l b nh, nhng tu chung mong t n cc mc tiu sau : C th p ng c y cc nhu cu b nh ca chng trnh vi mt b nh vt l gii hn Qu trnh chuyn i a ch, t chc cp pht b nh l trong sut vi ngi dng, v c kh nng ti nh v. Tn dng hiu qu b nh ( t c vng nh khng s dng c) B nh c bo v tt C kh nng chia s b nh gia cc tin trnh Mt s cch tip cn t chc b nh chnh Cp pht lin tc : c th cp pht cc vng nh lin tc cho cc tin trnh trong nhng phn vng c kch thc c nh hay bin ng. im yu ca cch tip cn ny l kch thc cc chng trnh c th dc x l b gii hn bi cc kch thc ca khi nh lin tc c th s dng. Cc hin tng phn mnh ngoi vi, ni vi u c th xut hin Cp pht khng lin tc : c th cp pht cc vng nh khng lin tc cho mt tin trnh. Hai k thut thng c p dng l phn trang v phn on. K thut phn trang cho php loi b hin tng phn mnh ngoi vi, k thut phn on loi b hin tng phn mnh ni vi, nhng phi gii quyt vn cp pht ng.

Cng c bi hc
Cc cu hi cn tr li c sau bi hc ny : 1. Nhim v qun l b nh bao gm cc cng vic no ? Giai on no do h iu hnh thc hin , giai on no cn s tr gip ca phn cng? 2. Cc khi nim : phn mnh ni vi, phn mnh ngoi vi, bi ton cp pht ng, i ch logic, i ch physic 3. Phn tch u khuyt ca cc m hnh t chc b nh.

Bi Tp
Bi 1. Gii thch s khc bit gia a ch logic v a ch physic? Bi 2. Gii thch s khc bit gia hin tng phn mnh ni vi v ngoi vi? Bi 3. Gi s b nh chnh c phn thnh cc phn vng c kch thc l 600K, 500K, 200K, 300K ( theo th t ), cho bit cc tin trnh c kch thc 212K, 417K, 112K v 426K ( theo th t ) s c cp pht b nh nh th no, nu s dng : a) Thut ton First fit b) Thut ton Best fit c) Thut ton Worst fit Thut ton no cho php s dng b nh hiu qa nht trong trng hp trn ? Bi 4. Xt mt h thng trong mt chng trnh khi c np vo b nh s phn bit hon ton phn on code v phn on data. Gi s CPU s xc nh c khi no cn truy xut lnh hay d liu , v phi truy xut u. Khi mi chng trnh s c cung cp 2 b thanh ghi base-limit : mt cho phn on code, v mt cho phn on data. B thanh ghi base-limit ca phn on code t ng c t thuc tnh readonly. Tho lun cc u v khuyt im ca h thng ny. Bi 5. Ti sao kch thc trang lun l ly tha ca 2 ? Bi 6. Xt mt khng gian a ch c 8 trang, mi trang c kch thc 1K. nh x vo b nh vt l c 32 khung trang. a) a ch logic gm bao nhiu bit ? b) a ch physic gm bao nhiu bit ? Bi 7. Ti sao trong h thng s dng k thut phn trang, mt tin trnh khng th truy xut n vng nh khng c cp cho n ? Lm cch no h iu hnh c th cho php s truy xut ny xy ra ? H iu hnh c nn cho php iu khng ? Ti sao ? Bi 8. Xt mt h thng s dng k thut phn trang, vi bng trang c lu tr trong b nh chnh. a) Nu thi gian cho mt ln truy xut b nh bnh thng l 200nanoseconds, th mt bao nhiu thi gian cho mt thao tc truy xut b nh trong h thng ny ?

b) Nu s dng TLBs vi hit-ratio ( t l tm thy) l 75%, thi gian tm trong TLBs xem nh bng 0, tnh thi gian truy xut b nh trong h thng ( effective memory reference time) Bi 9. Nu cho php hai phn t trong bng trang cng lu tr mt s hiu khung trang trong b nh th s c hiu qa g ? Gii thch lm cch no hiu qa ny c th c s dng gim thi gian cn khi sao chp mt khi lng ln vng nh t v tr ny sang v tr khc. Khi nu sa ni dung mt trang th s tc ng n trang cn li th no? Bi 10. V sao i lc ngi ta kt hp hai k thut phn trang v phn on ? Bi 11. M t c ch cho php mt phn on c th thuc v khng gian i ch ca hai tin trnh. Bi 12. Gii thch v sao chia s mt module trong k thut phn on li d hn trong k thut phn trang? Bi 13. Xt bng phn on sau y : Segment 0 1 2 3 4 Base 219 2300 90 1327 1952 Length 600 14 100 580 96

Cho bit a ch vt l tng ng vi cc a ch logique sau y :


a. b. c. d. e. 0,430 1,10 2,500 3,400 4,112

BI 7:

B NH O

B nh o l mt k thut hin i gip cho ngi dng c gii phng hon ton khi mi bn tm v gii hn b nh. tng, u im v nhng vn lin quan n vic t chc b nh o s c trnh by trong bi hc ny.

I. Dn nhp
Nu t ton th khng gian a ch vo b nh vt l, th kch thc ca chng trnh b gii hn bi kch thc b nh vt l. Thc t, trong nhiu trng hp, chng ta khng cn phi np ton b chng trnh vo b nh vt l cng mt lc, v ti mt thi im ch c mt ch th ca tin trnh c x l. V d, cc chng trnh u c mt on code x l li, nhng on code ny hu nh rt t khi c s dng v him khi xy ra li, trong trng hp ny, khng cn thit phi np on code x l li t u. T nhn xt trn, mt gii php c xut l cho php thc hin mt chng trnh ch c np tng phn vo b nh vt l. tng chnh ca gii php ny l ti mi thi im ch lu tr trong b nh vt l cc ch th v d liu ca chng trnh cn thit cho vic thi hnh ti thi im . Khi cn n cc ch th khc, nhng ch th mi s c np vo b nh, ti v tr trc b chim gi bi cc ch th nay khng cn cn n na. Vi gii php ny, mt chng trnh c th ln hn kch thc ca vng nh cp pht cho n. Mt cch thc hin tng ca gii php trn y l s dng k thut overlay. K thut overlay khng i hi bt k s tr gip c bit no ca h iu hnh , nhng tri li, lp trnh vin phi bit cch lp trnh theo cu trc overlay, v iu ny i hi kh nhiu cng sc. gii phng lp trnh vin khi cc suy t v gii hn ca b nh, m cng khng tng thm kh khn cho cng vic lp trnh ca h, ngi ta ngh n cc k thut t ng, cho php x l mt chng trnh c kch thc ln ch vi mt vng nh c kch thc nh . Gii php c tm thy vi khi nim b nh o (virtual memory). I.1. nh ngha B nh o l mt k thut cho php x l mt tin trnh khng c np ton b vo b nh vt l. B nh o m hnh ho b nh nh mt bng lu tr rt ln v ng nht, tch bit hn khi nim khng gian a ch v khng gian vt l. Ngi s dng ch nhn thy v lm vic trong khng gian a ch o, vic chuyn i sang khng gian vt l do h iu hnh thc hin vi s tr gip ca cc c ch phn cng c th. Tho lun:

Cn kt hp k thut swapping n chuyn cc phn ca chng trnh vo-ra gia b nh chnh v b nh ph khi cn thit. Nh vic tch bit b nh o v b nh vt l, c th t chc mt b nh o c kch thc ln hn b nh vt l. B nh o cho php gim nh cng vic ca lp trnh vin v h khng cn bn tm n gii hn ca vng nh vt l, cng nh khng cn t chc chng trnh theo cu trc overlays.

Hnh 2.24 B nh o I.2. Ci t b nh o B nh o thng c thc hin vi k thut phn trang theo yu cu (demand paging). Cng c th s dng k thut phn on theo yu cu ( demand segmentation) ci t b nh o, tuy nhin vic cp pht v thay th cc phn on phc tp hn thao tc trn trang, v kch thc khng bng nhau ca cc on. Phn trang theo yu cu ( demand paging) Mt h thng phn trang theo yu cu l h thng s dng k thut phn trang kt hp vi k thut swapping. Mt tin trnh c xem nh mt tp cc trang, thng tr trn b nh ph ( thng l a). Khi cn x l, tin trnh s c np vo b nh chnh. Nhng thay v np ton b chng trnh, ch nhng trang cn thit trong thi im hin ti mi c np vo b nh. Nh vy mt trang ch c np vo b nh chnh khi c yu cu. Vi m hnh ny, cn cung cp mt c ch phn cng gip phn bit cc trang ang trong b nh chnh v cc trang trn a. C th s dng li bit valid-invalid nhng vi ng ngha mi: valid : trang tng ng l hp l v ang trong b nh chnh .

invalid : hoc trang bt hp l (khng thuc v khng gian a ch ca tin trnh) hoc trang hp l nhng ang c lu trn b nh ph. Mt phn t trong bng trang m t cho mt trang khng nm trong b nh chnh, s c nh du invalid v cha a ch ca trang trn b nh ph. C ch phn cng : C ch phn cng h tr k thut phn trang theo yu cu l s kt hp ca c ch h tr k thut phn trang v k thut swapping: Bng trang: Cu trc bng trang phi cho php phn nh tnh trng ca mt trang l ang nm trong b nh chnh hay b nh ph. B nh ph: B nh ph lu tr nhng trang khng c np vo b nh chnh. B nh ph thng c s dng l a, v vng khng gian a dng lu tr tm cc trang trong k thut swapping c gi l khng gian swapping.

Hnh 2.24 Bng trang vi mt s trang trn b nh ph Li trang Truy xut n mt trang c nh du bt hp l s lm pht sinh mt li trang (page fault). Khi d tm trong bng trang ly cc thng tin cn thit cho vic chuyn i a

ch, nu nhn thy trang ang c yu cu truy xut l bt hp l, c ch phn cng s pht sinh mt ngt bo cho h iu hnh. H iu hnh s x l li trang nh sau : Kim tra truy xut n b nh l hp l hay bt hp l Nu truy xut bt hp l : kt thc tin trnh Ngc li : n bc 3 Tm v tr cha trang mun truy xut trn a. Tm mt khung trang trng trong b nh chnh : Nu tm thy : n bc 5 Nu khng cn khung trang trng, chn mt khung trang nn nhn v chuyn trang nn nhn ra b nh ph (lu ni dung ca trang ang chim gi khung trang ny ln a), cp nht bng trang tng ng ri n bc 5 Chuyn trang mun truy xut t b nh ph vo b nh chnh : np trang cn truy xut vo khung trang trng chn (hay va mi lm trng ) ; cp nht ni dung bng trang, bng khung trang tng ng. Ti kch hot tin trnh ngi s dng.

Hnh 2.26 Cc giai on x l li trang

II. Thay th trang

Khi xy ra mt li trang, cn phi mang trang vng mt vo b nh . Nu khng c mt khung trang no trng, h iu hnh cn thc hin cng vic thay th trang chn mt trang ang nm trong b nh m khng c s dng ti thi im hin ti v chuyn n ra khng gian swapping trn a gii phng mt khung trang dnh ch np trang cn truy xut vo b nh. Nh vy nu khng c khung trang trng, th mi khi xy ra li trang cn phi thc hin hai thao tc chuyn trang : chuyn mt trang ra b nh ph v np mt trang khc vo b nh chnh. C th gim bt s ln chuyn trang bng cch s dng thm mt bit cp nht (dirty bit). Bit ny c gn vi mi trang phn nh tnh trng trang c b cp nht hay khng : gi tr ca bit c c ch phn cng t l 1 mi ln c mt t c ghi vo trang, ghi nhn ni dung trang c b sa i. Khi cn thay th mt trang, nu bit cp nht c gi tr l 1 th trang cn c lu li trn a, ngc li, nu bit cp nht l 0, ngha l trang khng b thay i, th khng cn lu tr trang tr li a. s hiu trang bit valid-invalid dirty bit

Hnh 4.27 Cu trc mt phn t trong bng trang S thay th trang l cn thit cho k thut phn trang theo yu cu. Nh c ch ny, h thng c th hon ton tch ri b nh o v b nh vt l, cung cp cho lp trnh vin mt b nh o rt ln trn mt b nh vt l c th b hn rt nhiu ln.

II.1. S thi hnh phn trang theo yu cu Vic p dng k thut phn trang theo yu cu c th nh hng mnh n tnh hnh hot ng ca h thng. Ga s p l xc sut xy ra mt li trang (0 p 1): p = 0 : khng c li trang no p = 1 : mi truy xut s pht sinh mt li trang Thi gian tht s cn thc hin mt truy xut b nh (TEA) l: TEA = (1-p)ma + p (tdp) [+ swap out ] + swap in + ti kch hot Trong cng thc ny, ma l thi gian truy xut b nh, tdp thi gian x l li trang. C th thy rng, duy tr mt 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.

Hn na, ci t k thut phn trang theo yu cu, cn phi gii quyt hai vn chnh yu : xy dng mt thut ton cp pht khung trang, v thut ton thay th trang. II.2. Cc thut ton thay th trang Vn chnh khi thay th trang l chn la mt trang nn nhn chuyn ra b nh ph. C nhiu thut ton thay th trang khc nhau, nhng tt c cng chung mt mc tiu : chn trang nn nhn l trang m sau khi thay th s gy ra t li trang nht. C th nh gi hiu qa ca mt thut ton bng cch x l trn mt chui cc a ch cn truy xut v tnh ton s lng li trang pht sinh. V d: Gi s theo vt x l ca mt tin trnh v nhn thy tin trnh thc hin truy xut cc a ch theo th t sau : 0100, 0432, 0101, 0162, 0102, 0103, 0104, 0101, 0611, 0102, 0103,0104, 0101, 0610, 0102, 0103, 0104, 0101, 0609, 0102, 0105 Nu c kch thc ca mt trang l 100 bytes, c th vit li chui truy xut trn gin lc hn nh sau : 1, 4, 1, 6, 1, 6, 1, 6, 1 xc nh s cc li trang xy ra khi s dng mt thut ton thay th trang no trn mt chui truy xut c th, cn cn phi bit s lng khung trang s dng trong h thng. minh ho cc thut ton thay th trang s trnh by, chui truy xut c s dng l : 7, 0, 1, 2, 0, 3, 0, 4, 2, 3, 0, 3, 2, 1, 2, 0, 1, 7, 0, 1 II.2.1. Thut ton FIFO Tip cn: Ghi nhn thi im mt trang c mang vo b nh chnh. Khi cn thay th trang, trang trong b nh lu nht s c chn V d : s dng 3 khung trang , ban u c 3 u trng : 7 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0 1 7 0 1 7 7 7 2 2 2 2 4 4 4 0 0 0 0 0 0 0 7 7 7 0 0 0 0 3 3 3 2 2 2 2 2 1 1 1 1 1 0 0 1 1 1 1 0 0 0 3 3 3 3 3 2 2 2 2 2 1 * * * * * * * * * * * * * * *

Ghi ch : * : c li trang Tho lun: p dng thut ton FIFO, thc t khng nht thit phi ghi nhn thi im mi trang c np vo b nh, m ch cn t chc qun l cc trang trong b nh trong mt danh sch FIFO, khi trang u danh sch s c chn thay th. Thut ton they th trang FIFO d hiu, d ci t. Tuy nhin khi thc hin khng phi lc no cng c kt qa tt : trang c chn thay th c th l trang chc nhiu d liu cn thit, thng xuyn c s dng nn c np sm, do vy khi b chuyn ra b nh ph s nhanh chng gy ra li trang. S lng li trang xy ra s tng ln khi s lng khung trang s dng tng. Hin tng ny gi l nghch l Belady. V d: 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5 S dng 3 khung trang , s c 9 li trang pht sinh 1 1 2 1 2 * * 3 1 2 3 * 4 4 2 3 * 1 4 1 3 * 2 4 1 2 * 5 5 1 2 * 1 5 1 2 2 5 1 2 3 5 3 2 * 4 5 3 4 * 5 5 3 4

S dng 4 khung trang , s c 10 li trang pht sinh 1 1 2 1 2 3 1 2 3 * * * 4 1 2 3 4 * 1 1 2 3 4 2 1 2 3 4 5 5 2 3 4 * 1 5 1 3 4 * 2 5 1 2 4 * 3 5 1 2 3 * 4 4 1 2 3 * 5 4 5 2 3 *

II.2.2. Thut ton ti u Tip cn: Thay th trang s lu c s dng nht trong tng lai. V d : s dng 3 khung trang, khi u u trng:

7 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0 1 7 0 1 7 7 7 2 2 2 2 2 2 2 2 2 2 2 2 2 2 7 7 7 0 0 0 0 0 0 4 4 4 0 0 0 0 0 0 0 0 0 0 1 1 1 3 3 3 3 3 3 3 3 1 1 1 1 1 1 1 * * * * * * * Tho lun: Thut ton ny bo m s lng li trang pht sinh l thp nht , n cng khng gnh chu nghch l Belady, tuy nhin, y l mt thut ton khng kh thi trong thc t, v khng th bit trc chui truy xut ca tin trnh! II.2.3. Thut ton Lu nht cha s dng ( Least-recently-used LRU) Tip cn: Vi mi trang, ghi nhn thi im cui cng trang c truy cp, trang c chn thay th s l trang lu nht cha c truy xut. V d: s dng 3 khung trang, khi u u trng: 7 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0 1 7 0 1 7 7 7 2 2 2 2 4 4 4 0 0 0 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 3 3 3 3 3 3 0 0 0 0 0 1 1 1 3 3 3 2 2 2 2 2 2 2 2 2 7 7 7 * * * * * * * * * Tho lun: Thut ton FIFO s dng thi im np chn trang thay th, thut ton ti u li dng thi im trang s c s dng, v thi im ny khng th xc nh trc nn thut ton LRU phi dng thi im cui cng trang c truy xut dng qu kh gn d on tng lai. Thut ton ny i hi phi c c ch phn cng h tr xc nh mt th t cho cc trang theo thi im truy xut cui cng. C th ci t theo mt trong hai cch : S dng b m: thm vo cu trc ca mi phn t trong bng trang mt trng ghi nhn thi im truy xut mi nht, v thm vo cu trc ca CPU mt b m. mi ln c s truy xut b nh, gi tr ca counter tng ln 1. * * * * *

Mi ln thc hin truy xut n mt trang, gi tr ca counter c ghi nhn vo trng thi im truy xut mi nht ca phn t tng ng vi trang trong bng trang. thay th trang c gi tr trng thi im truy xut mi nht l nh nht. S dng stack: t chc mt stack lu tr cc s hiu trang mi khi thc hin mt truy xut n mt trang, s hiu ca trang s c xa khi v tr hin hnh trong stack v a ln u stack. trang nh stack l trang c truy xut gn nht, v trang y stack l trang lu nht cha c s dng. II.2.4. Cc thut ton xp x LRU C t h thng c cung cp cc h tr phn cng ci t c thut ton LRU tht s. Tuy nhin, nhiu h thng c trang b thm mt bit tham kho ( reference): mt bit reference, c khi gn l 0, c gn vi mt phn t trong bng trang. bit reference ca mt trang c phn cng t gi tr 1 mi ln trang tng ng c truy cp, v c phn cng gn tr v 0 sau tng chu k qui nh trc. Sau tng chu k qui nh trc, kim tra gi tr ca cc bit reference, c th xc nh c trang no c truy xut n v trang no khng, sau khi kim tra xong, cc bit reference c phn cng gn tr v 0 . vi bit reference, c th bit c trang no c truy xut, nhng khng bit c th t truy xut. Thng tin khng y ny dn n nhiu thut ton xp x LRU khc nhau. s hiu trang bit valid-invalid dirty bit bit reference

Hnh 4.28 Cu trc mt phn t trong bng trang a) Thut ton vi cc bit reference ph tr Tip cn: C th thu thp thm nhiu thng tin v th t truy xut hn bng cch lu tr cc bit references sau tng khong thi gian u n: vi mi trang, s dng thm 8 bit lch s (history)trong bng trang

sau tng khong thi gian nht nh (thng l100 millisecondes), mt ngt ng h c pht sinh, v quyn iu khin c chuyn cho h iu hnh. H iu hnh t bit reference ca mi trang vo bit cao nht trong 8 bit ph tr catrang bng cch y cc bit khc sang phi 1 v tr, b lun bit thp nht. nh vy 8 bit thm vo ny s l u tr tnh hnh truy xut n trang trong 8 chu k cui cng. nu ga tr ca 8 bit l 00000000, th trang tng ng khng c dng n sut 8 chu k cui cng, ngc li nu n c dng n t nht 1 ln trong mi chu k, th 8 bit ph tr s l 11111111. Mt trang m 8 bit ph tr c gi tr11000100 s c truy xut gn thi im hin ti hn trang c 8 bit ph tr l 01110111. nu xt 8 bit ph tr ny nh mt s nguyn khng du, th trang LRU l trang c s ph tr nh nht. V d :

0 HR =11000100 HR =11100010 HR =01110001

1 0

Tho lun: S lng cc bit lch s c th thay i ty theo phn cng, v phi c chn sao cho vic cp nht l nhanh nht c th. b) Thut ton c hi th hai Tip cn: S dng mt bit reference duy nht. Thut ton c s vn l FIFO, tuy nhin khi chn c mt trang theo tiu chun FIFO, kim tra bit reference ca trang : Nu gi tr ca bit reference l 0, thay th trang chn. Ngc li, cho trang ny mt c hi th hai, v chn trang FIFO tip theo. Khi mt trang c cho c hi th hai, gi tr ca bit reference c t li l 0, v thi im vo Ready List c cp nht li l thi im hin ti. Mt trang c cho c hi th hai s khng b thay th trc khi h thng thay th ht nhng trang khc. Hn na, nu trang thng xuyn c s dng, bit reference ca n s duy tr c gi tr 1, v trang hu nh khng bao gi b thay th.

Tho lun: C th ci t thut ton c hi th hai vi mt xu vng.

Hnh 2.29 Thut ton thay th trang <<c hi th hai >> c) Thut ton c hi th hai nng cao (Not Recently Used - NRU) Tip cn : xem cc bit reference v dirty bit nh mt cp c th t . Vi hai bit ny, c th c 4 t hp to thnh 4 lp sau : (0,0) khng truy xut, khng sa i: y l trang tt nht thay th. (0,1) khng truy xut gn y, nhng b sa i: trng hp ny khng tht tt, v trang cn c lu tr li trc khi thay th. (1,0) c truy xut gn y, nhng khng b sa i: trang c th nhanh chng c tip tc c s dng. (1,1) c truy xut gn y, v b sa i: trang c th nhanh chng c tip tc c s dng, v trc khi thay th cn phi c lu tr li.

lp 1 c u tin thp nht, v lp 4 c u tin cao nht. mt trang s thuc v mt trong bn lp trn, tu vo bit reference v dirty bit ca trang . trang c chn thay th l trang u tin tm thy trong lp c u tin thp nht v khc rng. d) Cc thut ton thng k Tip cn: s dng mt bin m lu tr s ln truy xut n mt trang, v pht trin hai thut ton sau : Thut ton LFU: thay th trang c gi tr bin m nh nht, ngha l trang t c s dng nht. Thut ton MFU: thay th trang c gi tr bin m ln nht, ngha l trang c s dng nhiu nht (most frequently used).

III. Cp pht khung trang


Vn t ra l lm th no cp pht mt vng nh t do c kch thc c nh cho cc tin trnh khc nhau? Trong trng hp n gin nht ca b nh o l h n nhim, c th cp pht cho tin trnh duy nht ca ngi dng tt c cc khung trang trng. Vn ny sinh khi kt hp k thut phn trang theo yu cu vi s a chng : cn phi duy tr nhiu tin trnh trong b nh cng lc, vy mi tin trnh s c cp bao nhiu khung trang. S khung trang ti thiu: Vi mi tin trnh, cn phi cp pht mt s khung trang ti thiu no tin trnh c th hot ng. S khung trang ti thiu ny c quy nh bi kin trc ca ca mt ch th.Khi mt li trang xy ra trc khi ch th hin hnh hon tt, ch th cn c ti khi ng, lc cn c cc khung trang np tt c cc trang m mt ch th duy nht c th truy xut. S khung trang ti thiu c qui nh bi kin trc my tnh, trong khi s khung trang ti a c xc nh bi dung lng b nh vt l c th s dng. Cc thut ton cp pht khung trang C hai hng tip cn:

Cp pht c nh: Cp pht cng bng: nu c m khung trang v n tin trnh, mi tin trnh c cp m /n khung trang. Cp pht theo t l: ty vo kch thc ca tin trnh cp pht s khung trang : si = kch thc ca b nh o cho tin trnh pi S = si m = s lng tng cng khung trang c th s dng Cp pht ai khung trang cho tin trnh pi : ai = (si / S) m Cp pht theo u tin : s dng tng cp pht theo t l, nhng nhng s lng khung trang cp cho tin trnh ph thuc vo u tin ca tin trnh, hn l ph thuc kch thc tin trnh: Nu tin trnh pi pht sinh mt li trang, chn mt trong cc khung trang ca n thay th, hoc chn mt khung trang ca tin 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: Thay th ton cc: khi li trang xy ra vi mt tin 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 tin trnh khc. Thay th cc b: yu cu ch c chn trang thay th trong tp cc khung trang c cp cho tin trnh pht sinh li trang. Mt khuyt im ca thut ton thay th ton cc l cc tin trnh khng th kim sot c t l pht sinh li trang ca mnh. V th, tuy thut ton 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 (thrashing). III.1. Tr tr ton b h thng (Thrashing) Nu mt tin trnh khng c cc khung trang cha nhng trang cn thit cho x l, th n s thng xuyn pht sinh cc 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 tin trnh lm vo trng thi tr tr nu n s dng nhiu thi gian thay th trang hn l x l !

Hin tng tr tr ny nh hng nghim trng n hot ng h thng, xt tnh hung sau : H iu hnh gim st vic s dng CPU. Nu hiu sut s dng CPU qu thp, h iu hnh s nng mc a chng bng cch a thm mt tin trnh mi vo h thng. H thng c th s dng thut ton thay th ton cc chn cc trang nn nhn thuc mt tin trnh bt k c ch np tin trnh mi, c th s thay th c cc trang ca tin trnh ang x l hin hnh. Khi c nhiu tin trnh trong h thng hn, th mt tin trnh s c cp t khung trang hn, v do pht sinh nhiu li trang hn. Khi cc tin 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 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 tin trnh, v cc tin trnh khc li thiu khung trang...v cc tin 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 cao khng khip, khng cng vic no c th kt thc v tt c cc tin trnh u bn rn vi vic phn trang ! ngn cn tnh trng tr tr ny xy ra, cn phi cp cho tin trnh cc khung trang cn thit hot ng. Vn cn gii quyt l lm sao bit c tin trnh cn bao nhiu trang? M hnh cc b ( Locality) : theo l thuyt cc b, th khi mt tin 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 tin 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. III.1.1. M hnh tp lm vic (working set) Tip cn : M hnh working set t c s trn l thuyt cc b. M hnh ny s dng mt tham s , nh ngha mt ca s cho working set. Gi s kho st n v thi gian (ln truy xut trang) cui cng, tp cc trang c tin trnh truy xut n trong ln truy cp cui cng ny c gi l working set ca tin trnh ti thi im hin ti. Nu mt trang ang c tin trnh truy xut n, n s nm trong working set, nu n khng c s dng

na , n s b loi ra khi working set ca tin trnh sau n v thi gian k t ln truy xut cui cng n n. Nh vy working set chnh l mt s xp x ca khi nim nhm trang cc b.

Hnh 2.30 M hnh working set Mt thuc tnh rt quan trng ca working set l kch thc ca n. Nu tnh ton kch thc working set, WSSi, cho mi tin trnh trong h thng, th c th xem nh : D = WSSi vi D l tng s khung trang yu cu cho ton h thng. Mi tin trnh s dng cc trang trong working set ca n, ngha l tin 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. S dng: H iu hnh gim st working set ca mi tin trnh v cp pht cho tin trnh ti thiu cc khung trang cha working set ca n. Nh vy mt tin trnh mi ch c th c np vo h thng khi c khung trang t do cho working set ca n. Nu tng s khung trang yu cu ca cc tin trnh trong h thng vt qu cc khung trang c th s dng, h iu hnh chn mt tin trnh tm dng, gii phng bt cc khung trang cho cc tin trnh khc hon tt. Tho lun: Chin lc working set loi tr c tnh trng tr tr trong khi vn m bo mc a chng ca h thng l cao nht c th, cho php s dng ti u CPU. im kh khn ca m hnh ny l theo vt ca cc working set ca tin trnh trong tng thi im. C th xp x m hnh working set vi mt ngt ng h sau tng chu k nht nh v mt bit reference: pht sinh mt ngt ng h sau tng T ln truy xut b nh. khi xy ra mt ngt ng h, kim tra cc trang c bit reference l 1, cc trang ny c xem nh thuc v working set.

Mt h thng s dng k thut phn trang theo yu cu thun ty (mt trang khng bao gi c np trc khi c yu cu truy xut) l mt c im kh bt li : mt s lng ln li trang xy ra khi khi ng tin trnh. Tnh trng ny l hu qu ca khuynh hng t ti vic a nhm trang cc b vo b nh. Tnh trng ny cng c th xy ra khi mt tin trnh b chuyn tm thi ra b nh ph, khi c ti kch hot, tt c cc trang ca tin trnh c chuyn ln a phi c mang tr li vo b nh, v mt lot li trang li xy ra. ngn cn tnh hnh li trang xy ra qu nhiu ti thi im khi ng tin trnh, c th s dng k thut tin phn trang (prepaging) : np vo b nh mt ln tt c cc trang trong working set ca tin trnh.

III.2. Tn sut xy ra li trang Tip cn: Tn sut li trang rt cao khin tnh trng tr tr h thng c th xy ra. Khi tn sut li trang qu cao, tin trnh cn thm mt s khung trang. Khi tn sut li trang qu thp, tin trnh c th s hu nhiu khung trang hn mc cn thit. C th thit lp mt gi tr chn trn v chn di cho tn sut xy ra li trang, v trc tip c lng v kim sot tn sut li trang ngn chn tnh trang tr tr xy ra : Nu tn sut li trang vt qu chn trn, cp cho tin trnh thm mt khung trang Nu tn sut li trang thp hn chn di, thu hi bt mt khung trang t tin trnh

IV. Tm tt
Cc k thut h tr cc m hnh t chc b nh hin i : Swapping : s dng thm b nh ph lu tr tm cc tin trnh ang b kha, nh vy c th tng mc a chng ca h thng vi cu hnh my c dung lng b nh chnh thp. B nh o : s dng k thut phn trang theo yu cu, kt hp thm k thut swapping m rng b nh chnh. Tch bit khng gian a ch v khng gian vt l, nh c th x l cc chng trnh c kch thc ln hn b nh vt l tht s Khi ci t b nh o, phi s dng mt thut ton thay th trang thch hp chn cc trang b chuyn tm thi ra b nh ph, dnh ch trong b nh chnh cho trang mi. Cc thut ton thay th thng s dng l FIFO, LRU v cc thut ton xp x LRU, cc thut ton thng k NFU, MFU...

Khi mc a chng tng cao n mt chng mc no , h thng c th lm vo tnh trng tr tr do tt c cc tin trnh u thiu khung trang. C th p dng m hnh working set dnh cho mi tin trnh cc khung trang cn thit ti mt thi im, t c th ngn chn tnh trng tr tr xy ra.

Cng c bi hc
Cc cu hi cn tr li c sau bi hc ny : 1. B nh o l g ? 2. S tht ng sau o gic: gii hn ca b nh o ? Chi ph thc hin? 3. Cc vn ca b nh o : thay th trang, cp pht khung trang ? 4. M hnh working set : khi nim, cch tnh trong thc t, s dng ?

Bi Tp
Bi 1. Khi no th xy ra li trang ? M t x l ca h iu hnh khi c li trang. Bi 2. Gi s c mt chui truy xut b nh c chiu di p vi n s hiu trang khc nhau xut hin trong chui. Gi s h thng s dng m khung trang ( khi ng trng). Vi mt thut ton thay th trang bt k : Cho bit s lng ti thiu cc li trang xy ra ? Cho bit s lng ti a cc li trang xy ra ? Bi 3. Mt my tnh 32-bit a ch, s dng mt bng trang nh cp. a ch o c phn b nh sau : 9 bit dnh cho bng trang cp 1, 11 bit cho bng trang cp 2, v cho offset. Cho bit kch thc mt trang trong h thng, v a ch o c bao nhiu trang ? Bi 4. Gi s a ch o 32-bit c phn tch thnh 4 trng a,b,c,d. 3 trng u tin c dng cho bng trang tam cp, trng th 4 dnh cho offset. S lng trang c ph thuc vo c kch thc 4 trng ny khng ? Nu khng, nhng trng no nh hng n s lng trang, v nhng trng no khng ? Bi 5. Mt my tnh c 48-bit a ch o, v 32-bit a ch vt l. Kch thc mt trang l 8K. C bao nhiu phn t trong mt bng trang ( thng thng)? Trong bng trang nghch o ?

Bi 6. Mt my tnh cung cp cho ngi dng mt khng gian a ch o 232 bytes. My tnh ny c b nh vt l 218 bytes. B nh o c thc hin vi k thut phn trang, kch thc trang l 4096 bytes. Mt tin trnh ca ngi dng pht sinh a ch o 11123456. Gii thch cch h thng chuyn i a ch o ny thnh a ch vt l tng ng. Phn bit cc thao tc phn mm v phn cng. Bi 7. Gi s c mt h thng s dng k thut phn trang theo yu cu. Bng trang c lu tr trong cc thanh ghi. x l mt li trang tn 8 miliseconds nu c sn mt khung trang trng, hoc trang b thay th khng b sa i ni dung, v tn 20 miliseconds nu trang b thay th b sa i ni dung. Mi truy xut b nh tn 100nanoseconds. Gi s trang b thay th c xc sut b s i l 70%. T l pht sinh li trang phi l bao nhiu c th duy tr thi gian truy xut b nh ( effective acess time) khng vt qu 200nanoseconds ? Bi 8. Xt cc thut ton thay th trang sau y. Xp th t chng da theo t l pht sinh li trang ca chng. Phn bit cc thut ton chu ng nghch l Belady v cc thut ton khng b nghch l ny nh hng. a)LRU b)FIFO c)Chin lc thay th ti u d)C hi th hai Bi 9. Mt my tnh c 4 khung trang. Thi im np, thi im truy cp cui cng, v cc bit reference (R), modify (M) ca mi trang trong b nh c cho trong bng sau : Trang 0 1 2 3 Np 126 230 120 160 Truy cp cui 279 260 272 280 R 0 1 1 1 M 0 0 1 1

Trang no s c chn thay th theo : a) thut ton NRU b) thut ton FIFO c) thut ton LRU d) thut ton " c hi th 2"

Bi 10. Xt mng hai chiu A: var A: array [1 ..100, 1..100] of integer; Vi A[1][1] c lu tr ti v tr 200, trong b nh t chc theo k thut phn trang vi kch thc trang l 200. Mt tin trnh trong trang 0 (chim v tr t 0 n 199) s thao tc ma trn ny ; nh vy mi ch th s c np t trang 0. Vi 3 khung trang, c bao nhiu li trang s pht sinh khi thc hin vng lp sau y khi ng mng, s dng thut ton thay th LRU , v gi s khung trang 1 ch tin trnh, hai khung trang cn li c khi ng trng thi trng : a. for j:= 1 to 100 do for i :=1 to 100 do A[i][j]:= 0; b. for i :=1 to 100 do for j:=1 to 100 do A[i][j]:= 0; Bi 11. Xt chui truy xut b nh sau: 1, 2 , 3 , 4 , 2 , 1 , 5 , 6 , 2 , 1 , 2 , 3 , 7 , 6 , 3 , 2 , 1 , 2 , 3 , 6 C bao nhiu li trang xy ra khi s dng cc thut ton thay th sau y, gi s c 1, 2, 3, 4, 5, 6, 7 khung trang ? a) LRU b) FIFO c) Chin lc ti u Bi 12. Trong mt h thng s dng k thut phn trang theo yu cu, xt hai on chng trnh sau y:
const N = 1024*1024 var A,B : array [1..N] of integer; [Program 1] for i:=1 to N do A[i]:=i; for i:=1 to N do

B[A[i]]:=random(N); [Program 2] for i:=1 to N do A[i]:= random(N); for i:=1 to N do B[A[i]]:=i;

Bi 13. Gi s c mt my tnh chi s dng 7-bit a ch. Kch thc mt trang l 8 bytes, v h thng s dng mt bng trang nh cp, dng 2-bit lm ch mc n bng trang cp 1 , 2-bit lm ch mc n bng trang cp 2. Xt mt tin trnh s dng cc a ch trong nhng phm vi sau : 0..15, 21..29, 94..106, v 115..127. a) V chi tit ton b bng trang cho tin trnh ny b) Phi cp pht cho tin trnh bao nhiu khung trang, gi s tt c u nm trong b nh chnh ? c) Bao nhiu bytes ng vi cc vng phn mnh ni vi trong tin trnh ny? d) Cn bao nhiu b nh cho bng trang ca tin trnh ny ? Bi 14. Gi s c mt my tnh s dng 16-bit a ch. B nh o c thc hin vi k thut phn on kt hp phn trang, kch thc ti a ca mt phn on l 4096 bytes. B nh vt l c phn thnh cc khung trang c kch thc 512 bytes. a) Th hin cch a ch o c phn tch phn nh segment, page, offset b) Xt mt tin trnh s dng cc min a ch sau, xc nh s hiu segment v s hiu page tng ng trong segment m chng trnh truy cp n : 350..1039, 3046..3904, 7100..9450, 33056..39200, 61230..63500 c) Bao nhiu bytes ng vi cc vng phn mnh ni vi trong tin trnh ny? d) Cn bao nhiu b nh cho bng phn on v bng trang ca tin trnh ny ?

BI 8

H THNG QUN L TP TIN

Trong hu ht cc ng dng, tp tin l thnh phn ch yu. Cho d mc tiu ca ng dng l g n cng phi bao gm pht sinh v s dng thng tin. Thng thng u vo ca cc ng dng l tp tin v u ra cng l tp tin cho vic truy xut ca ngi s dng v cc chng trnh khc sau ny. Trong bi hc ny chng ta s tm hiu nhng khi nim v c ch ca h thng qun l tp tin thng qua cc ni dung nh sau: Cc khi nim c bn M hnh t chc v qun l cc tp tin Bi hc ny gip chng ta hiu c tp tin l g, cch thc t chc v qun l tp tin nh th no. T gip chng ta hiu c cc c ch ci t h thng tp tin trn cc h iu hnh. Bi hc ny i hi nhng kin thc v : cc thao tc vi tp tin, mt s tnh cht ca tp tin gc ngi s dng v nhng kin thc v cu trc d liu cng nh v kin trc my tnh phn cu trc v t chc lu tr ca a.

I. CC KHI NIM C BN

I.1 B nh ngoi
My tnh phi s dng thit b c kh nng lu tr trong thi gian di (long-term) v : Phi cha nhng lng thng tin rt ln (gi v my bay, ngn hng...) Thng tin phi c lu gi mt thi gian di trc khi x l Nhiu tin trnh c th truy cp thng tin cng lc. Gii php l s dng cc thit b lu tr bn ngoi gi l b nh ngoi.

I.2 Tp tin v th mc
Tp tin Tp tin l n v lu tr thng tin ca b nh ngoi. Cc tin trnh c th c hay to mi tp tin nu cn thit. Thng tin trn tp tin l vng bn khng b nh hng bi cc x l to hay kt thc cc tin trnh, ch mt i khi user tht s mun xa. Tp tin c qun l bi h iu hnh.

Th mc lu tr dy cc tp tin, h thng qun l tp tin cung cp th mc, m trong nhiu h thng c th coi nh l tp tin.

I.3 H thng qun l tp tin


Cc tp tin c qun l bi h iu hnh vi c ch gi l h thng qun l tp tin. Bao gm : cch hin th, cc yu t cu thnh tp tin, cch t tn, cch truy xut, cch s dng v bo v tp tin, cc thao tc trn tp tin. Cch t chc th mc, cc c tnh v cc thao tc trn th mc.

II. M HNH T CHC V QUN L CC TP TIN

II.1 M hnh
Tp tin Th mc Tp tin : Tn tp tin : Tp tin l mt c ch tru tng v qun l mi i tng phi c mt tn. Khi tin trnh to mt tp tin, n s t mt tn, khi tin trnh kt thc tp tin vn tn ti v c th c truy xut bi cc tin trnh khc vi tn tp tin . Cch t tn tp tin ca mi h iu hnh l khc nhau, a s cc h iu hnh cho php s dng 8 ch ci t tn tp tin nh ctdl, caycb, tamhghau v.v, thng thng th cc k t s v k t c bit cng c s dng nh baitap2, H thng tp tin c th c hay khng phn bit ch thng v ch hoa. V d : UNIX phn bit ch thng v hoa cn MS-DOS th khng phn bit. Nhiu h thng tp tin h tr tn tp tin gm 2 phn c phn cch bi du . m phn sau c gi l phn m rng. V d : vidu.txt. Trong MS-DOS tn tp tin c t 1 n 8 k t, phn m rng c t 1 n 3 k t. Trong UNIX c th c nhiu phn cch nh prog.c.Z. Mt s kiu m rng thng thng l : .bak, .bas, .bin, .c, .dat, .doc, .ftn, .hlp, .lib, .obj, .pas, .tex, .txt. Trn thc t phn m rng c hu ch trong mt s trng hp, v d nh c nhng trnh dch C ch nhn bit cc tp tin c phn m rng l .C

Cu trc ca tp tin : Gm 3 loi : Dy tun t cc byte khng cu trc : h iu hnh khng bit ni dung ca tp tin:MSDOS v UNIX s dng loi ny. Dy cc record c chiu di c nh. Cu trc cy : gm cy ca nhng record, khng cn thit c cng di, mi record c mt trng kha gip cho vic tm kim nhanh hn. Kiu tp tin : Nu h iu hnh nhn bit c loi tp tin, n c th thao tc mt cch hp l trn tp tin . Cc h iu hnh h tr cho nhiu loi tp tin khc nhau bao gm cc kiu nh : tp tin thng, th mc, tp tin c k t c bit, tp tin khi. Tp tin thng : l tp tin text 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, mng. Tp tin khi : dng truy xut trn thit b a. Tp tin thng c chia lm hai loi l tp tin vn bn v tp tin nh phn. Tp tin vn bn cha cc dng vn bn cui dng c k hiu enter. Mi dng c di c th khc nhau. u im ca kiu tp tin ny l n c th hin th, in hay son tho vi mt editor thng thng.a s cc chng trnh dng tp tin vn bn nhp xut, n cng d dng lm u vo v u ra cho c ch pipeline. Tp tin nh phn : c cu trc khc tp tin vn bn. Mc d v mt k thut , tp tin nh phn gm dy cc byte , nhng h iu hnh ch thc thi tp tin nu n c cu trc ng. V d mt mt tp tin nh phn thi hnh c ca UNIX. Thng thng n bao gm nm thnh phn : header, text, data, relocation bits, symbol table. Header bt u bi byte nhn din cho bit l tp tin thi hnh. Sau l 16 bit cho bit kch thc cc thnh phn ca tp tin, a ch bt u thc hin v mt s bit c. Sau header l d liu v text ca tp tin. N c np vo b nh v nh v li bi nhng bit relocation. Bng symbol c dng debug. Mt v d khc l tp tin nh phn kiu archive. N cha cc th vin c dch nhng cha c lin kt. Bao gm mt header cho bit tn, ngy to, ngi s hu, m bo v, v kch thc

Truy xut tp tin : Tp tin lu tr cc thng tin. Khi tp tin c s dng, cc thng tin ny c a vo b nh ca my tnh. C nhiu cch truy xut chng. Mt s h thng cung cp ch mt phng php truy xut, mt s h thng khc, nh IBM chng hn cho php nhiu cch truy xut. Kiu truy xut tp tin n gin nht l truy xut tun t . Tin trnh c tt c cc byte trong tp tin theo th t t u. Cc trnh son tho hay trnh bin dch cng truy xut tp tin theo cch ny. Hai thao tc ch yu trn tp tin l c v ghi. Thao tc c s c mt mu tin tip theo trn tp tin v t ng tng con tr tp tin. Thao tc ghi cng tng t nh vy. Tp tin c th t khi ng li t v tr u tin v trong mt s h thng tp tin cho php di chuyn con tr tp tin i ti hoc i lui n mu tin. Truy xut kiu ny thun li cho cc loi bng t v cng l cch truy xut kh thng dng. Truy xut tun t cn thit cho nhiu ng dng. C hai cch truy xut. Cch truy xut th nht thao tc c bt u v tr u tp tin, cch th hai c mt thao tc c bit gi l SEEK cung cp v tr hin thi lm v tr bt u. Sau tp tin c c tun t t v tr bt u.

Mt kiu truy xut khc l truy xut trc tip. Mt tp tin c cu trc l cc mu tin logic c kch thc bng nhau, n cho php chng trnh c hoc ghi nhanh chng m khng cn theo th t. Kiu truy xut ny da trn m hnh ca a. a cho php truy xut ngu nhin bt k khi d liu no ca tp tin. Truy xut trc tip c s dng trong trng hp phi truy xut mt khi lng thng tin ln nh trong c s d liu chng hn. Ngoi ra cn c mt s cch truy xut khc d trn kiu truy xut ny nh truy xut theo ch mc ... Thuc tnh tp tin : Ngoi tn v d liu, h iu hnh cung cp thm mt s thng tin cho tp tin gi l thuc tnh. Cc thuc tnh thng dng trong mt s h thng tp tin : Tn thuc tnh Bo v Mt khu Ngi to Ngi s hu Ch c An H thng Lu tr ASCII/binary Truy xut ngu ngha Ai c th truy xut c v bng cch no Mt khu cn thit truy xut tp tin Id ca ngi to tp tin Ngi s hu hin ti 0 l c ghi, 1 l ch c 0 l bnh thng, 1 l khng hin th khi lit k 0 l bnh thng, 1 l tp tin h thng 0 uc backup, 1 cn backup 0 l tp tin vn bn, 1 l tp tin nh phn 0 truy xut tun t, 1 l truy xut ngu

nhin Temp Kha di ca record V tr kha Gi to Thi gian truy cp cui cng Thi gian thay i cui cng Kch thc hin thi Kch thc ti a.

nhin 0 l bnh thng, 1 l b xa khi tin trnh kt thc 0 l khng kha, khc 0 l kha S byte trong mt record Offset ca kha trong mi record Ngy v gi to tp tin Ngy v gi truy xut tp tin gn nht Ngy v gi thay i tp tin gn nht S byte ca tp tin S byte ti a ca tp tin

Hnh 8.3 Mt s thuc tnh thng dng ca tp tin Th mc : H THNG TH MC THEO CP BC : Mt th mc thng thng cha mt s entry, mi entry cho mt tp tin. Mi entry cha tn tp tin, thuc tnh v a ch trn a lu d liu hoc mt entry ch cha tn tp tin v mt con tr, tr ti mt cu trc, trn c thuc tnh v v tr lu tr ca tp tin. Khi mt tp tin c m, h iu hnh tm trn th mc ca n cho ti khi tm thy tn ca tp tin c m. Sau n s xc nh thuc tnh cng nh a ch lu tr trn a v a vo mt bng trong b nh. Nhng truy xut sau thc hin trong b nh chnh. S lng th mc trn mi h thng l khc nhau. Thit k n gin nht l h thng ch c th mc n(cn gi l th mc mt cp), cha tt c cc tp tin ca tt c ngi dng, cch ny d t chc v khai thc nhng cng d gy ra kh khn khi c nhiu ngi s dng v s c nhiu tp tin trng tn. Ngay c trong trng hp ch c mt ngi s dng, nu c nhiu tp tin th vic t tn cho mt tp tin mi khng trng lp l mt vn kh.

Cch th hai l c mt th mc gc v trong c nhiu th mc con, trong mi th mc con cha tp tin ca ngi s dng (cn gi l th mc hai cp), cch ny trnh c trng hp xung t tn nhng cng cn kh khn vi ngi dng c nhiu tp tin. Ngi s dng lun mun nhm cc ng dng li mt cch logic. T , h thng th mc theo cp bc (cn gi l cy th mc) c hnh thnh vi m hnh mt th mc c th cha tp tin hoc mt th mc con v c tip tc nh vy hnh thnh cy th mc nh trong cc h iu hnh DOS, Windows, v. v... Ngoi ra, trong mt s h iu hnh nhiu ngi dng, h thng cn xy dng cc hnh thc khc ca cu trc th mc nh cu trc th mc theo th c chu trnh v cu trc th mc theo th tng qut. Cc cu trc ny cho php cc ngi dng trong h thng c th lin kt vi nhau thng qua cc th mc chia s.

NG DN : Khi mt h thng tp tin c t chc thnh mt cy th mc, c hai cch xc nh mt tn tp tin. Cch th nht l ng dn tuyt i, mi tp tin c gn mt ng dn t th mc gc n tp tin. V d : /usr/ast/mailbox. Dng th hai l ng dn tng i, dng ny c lin quan n mt khi nim l th mc hin hnh hay th mc lm vic. Ngi s dng c th quy nh mt th mc l th mc hin hnh. Khi ng dn khng bt u t th mc gc m lin quan n th mc hin hnh. V d, nu th mc hin hnh l /usr/ast th tp tin vi ng dn tuyt i /usr/ast/mailbox c th c dng n gin l mailbox. Trong phn ln h thng, mi tin trnh c mt th mc hin hnh ring, khi mt tin trnh thay i th mc lm vic v kt thc, khng c s thay i li trn h thng tp tin. Nhng nu mt hm th vin thay i ng dn v sau khng i li th s c nh hng n tin trnh. Hu ht cc h iu hnh u h tr h thng th mc theo cp bc vi hai entry c bit cho mi th mc l "." v "..". "." ch th mc hin hnh, ".." ch th mc cha.

II.2 Cc chc nng

Tp tin Th mc Tp tin : To : mt tp tin c to cha c d liu. Mc tiu ca chc nng ny l thng bo cho bit rng tp tin tn ti v thit lp mt s thuc tnh. Xa :khi mt tp tin khng cn cn thit na, n c xa tng dung lng a. Mt s h iu hnh t ng xo tp tin sau mt khong thi gian n ngy. M : trc khi s dng mt tp tin, tin trnh phi m n. Mc tiu ca m l cho php h thng thit lp mt s thuc tnh v a ch a trong b nh tng tc truy xut. 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. Mt s h thng hn ch ti a s tp tin m trong mt tin trnh. c : c d liu t tp tin ti v tr hin thi ca u c, ni gi s cho bit cn bao nhiu d liu v v tr ca buffer lu tr n. Ghi : ghi d liu ln tp tin t v tr hin thi ca u c. Nu l cui tp tin,kch thc tp tin s tng ln, nu ang gia tp tin, d liu s b ghi chng ln. Thm : gn ging nh WRITE nhng d liu lun c ghi vo cui tp tin. Tm :dng truy xut tp tin ngu nhin. Khi xut hin li gi h thng, v tr con tr ang v tr hin hnh c di chuyn ti v tr cn thit. Sau d liu s c c ghi ti v tr ny. Ly thuc tnh :ly thuc tnh ca tp tin cho tin trnh Thit lp thuc tnh :thay i thuc tnh ca tp tin sau mt thi gian s dng. i tn :thay i tn ca tp tin tn ti. Th mc : To : mt th mc c to, n rng, ngoi tr "." v ".." c t t ng bi h thng. Xa :xo mt th mc, ch c th mc rng mi b xa, t mc cha "." v ".." coi nh l th mc rng.

M th mc :th mc c th c c. V d lit k tt c tp tin trong mt th mc, chng trnh lit k m th mc v c ra tn ca tt c tp tin cha trong . Trc khi th mc c c, n phi c m ra trc. ng th mc :khi mt th mc c c xong, phi ng th mc gii phng vng nh. c th mc :Lnh ny tr v entry tip theo trong th mc m. Thng thng c th c th mc bng li gi h thng READ, lnh c th mc lun lun tr v mt entry di dng chun . i tn :cng nh tp tin, th mc cng c th c i tn. Lin kt :k thut ny cho php mt tp tin c th xut hin trong nhiu th mc khc nhau. Khi c yu cu, mt lin kt s c to gia tp tin v mt ng dn c cung cp. B lin kt :Nu tp tin ch cn lin kt vi mt th mc, n s b loi b hon ton khi h thng, nu nhiu th n b gim ch s lin kt.

Cu hi kim tra kin thc


1. Tp tin l g ? Th mc l g ? Ti sao phi qun l tp tin v th mc ? 2. Tp tin c nhng c tnh g ? Nhng c tnh no l quan trng ? Ti sao ? 3. Nu cc chc nng ca tp tin v th mc.

BI 9

CC PHNG PHP CI T H THNG QUN L TP TIN

Ngi s dng th quan tm n cch t tn tp tin, cc thao tc trn tp tin, cy th mc...Nhng i ngi ci t th quan tm n tp tin v th mc c lu tr nh th no, vng nh trn a c qun l nh th no v lm sao cho ton b h thng lm vic hu hiu v tin cy. H thng tp tin c ci t trn a. gia tng hiu qu trong vic truy xut, mi n v d liu c truy xut gi l mt khi. Mt khi d liu bao gm mt hoc nhiu sector. B phn t chc tp tin qun l vic lu tr tp tin trn nhng khi vt l bng cch s dng cc bng c cu trc. Trong bi hc ny chng ta s tm hiu cc phng php t chc qun l tp tin trn b nh ph thng qua cc ni dung nh sau: Bng qun l th mc, tp tin Bng phn phi vng nh Tp tin chia s Qun l a an ton ca h thng tp tin Bi hc ny gip chng ta nm c im cng nh u v khuyt im ca cc phng php t chc qun l tp tin trn a v mt s vn lin quan khc nh c th hiu c cch cc h iu hnh c th qun l tp tin nh th no. Bi hc ny i hi nhng kin thc v :m hnh t chc cc tp tin v th mc cng v mt s cu trc d liu.

I.BNG QUN L TH MC, TP TIN

I.1 Khi nim


Trc khi tp tin c c, tp tin phi c m, m tp tin h thng phi bit ng dn do ngi s dng cung cp v c nh v trong cu trc u vo th mc (directory entry). Directory entry cung cp cc thng tin cn thit tm kim cc khi. Tu thuc vo mi h thng, thng tin l a ch trn a ca ton b tp tin, s hiu ca khi u tin, hoc l s I-node.

II.2 Ci t

Bng ny thng c ci t phn u ca a. Bng l dy cc phn t c kch thc xc nh, mi phn t c gi l mt entry. Mi entry s lu thng tin v tn , thuc tnh, v tr lu tr .... ca mt tp tin hay th mc. V d qun l th mc trong CP/M :

II. BNG PHN PHI VNG NH

II.1 Khi nim


Bng ny thng c s dn phi hp vi bng qun l th mc tp tin, mc tiu l cho bit v tr khi vt l ca mt tp tin hay th mc no ni khc i l lu gi dy cc khi trn a cp pht cho tp tin lu d liu hay th mc. C mt s phng php c ci t.

II.2 Cc phng php


nh v lin tip : Lu tr tp tin trn dy cc khi lin tip. Phng php ny c 2 u im : th nht, d dng ci t. Th hai, d dng thao tc v ton b tp tin c c t a bng thao tc n gin khng cn nh v li. Phng php ny cng c 2 khuyt im : khng linh ng tr khi bit trc kch thc ti a ca tp tin. S phn mnh trn a, gy lng ph ln. nh v bng danh sch lin kt :

Mi khi u c cp pht, khng b lng ph trong trng hp phn mnh v directory entry ch cn cha a ch ca khi u tin. Tuy nhin khi d liu b thu hp li v truy xut ngu nhin s chm. Danh sch lin kt s dng index :

Tng t nh hai nhng thay v dng con tr th dng mt bng index. Khi ton b khi ch cha d liu. Truy xut ngu nhin s d dng hn. Kch thc tp tin c m rng hn. Hn ch l bn ny b gii hn bi kch thc b nh . I-nodes : Mt I-node bao gm hai phn. Phn th nht l thuc tnh ca tp tin. Phn ny lu tr cc thng tin lin quan n tp tin nh kiu, ngi s hu, kch thc, v.v...Phn th hai cha a ch ca khi d liu. Phn ny chia lm hai phn nh. Phn nh th nht bao gm 10 phn t, mi phn t cha a ch khi d liu ca tp tin. Phn t th 11 cha a ch gin tip cp 1 (single indirect), cha a ch ca mt khi, trong khi cha mt bng c th t 210 n 232 phn t m mi phn t mi cha a ch ca khi d liu. Phn t th 12 cha a ch gin tip cp 2 (double indirect), cha a ch ca bng cc khi single indirect. Phn t th 13 cha a ch gin tip cp 3 (double indirect), cha a ch ca bng cc khi double indirect. Cch t chc ny tng i linh ng. Phng php ny hiu qu trong trng hp s dng qun l nhng h thng tp tin ln. H iu hnh s dng phng php ny l Unix (V d : BSD Unix)

III. TP TIN CHIA S Khi c nhiu ngi s dng cng lm vic trong mt n, h cn chia s cc tp tin. Cch chia s thng thng l tp tin xut hin trong cc th mc l nh nhau ngha l mt tp tin c th lin kt vi nhiu th mc khc nhau. ci t c, khi a khng c lit k trong th mc m c thay th bng mt cu trc d liu, th mc s tr ti cu trc ny. Mt cch khc l h thng to mt tp tin mi c kiu LINK, tp tin mi ny ch cha ng dn ca tp tin c lin kt, khi cn truy xut s da trn tp tin LINK xc nh tp tin cn truy xut, phng php ny gi l lin kt hnh thc. Mi phng php u c nhng u v khuyt im ring. phng php th nht h thng bit c c bao nhiu th mc lin kt vi tp tin nh vo ch s lin kt. phng php th hai khi loi b lin kt hnh thc, tp tin khng b nh hng.

Hnh 9.5 IV. QUN L A Tp tin c lu tr trn a, do vic qun tr a l ht sc quan trng trong vic ci t h thng tp tin. C hai phng php lu tr : mt l cha tun t trn n byte lin tip, hai l tp tin c chia lm thnh tng khi. Cch th nht khng hiu qu khi truy xut nhng tp tin c kch thc ln, do hu ht cc h thng tp tin u dng khi c kch thc c nh.

IV.1 Kch thc khi


Mt vn t ra l kch thc khi phi bng bao nhiu. iu ny ph thuc vo t chc ca a nh s sector, s track, s cylinder. Nu dng mt cylinder cho mt khi cho mt tp tin th theo tnh ton s lng ph n 97% dung lng a. Nn thng thng mi tp tin thng c lu trn mt s khi. V d mt a c 32768 byte trn mt track, thi gian quay l 16.67 msec, thi gian tm kim trung

bnh l 30 msec th thi gian tnh bng msec c mt khi kch thc k byte l : 30 + 8.3 + (k/32768) x 16.67 T thng k c kch thc khi thch hp phi < 2K . Thng thng kch thc khi l 512, 1K hay 2K.

IV.2 Lu gia cc khi trng


C hai phng php. Mt l s dng danh sch lin kt ca khi a. Mi khi cha mt s cc a ch cc khi trng. V d mt khi c kch thc 1 K c th lu tr c 511 a ch 16 bit. Mt a 20M cn khong 40 khi. Hai l, s dng bitmap. Mt a n khi s c nh x thnh n bit vi gi tr 1 l cn trng, gi tr 0 l lu d liu. Nh vy mt a 20M cn 20K bit lu tr ngha l ch c khong 3 khi. Phng php th hai ny thng c s dng hn.

V. AN TON CA H THNG TP TIN Mt h thng tp tin b hng cn nguy him hn my tnh b hng v nhng h hng trn thit b s t chi ph hn l h thng tp tin v n nh hng n cc phn mm trn . Hn na h thng tp tin khng th chng li c nh h hng do phn cng gy ra, v vy chng phi ci t mt s chc nng bo v.

V.1 Qun l khi b hng


a thng c nhng khi b hng trong qu trnh s dng c bit i vi a cng v kh kim tra c ht tt c. C hai gii php : phn mm v phn cng. Phn cng l dng mt sector trn a lu gi danh sch cc khi b hng. Khi b kim sot tc hin ln u tin, n c nhng khi b hng v dng mt khi tha lu gi. T khng cho truy cp nhng khi hng na. Phn mm l h thng tp tin xy dng mt tp tin cha cc khi hng. K thut ny loi tr chng ra khi danh sch cc khi trng, do n s khng c cp pht cho tp tin.

V.2 Backup
Mc d c cc chin lc qun l cc khi hng, nhng mt cng vic ht sc quan trng l phi backup tp tin thng xuyn. Tp tin trn a mm c backup bng cch chp li ton b qua mt a khc. D liu trn a cng nh th c backup trn cc bng t. i vi cc a cng ln, vic backup thng c tin hnh ngay trn n. Mt chin lc d ci t nhng lng ph mt na a l chia a cng lm hai phn mt phn d liu v mt phn l backup. Mi ti, d liu t phn d liu s c chp sang phn backup.

V.3 Tnh khng i ca h thng tp tin

Mt vn na v an ton l tnh khng i. Khi truy xut mt tp tin, trong qu trnh thc hin, nu c xy ra nhng s c lm h thng ngng hot ng t ngt, lc hng lot thng tin cha c cp nht ln a. V vy mi ln khi ng ,h thng s thc hin vic kim tra trn hai phn khi v tp tin. Vic kim tra thc hin , khi pht hin ra li s tin hnh sa cha cho cc trng hp c th:

Hnh 9.8 Trng thi ca h thng tp tin

Cu hi kim tra kin thc


1. Vai tr ca bng th mc tp tin 2. So snh cc phng php ci t bng phn phi vng nh. 3. Tp tin chia s l g ? 4. V sao phi lu n an ton ca h thng tp tin ?

Bi tp

Gi s mt a mm c 2 side, mi side c 128 track, mi track c 18 sector. Th mc gc ca a c ti a l 251 tp tin (hoc th mc), mi entry c kch thc 32 bytes. Mt cluster = 2 sector. a s dng phng php nh bng bng ch mc mi phn t trong bng c kch thc 12 bits. Hi mun truy xut cluster 10 th phi c nhng sector no ?

BI 11

H THNG QUN L NHP/XUT

Mt trong nhng chc nng chnh ca h iu hnh l qun l tt c nhng thit b nhp/xut ca my tnh. H iu hnh phi ra cc ch th iu khin thit b, kim sot cc ngt v li. H iu hnh phi cung cp mt cch giao tip n gin v tin dng gia cc thit b v phn cn li ca h thng v giao tip ny phi c lp vi thit b. Trong bi ny chng ta tm hiu h iu hnh qun l nhp/xut nh th no vi nhng ni dung sau: Khi nim v h thng nhp/ xut Phn cng nhp / xut Phn mm nhp / xut Qua bi hc ny, chng ta hiu c c ch qun l nhp/xut ca h iu hnh mt cch tng qut. T chng ta c th hiu r hn qu trnh nhp xut din ra trn my tnh thng qua h iu hnh nh th no. Bi hc ny cng gip cho vic tm hiu c ch tng tc gia h iu hnh v cc thit b nhp/xut c th(c cp trong bi hc sau) d dng hn. Bi hc ny i hi nhng kin thc v : kin trc my tnh, c ch ngt trn my tnh.

I.KHI NIM V H THNG QUN L NHP/XUT H thng qun l nhp/xut c t chc theo tng lp, mi lp c mt chc nng nht nh v cc lp c giao tip vi nhau nh s sau : CC LP X l ca ngi dng Phn mm c lp thit b iu khin thit b CHC NNG NHP/XUT To li gi nhp/xut, nh dng nhp/xut t tn, bo v, t chc khi, b m, nh v Thit lp thanh ghi thit b, kim tra trng thi

Kim sot ngt Bo cho driver khi nhp/xut hon tt Phn cng Thc hin thao tc nhp/xut

V d: Trong mt chng trnh ng dng, ngi dng mun c mt khi t mt tp tin, h iu hnh c kch hot thc hin yu cu ny. Phn mm c lp thit b tm kim trong cache, nu khi cn c khng c sn, n s gi chng trnh iu khin thit b gi yu cu n phn cng. Tin trnh b ngng li cho n khi thao tc a hon tt. Khi thao tc ny hon tt, phn cng pht sinh mt ngt. B phn kim sot ngt kim tra bin c ny, ghi nhn trng thi ca thit b v nh thc tin trnh b ngng chm dt yu cu I/O v cho tin trnh ca ngi s dng tip tc thc hin.[TAN]

II. PHN CNG NHP/XUT C nhiu cch nhn khc nhau v phn cng nhp/xut. Cc k s in t th nhn di gc l cc thit b nh IC, dy dn, b ngun, motor v.v.Cc lp trnh vin th nhn chng di gc phn mm - nhng lnh no thit b chp nhn, chng s thc hin nhng chc nng no, v thng bo li ca chng bao gm nhng g, ngha l chng ta quan tm n lp trnh thit b ch khng phi cc thit b ny hot ng nh th no mc d kha cnh ny c lin quan mt thit vi cc thao tc bn trong ca chng. Phn ny chng ta cp n mt s khi nim v phn cng I/O lin quan n kha cnh lp trnh.

II.1 Thit b I/O


Cc thit b nhp xut c th chia tng i thnh hai loi l thit b khi v thit b tun t. Thit b khi l thit b m thng tin c lu tr trong nhng khi c kch thc c nh v c nh v bi a ch. Kch thc thng thng ca mt khi l khong t 128 bytes n 1024 bytes. c im ca thit b khi l chng c th c truy xut (c hoc ghi) tng khi ring bit, v chng trnh c th truy xut mt khi bt k no . a l mt v d cho loi thit b khi. Mt dng thit b th hai l thit b tun t. dng thit b ny, vic gi v nhn thng tin da trn l chui cc bits, khng c xc nh a ch v khng th thc hin thao tc seek c. Mn hnh, bn phm, my in, card mng, chut, v cc loi thit b khc khng phi dng a l thit b tun t. Vic phn chia cc lp nh trn khng hon ton ti u, mt s cc thit b khng ph hp vi hai lp trn, v d : ng h, b nh mn hnh v.v...khng thc hin theo c ch tun t cc bits. Ngoi ra, ngi ta cn phn loi cc thit b I/O di mt tiu chun khc : Thit b tng tc c vi con ngi : dng giao tip gia ngi v my. V d : mn hnh, bn phm, chut, my in ...

Thit b tng tc trong h thng my tnh l cc thit b giao tip vi nhau. V d : a, bng t, card giao tip... Thit b truyn thng : nh modem... Nhng im khc nhau gia cc thit b I/O gm : Tc truyn d liu , v d bn phm : 0.01 KB/s, chut 0.02 KB/s ... Cng dng. n v truyn d liu (khi hoc k t). Biu din d liu, iu ny ty thuc vo tng thit b c th. Tnh trng li : nguyn nhn gy ra li, cch m chng bo v...

II.2 T chc ca chc nng I/O


C ba cch thc hin I/O : Mt l, b x l pht sinh mt lnh I/O n cc n v I/O, sau , n ch trong trng thi "busy" cho n khi thao tc ny hon tt trc khi tip tc x l. Hai l, b x l pht sinh mt lnh I/O n cc n v I/O, sau , n tip tc vic x l cho ti khi nhn c mt ngt t n v I/O bo l hon tt, n tm ngng vic x l hin ti chuyn qua x l ngt. Ba l, s dng c ch DMA (nh c cp sau) Cc bc tin ha ca chc nng I/O : B x l kim sot trc tip cc thit b ngoi vi. H thng c thm b iu khin thit b. B x l s dng cch thc hin nhp xut th nht. Theo cch ny b x l c tch ri khi cc m t chi tit ca cc thit b ngoi vi. B x l s dng thm c ch ngt. S dng c ch DMA, b x l truy xut nhng d liu I/O trc tip trong b nh chnh.

II.3 B iu khin thit b

Mt n v b nhp xut thng c chia lm hai thnh phn chnh l thnh phn c v thnh phn in t. Thnh phn in t c gi l b phn iu khin thit b hay b tng thch, trong cc my vi tnh thng c gi l card giao tip. Thnh phn c chnh l bn thn thit b. Mt b phn iu khin thng c b phn kt ni trn chng c th gn thit b ln . Mt b phn iu khin c th qun l c hai, bn hay thm ch tm thit b khc nhau. Nu giao tip gia thit b v b phn iu khin l cc chun nh ANSI, IEEE hay ISO th nh sn xut thit b v b iu khin phi tun theo chun , v d : b iu khin a c theo chun giao tip ca IBM. Giao tip gia b iu khin v thit b l giao tip mc thp.

Chc nng ca b iu khin l giao tip vi h iu hnh v h iu hnh khng th truy xut trc tip vi thit b. Vic thng tin thng qua h thng ng truyn gi l bus. Cng vic ca b iu khin l chuyn i dy cc bit tun t trong mt khi cc byte v thc hin sa cha nu cn thit. Thng thng khi cc byte c t chc thnh tng bit v t trong buffer ca b iu khin. Sau khi thc hin checksum ni dung ca buffer s c chuyn vo b nh chnh. V d : b iu khin cho mn hnh c cc byte ca k t hin th trong b nh v t chc cc tn hiu iu khin cc tia ca CRT xut trn mn nh bng cch qut cc tia dc v ngang. Nu khng c b iu khin, lp trnh vin h iu hnh phi to thm chng trnh iu khin tn hiu analog cho n hnh. Vi b iu khin , h iu hnh ch cn khi ng chng vi mt s tham s nh s k t trn mt dng, s dng trn mn hnh v b iu khin s thc hin iu khin cc tia. Mi b iu khin c mt s thanh ghi lin lc vi CPU. Trn mt s my tnh, cc thanh ghi ny l mt phn ca b nh chnh ti mt a ch xc nh gi l nh x b nh nhp xut. H my PC dnh ra mt vng a ch c bit gi l a ch nhp xut v trong c chia lm nhiu on, mi on cho mt loi thit b nh sau : B iu khin a ch nhp/xut Vect ngt

nhp/xut ng h Bn phm RS232 ph a cng My in Mn hnh mono Mn hnh mu a mm RS232 chnh 040 - 043 060 - 063 2F8 - 2FF 320 - 32F 378 - 37F 380 - 3BF 3D0 - 3DF 3F0 - 3F7 3F8 - 3FF 8 9 11 13 15 14 12

H iu hnh thc hin nhp xut bng cch ghi lnh ln cc thanh ghi ca b iu khin. V d : b iu khin a mm ca IBMPC chp nhn 15 lnh khc nhau nh : READ, WRITE, SEEK, FORMAT, RECALIBRATE, mt s lnh c tham s v cc tham s cng c np vo thanh ghi. Khi mt lnh c chp nhn, CPU s ri b iu khin thc hin cng vic khc. Sau khi thc hin xong, b iu khin pht sinh mt ngt bo hiu cho CPU bit v n ly kt qu c lu gi trong cc thanh ghi.

II.4 DMA (Direct Memory Access)


a s cc loi thit b, c bit l cc thit b dng khi, h tr c ch DMA (direct memory access). hiu v c ch ny, trc ht phi xem xt qu trnh c a m khng c DMA. Trc tin, b iu khin c tun t cc khi trn a, tng bit tng bit cho ti khi ton b khi c a vo buffer ca b iu khin. Sau my tnh thc hin checksum m bo khng c li xy ra. Tip theo b iu khin to ra mt ngt bo cho CPU bit. CPU n ly d liu trong buffer chuyn v b nh chnh bng cch to mt vng lp c ln lt tng byte. Thao tc ny lm lng ph thi gian ca CPU. Do ti u, ngi ta a ra c ch DMA. C ch DMA gip cho CPU khng b lng ph thi gian. Khi s dng, CPU gi cho b iu khin mt s cc thng s nh a ch trn a ca khi, a ch trong b nh ni nh v khi, s lng byte d liu chuyn. Sau khi b iu khin c ton b d liu t thit b vo buffer ca n v kim tra checksum. B iu khin chuyn byte u tin vo b nh chnh ti a ch c m t bi a ch b nh DMA. Sau n tng a ch DMA v gim s bytes phi chuyn. Qu trnh ny lp cho ti khi s bytes phi chuyn bng 0, v b iu khin to mt ngt. Nh vy khng cn phi copy khi vo trong b nh, n hin hu trong b nh.

III. PHN MM NHP/XUT Mc tiu chung ca thit b logic l d biu din. Thit b logic c t chc thnh nhiu lp. Lp di cng giao tip vi phn cng, lp trn cng giao tip tt, thn thin vi ngi s dng. Khi nim then cht ca thit b logic l c lp thit b, v d : c th vit chng trnh truy xut file trn a mm hay a cng m khng cn phi m t li chng trnh cho tng loi thit b. Ngoi ra, thit b logic phi c kh nng kim sot li. Thit b logic c t chc thnh bn lp : Kim sot li, iu khin thit b, phn mm h iu hnh c lp thit b, phn mm mc ngi s dng.

III.1 Kim sot ngt


Ngt l mt hin tng phc tp. N phi cn c che du su trong h iu hnh, v mt phn t ca h thng bit v chng. Cch tt nht che du chng l h iu hnh c mi tin trnh thc hin thao tc nhp xut cho ti khi hon tt mi to ra mt ngt. Tin trnh c th t kha li bng cch thc hin lnh WAIT theo mt bin iu kin hoc RECEIVE theo mt thng ip. Khi mt ngt xy ra, hm x l ngt khi to mt tin trnh mi x l ngt. N s thc hin mt tn hiu trn bin iu kin v gi nhng thng ip n cho cc tin trnh b kha. Tng qut, chc nng ca ngt l lm cho mt tin trnh ang b kha c thi hnh tr li.

III.2 iu khin thit b (device drivers)


Tt c cc on m c lp thit b u c chuyn n device drivers. Mi device drivers kim sot mi loi thit b, nhng cng c khi l mt tp hp cc thit b lin quan mt thit vi nhau. Device drivers pht ra cc ch th v kim tra xem ch th c c thc hin chnh xc khng. V d, driver ca a l phn duy nht ca h iu hnh kim sot b iu khin

a. N qun l sectors, tracks, cylinders, head, chuyn ng, interleave, v cc thnh phn khc gip cho cc thao tc a c thc hin tt. Chc nng ca device drivers l nhn nhng yu cu tru tng t phn mm nhp/xut c lp thit b lp trn, v gim st yu cu ny thc hin. Nu driver ang rnh, n s thc hin ngay yu cu, ngc li, yu cu s c a vo hng i. V d, bc u tin ca yu cu nhp/xut a l chuyn t tru tng thnh c th. Driver ca a phi bit khi no cn c, kim tra s hot ng ca motor a, xc nh v tr ca u c ng cha v.v Ngha l device drivers phi xc nh c nhng thao tc no ca b iu khin phi thi hnh v theo trnh t no. Mt khi xc nh c ch th cho b iu khin, n bt u thc hin bng cch chuyn lnh vo thanh ghi ca b iu khin thit b. B iu khin c th nhn mt hay nhiu ch th lin tip v sau t n thc hin khng cn s tr gip ca h iu hnh. Trong khi lnh thc hin. C hai trng hp xy ra : Mt l device drivers phi ch cho ti khi b iu khin thc hin xong bng cch t kha li cho ti khi mt ngt pht sinh m kha cho n. Hai l, h iu hnh chm dt m khng ch, v vy driver khng cn thit phi kha. Sau khi h iu hnh hon tt vic kim tra li v nu mi th u n driver s chuyn d liu cho phn mm c lp thit b. Cui cng n s tr v thng tin v trng thi hay li cho ni gi v nu c mt yu cu khc hng i, n s thc hin tip, nu khng n s kha li ch n yu cu tip theo.

III.3 Phn mm nhp/xut c lp thit b


Mc d mt s phn mm nhp/xut m t thit b nhng phn ln chng l c lp vi thit b. Ranh gii chnh xc gia drivers v phn mm c lp thit b l c lp v mt h thng, bi v mt s hm m c thi hnh theo kiu c lp thit b c th c thi hnh trn drivers v l do hiu qu hay nhng l d khc no . Giao tip ng nht cho device drivers t tn thit b Bo v thit b Cung cp khi c lp thit b T chc buffer nh v lu tr trn thit b khi Cp pht v gii phng thit b tn hin

Bo li Chc nng c bn ca phn mm nhp/xut c lp thit b l nhng chc nng chung cho tt c cc thit b v cung cp mt giao tip ng nht cho phn mm phm vi ngi s dng. Trc tin n phi c chc nng to mt nh x gia thit b v mt tn hnh thc. V d i vi UNIX, tn /dev/tty0 dnh ring m t I-node cho mt file c bit, v I-node ny cha cha s thit b chnh, c dng xc nh driver thch hp v s thit b ph, c dng xc nh cc tham s cho driver cho bit l c hay ghi. Th hai l bo v thit b, l cho php hay khng cho php ngi s dng truy xut thit b. Cc h iu hnh c th c hay khng c chc nng ny. Th ba l cung cp khi d liu c lp thit b v v d nhng a khc nhau s c kch thc sector khc nhau v iu ny s gy kh khn cho cc phn mm ngi s dng lp trn. Chc nng ny cung cp cc khi d liu logic c lp vi kch thc sector vt l. Th t l cung cp buffer h tr cho ng b ha qu trnh hot ng ca h thng. V d buffer cho bn phm. Th nm l nh v lu tr trn cc thit b khi. Th su l cp pht v gii phng cc thit b tn hin. Cui cng l thng bo li cho lp bn trn t cc li do device driver bo v.

III.4 Phn mm nhp/xut phm vi ngi s dng


Hu ht cc phn mm nhp/xut u bn trong ca h iu hnh v mt phn nh ca chng cha cc th vin lin kt vi chng trnh ca ngi s dng ngay c nhng chng trnh thi hnh bn ngoi ht nhn. Li gi h thng, bao gm li gi h thng nhp/xut thng c thc hin bi cc hm th vin. V d khi trong chng trnh C c lnh count = write(fd, buffer, nbytes) ; Hm th vin write c ch v lin kt di dng nh phn v nm trong b nh khi thi hnh. Tp hp tt c nhng hm th vin ny r rng l mt phn ca h thng nhp/xut.

Khng phi tt c cc phn mm nhp/xut u cha hm th vin, c mt loi quan trng khc gi l h thng spooling dng khai thc ti a thit b nhp/xut trong h thng a chng. Cc hm th vin chuyn cc tham s thch hp cho li gi h thng v hm th vin thc hin vic nh dng cho nhp v xut nh lnh printf trong C. Th vin nhp/xut chun cha mt s hm c chc nng nhp/xut v tt c chy nh chng trnh ngi dng. Chc nng ca spooling l trnh trng hp mt tin trnh ang truy xut thit b, chim gi thit b nhng sau khng lm g c trong mt khong thi gian v nh vy cc tin trnh khc b nh hng v khng th truy xut thit b . Mt v d ca spooling device l line printer. Spooling cn c s dng trong h thng mng nh h thng e-mail chng hn.

IV. TM TT I/O l mt phn quan trng v khng th thiu c ca h iu hnh, nhng thng khng c quan tm ng mc. Trong bi ny, chng ta kho st phn cng I/O, mi lin h gia thit b I/O vi b kim sot thit b. Sau chng ta kho st bn cp ca phn mm I/O : th tc ngt, iu khin thit b, phn mm c lp thit b v nhng th vin I/O trong mi trng ngi dng. iu khin thit b qun l tt c nhng m t chi tit ca mt hoc nhiu thit b. Phn mm c lp thit b xy dng cc vng m v nh v, y l nhng vic chung cho nhiu thit b.

Cu hi kim tra kin thc


1. T chc ca h thng qun l I/O nh th no ? 2. C bao nhiu loi thit b I/O ? Vi mi loi cho v d c th. 3. Vai tr ca b iu khin thit b l g ? 4. C ch hot ng DMA nh th no ? 5. C th thc hin I/O m khng s dng iu khin thit b khng? Ti sao? 6. Nu vai tr ca phn mm c lp thit b.

Cu hi trc nghim
1. H thng qun l I/O ca h iu hnh l : a. Mt c ch trn mi thit b tin hc c. Bn phm

b. Mt phn ca h iu hnh

d. My in

2. H thng qun l I/O ca mt h iu hnh bao gm : a. Phn cng I/O v phn mm I/O b. DMA 3. DMA l vit tt ca : a. Direct Management Access b. Direct Memory Application 4. Phn mm c lp thit b : a. Do Microsoft vit ra I/O b. L mt phn ca trnh bin dch c. L mt phn ca h thng qun l d. a, b, c u sai. c. Direct Memory Access d. Direct Mainboard Access c. Kim sot ngt d. a, b, c u sai.

You might also like