he dieu hanh 134

Upload: nhom-tin-hoc

Post on 06-Apr-2018

218 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/3/2019 He Dieu Hanh 134

    1/153

    BI 1 TNG QUAN V HIU HNH

    Bi hc ny cung cp cho chng ta mt ci nhn tng qut vnhng nguyn l cbnca hiu hnh. Chng ta btu vi vic xem xt mc tiu v cc chc nng ca hiu ny, sau kho st cc dng khc nhau ca chng cng nhxem xt qu trnh

    pht trin qua tng giai on. Cc phn ny c trnh by thng qua cc ni dung nhsau:

    Khi nim v hiu hnh

    Phn loi hiu hnh

    Cu trc ca hiu hnh

    Lch s pht trin ca hiu hnh

    Bi hc ny gip chng ta hiu c hiu hnh l g, c cu trc ra sao. Hiuhnh c phn loi theo nhng tiu chun no. Qu trnh pht trin ca hiu hnhph thuc vo nhng yu t no.

    Bi hc ny i hi nhng kin thc v : kin trc my tnh.

    I.KHI NIM V HIU HNH

    Hiu hnhl mt chng trnh hay mt h chng trnh hot ng gia ngi sdng (user) v phn cng ca my tnh. Mc tiu ca hiu hnh l cung cp mt mitrng ngi s dng c th thi hnh cc chng trnh. N lm cho my tnh d sdng hn, thun li hn v hiu qu hn.

    Hiu hnh l mt phn quan trng ca hu ht cc h thng my tnh. Mt h thngmy tnh thng c chia lm bn phn chnh : phn cng, hiu hnh, cc chngtrnh ng dng v ngi s dng.

    Phn cngbao gm CPU, b nh, cc thit b nhp xut, y l nhng ti nguyn ca

    my tnh. Chng trnh ng dngnh cc chng trnh dch, h thng csd liu,cc tr chi, v cc chng trnh thng mi. Cc chng trnh ny s dng ti nguynca my tnh gii quyt cc yu cu ca ngi s dng.Hiu hnhiu khin vphi hp vic s dng phn cng cho nhng ng dng khc nhau ca nhiu ngi sdng khc nhau. Hiu hnh cung cp mt mi trng m cc chng trnh c th lmvic hu hiu trn .

  • 8/3/2019 He Dieu Hanh 134

    2/153

    Hnh 1.1 M hnh tru tng ca h thng my tnh

    Hiu hnh c thc coi nh l b phn phi ti nguyn ca my tnh. Nhiu tinguyn ca my tnh nh thi gian s dng CPU, vng b nh, vng lu tr tp tin, thitb nhp xut v.v c cc chng trnh yu cu gii quyt vn . Hiu hnhhot ng nh mt b qun l cc ti nguyn v phn phi chng cho cc chng trnhv ngi s dng khi cn thit. Do c rt nhiu yu cu, hiu 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 hiu hnh cng c thc coi nhl 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 hiu hnh. Hiu hnhtn ti gii quyt cc vn s dng h thng my tnh. Mc tiu cbn ca n lgip cho vic thi hnh cc chng trnh d dng hn. Mc tiu th hai l h trcho ccthao tc trn h thng my tnh hiu qu hn. Mc tiu ny c bit quan trng trongnhng h thng nhiu ngi dng v trong nhng h thng ln(phn cng + quy m sdng). Tuy nhin hai mc tiu ny cng c phn tng phn v vy l thuyt v hiuhnh tp trung vo vic ti u ha vic s dng ti nguyn ca my tnh.

    II.PHN LOI HIU HNH

    II.1 H thng xl 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 scan thip ca ngi lp trnh, do thi gian thc hin s mau hn. Mt chng trnh,

  • 8/3/2019 He Dieu Hanh 134

    3/153

    cn gi l b gim st thng trc c thit k gim st vic thc hin dy cc cngvic mt cch tng, chng trnh ny lun lun thng tr trong b nhchnh.

    Hiu hnh theo lthc hin cc cng vic ln lt theo nhng ch thnh 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 bc) chm hn rt nhiu ln so vi cc thit bin t. Cho d l mt CPU chm nht, ncng nhanh hn rt nhiu ln so vi thit b nhp xut. Do phi c cc phng phpng b ha vic hot ng ca CPU v thao tc nhp xut.

    Xl 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 trtrung gian. CPU ch thao thc vi b phn ny. Vic c

    hay xut u n v t b lu tr trung gian.Spooling :

    Spool(simultaneousperipheraloperationon-line) l ng b ha cc thao tc bnngoi on-line. Cch ny cho php x l ca CPU l on-line, s dng a lu cc dliu nhp cng nh xut.

    II.2 H thng xl theo l a chng

    Khi c nhiu cng vic cng truy xut ln thit b, vn lp lch cho cc cng vic lcn thit. Kha cnh quan trng nht trong vic lp lch l kh nng a chng.achng(multiprogram) gia tng khai thc CPU bng cch t chc cc cng vic sao choCPU lun lun phi trong tnh trng lm vic .

    tng nh sau : hiu hnh lu gi mt phn ca cc cng vic ni lu tr trong bnh. CPU s ln lt thc hin cc phn cng vic ny. Khi ang thc hin, nu c yucu truy xut thit b th CPU khng ngh m thc hin tip cng vic th hai

    Vi ha chng hiu hnh ra quyt nh cho ngi s dng v vy, hiu hnh a

    chngrt tinh vi. H phi x l cc vn lp lch cho cng vic, lp lch cho b nhv cho c CPU na.

    II.3 H thng chia x thi gian

    H thng chia x thi gian l mt mrng logic ca ha chng. H thng ny cnc gi l hthnga nhim (multitasking). Nhiu cng vic cng c thc hin

  • 8/3/2019 He Dieu Hanh 134

    4/153

    thng qua cch chuyn i ca CPU nh ha chng nhng thi gian mi ln chuyni din ra rt nhanh.

    H thng chia xc pht trin cung cp vic s dng bn trong ca mt my tnh cgi tr hn.Hiu hnh chia xthi 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 thihnh c gi l mt tin trnh. Trong qu trnh thi hnh ca mt tin trnh, n phi thchin cc thao tc nhp xut v trong khong thi gian CPU s thi hnh mt tin trnhkhc. Hiu hnh chia x cho php nhiu ngi s dng chia x my tnh mt cchng b do thi gian chuyn i nhanh nn h c cm gic l cc tin trnh ang c thihnh cng lc.

    Hiu hnh chia x phc tp hn hiu hnh a chng. N phi c cc chc nng :qun tr v bo v b nh, s dng b nho. N cng cung cp h thng tp tin truyxut on-line

    Hiu hnh chia x l kiu ca cc hiu 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 chiax h thng ng truyn d liu, ng h, b nhv cc thit b ngoi vi. Cc b x lny 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 vcc b x l chia x cc thit b ngoi vi, h thng lu tr, ngun v rt thun tin chonhiu 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 hnghc ca mt b x l s khng nh hng n ton b h thng.

    Hthnga xl thng thng s dng cch a xl i xng, trong cch ny mi bx l chy vi mt bn sao ca hiu hnh, nhng bn sao ny lin lc vi nhau khi cnthit. 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 lkhc thc hin theo lnh ca b x l chnh hoc theo nhng ch th c nh nghatrc. M hnh ny theo dng quan h ch t. B x l chnh s lp lch cho cc b x lkhc.

    Mt v d v h thng x l i xng l version Encore ca UNIX cho my tnhMultimax. H thng ny c hng t b x l. u im ca n l nhiu tin trnh c th

  • 8/3/2019 He Dieu Hanh 134

    5/153

    thc hin cng lc . Mt h thng a x l cho php nhiu cng vic v ti nguyn cchia x tng 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 khngchia x b nhv ng h, thay vo mi b x l c b nhcc b ring. Cc b xl thng tin vi nhau thng qua cc ng truyn thng nh nhng bus tc cao hayng dy in thoi.

    Cc b x l trong h phn tn thng khc nhau v kch thc v chc nng. N c thbao gm my vi tnh, trm lm vic, my mini, v nhng h thng my ln. Cc b x lthng 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 xti nguyn : Mt ngi s dng A c th s dng my in laser ca ngi sdng B v ngi s dng B c th truy xut nhng tp tin ca A. Tng qut, chia x tinguyn trong h thng phn tn cung cp mt cch chia x tp tin v tr xa, x lthng tin trong mt csd liu phn tn, in n ti mt v tr xa, s dng nhng thit bxa 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 khcnhau tnh ton song song.

    An ton : Nu mt v tr trong h thng phn tn b hng, cc v tr khc vn tip tc lmvic.

    Thng tin lin lc vi nhau :C nhiu lc , chng trnh cn chuyn i d liu t v trny sang v tr khc. V d trong h thng Windows, thng c s chia x v chuyn dliu gia cc ca s. Khi cc v tr c ni kt vi nhau trong mt h thng mng, victrao i d liu din ra rt d. Ngi s dng c th chuyn tp tin hay cc E_mail chonhau t cng v tr hay nhng v tr khc.

    II.6 H thng xl thi gian thc

    Hthng xl thi gian thcc s dng khi c nhng i hi kht khe v thi giantrn cc thao tc ca b x l hoc dng d liu, n thng c dng iu khin ccthit b trong cc ng dng tn hin (dedicated). My tnh phn tch d liu v c thchnh cc iu khin gii quyt cho d liu nhp.

  • 8/3/2019 He Dieu Hanh 134

    6/153

    Mt hiu 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 haih thng x l thi gian thc l h thng thi gian thc cng v h thng thi gian thcmm..

    H thng thi gian thc cng l cng vic c hon tt ng lc. Lc d liu thngc lu trong b nhngn hn hay trong ROM. Vic x l theo thi gian thc s xungt 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 vsc thi hnh theo u tin . C mt s lnh vc p dng hu hiu phng phpny l multimedia hay thc ti o.

  • 8/3/2019 He Dieu Hanh 134

    7/153

  • 8/3/2019 He Dieu Hanh 134

    8/153

    Trong cc trng hp , cn c mt m hnh x l ng hnh thch hp. Trnmy tnh c cu hnh nhiu CPU, h trx l song song (multiprocessing) thts, 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 trsa chng, my tnh phi c kh nng thc hin nhiu tc vng thi.Nhng vic iu khin nhiu hot ng song song cp phn cng l rt kh khn. Vth cc nh thit k hiu hnh xut mt m hnhsong song ga lp bng cchchuyn i b x l qua li gia cc chng trnh duy tr hot ng ca nhiu chngtrnh 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, shu mt con trlnh, tp cc thanh ghi v cc bin. hon thnh tc v ca mnh, mt tin trnh c thcn n mt s ti nguyn nh CPU, b nhchnh, 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 ththng, cha ng cc ch thiu khin my tnh tin hnh mt tc v no ; khicho thc hin cc ch th ny, chng trnh chuyn thnh tin trnh, l mt thc th hotng, vi con tr lnh xc nh ch th k tip s thi hnh, km theo tp cc ti nguynphc v cho hot ng ca tin trnh.

    V mt nim, c th xem nh mi tin trnh shu mt b x l o cho ring n,

    nhng trong thc t, ch c mt b x l tht sc chuyn i qua li gia cc tintrnh. S chuyn i nhanh chng ny c gi lsa chng(multiprogramming) .Hiu hnh chu trch nhim s dng mt thut ton iu phi quyt nh thi imcn dng hot ng ca tin trnh ang x l phc v mt tin trnh khc, v la chntin trnh tip theo sc phc v. B phn thc hin chc nng ny ca hiu hnhc gi l biu phi (scheduler).

  • 8/3/2019 He Dieu Hanh 134

    9/153

    III. KHI NIM TIU TRNH (THREAD) V M HNH A TIUTRNH(MULTITHREAD)

    Trong hu ht cc hiu hnh, mi tin trnh c mt khng gian a ch v ch c mtdng x l. Tuy nhin, c nhiu tnh hung ngi s dng mong mun c nhiu dng xl cng chia s mt khng gian a ch, v cc dng x l ny hot ng song song tngt 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 chcc thao tc truy xuta hon tt.Nu server c nhiu dng x l, h thng c th x l cc yu cu mi trongkhi mt dng x l b kho. Nh vy vic thc hin chng trnh s c hiu qu hn.iu ny khng tht c bng cch to hai tin trnh server ring bit v cn phichia 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 cch x l mi cho php cnhiu dng x l trong cng mt tin trnh.

    Ngy nay c nhiu hiu hnh cung cp mt cch nh th v gi l tiu trnh(threads).

    Nguyn l chung :

    Mt tiu trnh l mtn v xl cbn trong h thng . Mi tiu trnh xl tun ton code ca n, shu mt con tr lnh, tp cc thanh ghi v mt vng nhstackring. Cc tiu trnh chia s CPU vi nhau ging nhcch chia s gia cc tin trnh:mt tiu trnh xl trong khi cc tiu trnh khc chn lt. Mt tiu trnh cng c thto lp cc tin trnh con, v nhn cc trng thi khc nhau nhmt tin trnh tht s.Mt tin trnh c thshu nhiu tiu trnh.

  • 8/3/2019 He Dieu Hanh 134

    10/153

    Cc tin trnh to thnh nhng thc thc lp. Mi tin trnh c mt tp ti nguyn vmt 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 cchthng tin gia cc tin trnh m hiu hnh cung cp. Ngc li, cc tiu trnh trongcng 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 xutn c cc stack ca nhng tiu trnh khc trong cng tin trnh. Cu trc ny khng ngh mt cch bo v no, v iu ny cng khng tht cn thit v cc tiu trnh trongcng mt tin trnh thuc v cng mt shu ch to ra chng trong nh cho phpchng 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 thc ci t trong kernel ca Hiu hnh, khi n v css dng CPU x l l tiu trnh, Hiu hnh s phn phi CPU cho cc tiu trnhtrong h thng. Tuy nhin i vi mt s hiu hnh, khi nim tiu trnh chc htrnh mt i tng ngi dng, cc thao tc tiu trnh c cung cp km theo do mtb th vin x l trong ch ngi dng khng c quyn (user mode). Lc ny Hiu hnh s ch bit n khi nim tin trnh, do vy cn co cch lin kt cc tiutrnh cng mt tin trnh vi tin trnh cha trong kernel_i tng ny i lc c gil LWP (lightweight process).

  • 8/3/2019 He Dieu Hanh 134

    11/153

    IV. TM TT

    Tin trnh l mt chng trnh ang hot ng.

    s dng hiu qu CPU, sa chng cn c a vo h thng

    Sa chng c t chc bng cch lu tr nhiu tin trnh trong b nhti mt thiim, 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 ngthi trong cng mt khng gian a ch nhm thc hin tc v hiu qa hn trong mt strng hp.

    Cng c bi hc

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

    1. Ti sao cc hiu hnh hin i h trmi trng a nhim ?

    2. Phn bit multitask, multiprogramming v multiprocessing.

  • 8/3/2019 He Dieu Hanh 134

    12/153

    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 hiu hnh khng cho php x l ng hnh. Tho lun v cc phc tppht sinh khi hiu hnh cho php a nhim ?

    Bi 2. Tm mt sng dng thch hp vi m hnh a tin trnh; v mt sng dngthch hp vi m hnh a tiu trnh.

  • 8/3/2019 He Dieu Hanh 134

    13/153

    Bi 3: QUN L TIN TRNH

    Trong bi ny chng ta stm hiu chc nng qun l tin trnh ca Hiu hnh : lmthno phn chia CPU cho cc tin trnh ? Theo vt xl ca tin trnh ? V cc thaotc 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 tintrnh ti thi im . Trong qu trnh sng, mt tin trnh thay i trng thi do nhiunguyn nhn nh : phi chmt s kin no xy ra, hay i mt thao tc nhp/xuthon 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 chc cp pht mt ti nguyn, hay chmts kin xy ra .

    Ready : tin trnh chc 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 runningtrn mt b x lbt k. Trong khi , nhiu tin trnh c thtrng thi blockedhay ready.

  • 8/3/2019 He Dieu Hanh 134

    14/153

    Cc cung chuyn tip trong s trng thi biu din su s chuyn trng thi c th xyra trong cc iu kin sau :

    Tin trnh mi to c a vo h thng

    Biu phi cp pht cho tin trnh mt khong thi gian s dng CPUTin trnh kt thc

    Tin trnh yu cu mt ti nguyn nhng cha c p ng v ti nguyn cha snsng cp pht ti thi im ; hoc tin trnh phi chmt s kin hay thao tcnhp/xut.

    Biu phi chn mt tin trnh khc cho x l .

    Ti nguyn m tin trnh yu cu trnn sn sng cp pht ; hay s kin hoc thao

    tc nhp/xut tin trnh ang i hon tt.I.2. Ch xl ca tin trnh

    m bo h thng hot ng ng n, hiu hnh cn phi c bo v khi sxm phm ca cc tin trnh. Bn thn cc tin trnh v d liu cng cn c bo vtrnh cc nh hng sai lc ln nhau. Mt cch tip cn gii quyt vn l phn bithai ch x l cho cc tin trnh : ch khngc quyn v chc quyn nhvos trgip ca cch phn cng. Tp lnh ca CPU c phn chia thnh cc lnh cquyn v lnh khng c quyn. Cch phn cng ch cho php cc lnh c quyn cthc hin trong chc quyn. Thng thng ch c hiu 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 cnh hng n h thng. Nh vyhiu hnh c bo v. Khi mt tin trnh ngi dng gi n mt li gi h thng,tin trnh ca hiu hnh x l li gi ny s hot ng trong chc quyn, sau khihon tt th tr quyn iu khin v cho tin trnh ngi dng trong ch khng cquyn.

    Hnh v 2.3 Hai ch x l

    I.3. Cu trc dliu khi qun l tin trnh

  • 8/3/2019 He Dieu Hanh 134

    15/153

    Hiu hnh qun l cc tin trnh trong h thng thng qua khi qun l tin trnh(process control block -PCB). PCB l mt vng nhlu tr cc thng tin m t cho tintrnh, 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.

    Ngcnh 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 csphc 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 lutra ch cu lnh k tip tin trnh s x l. Cc thng tin ny cn c lu tr khi xyra mt ngt, nhm c th cho php phc hi hot ng ca tin trnh ng nh trc khib ngt.

    B xl: dng cho my c cu hnh nhiu CPU, xc nh s hiu CPU m tin trnhang s dng.

    B nhchnh: danh sch cc khi nhc cp cho tin trnh.

    Ti nguyn sdng: 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 biu 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 cngvic nh gi tnh hnh h thng v don cc tnh hung tng lai.

  • 8/3/2019 He Dieu Hanh 134

    16/153

  • 8/3/2019 He Dieu Hanh 134

    17/153

    Hnh v2.5 Mt cy tin trnh trong h thng UNIX

    Cc cng vic hiu 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 sc hiu hnhtrc tip cp pht ti nguyn hoc c tin trnh cha cho tha hng mt s ti nguynban u.

    Khi mt tin trnh to tin trnh mi, tin trnh ban u c th x l theo mt trong haikh nng sau :

    Tin trnh cha tip tc x l ng hnh vi tin trnh con.

    Tin trnh cha chn khi mt tin trnh con no , hoc tt c cc tin trnh con ktthc x l.

    Cc hiu hnh khc nhau c th chn la cc ci t khc nhau thc hin thao tcto 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 hthng yu cu hiu hnh hy b n. i khi mt tin trnh c th yu cu hiu

  • 8/3/2019 He Dieu Hanh 134

    18/153

    hnh kt thc x l ca mt tin trnh khc. Khi mt tin trnh kt thc, hiu hnh thchin 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 thnghy b PCB ca tin trnh

    Hu ht cc hiu hnh khng cho php cc tin trnh con tip tc tn ti nu tin trnhcha kt thc. Trong nhng h thng nh th, hiu hnh s tng pht sinh mtlot 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, hiu hnh cn phi cp

    pht cc ti nguyn theo yu cu cho mi ngi s dng. Do ti nguyn h thng thngrt gii hn v c khi khng th chia s, nn him khi tt c cc yu cu ti nguyn ngthi u c tha mn. V th cn phi nghin cu mt phng php chia s mt sti nguyn hu hn gia nhiu tin trnh ngi dng ng thi. Hiu hnh qun lnhiu loi ti nguyn khc nhau (CPU, b nhchnh, cc thit b ngoi vi ), vi miloi cn c mt cch cp pht v cc chin lc cp pht hiu qa. Mi ti nguyn cbiu din thng qua mt cu trc d liu, khc nhau v chi tit cho tng loi ti nguyn,nhng cbn 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 : phnno 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 chc cp pht tinguyn tng ng.

    B cp pht : l on code m nhim vic cp pht mt ti nguyn c th. Mt s tinguyn i hi cc gii thut c bit (nh CPU, b nhchnh, h thng tp tin), trongkhi nhng ti nguyn khc (nh cc thit b nhp/xut) c th cn cc gii thut cp phtv gii phng tng qut hn.

  • 8/3/2019 He Dieu Hanh 134

    19/153

    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 nguynkhng chia sc.

    Cp pht ti nguyn cho tin trnh c yu cu trong mt khong thi gian tr hon c thchp 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 cnhiu 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 quali gia cc tin trnh mt cch thng xuyn nhiu ngi s dng c th tng tccng lc vi tng chng trnh trong qu trnh x l.

    thc hin c mc tiu ny, hiu hnh phi la chn tin trnh c x l tiptheo. Biu phi s s dng mt gii thut iu phi thch hp thc hin nhim vny. Mt thnh phn khc ca hiu hnh cng tim n trong cng tc iu phi l bphn phi (dispatcher). B phn phi s chu trch nhim chuyn i ng cnh v traoCPU cho tin trnh c chn bi biu phi x l.

    II.1. Gii thiu

    II.1.1. Mc tiu iu phi

  • 8/3/2019 He Dieu Hanh 134

    20/153

    Biu phi khng cung cp cch, m a ra cc quyt nh. Cc hiu hnh xydng nhiu chin lc khc nhau thc hin vic iu phi, nhng tu chung cn tc cc mc tiu sau :

    a) Scng bng ( Fairness) :

    Cc tin trnh chia s CPU mt cch cng bng, khng c tin trnh no phi chi vhn 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 smu 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 hiu hnhkhi gii quyt phi xem xt nhiu yu t khc nhau c tht c nhng mc tiu ra. Mt sc 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 mtyu 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 xl ca tin trnh ( CPU-boundedness):

    Khi mt tin trnh nhn c CPU, n c khuynh hng s dng CPU n khi ht thigian dnh cho n ? Hot ng ca cc tin trnh nh th thng bao gm mt s t lt sdng CPU , nhng mi lt trong mt thi gian di.

  • 8/3/2019 He Dieu Hanh 134

    21/153

    c) Tin trnh tng tc hay xl theo l :

    Ngi s dng theo kiu tng tc thng yu cu c hi p tc thi i vi cc yucu ca h, trong khi cc tin trnh ca tc vc x l theo l ni chung c th tr hontrong mt thi gian chp nhn c.

    d) u tin ca tin trnh :

    Cc tin trnh c thc phn cp theo mt s tiu chun nh gi no , mt cchhp l, cc tin trnh quan trng hn ( c u tin cao hn) cn c u tin hn.

    e) Thi gian sdng CPU ca tin trnh :

    Mt s quan im u tin chn nhng tin trnh s dng CPU nhiu thi gian nht vhy vng chng s cn t thi gian nht hon tt v ri khi h thng . Tuy nhin cngc quan im cho rng cc tin trnh nhn c CPU trong t thi gian l nhng tin trnh

    phi chlu nht, do vy u tin chn chng.f) Thi gian cn li tin trnh cn hon tt :

    C th gim thiu thi gian chi trung bnh ca cc tin trnh bng cch cho cc tintrnh cn t thi gian nht hon tt c thc hin trc. Tuy nhin ng tic l rthim khi bit c tin trnh cn bao nhiu thi gian na kt thc x l.

    II.1.3.iu phi khngc quyn v iu phic quyn (preemptive/nopreemptive)

    Thut ton iu phi cn xem xt v quyt nh thi im chuyn i CPU gia cc tin

    trnh. Hiu hnh c th thc hin cchiu phi theo nguyn l c quyn hockhngc quyn.

    iu phi c quyn : Nguyn l iu phic quyn cho php mt tin trnh khinhn c CPU s c quyn c chim CPU n khi hon tt x l hoc t nguyn giiphng 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 chmt thao tc nhp xut hay chmt 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 khngthch hp vi cc h thng tng qut nhiu ngi dng, v nu cho php mt tin trnh cquyn x l bao lu ty , c ngha l tin trnh ny c th gi CPU mt thi gian khngxc nh, c th ngn cn nhng tin trnh cn li trong h thng c mt chi x l.

    iu phi khng c quyn : Ngc vi nguyn l c quyn, iu phi theo nguynl khngc quyn cho php tm dng hot ng ca mt tin trnh ang sn sng x l.

  • 8/3/2019 He Dieu Hanh 134

    22/153

    Khi mt tin trnh nhn c CPU, n vn c s dng CPU n khi hon tt hoc tnguyn gii phng CPU, nhng mt tin trnh khc c u tin c th dnh quyn sdng CPU ca tin trnh ban u. Nh vy l tin trnh c th b tm dng hot ng btc lc no m khng c bo trc, tin trnh khc x l. Cc quyt nh iu phixy ra khi :

    Khi tin trnh chuyn t trng thi ang x l (running) sang trng thi b kha blocked( v d chmt thao tc nhp xut hay chmt tin trnh con kt thc).

    Khi tin trnh chuyn t trng thi ang x l (running) sang trng thi ready ( v d xyra mt ngt).

    Khi tin trnh chuyn t trng thi ch(blocked) sang trng thi ready ( v d mt thaotc 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 mttin trnh c chim CPU, nhng vic tm dng mt tin trnh c th dn n cc muthun 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 cctc v cn thi gian x l ngn phi chtc 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 chi hip kp thi. Tuy nhin thc hin iu phi theo nguyn l khng c quyn i hinhng cch phc tp trong vic phn nh u tin, v pht sinh thm chi ph khichuyn i CPU qua li gia cc tin trnh.

    II.2. T chc iu phi

    II.2.1. Cc danh sch sdng trong qu trnh iu phi.

    Hiu hnh s dng hai loi danh sch thc hin iu phi cc tin trnh l danhsch sn sng (ready list) v danh sch chi(waiting list).

    Khi mt tin trnh bt u i vo h thng, n c chn vo danh sch cc tc v (joblist). Danh sch ny bao gm tt c cc tin trnh ca h thng. Nhng ch cc tin trnhang thng tr trong b nhchnh v trng thi sn sng tip nhn CPU hot ngmi c a vo danh sch sn sng.

    Biu 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 chkhi

  • 8/3/2019 He Dieu Hanh 134

    23/153

    xy ra cc s kin nhi mt thao tc nhp/xut hon tt, yu cu ti nguyn cha ctha mn, c yu cu tm dng ...Khi tin trnh sc chuyn sang mt danh schchi.

    Hiu 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 chi ring bao gm cc tin trnh angchc 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 danhsch sn sng v danh sch chi. S di y m t siu phi cc tin trnh datrn cc danh sch ca h thng.

    Thot u tin trnh mi c t trong danh sch cc tin trnh sn sng (ready list), n

    si 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 thp ng, khi tin trnh sc chuyn sang danh sch cc tin trnh ang chti nguyn tng ng.

    Tin trnh c th b bt buc tm dng x l do mt ngt xy ra, khi tin trnh ca trli vo danh sch sn sng chc cp CPU cho lt tip theo.

  • 8/3/2019 He Dieu Hanh 134

    24/153

    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 sangtrng thi ready v li c a trvo danh sch sn sng. Tin trnh lp li chu k nycho 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 hiu hnh thc hin hai mc : iu phi tc v(job scheduling) viu 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 tcv vo b nhchnh thc hin. Chc nng iu phi tc v quyt nh mc achng ca h thng ( s lng tin trnh trong b nhchnh). Khi h thng to lp mttin trnh, hay c mt tin trnh kt thc x l th chc nng iu phi tc v mi ckch hot. V mc a chng tng i n nh nn chc nng iu phi tc v c tnsut hot ng thp .

    h thng hot ng tt, biu phi tc v cn bit tnh cht ca tin trnh l hngnhp xut (I/O bounded) hay hng xl ( CPU bounded). Mt tin trnh c gi lhng nhp xutnu n ch yu n ch s dng CPU thc hin cc thao tc nhpxut. Ngc li mt tin trnh c gi l hng xl nu n ch yu n ch s dngCPU thc hin cc thao tc tnh ton. cn bng hot ng ca CPU v cc thit bngoi vi, biu phi tc v nn la chn cc tin trnh np vo b nhsao cho hthng l s pha trn hp l gia cc tin trnh hng nhp xutv cc tin trnh hngxl

    b) iu phi tin trnh

    Chn mt tin trnh trng thi sn sng ( c np vo b nhchnh, v c tinguyn hot ng ) v cp pht CPU cho tin trnh thc hin. Biu phi tintrnh c tn sut hot ng cao, sau mi ln xy ra ngt ( do ng h bo gi, do cc thit

  • 8/3/2019 He Dieu Hanh 134

    25/153

    b ngoi vi...), thng l 1 ln trong khong 100ms. Do vy nng cao hiu sut ca hthng, cn phi tng tc x l ca biu phi tin trnh. Chc nng iu phi tintrnh l mt trong chc nng cbn, quan trng nht ca hiu hnh.

    Trong nhiu hiu hnh, c th khng c biu phi tc v hoc tch bit rt t i

    vi biu phi tin trnh. Mt vi hiu hnh li a ra mt cp iu phi trunggian 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 cyu cu, l tin trnh c a vo h thng sm nht. y l thut ton iu phi theonguyn tc c quyn. Mt khi CPU c cp pht cho tin trnh, CPU chc tintrnh 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 :

    Tintrnh

    Thi im vo RL Thi gianx l

    P1 0 24

  • 8/3/2019 He Dieu Hanh 134

    26/153

    P2 1 3

    P3 2 3

    Th t cp pht CPU cho cc tin trnh l :

    P1 P2 P3

    0 24 27 30

    thi gian chi c x l l 0 i vi P1, (24 -1) vi P2 v (24+3-2) vi P3. Thi gianchtrung bnh l ( 0+23+25)/3 = 16 milisecondes.

    Tho lun : Thi gian chtrung bnh khng t cc tiu, v bin i ng ki vicc gi tr v thi gian yu cu x l v th t khc nhau ca cc tin trnh trong danhsch 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 chi mt tin trnh c yu cu thi gian di ktthc 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, biu philn lt cp pht cho tng tin trnh trong danh sch mt khong thi gian s dng CPUgi 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, hiu hnh thu hi CPU v cp chotin trnh k tip trong danh sch. Nu tin trnh b kha hay kt thc trc khi s dnght thi gian quantum, hiu hnh cng lp tc cp pht CPU cho tin trnh khc. Khitin trnh tiu th ht thi gian CPU dnh cho n m cha hon tt, tin trnh c atrli 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

  • 8/3/2019 He Dieu Hanh 134

    27/153

    trnh RL l

    P1 0 24

    P2 1 3

    P3 2 3

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

    P1 P2 P3 P1 P1 P1 P1 P1

    0 4 7 10 14 18 22 2630

    Thi gian chi 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 sc cp pht CPU 1/n trong tng khong thi gian q. Mi tin trnh s khng phi iqu (n-1)qn 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. Nuthi lng quantum qu b s pht sinh qu nhiu s chuyn i gia cc tin trnh vkhin cho vic s dng CPU km hiu qa. Nhng nu s dng quantum qu ln s lmtng thi gian hi p v gim kh nng tng tc ca h thng.

    II.3.3.iu phi viu tin

    Nguyn tc : Mi tin trnh c gn cho mt u tin tng ng, tin trnh c u tin cao nht sc chn cp pht CPU u tin. u tin c thc nhngha ni ti hay nhvo cc yu t bn ngoi. u tin ni ti s dng cc i lngc tho lng tnh ton u tin ca tin trnh, v d cc gii hn thi gian, nhucu b nhu tin cng c thc gn t bn ngoi da vo cc tiu chun do hiu hnh nh tm quan trng ca tin trnh, loi ngi s dng shu tin trnh

    Gii thut iu phi vi u tin c th theo nguyn tc c quyn hay khng cquyn. Khi mt tin trnh c a vo danh sch cc tin trnh sn sng, u tin can c so snh vi u tin ca tin trnh hin hnh ang x l. Gii thut iu phivi 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 giithut c quyn s chn gin chn tin trnh mi vo danh sch sn sng, v tin trnhhin 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

  • 8/3/2019 He Dieu Hanh 134

    28/153

    trnh RL tin x l

    P1 0 3 24

    P2 1 1 3

    P3 2 2 3

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

    P1 P2 P3

    0 24 27 30

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

    P1 P2 P3 P1

    0 1 4 7 30

    Tho lun : Tnh trng i CPU (starvation) l mt vn chnh yu ca cc giithut s dng u tin. Cc gii thut ny c th cc tin trnh c u tin thp chi CPU v hn ! ngn cn cc tin trnh c u tin cao chim dng CPU v thihn, biu 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 thnh, 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 tinpc gn cho mi tin trnh l nghch o ca thi gianx l tm tin trnh yu cu :p = 1/t. Khi CPU c t do, n sc cp pht cho tintrnh yu cu t thi gian nht kt thc- tin trnh ngn nht. Gii thut ny cng c thc quyn hay khng c quyn. S chn la xy ra khi c mt tin trnh mi c avo danh sch sn sng trong khi mt tin trnh khc ang x l. Tin trnh mi c th shu mt yu cu thi gian s dng CPU cho ln tip theo (CPU-burst) ngn hn thi giancn li m tin trnh hin hnh cn x l. Gii thut SJF khng c quyn s dng hotng 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 Thi imvo RL

    Thi gianx l

    P1 0 6

  • 8/3/2019 He Dieu Hanh 134

    29/153

    P2 1 8

    P3 2 4

    P4 3 2

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

    P1 P4 P3 P2

    0 6 8 12 20

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

    P1 P4 P1 P3 P2

    0 3 5 8 12 20

    Tho lun : Gii thut ny cho php t c thi gian chtrung bnh cc tiu. Khkhn thc s ca gii thut SJF l khng th bit c thi gian yu cu x l cn li catin trnh ? Ch c th don gi tr ny theo cch tip cn sau : gi tn l di ca thigian x l ln thn,n+1 l gi tr don cho ln x l tip theo. Vi hy vng gi tr don 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

    khc tch ly. Tham s ( 0 1) kim sot trng s ca hin ti gn hay qukhnh hng n cng thc dn.

    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 utin ca chng c cch thc iu phi thch hp cho tng nhm. Danh sch sn sngc phn tch thnh cc danh sch ring bit theo cp u tin, mi danh sch baogm cc tin trnh c cng u tin v c p dng mt gii thut iu phi thch hpiu phi. Ngoi ra, cn c mt gii thut iu phi gia cc nhm, thng gii thutny l gii thut khng c quyn v s dng u tin cnh.Mt tin trnh thuc v

    danh sch cp u tin i s chc cp pht CPU khi cc danh sch cp u tin lnhn i trng.

  • 8/3/2019 He Dieu Hanh 134

    30/153

    Hnh 2.14iu phi nhiu cp u tin

    Tho lun : Thng thng, mt tin trnh sc 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 thdn n tnh trng i CPU cho cc tin trnh thuc v nhng danh sch c u tinthp. Do vy c th xy dng gii thut iu phi nhiu cp u tin v xoay vng. Giithut ny s chuyn dn mt tin trnh t danh sch c u tin cao xung danh sch cu tin thp hn sau mi ln s dng CPU. Cng vy, mt tin trnh chqu lu trongcc danh sch c u tin thp cng c thc chuyn dn ln cc danh sch c utin cao hn. Khi xy dng mt gii thut iu phi nhiu cp u tin v xoay vng cnquytnh 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 tinthp hn.

    Phng php s dng xc nh mt tin trnh mi c a vo h thng s thucdanh sch ng vi tin no.

  • 8/3/2019 He Dieu Hanh 134

    31/153

    Hnh 2.15 iu phi Multilevel Feedback

    II.3.6. Chin lc iu phi Xs(Lottery)

    Nguyn tc : tng chnh ca gii thut l pht hnh mt s v s v phn phi chocc tin trnh trong h thng. Khi n thi im ra quyt nh iu phi, s tin hnhchn 1 v "trng gii", tin trnh no shu v ny sc nhn CPU

    Tho lun : Gii thut Lottery cung cp mt gii php n gin nhng bo m tnhcng bng cho thut ton iu phi vi chi ph thp cp nht u tin cho cc tintrnh :

    III. Tm tt

    Trong sut chu trnh sng, tin trnh chuyn i qua li gia cc trng thi ready,running v blocked.

    Biu phi ca hiu hnh chu trch nhim p dng mt gai thut iu phi thchhp chn tin trnh thch hp c s dng CPU, v b phn phi s chuyn giaoCPU 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 :

  • 8/3/2019 He Dieu Hanh 134

    32/153

    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 Thi imvo RL

    Thi gianCPU

    utin

    P1 0 10 3

    P2 1 1 1

    P3 2 2 3

    P4 3 1 4

    P5 4 5 2

    Gi s cc tin trnh cng c a vo h thng ti thi im 0

    a)Cho bit kt quiu 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 trongtng thut ton iu phi cu a.

    c)Cho bit thi gian chtrong h thng (waiting time) ca tng tin trnh trong tngthut ton iu phi cu a.

    d)Thut ton iu phi no trong cc thut ton cu a cho thi gian chtrung bnh lcc tiu ?

    Bi 2. Gi s c cc tin trnh sau trong h thng :

    Tin trnh Thi im vo RL Thi gian CPU

    P1 0.0 8

    P2 0.4 4

    P3 1.0 1

  • 8/3/2019 He Dieu Hanh 134

    33/153

    S dng nguyn tc iu phi c quyn v cc thng tin c c ti thi im ra quytnh tr li cc cu hi sau y :

    a)Cho bit thi gian lu li trung bnh trong h thng (turnaround time) ca cc tin trnhtrong thut ton iu phi FIFO.

    b)Cho bit thi gian lu li trung bnh trong h thng (turnaround time) ca cc tin trnhtrong thut ton iu phi SJF.

    c)Thut ton SJF dnh ci tin s thc hin ca h thng , nhng lu chng ta phichn iu phi P1 ti thi im 0 v khng bit rng s c hai tin trnh ngn hn vo hthng sau . Th tnh thi gian lu li trung bnh trong thng nu CPU nhn ritrong 1 n v thi gian u tin v sau s dng SJF iu phi. Lu P1 vP2 sphi chtrong sut thi gian nhn ri ny, do vy thi gian chca chng tng ln.Thut ton iu phi ny c bit n nhiu 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 trongcc 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 tmt ng dng thch hp vm hnh a tiu trnh v mt ng dng khc khng thch hp.

    Bi 5. M t cc x l hiu 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 trungbnh cho mt ln chuyn i ng cnh ls, v thi gian trung bnh mt tin trnh hngnhp xut s dng CPU trc khi pht sinh mt yu cu nhp xut l t ( t>>s). Tho luncc 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

  • 8/3/2019 He Dieu Hanh 134

    34/153

    e)q = t

    f)q > t

    Bi 7. Gi s mt hiu 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 hngi cp thp hn s c thi lng quantum di gp i hng i ng vi mc u tin caohn n. Mt tin trnh khi vo h thng sc a vo hng i mc cao nht, vchuyn dn xung cc hng i bn di sau mi lt s dng CPU. Mt tin trnh chc th b thu hi CPU khi s dng ht thi lng quantum dnh cho n. H thng cth thc hin cc tc v x l theo l hoc tng tc, v mi tc v li c th hng x lhay 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 ?

  • 8/3/2019 He Dieu Hanh 134

    35/153

    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 nhth khng ? Trongbi ny chng ta s tm hiu l do cc tin trnh c nhu cu lin lc, cc cch h trvic lin lcny cng nhnhng 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 thnh hng n cc tin trnh khc , hoc b cc tin trnh khc tc ng. Ni cch khc,cc tin trnh l nhng thc thc 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 , dovy hiu hnh cn cung cp mt mi trng cho php s truy cp ng thi n ccd liu chung.

    Hp tc hon thnh tc v: i khi t c mt s x l nhanh chng, ngi taphn chia mt tc v thnh cc cng vic nh c th tin hnh song song. Thng th cccng vic nh ny cn hp tc vi nhau cng hon thnh tc v ban u, v d d liukt xut ca tin trnh ny li l d liu nhp cho tin trnh khc Trong cc trng hp, hiu hnh cn cung cp cch 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 shu mt khng gian a ch ring bit, nn cc tin trnh khngth lin lc trc tip d dng m phi nhvo cc cch do hiu hnh cung cp. Khicung cp cch lin lc cho cc tin trnh, hiu hnh thng phi tm gii php chocc vn chnh yu sau :

    Lin kt tng minh hay tim n (explicit naming/implicit naming) : tin trnh c cnphi bit tin trnh no ang trao i hay chia s thng tin vi n ? Mi lin kt c gil tng minh khi c thit lp r rng , trc tip gia cc tin trnh, v l tim n khicc tin trnh lin lc vi nhau thng qua mt qui c ngm no .

    Lin lc theo chng b hay khngng b (blocking / non-blocking): khi mt tintrnh trao i thng tin vi mt tin trnh khc, cc tin trnh c cn phi i cho thao tclin lc hon tt ri mi tip tc cc x l khc ? Cc tin trnh lin lc theo cchngb s chnhau hon tt vic lin lc, cn cc tin trnh lin lc theo cch nonblockingth khng.

  • 8/3/2019 He Dieu Hanh 134

    36/153

    Lin lc gia cc tin trnh trong h thng tp trung v h thng phn tn: cch linlc gia cc tin trnh trong cng mt my tnh c s khc bit vi vic lin lc gia cctin trnh gia nhng my tnh khc nhau?

    Hu ht cc hiu hnh a ra nhiu cch lin lc khc nhau, mi cch c nhng

    c tnh ring, v thch hp trong mt hon cnh chuyn bit.

    II. Cc CChThng Tin Lin lc

    II.1. Tn hiu (Signal)

    Gii thiu: Tn hiu l mt cch phn mm tng t nh cc ngt cng tc ngn cc tin trnh. Mt tn hiu c s dng thng bo cho tin trnh v mt s kinno xy ra. C nhiu tn hiu c nh ngha, mi mt tn hiu c mt ngha tng

    ng vi mt s kin c trng.

    V d : Mt s tn hiu ca UNIX

    Tn hiu M t

    SIGINT Ngi dng nhn phm DEL ngt xl tin trnh

    SIGQUIT Yu cu thot x l

    SIGILL Tin trnh xl mt ch th bt hp l

    SIGKILL Yu cu kt thc mt tin trnh

    SIGFPT Li floating point xy ra ( chia cho 0)

    SIGPIPE Tin trnh ghi d liu vo pipe mkhng c reader

    SIGSEGV Tin trnh truy xut n mt a ch bthp l

    SIGCLD Tin trnh con kt thc

    SIGUSR1 Tn hiu 1 do ngi dng nh ngha

    SIGUSR2 Tn hiu 2 do ngi dng nh ngha

  • 8/3/2019 He Dieu Hanh 134

    37/153

    Mi tin trnh shu mt bng biu din cc tn hiu khc nhau. Vi mi tn hiu s ctng ng mt trnh x l tn hiu (signal handler) qui nh cc x l ca tin trnh khinhn 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 hiu hnh gi n mt tin trnh ( v d lu tin trnh khi c mt thit bnhp/xut t do).

    Mt tin trnh gi n mt tin trnh khc ( v d tin trnh cha yu cu mt tin trnhcon 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 khngng b, ngha l mt tintrnh nhn tn hiu khng th xc nh trc thi im nhn tnh hiu. Hn na cc tintrnh khng th kim tra c s kin tng ng vi tn hiu c tht s xy ra ? Cuicng, cc tin trnh ch c th thng bo cho nhau v mt bin c no , m khng traoi d liu theo cch ny c.

    II.2. Pipe

  • 8/3/2019 He Dieu Hanh 134

    38/153

    Gii thiu:Mt pipe l mt knh lin lc trc tip gia hai tin trnh : d liu xut catin trnh ny c chuyn n lm d liu nhp cho tin trnh kia di dng mt dngcc byte.

    Khi mt pipe c thit lp gia hai tin trnh, mt trong chng s ghi d liu vo pipe

    v tin trnh kia sc d liu t pipe. Th t d liu truyn qua pipe c bo ton theonguyn 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 tcc/ghi d liu trong pipe. Hiu hnh cng chu trch nhim ng b ha vic truyxut 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 cch lin lc mt chiu (unidirectional), nghal mt tin trnh kt ni vi mt pipe ch c th thc hin mt trong hai thao tc c hocghi, nhng khng th thc hin c hai. Mt s hiu hnh cho php thit lp hai pipegia mt cp tin trnh to lin lc hai chiu. Trong nhng h thng , c nguy cxy ra tnh trng tc nghn (deadlock) : mt pipe b gii hn v kch thc, do vy nu chai 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 bkha v chln nhau mi mi !

    Cch 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 cquan h cha-con, v trn cng mt my tnh.

    II.3. Vng nhchia s

    Gii thiu:Cch tip cn ca cch ny l cho nhiu tin trnh cng truy xut nmt vng nhchung gi l vng nhchia s(shared memory).Khng c bt k hnh vi

  • 8/3/2019 He Dieu Hanh 134

    39/153

    truyn d liu no cn phi thc hin y, d liu chn gin c t vo mt vngnhm nhiu tin trnh c th cng truy cp c.

    Vi phng thc ny, cc tin trnh chia s mt vng nhvt l thng qua trung giankhng gian a ch ca chng. Mt vng nhchia s tn ti c lp vi cc tin trnh, v

    khi mt tin trnh mun truy xut n vng nhny, tin trnh phi kt gn vng nhchung vo khng gian a ch ring ca tng tin trnh, v thao tc trn nh mtvng nhring ca mnh.

    Hnh 3.3 Lin lc qua vng nhchia 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 vnd liu (coherence) , v d : lm sao bit c d liu m mt tin trnh truy xut l dliu mi nht m tin trnh khc ghi ? Lm th no ngn cn hai tin trnh cng ngthighi d liu vo vng nhchung ?R rng vng nhchia s cn c bo v bngnhng cchng b ha thch hp..

    Mt khuyt im ca phng php lin lc ny l khng th p dng hiu qu trong cch phn tn , trao i thng tin gia cc my tnh khc nhau.

    II.4. Trao i thng ip (Message)

    Gii thiu:Hiu hnh cn cung cp mt cch lin lc gia cc tin trnh khngthng qua vic chia s mt ti nguyn chung , m thng qua vic gi thng ip. htrcch lin lc bng thng ip, hiu hnh cung cp cc hm IPC chun(Interprocess communication), cbn 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 giahai tin trnh, sau P, Q s dng cc hm IPC thch hp trao i thng ip, cuicng khi s lin lc chm dt mi lin kt gia hai tin trnh s b hy. C nhiu cchthc thc hin s lin kt gia hai tin trnh v ci t cc theo tc send /receive tngng : lin lc trc tip hay gin tip, lin lc ng b hoc khng ng b , kch thcthng ip l cnh hay khng Nu cc tin trnh lin lc theo kiu lin kt tngminh, cc hm Send v Receive sc ci t vi tham s :

  • 8/3/2019 He Dieu Hanh 134

    40/153

    Send(destination, message) : gi mt thng ip n destination

    Receive(source,message) : nhn mt thng ip tsource

    Tho lun:n v truyn thng tin trong cch 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 thc hay ghi ln n, tuy nhin mi socket l mt thnh phn trong mt mini no gia cc my trn mng my tnh v cc thao tc c/ghi chnh l s trao id 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, vd UNIX, INTERNET, XEROX_NS, ...

    Type: nh ngha cc c im lin lc:

    a) Stin cy

    b) Sbo ton thtdliu

    c) Lp li dliu

    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 mmt 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:

  • 8/3/2019 He Dieu Hanh 134

    41/153

    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 thc gi nhiu ln,

    hai thng ip gi theo mt th t no c thn tay ngi nhn theo mt tht khc.

    Mt tin trnh sau khi mmt socket c th s dng n lin lc vi nhiutin trnh khc nhau nhs hai primitivesendv 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 sdng socket lin lc theo m hnh client-serveur. Trong m hnh ny, server s dngli gi h thng listen v accept ni kt vi client, sau , client v server c th traoi 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 nhbi mt port, khi nim port y khng phi l mt cng giao tip trn thit bvt l m ch l mt khi nim logic trong cch nhn ca ngi lp trnh, mi portc tng ng vi mt s nguyn dng.

    Hnh 3.4Cc socket v port trong mi ni TCP.

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

  • 8/3/2019 He Dieu Hanh 134

    42/153

    Tho lun:Cch socket c th s dng chun ho mi lin lc gia cc tin trnhvn 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 gihiu hnhcng cn cung cp km theo nhng cchng b ha bo m hot ng ca cctin 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 scho php nhiu tin trnh ng thi truy xut, v ti nguyn khng th chia s chchp 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 hainguyn nhn sau y:

    c tnh cu to phn cng ca ti nguyn khng cho php chias.

    Nu nhiu tin trnh s dng ti nguyn ng thi, c nguy cxy ra cc kt qu khng don c do hot ng ca cc tintrnh 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 trnhc 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 thngl khng th bit trc, v iu ny ph thuc vo nhiu yu tng nh tn sutxy ra cc ngt ca tng tin trnh, thi gian tin trnh c cp pht b x lC th ni rng cc tin trnh hot ng khng ng b vi nhau. Nh ng cnhng 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 otiu khin (race condition)

  • 8/3/2019 He Dieu Hanh 134

    43/153

    Gi s c hai tin trnh P1 v P2 thc hin cng vic ca cc k ton, v cng chias mt vng nhchung 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. Nuxy 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, hiu hnh cp pht CPU cho P2.

    P2 kim tra cng iu kin trn, nhn c kt qu l 400 (do P1vn cha rt tin) v rt 400. Gi tr ca taikhoanc cp nht lil 400.

    Khi P1c ti kch hot v tip tc x l, n s khng kim trali iu kin (taikhoan - tienrut >=0)-v kim tratrong lt x l trc- m thc hin rt tin. Gi tr ca taikhoans 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 trnhc v ghi d liu trn cng mt vng nhchung, v kt qu ph thuc vo siu 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 ngthi mt ti nguyn khng th chia s, cn phi p t mt s truy xut c quyntrn ti nguyn : khi mt tin trnh ang s dng ti nguyn, th nhng tintrnh khc khng c truy xut n ti nguyn.

    on chng trnh trong c kh nng xy ra cc mu thun truy xut trn tinguyn chung c gi l min gng (critical section). Trong v d trn, onm :

    if (taikhoan - tienrut >=0)

    taikhoan = taikhoan - tienrut;

  • 8/3/2019 He Dieu Hanh 134

    44/153

    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 thiim 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 tintrnh, cng nh v s lng b x l trong h thng.

    Mt tin trnh tm dng bn ngoi min gng khng c ngncn cc tin trnh khc vo min gng.

    Khng c tin trnh no phi chv hn c vo min gng.

    IV. Tm tt

    Mt s tin trnh trong h thng c nhu cu trao i thng tin phi hp hotng, do mi tin trnh c mt khng gian a chc lp nn vic lin lc ch cth thc hin thng qua cc cch do hiu hnh cung cp.

    Mt s cch 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 nhchia s: cho php nhiu tin trnh truy cp n cng mt vngnh

    Trao i thngip : truyn d liu c cu trc, c th vn dng trongcc

    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 bho hot ng ca chng ch yu do yu cu c quyn truy xut hoc phi hphot 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 trnhc vo min gng.

  • 8/3/2019 He Dieu Hanh 134

    45/153

    Cng c bi hc

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

    1. Cc cch 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 tH2O

    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 hnhvi cc tin trnh MakeH, MakeO, chc 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 mtcy cu rt c. Hy xy dng th tc ArriveBridge(int direction) vExitBridge() 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 hngtrn cu.

  • 8/3/2019 He Dieu Hanh 134

    46/153

    Mi chic xe khi n u cu s gi ArriveBridge(direction) kim tra iukin 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 cami chic xe.*/{

    RuntoBridge(); // i v pha cuArriveBridge(direction);

    PassBridge(); // Qua cuExit Bridge();RunfromBridge(); // qua cu

    }

    Bi 3. Bi ton Qua sng

    vt qua sng, cc nhn vin Microsof v cc Linux hacker cng s dng mtbn sng v phi chia s mt s thuyn c bit. Mi chic thuyn ny ch chophp ch1 ln 4 ngi, v phi c 4 ngi mi khi hnh c. bo man ton cho c 2 pha, cn tun th cc lut sau :

    a. Khng chp nhn 3 nhn vin Microsoft v 1 Linux hacker trncng mt chic thuyn.

    b. Ngc li, khng chp nhn 3 Linux hacker v 1 nhn vinMicrosoft 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 tngng bi 1 hacker hoc 1 nhn vin khi hn bsng kim tra iu kin ccho php h xung thuyn khng ? Cc th tc ny s sp xp nhng ngi thchhp c th ln thuyn. Nhng ngi c ln thuyn khi thuyn cha y s

    phi chn 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 trliXemnh lun c thuyn sp xp theo cc yu cu hp l)

    Gi s hot ng ca mi hackerc m t bng mt tin trnh Hacker() sauy:

  • 8/3/2019 He Dieu Hanh 134

    47/153

    Hacker(){

    RuntoRiver(); // i n bsngHackerArrives (); // Kim tra iu kin xung thuyn

    CrossRiver(); // Khi hnh qua sng}

    v hot ng ca mi nhn vin c m t bng mt tin trnhEmployee() sau y:

    Employee(){

    RuntoRiver(); // i n bsng

    EmployeeArrives (); // Kim tra iu kin xung thuynCrossRiver(); // 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 mttrm 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 khchs khi hnh. C th c nhiu xe v nhiu hnh khch vo bn cng lc, nguyntc iu phi s xp khch vo y mt xe, cho xe ny khi hnh ri mi iuphi cho xe khc.

    Gi s hot ng iu phi khch ca bn cho 1 chic xe bus c m t qua tintrnh GetPassengers(); hot ng ca mi hnh khch ty loi c m t lnlt bng tin trnh WheelPassenger() v NonWheelPassenger() sau y , hysa cha cc on code, s dng cch semaphore thc hin cc nguyn tc

    ng b ho cn thit.GetPassenger(){

    ArriveTerminal(); // tip nhn mt xe vo bnOpenDoor(); // mca xe, th tc ny xem nh cfor (int i=0; i

  • 8/3/2019 He Dieu Hanh 134

    48/153

    {

    ArrangeSeat(); // a 1 khch vo ch

    }

    for (int i=0; i

  • 8/3/2019 He Dieu Hanh 134

    49/153

    MakeTires() { // to bnh xe v gn vokhung 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 snxut khung xe khc

  • 8/3/2019 He Dieu Hanh 134

    50/153

    BI 5 : CC GII PHP NG B HO

    Bi hc ny sgii thiu cc gii php c thxl bi ton ng b ho. C nhiugii php thc hin vic truy xut min gng, cc gii php ny c phn bit thnhhai lp ty theo cch tip cn trong xl 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. Sdng cc bin chiu:

    Tip cn : cc tin trnh chia s mt bin chung ng vai tr cht ca (lock) , binny c khi ng l 0. Mt tin trnh mun vo min gng trc tin phi kim tra gitr ca bin lock. Nu lock = 0, tin trnh t li gi tr cho lock = 1 v i vo min gng.Nu lockang nhn gi tr 1, tin trnh phi chbn ngoi min gng cho n khi lock cgi tr 0. Nh vy gi tr 0 ca lock mang ngha l khng c tin trnh no ang trongmin gng, v lock=1 khi c mt tin trnh ang trong min gng.

    while (TRUE) {

    while (lock == 1); // waitlock = 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 cngtrong min gng ti mt thi im. Gi s mt tin trnh nhn thy lock = 0 v chun bvo min gng, nhng trc khi n c tht 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 gngv t li lock = 1. Sau tin trnh th nht c ti kch hot, n gn lock = 1 ln nari va min gng. Nh vy ti thi im c hai tin trnh u trong min gng.

    I.1.2. Sdng vic kim tra lun phin :

    Tip cn : y l mt gii php ngh cho hai tin trnh. Hai tin trnh ny s dngchung bin turn (phn nh phin tin trnh no c vo min gng), c khi ng vigi tr 0. Nu turn = 0, tin trnh A c vo min gng. Nu turn = 1, tin trnh A i vomt vng lp chn khi turn nhn gi tr0. Khi tin trnh A ri khi min gng, n tgi trturn v 1 cho php tin trnh B i vo min gng.

  • 8/3/2019 He Dieu Hanh 134

    51/153

    while (TRUE) {

    while (turn != 0); // waitcritical-section ();

    turn = 1;Noncritical-section ();

    }

    (a) Cu trc tin trnh A

    while (TRUE) {

    while (turn != 1); // waitcritical-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 lttin trnh no c vo min gng. Do n c th ngn chn c tnh trng hai tintrnh cng vo min gng, nhng li c th vi phm iu kin th ba: mt tin trnh cth b ngn chn vo min gng bi mt tin trnh khc khng trong min gng. Gi stin 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 turnl1, ri li x l on lnh ngoi min gng ln na. Sau , tin trnh A li kt thcnhanh 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 limang 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 ciu 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

    int interesse[2]; // khi ng l FALSE

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

  • 8/3/2019 He Dieu Hanh 134

    52/153

    rng tin trnh mun vo min gng), sau t turn=j ( ngh th tin trnh khc vomin 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 chn khiinteresse[j]=FALSE. Khi tin trnh Pi ri khi min gng, n t li gi tr chointeresse[i]= FALSE.

    while (TRUE) {

    int j = 1-i; // j l tin trnh cn liinteresse[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 tintrnh Pi ch c th vo min gng khi interesse[j]=FALSEhoc turn = i. Nu c hai tintrnh u mun vo min gng th interesse[i] =interesse[j] =TRUEnhng gi tr caturn 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 hingt khi ra khi min gng. Khi , ngt ng h cng khng xy ra, do vy h thngkhng th tm dng hot ng ca tin trnh ang x l cp pht CPU cho tin trnhkhc, nh tin trnh hin hnh yn tm thao tc trn min gng m khng sb tintrnh no khc tranh chp.

    Tho lun: gii php ny khng c a chung v rt thiu thn trng khi cho phptin 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 cctin trnh hot ng trn cc b x l khc vn c th truy xut n min gng !

    I.2.2. Chth TSL (Test-and-Set):

    Tip cn: y l mt gii php i hi s trgip ca cch phn cng. Nhiu mytnh cung cp mt ch thc bit cho php kim tra v cp nht ni dung mt vng nh

  • 8/3/2019 He Dieu Hanh 134

    53/153

    trong mt thao tc khng th phn chia, gi l ch thTest-and-Set Lock(TSL) v cnh 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 sc x ltun t . C th ci t gii php truy xut c quyn vi TSL bng cch s dng thmmt bin lock, c khi gn l FALSE. Tin trnh phi kim tra gi tr ca bin locktrc 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 cngvic 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 xl.

    Tt c cc gii php trn y u phi thc hin mt vng lp kim tra liu n cc php vo min gng, nu iu kin cha cho php, tin trnh phi chtip tc trongvng 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 thc gi cc gii php busywaiting. Lu rng vic kim tra nh th tiu th rt nhiu thi gian s dng CPU, dovy tin trnh ang chvn chim dng CPU. Xu hng gii quyt vn ng b ho lnn 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 theohng cho mt tin trnh cha iu kin vo min gng chuyn sang trng thiblocked, t b quyn s dng CPU. thc hin iu ny, cn phi s dng cc th tc

  • 8/3/2019 He Dieu Hanh 134

    54/153

    do hiu hnh cung cp thay i trng thi tin trnh. Hai th tc cbn SLEEPvWAKEUPthng c s dng phc v mc ch ny.

    SLEEPl mt li gi h thng c tc dng tm dng hot ng ca tin trnh (blocked)gi n v chn khi c mt tin trnh khc nh thc . Li gi h thng WAKEUP

    nhn mt tham s duy nht : tin trnh sc ti kch hot (t v trng thi ready). tng s dng SLEEP v WAKEUP nh sau : khi mt tin trnh cha iu kin vomin gng, n gi SLEEP t kha n khi c mt tin trnh khc gi WAKEUP giiphng cho n. Mt tin trnh gi WAKEUPkhi ra khi min gng nh thc mt tintrnh ang ch, to chi cho tin trnh ny vo min gng :

    int busy; // 1 nu min gng ang b chim, nu khng l 0int 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 tnhtrng mu thun truy xut trong mt vi tnh hung c bit nh sau : gi s tin trnh Avo min gng, v trc khi n ri khi min gng th tin trnh B c kch hot. Tintrnh B th vo min gng nhng n nhn thy A ang trong , do vy B tng gi trbin blockedv chun b gi SLEEP t kho. Tuy nhin trc khi B c th thc hinSLEEP, tin trnh A li c ti kch hot v ra khi min gng. Khi ra khi min gng Anhn thy c mt tin trnh ang ch(blocked=1) nn gi WAKEUPv gim gi tr cablocked. Khi tn hiu WAKEUPs lc mt do tin trnh B cha tht s ng nhntn hiu nh thc !Khi tin trnh B c tip tc x l, n mi goi SLEEPv t kh vnhvin !

    Vn ghi nhn c l tnh trng li ny xy ra do vic kim tra t cch vo min gngv vic gi SLEEP hay WAKEUP l nhng hnh ng tch bi, c th b ngt na chng

  • 8/3/2019 He Dieu Hanh 134

    55/153

    trong qu trnh x l, do c khi tn hiu WAKEUP gi n mt tin trnh cha b khas lc mt.

    trnh nhng tnh hung tng t, hiu hnh cung cp nhng cchng b hada 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 semaphores l mt bin c cc thuctnh sau:

    Mt gi tr nguyn dng e(s)

    Mt hng if(s) lu danh sch cc tin trnh ang b kha (ch) trn semaphores

    Ch c hai thao tc c nh ngha trn semaphore

    Down(s): gim gi tr ca semaphoresi 1 n v nu semaphore c tr e(s) > 0, v tiptc x l. Ngc li, nu e(s) 0, tin trnh phi chn khi e(s) >0.

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

    Hnh 3.10 Semaphore s

    Ci t: Gip l tin trnh thc hin thao tcDown(s) hay Up(s).

    Down(s):

    e(s) = e(s) - 1;

    if e(s) < 0 {

    status(P)=blocked;

    enter(P,f(s));

  • 8/3/2019 He Dieu Hanh 134

    56/153

    }

    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 tha n mt gi tr m cho semaphore, khi tr tuyt i ca

    semaphore cho bit s tin trnh ang chtrn semaphore.iu quan trng l cc thao tc ny cn thc hin mt cch khng b phn chia, khng bngt 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 sangtrng thi blocked.

    S dng: c th dng semaphore gii quyt vn truy xut c quyn hay t chcphi hp gia cc tin trnh.

    Tchc truy xutc quyn vi Semaphores: khi nimsemaphore cho php bo

    m nhiu tin trnh cng truy xut n min gng m khng c s mu thun truy xut.n tin trnh cng s dng mt semaphore s, e(s) c khi gn l 1. thc hin ng bha, 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

    Tchc ng b ha vi Semaphores: vi semaphore c thng b ha hot ngca hai tin trnh trong tnh hung mt tin trnh phi i mt tin trnh khc hon tt

  • 8/3/2019 He Dieu Hanh 134

    57/153

    thao tc no mi c th bt u hay tip tc x l. Hai tin trnh chia s mtsemaphore 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); // ch P1job2();

    }

    Hnh 3.12 Cu trc chng trnh trong gii php semaphore

    Tho lun : Nhc thc hin mt cc khng th phn chia, semaphore gii quytc vn tn hiu "nh thc" b tht lc. Tuy nhin, nu lp trnh vin v tnh t ccprimitive Down v Up sai v tr, th t trong chng trnh, th tin trnh c th b khavnh 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 chotin trnh khc vo min gng !

    V th vic s dng ng cch semaphore ng b ha ph thuc hon ton vo lptrnh 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) vBrinch & Hansen (1975) ngh mt cch cao hn c cung cp bi ngn ng lp

  • 8/3/2019 He Dieu Hanh 134

    58/153

    trnh , l monitor. Monitor l mt cu trc c bit bao gm cc th tc, cc bin v cutrc d liu c cc thuc tnh sau :

    Cc bin v cu trc d liu bn trong monitor ch c thc thao tc bi cc th tcnh ngha bn trong monitor. (encapsulation).

    Ti mt thi im, ch c mt tin trnh duy nht c hot ng bn trong mt monitor(mutualexclusive).

    Trong mt monitor, c thnh ngha cc bin iu kin v hai thao tc km theo lWait 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 hngi 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 dliu 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 chc vo monitor,ngoi ra, mi bin iu kin c cng gn vi mt hng if(c) v hai thao tc trn cnh ngha nh sau:

    Wait(c) :

  • 8/3/2019 He Dieu Hanh 134

    59/153

    status(P)=blocked;enter(P,f(c));

    Signal(c):

    if (f(c) != NULL){

    exit(Q,f(c)); //Q l tin trnh ch trn cstatusQ) = ready;enter(Q,ready-list);

    }

    S dng: Vi mi nhm ti nguyn cn chia s, c thnh ngha mt monitor trong c t tt c cc thao tc trn ti nguyn ny vi mt siu kin no .:

    monitor

    condition ;;

    procedure Action1();{

    }

    ....

    procedure Actionn();{

    }

    end monitor;

    Hnh 3.14 Cu trc mt monitor

    Cc tin trnh mun s dng ti nguyn chung ny ch c th thao tc thng qua cc thtc bn trong monitorc gn kt vi ti nguyn:

    while (TRUE) {

    Noncritical-section ();.Actioni; //critical-section();Noncritical-section ();

    }

    Hnh 3.15 Cu trc tin trnh Pitrong giiphp monitor

    Tho lun: Vi monitor, vic truy xut c quyn c bo m bi trnh bin dchm khng do lp trnh vin, do vy nguy cthc hin ng b ha sai gim rt nhiu.

  • 8/3/2019 He Dieu Hanh 134

    60/153

    Tuy nhin gii php monitori hi phi c mt ngn ng lp trnh nh ngha khi nimmonitor, v cc ngn ng nh th cha c nhiu.

    II.3. Trao i thng ip

    Tip cn: gii php ny da trn cstrao i thng ip vi hai primitive Send vReceive thc hin sng b ha:

    Send(destination, message): gi mt thng ip n mt tin trnh hay gi vo hpth.

    Receive(source,message): nhn mt thng ip th mt tin trnh hay t bt k mttin trnh no, tin trnh gi s chnu khng c thng ip no nhn.

    S dng: C nhiu cch thc thc hin vic truy xut c quyn bng cch traoi 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 nguyns gi mt thng ip n tin trnh kim sot v sau chuyn sang trng thi blockedcho n khi nhn c mt thng ip chp nhn cho truy xut t tin trnh kim sot tinguyn.Khi s dng xong ti nguyn , tin trnh gi mt thng ip khc n tin trnhkim sot bo kt thc truy xut. V phn tin trnh kim sot , khi nhn c thngip yu cu ti nguyn, n s chn khi ti nguyn sn sng cp pht th gi mtthng 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 truyxut c quyn trn cc my tnh c mt hoc nhiu b x l chia s mt vng nhchung. Nhng cc primitive khng hu dng trong cc h thng phn tn, khi m mi b

    x l shu mt b nhring bit v lin lc thng qua mng. Trong nhng h thngphn tn nh th, cch trao i thng ip t ra hu hiu v c dng gii quytbi ton ng b ha.

    III. Cc vn cin ca ng b ho

    III.1. Vn Ngi sn xut Ngi tiu th (Producer-Consumer)

  • 8/3/2019 He Dieu Hanh 134

    61/153

    Vn : hai tin trnh cng chia s mt bm c kch thc gii hn. Mt trong haitin trnh ng vai tr ngi sn xut to ra d liu v t d liu vo bm- v tintrnh kia ng vai tr ngi tiu th ly d liu t bm 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 nhsau :

    Tin trnh sn xut (producer) khng c ghi d liu vo bm y.(synchronisation)

    Tin trnh tiu th (consumer) khng c c d liu t bm angtrng.(synchronisation)

    Hai tin trnh sn xut v tiu th khng c thao tc trn bm cng lc . (exclusionmutuelle)

    Gii php:

    III.1.1. Semaphore

    S dng ba semaphore :full, m s ch c d liu trong bm; empty, m s chcn trng trong bm; v mutex, kim tra vic Producer v Consumer khng truy xutng thi n bm.

    BufferSize = 3; // s ch trong bm

    semaphore mutex = 1; // kim sot truy xut c quynsemaphore empty = BufferSize; // s ch trngsemaphore full = 0; // s chy

    Producer(){int item;while (TRUE) {

  • 8/3/2019 He Dieu Hanh 134

    62/153

    produce_item(&item); // to d liu midown(&empty); // gim s ch trngdown(&mutex); // bo hiu vo min gngenter_item(item); // t d liu vo bmup(&mutex); // ra khi min gngup(&full); // tng s chy

    }}

    Consumer(){int item;

    while (TRUE) {down(&full); // gim s chydown(&mutex); // bo hiu vo min gngremove_item(&item); // ly d liu t bmup(&mutex); // ra khi min gngup(&empty); // tng s ch trngconsume_item(item); // x l d liu

    }}

    III.1.2. Monitor

    nh ngha mt monitorProducerConsumervi hai th tc enterv remove thao tctrn bm. X l ca cc th tc ny ph thuc vo cc bin iu kinfullv empty.

    monitor ProducerConsumercondition full, empty;int count;

    procedure enter();{if(count == N)

    wait(full); // nu bm y, phi chenter_item(item); // t d liu vo bmcount ++; // tng s chyif(count == 1) // nu bm khng trng

    signal(empty); // th kch hot Consumer}procedure remove();{if(count == 0)

    wait(empty) // nu bm trng, ch

    remove_item(&item); // ly d liu t bmcount --; // gim s chyif(count == N-1) // nu bm khng y

    signal(full); // th kch hot Producer}count = 0;end monitor;

    Producer();{

  • 8/3/2019 He Dieu Hanh 134

    63/153

    while (TRUE){

    produce_item(&item);ProducerConsumer.enter;

    }}Consumer();{while (TRUE){

    ProducerConsumer.remove;consume_item(item);

    }}

    III.1.3. Trao i thngip

    Thng ip empty hm c mt ch trng trong bm. Tin trnh Consumer bt ucng vic bng cch gi 4 thng ip emptyng Producer. Tin trnh Producer to ra

    mt d liu mi v chn khi nhn c mt thng ip empty th gi ngc li choConsumer mt thng ip cha d liu . Tin trnh Consumer chnhn thng ip chad liu, v sau khi x l xong d liu ny, Consumer s li gi mt thng ip emptynProducer, ...

    BufferSize = 4;

    Producteur(){

    int item;message m; // thng ip

    while (TRUE) {produce_item(&item);receive(consumer,&m); // chthng ip emptycreate_message(&m, item); // to thng ip d liusend(consumer,&m); // gi d liu n Consumer

    }}

    Consumer(){

    int item;message m;

    for(0 to N) send(producer, &m); // gi N thng ip emptywhile (TRUE) {receive(producer, &m); // chthng ip d liu

    remove_item(&m,&item);// ly d liu t thng ipsend(producer, &m); // gi thng ip emptyconsumer_item(item); // x l d liu

    }}

  • 8/3/2019 He Dieu Hanh 134

    64/153

    III.2. M hnh Readers-Writers

    Vn : Nhiu tin trnh ng thi s dng mt csd liu. Cc tin trnh ch cnly ni dung ca csd liu c gi l cc tin trnh Reader, nhng mt s tin trnhkhc li c nhu cu sa i, cp nht d liu trong csd liu chung ny, chng c

    gi l cc tin trnh Writer. Cc quy nh ng b ha vic truy xut csd liu cntun th l :

    Khng cho php mt tin trnh Writer cp nht d liu trong csd liu khi cc tintrnh Reader khc ang truy xut ni dung csd liu.. (synchronisation)

    Ti mt thi im , ch cho php mt tin trnh Writerc sa i ni dung csdliu. (mutuelle exclusion).

    Gii php:

    III.2.1. SemaphoreS dng mt bin chung rc ghi nhs lng cc tin trnh Reader mun truy xut csd liu. Hai semaphore cng c s dng : mutex, kim sot s truy cp n rc;vdb, kim tra s truy xut c quyn n csd liu.

    semaphore mutex = 1; // Kim tra truy xut rcsemaphore db = 1; // Kim tra truy xut csd liuint rc; // S lng tin trnh ReaderReader(){while (TRUE) {

    down(&mutex); // ginh quyn truy xut rcrc = rc + 1; // thm mt tin trnh Readerif (rc == 1) // nu l Readeru tin thdown(&db); // cm Writer truy xut d liu

    up(&mutex); // chm dt truy xut rcread_database(); // c d liudown(&mutex); // ginh quyn truy xut rcrc = rc - 1; // bt mt tin trnh Readerif (rc == 0) // nu l Reader cui cng th

    up(&db); // cho php Writer truy xut dbup(&mutex); // chm dt truy xut rcuse_data_read();

    }}

    Writer(){while (TRUE) {

    create_data();down(&db); // ginh quyn truy xut dbwrite_database(); // cp nht d liuup(&db); // chm dt truy xut db

    }

  • 8/3/2019 He Dieu Hanh 134

    65/153

    }

    III.2.2. Monitor

    S dng mt bin chung rc ghi nhs lng cc tin trnh Reader mun truy xut csd liu. Mt tin trnh Writer phi chuyn sang trng thi chnu rc > 0. KHi ra khimin gng, tin trnh Reader cui cng snh thc tin trnh Writerang b kha.

    monitor ReaderWritercondition 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 Readerif (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); // Readerang c db,chbusy = true;}procedure FinishWrite(){busy = false;If (OKRead.Queue)signal(OKRead);

    elsesignal(OKWrite);

    }Reader(){

    while (TRUE){

    ReaderWriter.BeginRead();Read_database();ReaderWriter.FinishRead();

    }}

    Writer(){

    while (TRUE){

  • 8/3/2019 He Dieu Hanh 134

    66/153

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

    ReaderWriter.FinishWrite();}

    }

    III.2.3. Trao i thngip

    Cn c mt tin trnh serveriu khin vic truy xut csd liu.

    Cc tin trnh Writer v Reader gi cc thng ip yu cu truy xut n server v nhnt 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 trnhtrong tp hp u chi mt s kin m ch c mt tin trnh khc trong tp hp mi cth pht sinh c.

    Ni cch khc, mi tin trnh trong tp hp u chc cp pht mt ti nguyn hinang 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 sdng, 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 spaghettini ting. Mi nh trit hc cn dng 2 ci na c thn spaghetti . Nhng trn bn chc tng cng 5 ci na xen k vi 5 ci a. Mi nh trit hc s suy ngm cc trit lca mnh n khi cm thy i th dnh ln lt cm 1 ci na bn tri v 1 ci na bnphi n. Nu c 5 nh trit hc u cm ci na bn tri cng lc, th s khng c ai c

  • 8/3/2019 He Dieu Hanh 134

    67/153

    c ci na bn phi c th bt u thng thc spaghetti . y chnh l tnh trngtc 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 sc h thng cp pht ch cho mt tin trnh , khi tin trnh sdng xong ti nguyn ny, h thng mi thu hi v cp pht ti nguyn cho tin trnhkhc.

    S chim gi v yu cu thm ti nguyn (Wait for): Cc tin trnh tip tc chim gicc ti nguyn cp pht cho n trong khi chc cp pht thm mt s ti nguynmi.

    Khng thu hi ti nguyn t tin trnh ang gi chng (No preemption): Ti nguynkhng thc thu hi t tin trnh ang chim gi chng trc khi tin trnh ny sdng chng xong.

    Tn ti mt chu k trong th cp pht ti nguyn ( Circular wait): c t nht hai tintrnh chi ln nhau : tin trnh ny chc cp pht ti nguyn ang b tin trnh kiachim gi v ngc li.

    Khi c 4 iu kin ny, th tc nghn xy ra. Nu thiu mt trong 4 iu kin trn thkhng c tc nghn.

  • 8/3/2019 He Dieu Hanh 134

    68/153

    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 loint : cc tin trnh c biu din bng hnh trn, v mi ti nguyn c hin th bnghnh vung

    Hnh 3.19 th cp pht ti nguyn

    IV.4. Cc phng php xl 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 gixy ra tcnghn.

    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 gixy ra tcnghn.

    IV.5. Ngn chn tc nghn

    tc nghn khng xy ra, cn bo m ti thiu mt trong 4 iu kin cn khng xyra:

    Ti nguyn khng th chia s : nhn chung gn nh khng th trnh c iu kin nyv bn cht ti nguyn gn nh cnh. Tuy nhin i vi mt s ti nguyn v kt xut,ngi ta c th dng cc cch spooling bin i thnh ti nguyn c th chia s.

  • 8/3/2019 He Dieu Hanh 134

    69/153

    S chim gi v yu cu thm ti nguyn: phi bo m rng mi khi tin trnh yu cuthm mt ti nguyn th n khng chim gi cc ti nguyn khc. C th p t mt tronghai cch 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 thc lng chnh xc ti nguyncn s dng v c th nhu cu ph thuc vo qu trnh x l . Ngoi ra nu tin trnhchim gi sn cc ti nguyn cha cn s dng ngay th vic s dng ti nguyn s kmhiu qu.

    Khi tin trnh yu cu mt ti nguyn mi v b t chi, n phi gii phng cc tinguyn ang chim gi , sau li c cp pht trli cng ln vi ti nguyn mi.

    => phng php ny lm pht sinh cc kh khn trong vic bo v tnh ton vn d liuca h thng.

    Khng thu hi ti nguyn: cho php h thng c thu hi ti nguyn t cc tin trnh bkho v cp pht trli cho tin trnh khi n thot khi tnh trng b kha. Tuy nhin vimt 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 theomt 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 chimgi 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 lloi b tt c cc chi c th dn n tc nghn trong tng lai. Cn phi s dngnhng cch phc tp thc hin nh ny.

    Mt s khi nim cs

    Trng thi an ton : trng thi A l an ton nu h thng c th tha mn cc nhu cuti nguyn (cho n ti a) ca mi tin trnh theo mt th t no m vn ngn chnc tc nghn.

  • 8/3/2019 He Dieu Hanh 134

    70/153

    Mt chui cp pht an ton: mt th t ca cc tin trnh l an ton ivi tnh trng cp pht hin hnh nu vi mi tin trnh Pi nhu cu ti nguyn ca Pi cthc tha mn vi cc ti nguyn cn t do ca h thng, cng vi cc ti nguynang b chim gi bi cc tin trnh Pj khc, vi j

  • 8/3/2019 He Dieu Hanh 134

    71/153

    Need Allocation Available

    R1 R2 R3 R1 R2 R3 R1 R2 R3

    P1 2 2 2 1 0 0

    P2 0 0 1 6 1 2P3 1 0 3 2 1 1

    P4 4 2 0 0 0 2

    Need Allocation Available

    R1 R2 R3 R1 R2 R3 R1 R2 R3

    P1 2 2 2 1 0 0

    P2 0 0 0 0 0 0

    P3 1 0 3 2 1 1

    P4 4 2 0 0 0 2

    Need Allocation Available

    R1 R2 R3 R1 R2 R3 R1 R2 R3

    P1 0 0 0 0 0 0

    P2 0 0 0 0 0 0

    P3 1 0 3 2 1 1

    P4 4 2 0 0 0 2

    Need Allocation Available

    R1 R2 R3 R1 R2 R3 R1 R2 R3

    P1 0 0 0 0 0 0

    P2 0 0 0 0 0 0

    P3 0 0 0 0 0 0

    P4 4 2 0 0 0 2Need Allocation Available

    R1 R2 R3 R1 R2 R3 R1 R2 R3

    P1 0 0 0 0 0 0

    P2 0 0 0 0 0 0

  • 8/3/2019 He Dieu Hanh 134

    72/153

    P3 0 0 0 0 0 0

    P4 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 kth hin ca ti nguyn r.

    1.Nu k

  • 8/3/2019 He Dieu Hanh 134

    73/153

    Finish[i] = (Allocation[i] == 0);

    2. Tm i sao choFinish[i] == falseRequest[i]

  • 8/3/2019 He Dieu Hanh 134

    74/153

    Cc gii php ng b ho do lp trnh vin xy dng khng c a chung v phitiu th CPU trong thi gian chvo min gng ( busy waiting ), v kh mrng.Thay vo , lp trnh vin c th s dng cc cchng b do hiu hnh hay trnhbin dch trgip 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 cctin trnh chi v hn mt s kin ch c thc pht sinh bi mt tin trnh cngang chkhc 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