Nguyen Ly Cac He Dieu Hanh 1283 (1)

Embed Size (px)

Citation preview

  • 7/29/2019 Nguyen Ly Cac He Dieu Hanh 1283 (1)

    1/145

    Nguyn l cc h iu hnh

    1

  • 7/29/2019 Nguyen Ly Cac He Dieu Hanh 1283 (1)

    2/145

    CHNG 1: TNG QUAN V H IU HNH

    1.1 Khi nim h iu hnh

    H iu hnhl mt h thng cc chng trnh hot ng gia ngi s dng

    (user) v phn cng ca my tnh. Mc tiu ca h iu hnh l cung cp mt mitrng ngi s dng c th thi hnh cc chng trnh. N lm cho my tnh d s

    dng hn, thun li hn v hiu qu hn.

    H iu hnh l mt phn quan trng ca hu ht cc h thng my tnh. Mt h

    thng my tnh thng c chia lm bn phn chnh : phn cng, h iu hnh, cc

    chng trnh ng dng v ngi s dng.

    Phn cng bao gm CPU, b nh, cc thit b nhp xut, y l nhng tinguyn ca my tnh.

    Chng trnh ng dngnh cc chng trnh dch, h thng c s d liu, cc

    tr chi, v cc chng trnh thng mi. Cc chng trnh ny s dng ti nguyn

    ca my tnh gii quyt cc yu cu ca ngi s dng.

    H iu hnh iu khin v phi hp vic s dng phn cng cho nhng ng

    dng khc nhau ca nhiu ngi s dng khc nhau. H iu hnh cung cp mt mi

    trng m cc chng trnh c th lm vic hu hiu trn .

    Hnh 1.1 M hnh tru tng ca h thng my tnh

    H iu hnh c th c coi nh l b phn phi ti nguyn ca my tnh.

    Nhiu ti nguyn ca my tnh nh thi gian s dng CPU, vng b nh, vng lu tr

    2

  • 7/29/2019 Nguyen Ly Cac He Dieu Hanh 1283 (1)

    3/145

    tp tin, thit b nhp xut v.v c cc chng trnh yu cu gii quyt vn .

    H iu hnh hot ng nh mt b qun l cc ti nguyn v phn phi chng cho

    cc chng trnh v ngi s dng khi cn thit. Do c rt nhiu yu cu, h iu hnh

    phi gii quyt vn tranh chp v phi quyt nh cp pht ti nguyn cho nhng

    yu cu theo th t no hot ng ca my tnh l hiu qu nht. Mt h iu hnhcng c th c coi nh l mt chng trnh kim sot vic s dng my tnh, c

    bit l cc thit b nhp xut.

    Tuy nhin, nhn chung cha c nh ngha no l hon ho v h iu hnh. H

    iu hnh tn ti gii quyt cc vn s dng h thng my tnh. Mc tiu c bn

    ca n l gip cho vic thi hnh cc chng trnh d dng hn. Mc tiu th hai l h

    tr cho cc thao tc trn h thng my tnh hiu qu hn. Mc tiu ny c bit quan

    trng trong nhng h thng nhiu ngi dng v trong nhng h thng ln(phn cng

    + quy m s dng). Tuy nhin hai mc tiu ny cng c phn tng phn v vy l

    thuyt v h iu hnh tp trung vo vic ti u ha vic s dng ti nguyn ca my

    tnh.

    1.2 Lch s pht trin ca h iu hnh

    Th h 1 (1945 1955)

    Vo khong gia thp nin 1940, Howard Aiken Havard v John vonNeumann Princeton, thnh cng trong vic xy dng my tnh dng ng chn

    khng. Nhng my ny rt ln vi hn 10000 ng chn khng nhng chm hn nhiu

    so vi my r nht ngy nay.

    Mi my c mt nhm thc hin tt c t thit k, xy dng lp trnh, thao

    tc n qun l. Lp trnh bng ngn ng my tuyt i, thng l bng cch dng

    bng iu khin thc hin cc chc nng c bn. Ngn ng lp trnh cha c bit

    n v h iu hnh cng cha nghe n.

    Vo u thp nin 1950, phiu c l ra i v c th vit chng trnh trn

    phiu thay cho dng bng iu khin.

    Th h 2 (1955 1965)

    S ra i ca thit b bn dn vo gia thp nin 1950 lm thay i bc tranh

    tng th. My tnh tr nn tin cy hn. N c sn xut v cung cp cho cc

    3

  • 7/29/2019 Nguyen Ly Cac He Dieu Hanh 1283 (1)

    4/145

    khch hng. Ln u tin c s phn chia r rng gia ngi thit k, ngi xy dng,

    ngi vn hnh, ngi lp trnh, v ngi bo tr.

    thc hin mt cng vic (mt chng trnh hay mt tp hp cc chng

    trnh), lp trnh vin trc ht vit chng trnh trn giy (bng hp ng hay

    FORTRAN) sau c l trn phiu v cui cng a phiu vo my. Sau khi thchin xong n s xut kt qu ra my in.

    H thng x l theo lra i, n lu cc yu cu cn thc hin ln bng t, v

    h thng s c v thi hnh ln lt. Sau , n s ghi kt qu ln bng t xut v cui

    cng ngi s dng s em bng t xut i in.

    H thng x l theo l hot ng di s iu khin ca mt chng trnh c

    bit l tin thn ca h iu hnh sau ny. Ngn ng lp trnh s dng trong giai onny ch yu l FORTRAN v hp ng.

    Th h 3 (1965 1980)

    Trong giai on ny, my tnh c s dng rng ri trong khoa hc cng nh

    trong thng mi. My IBM 360 l my tnh u tin s dng mch tch hp (IC). T

    kch thc v gi c ca cc h thng my gim ng k v my tnh cng ph bin

    hn. Cc thit b ngoi vi dnh cho my xut hin ngy cng nhiu v thao tc iu

    khin bt u phc tp.

    H iu hnh ra i nhm iu phi, kim sot hot ng v gii quyt cc yu

    cu tranh chp thit b. Chng trnh h iu hnh di c triu dng hp ng v do

    hng ngn lp trnh vin thc hin.

    Sau , h iu hnh ra i khi nim a chng. CPU khng phi ch thc

    hin cc thao tc nhp xut. B nh c chia lm nhiu phn, mi phn c mt cng

    vic (job) khc nhau, khi mt cng vic ch thc hin nhp xut CPU s x l cccng vic cn li. Tuy nhin khi c nhiu cng vic cng xut hin trong b nh, vn

    l phi c mt c ch bo v trnh cc cng vic nh hng n nhau. H iu hnh

    cng ci t thuc tnh spool.

    Giai on ny cng nh du s ra i ca h iu hnh chia x thi gian nh

    CTSS ca MIT. ng thi cc h iu hnh ln ra i nh MULTICS, UNIX v h

    thng cc my mini cng xut hin nh DEC PDP-1.

    Th h 4 (1980 - nay)

    4

  • 7/29/2019 Nguyen Ly Cac He Dieu Hanh 1283 (1)

    5/145

    Giai on ny nh du s ra i ca my tnh c nhn, c bit l h thng

    IBM PC vi h iu hnh MS-DOS v Windows sau ny. Bn cnh l s pht trin

    mnh ca cc h iu hnh ta Unix trn nhiu h my khc nhau nh Linux. Ngoi

    ra, t u thp nin 90 cng nh du s pht trin mnh m ca h iu hnh mng

    v h iu hnh phn tn.

    1.3. Phn loi h thng

    1.3.1 H thng x l theo l

    B gim st thng trc c thit k gim st vic thc hin dy cc cng

    vic mt cch t ng, chng trnh ny lun lun thng tr trong b nh chnh.

    H iu hnh theo lthc hin cc cng vic ln lt theo nhng ch th nh

    trc.

    1.3.2 H thng x l theo l a chng

    a chng(multiprogram) gia tng khai thc CPU bng cch t chc cc cng

    vic sao cho CPU lun lun phi trong tnh trng lm vic .

    tng nh sau : h iu hnh lu gi mt phn ca cc cng vic ni lu

    tr trong b nh . CPU s ln lt thc hin cc phn cng vic ny. Khi ang thchin, nu c yu cu truy xut thit b th CPU khng ngh m thc hin tip cng vic

    th hai

    Vi h a chng h iu hnh ra quyt nh cho ngi s dng v vy, h

    iu hnh a chngrt tinh vi. H phi x l cc vn lp lch cho cng vic, lp

    lch cho b nh v cho c CPU na.

    1.3.3 H thng chia x thi gian

    H thng chia x thi gian l mt m rng logic ca h a chng. H thng

    ny cn c gi l h thng a nhim (multitasking). Nhiu cng vic cng c

    thc hin thng qua c ch chuyn i ca CPU nh h a chng nhng thi gian

    mi ln chuyn i din ra rt nhanh.

    H thng chia x c pht trin cung cp vic s dng bn trong ca mt

    my tnh c gi tr hn. H iu hnh chia x thi gian dng lp lch CPU v a

    chng cung cp cho mi ngi s dng mt phn nh trong my tnh chia x. Mtchng trnh khi thi hnh c gi l mt tin trnh. Trong qu trnh thi hnh ca mt

    5

  • 7/29/2019 Nguyen Ly Cac He Dieu Hanh 1283 (1)

    6/145

    tin trnh, n phi thc hin cc thao tc nhp xut v trong khong thi gian CPU

    s thi hnh mt tin trnh khc. H iu hnh chia x cho php nhiu ngi s dng

    chia x my tnh mt cch ng b do thi gian chuyn i nhanh nn h c cm gic

    l cc tin trnh ang c thi hnh cng lc.

    H iu hnh chia x phc tp hn h iu hnh a chng. N phi c ccchc nng : qun tr v bo v b nh, s dng b nh o. N cng cung cp h thng

    tp tin truy xut on-line

    H iu hnh chia x l kiu ca cc h iu hnh hin i ngy nay.

    1.3.4 H thng song song

    Ngoi cc h thng ch c mt b x l cn c cc h thng c nhiu b x l

    cng chia x h thng ng truyn d liu, ng h, b nh v cc thit b ngoi vi.

    Cc b x l ny lin lc bn trong vi nhau .

    Vi s gia tng s lng b x l, cng vic c thc hin nhanh chng hn.

    H thng vi my nhiu b x l s ti u hn h thng c nhiu my c mt b x l

    v cc b x l chia x cc thit b ngoi vi, h thng lu tr, ngun v rt thun

    tin cho nhiu chng trnh cng lm vic trn cng mt tp hp d liu.

    Mt l do na l tin cy. Cc chc nng c x l trn nhiu b x l v shng hc ca mt b x l s khng nh hng n ton b h thng.

    H thng a x l thng thng s dng cch a x l i xng, trong cch

    ny mi b x l chy vi mt bn sao ca h iu hnh, nhng bn sao ny lin lc

    vi nhau khi cn thit. Mt s h thng s dng a x l bt i xng, trong mi b

    x l c giao mt cng vic ring bit.. Mt b x l chnh kim sot ton b h

    thng, cc b x l khc thc hin theo lnh ca b x l chnh hoc theo nhng ch

    th c nh ngha trc. M hnh ny theo dng quan h ch t. B x l chnh slp lch cho cc b x l khc.

    Mt v d v h thng x l i xng l version Encore ca UNIX cho my tnh

    Multimax. H thng ny c hng t b x l. u im ca n l nhiu tin trnh c th

    thc hin cng lc . Mt h thng a x l cho php nhiu cng vic v ti nguyn

    c chia x t ng trong nhng b x l khc nhau.

    H thng a x l khng ng b thng xut hin trong nhng h thng ln,

    trong hu ht thi gian hot ng u dnh cho x l nhp xut.

    6

  • 7/29/2019 Nguyen Ly Cac He Dieu Hanh 1283 (1)

    7/145

    1.3.5 H thng phn tn

    H thng ny cng tng t nh h thng chia x thi gian nhng cc b x l

    khng chia x b nh v ng h, thay vo mi b x l c b nh cc b ring.

    Cc b x l thng tin vi nhau thng qua cc ng truyn thng nh nhng bus tc

    cao hay ng dy in thoi.

    Cc b x l trong h phn tn thng khc nhau v kch thc v chc nng.

    N c th bao gm my vi tnh, trm lm vic, my mini, v nhng h thng my ln.

    Cc nguyn nhn phi xy dng h thng phn tn l:

    Chia x ti nguyn : h thng phn tn cung cp mt c ch chia x tp tin

    v tr xa, x l thng tin trong mt c s d liu phn tn, in n ti mt v tr xa, s

    dng nhng thit b xa h thc hin cc thao tc.

    Tng tc tnh ton : Mt thao tc tnh ton c chia lm nhiu phn nh

    cng thc hin mt lc. H thng phn tn cho php phn chia vic tnh ton trn

    nhiu v tr khc nhau tnh ton song song.

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

    tip tc lm vic.

    Thng tin lin lc vi nhau :C nhiu lc , chng trnh cn chuyn i d

    liu t v tr ny sang v tr khc. V d trong h thng Windows, thng c s chia x

    v chuyn d liu gia cc ca s. Khi cc v tr c ni kt vi nhau trong mt h

    thng mng, vic trao i d liu din ra rt d. Ngi s dng c th chuyn tp tin

    hay cc E_mail cho nhau t cng v tr hay nhng v tr khc.

    1.3.6 H thng x l thi gian thc

    H thng x l thi gian thcc s dng khi c nhng i hi kht khe vthi gian trn cc thao tc ca b x l hoc dng d liu.

    Mt h iu hnh x l thi gian thc phi c nh ngha tt, thi gian x l

    nhanh. H thng phi cho kt qu chnh xc trong khong thi gian b thc p nhanh

    nht. C hai h thng x l thi gian thc l h thng thi gian thc cng v h thng

    thi gian thc mm..

    7

  • 7/29/2019 Nguyen Ly Cac He Dieu Hanh 1283 (1)

    8/145

    H thng thi gian thc cng l cng vic c hon tt ng lc. Lc d

    liu thng c lu trong b nh ngn hn hay trong ROM. Vic x l theo thi gian

    thc s xung t vi tt c h thng lit k trn.

    Dng th hai l h thng thi gian thc mm, mi cng vic c mt u tin

    ring v s c thi hnh theo u tin . C mt s lnh vc p dng hu hiuphng php ny l multimedia hay thc ti o.

    1.4 Cc thnh phn ca h iu hnh

    a) Qun l tin trnh

    Mt tin trnh l mt chng trnh ang c thi hnh. Mt tin trnh phi s

    dng ti nguyn nh thi gian s dng CPU, b nh, tp tin, cc thit b nhp xut

    hon tt cng vic ca n. Cc ti nguyn ny c cung cp khi tin trnh c to

    hay trong qu trnh thi hnh.

    Mt tin trnh l hot ng (active) hon ton-ngc li vi mt tp tin trn a

    l th ng (passive)-vi mt b m chng trnh cho bit lnh k tip c thi

    hnh.Vic thi hnh c thc hin theo c ch tun t , CPU s thi hnh t lnh u

    n lnh cui.

    Mt tin trnh c coi l mt n v lm vic ca h thng. Mt h thng cth c nhiu tin trnh cng lc , trong mt s tin trnh l ca h iu hnh, mt s

    tin trnh l ca ngi s dng. cc tin trnh ny c th din ra ng thi.

    Vai tr ca h iu hnh trong vic qun l tin trnh l :

    - To v hy cc tin trnh ca ngi s dng v ca h thng.

    - Tm dng v thc hin tip mt tin trnh.

    - Cung cp cc c ch ng b tin trnh.

    - Cung cp cc c ch giao tip gia cc tin trnh.

    - Cung cp c ch kim sot deadlock

    b)Qun l b nh chnh :

    Trong h thng my tnh hin i, b nh chnh l trung tm ca cc thao tc,x l. Bnh chnh c th xem nh mt mng kiu byte hay kiu word. Mi phn t

    8

  • 7/29/2019 Nguyen Ly Cac He Dieu Hanh 1283 (1)

    9/145

    u c a ch. l ni lu d liu c CPU truy xut mt cch nhanh chng so vi

    cc thit b nhp/xut. CPU c nhng ch th t b nh chnh. Cc thit b nhp/xut

    ci t c ch DMA cng c v ghi d liu trong b nh chnh. Thng thng b nh

    chnh cha cc thit b m CPU c th nh v trc tip. V d CPU truy xut d liu

    t a, nhng d liu ny c chuyn vo b nh qua li gi h thng nhp/xut.Mt chng trnh mun thi hnh trc ht phi c nh x thnh a ch tuyt

    i v np vo b nh chnh.Khi chng trnh thi hnh, h thng truy xut cc ch th

    v d liu ca chng trnh trong b nh chnh. Ngay c khi tin trnh kt thc , d

    liu vn cn trong b nh cho n khi mt tin trnh khc c ghi chng ln.

    H iu hnh c nhng vai tr nh sau trong vic qun l b nh chnh :

    - Lu gi thng tin v cc v tr trong b nh c s dng v tin trnh noang s dng.

    - Quyt nh tin trnh no c np vo b nh chnh, khi b nh c th

    dng c.

    - Cp pht v thu hi b nh khi cn thit.

    c) Qun l b nh ph :

    B nh chnh qu nh c th lu gi mi d liu v chng trnh, ngoi ra

    d liu s mt khi khng cn c cung cp nng lng. H thng my tnh ngy nay

    cung cp h thng lu tr ph. a s cc my tnh u dng a lu tr c chng

    trnh v d liu. Hu nh tt c chng trnh : chng trnh dch, hp ng, th tc,

    trnh son tho, nh dng... u c lu tr trn a cho ti khi n c thc hin,

    np vo trong b nh chnh v cng s dng a cha d liu v kt qu x l. Vai

    tr ca h iu hnh trong vic qun l a :

    - Qun l vng trng trn a.

    - nh v lu tr.

    - Lp lch cho a.

    d) Qun l h thng vo/ ra :

    9

  • 7/29/2019 Nguyen Ly Cac He Dieu Hanh 1283 (1)

    10/145

    Mt trong nhng mc tiu ca h iu hnh l che du nhng c th ca cc

    thit b phn cng i vi ngi s dng thay vo l mt lp thn thin hn, ngi

    s dng d thao tc hn. Mt h thng vo/ra bao gm :

    - Thnh phn qun l b nh cha vng m (buffering), lu tr (caching) v

    spooling (vng cha).

    - Giao tip iu khin thit b (device drivers) tng qut.

    - B iu khin cho cc thit b xc nh.

    Ch c b iu khin cho cc thit b xc nh mi hiu n cu trc c th ca

    thit b m n m t.

    e) Qun l h thng tp tin :

    My tnh c th lu tr thng tin trong nhiu dng thit b vt l khc nhau :

    bng t, a t, a quang, ... Mi dng c nhng c th ring v mt t chc vt l.

    Mi thit b c mt b kim sot nh b iu khin a (disk driver) v c nhng tnh

    cht ring. Nhng tnh cht ny l tc , kh nng lu tr, tc truyn d liu v

    cch truy xut.

    cho vic s dng h thng my tnh thun tin, h iu hnh cung cp mtci nhn logic ng nht v h thng lu tr thng tin. H iu hnh nh ngha mt

    n v lu tr logic l tp tin. H iu hnh to mt nh x t tp tin n vng thng

    tin trn a v truy xut nhng tp tin ny thng qua thit b lu tr.

    Mt tp tin l mt tp hp nhng thng tin do ngi to ra n xc nh. Thng

    thng mt tp tin i din cho mt chng trnh v d liu. D liu ca tp tin c th

    l s, l k t, hay k s.

    Vai tr ca h iu hnh trong vic qun l tp tin :

    - To v xo mt tp tin.

    - To v xo mt th mc.

    - H tr cc thao tc trn tp tin v th mc.

    - nh x tp tin trn h thng lu tr ph.

    - Sao lu d phng cc tp tin trn cc thit b lu tr.

    10

  • 7/29/2019 Nguyen Ly Cac He Dieu Hanh 1283 (1)

    11/145

    f) H thng bo v :

    Trong mt h thng nhiu ngi s dng v cho php nhiu tin trnh din ra

    ng thi, cc tin trnh phi c bo v i vi nhng hot ng khc.Do , h

    thng cung cp c ch m bo rng tp tin, b nh, CPU, v nhng ti nguyn

    khc ch c truy xut bi nhng tin trnh c quyn. V d, b nh m bo rngtin trnh ch c thi hnh trong phm vi a ch ca n. B thi gian m bo rng

    khng c tin trnh no c chim CPU. Cui cng cc thit b ngoi vi cng c bo

    v.

    H thng bo v l mt c ch kim sot qu trnh truy xut ca chng trnh,

    tin trnh, hoc ngi s dng vi ti nguyn ca h thng. C ch ny cng cung cp

    cch thc m t li mc kim sot.

    H thng bo v cng lm tng an ton khi kim tra li trong giao tip gia

    nhng h thng nh bn trong.

    g) H thng thng dch lnh :

    Mt trong nhng phn quan trng ca chng trnh h thng trong mt h iu

    hnh l h thng thng dch lnh, l giao tip gia ngi s dng v h iu hnh.

    Mt s h iu hnh t c ch dng lnh bn trong ht nhn, s khc nh MS-DOS

    v UNIX th xem h iu hnh nh l mt chng trnh t bit, c thi hnh khi cc

    cng vic bt u hoc khi ngi s dng login ln u tin.

    Cc lnh a vo h iu hnh thng qua b iu khin lnh. Trong cc h

    thng chia x thi gian mt chng trnh c th c v thng dch cc lnh iu khin

    c thc hin mt cch t ng. Chng trnh ny thng c gi l b thng dch

    iu khin card, c ch dng lnh hoc Shell. Chc nng ca n rt n gin l ly

    lnh k tip v thi hnh.

    Mi h iu hnh s c nhng giao tip khc nhau, dng n gin theo c ch

    dng lnh, dng thn thin vi ngi s dng nh giao din ca Macintosh c cc biu

    tng, ca s thao tc dng chut.

    Cc lnh c quan h vi vic to v qun l cc tin trnh, kim sot nhp xut,

    qun l b lu tr ph, qun l b nh chnh, truy xut h thng tp tin v c ch bo

    v.

    1.5 Cu trc h thng

    11

  • 7/29/2019 Nguyen Ly Cac He Dieu Hanh 1283 (1)

    12/145

    a) Cu trc n gin

    Thng thng h iu hnh bt u l mt h thng nh, n gin v c gii

    hn.

    HH l mt tp hp cc th tc, c th gi ln nhau. Cu trc ti thiu phnchia cc th tc trong h thng thnh 3 cp :

    Cc th tc chnh: gi n mt th tc ca HH, hay cn gi l li gi h thng

    Cc th tc dch v: x l nhng li gi h thng

    Cc th tc tin ch h tr cc th tc dch v x l cc li gi h thng

    Nhc im:

    Khng c s che du d liu, mi th tc c th gi n tt c cc th tc khc.

    Chng trnh ng dng c th truy xut cc th tc cp thp tc ng n c phn

    cng do vy HH kh kim sot v bo v h thng.

    Cc mc phn chia th tc khng r rng

    MS-DOS l mt h iu hnh c cu trc n gin, n cung cp nhng chc

    nng cn thit nht trong mt khng gian nh nht do s gii hn ca phn cng mn chy trn v khng chia thnh nhng n th r rt.

    Hnh 1.2 Cu trc ca MS-DOS

    12

  • 7/29/2019 Nguyen Ly Cac He Dieu Hanh 1283 (1)

    13/145

    Mc d MS-DOS c cu trc nhng gia giao din v chc nng khng c s

    phn chia r rt. Cc chng trnh ng dng c th truy xut trc tip cc th tc nhp

    xut c bn v ghi trc tip ln mn hnh hay b iu khin a.

    b) Cu trc phn lp

    Bng cch s dng k thut topdown, nhng chc nng v c tnh ca h

    thng c chia lm nhiu thnh phn nh. Che du thng tin, khng cho chng trnh

    ca ngi s dng c th ci t nhng hm truy xut cp thp , thay vo l nhng

    lp giao tip bn trong.

    H iu hnh c chia thnh nhiu lp. Lp di cng l phn cng, lp trn

    cng l giao tip vi ngi s dng. Lp h iu hnh c ci t thnh nhng i

    tng tru tng. Thng thng mt lp ca h iu hnh bao gm mt s cu trc dliu v cc hm c th c gi bi lp trn v bn thn n gi nhng chc nng ca

    lp bn di.

    u im l tnh module. Cc lp c chn da trn c s lp trn s dng

    chc nng v cc dch v ch ca lp di n. Tip cn ny n gin ha vic g ri

    v kim tra h thng. Lp u tin c th c g ri m khng c bt c s quan tm

    no cho lp cn li ca h thng. Bi v theo nh ngha, n ch s dng phn cng c

    bn ci t cc chc nng ca n. Mt khi lp u tin c g ri, chc nng sali ca n c th c m ng trong khi lp th 2 c g ri, Nu mt li

    c tm thy trong khi g ri cho mt lp xc nh, li phi c nm trn lp v

    cc lp bn di c g ri ri. Do , thit k v ci t h thng c n gin

    ha khi h thng c phn chia thnh nhiu lp.

    Mi lp c ci t ch vi cc thao tc c cung cp bi cc lp bn di.

    Mt lp khng cn bit cc thao tc c ci t nh th no; n ch cn bit cc thao

    tc lm g. Do , mi lp che giu s tn ti ca cu trc d liu, thao tc v phncng t cc lp cp cao hn.

    Kh khn chnh ca tip cn phn lp lin quan ti vic nh ngha cn thn cc

    lp v mt lp ch c th s dng cc lp bn di n. Th d, trnh iu khin thit b

    cho khng gian a c dng bi cc gii thut b nh o phi nm ti cp thp hn

    trnh iu khin thit b ca cc th tc qun l b nh v qun l b nh yu cu kh

    nng s dng khng gian a.

    13

  • 7/29/2019 Nguyen Ly Cac He Dieu Hanh 1283 (1)

    14/145

    Cc yu cu c th khng tht s r rng. Thng th cc trnh iu khin lu

    tr d phng nm trn b nh thi CPU v trnh iu khin cn phi ch nhp/xut v

    CPU c th c nh thi li trong thi gian ny. Tuy nhin, trn h thng ln, b

    nh thi c th c nhiu thng tin hn v tt c qu trnh ang hot ng hn l c th

    t va trong b nh. Do , thng tin ny c th cn c hon v vo v ra b nh,yu cu th tc trnh iu khin lu tr d phng nm bn di b nh thi CPU.

    Vn cui cng vi cc ci t phn lp l chng c khuynh hng t hiu

    qu hn cc loi khc. Th d, khi chng trnh ngi dng thc thi thao tc

    nhp/xut, n thc thi mt li gi h thng. Li gi h thng ny c by (trapped)

    ti lp nhp/xut, n yu cu tng qun l b nh, sau gi tng nh thi CPU, sau

    c truyn ti phn cng. Ti mi lp, cc tham s c th c hiu chnh, d

    liu c th c truyn,Mi tng thm chi ph cho li gi h thng; kt qu thc s

    l li gi h thng mt thi gian lu hn khi chng thc hin trn h thng khng phn

    tng.

    Cu trc lp ny ln u tin c thit k v p dng cho h iu hnh

    THE (Technische Hogeschool Eindhoven). H thng ny c chia thnh su lp

    nh hnh sau:

    Hnh 1.3 Cu trc ca h iu hnh THE

    Cc v d khc nh cu trc lp ca h iu hnh VENUS v OS/2

    c) My o

    Cc my o l nhng bn sao o chnh xc cc c tnh phn cng ca my tnh

    thc s v cho php mt h iu hnh khc hot ng trn nh trn phn cng thc

    s. Phn nhn h thng thc hin gim st my o chu trch nhim giao tip vi phn

    cng v cho php kh nng a chng bng cch cung cp nhiu my o cho cc lpbn trn.

    14

  • 7/29/2019 Nguyen Ly Cac He Dieu Hanh 1283 (1)

    15/145

    Bng cch s dng lp lch cho CPU v k thut b nh o, mt h iu hnh

    c th to nhiu tin trnh phc o, mi ci s thc hin trn mt b x l v b nh

    ring. Nhng tin trnh ny c nhng c im ring nh li gi h thng v h thng

    tp tin khng c cung cp phn cng trc tip.

    Ti nguyn ca h thng c chia x to nhng my o. Lp lch CPU chiax CPU cho cc ngi s dng. Spooling v h thng tp tin c chia thnh nhng

    card c o v my in o. Mt terminal cung cp cc chc nng to cc thao tc mn

    hnh o.

    Vn phc tp nht ca my o l h thng a. Gi s h thng ch c ba b

    iu khin a nhng c ti by my o. Nh vy khng th gn cho mi my o mt

    b iu khin a v gii php l xy dng h thng a o.

    Mc d khi nim my o rt hu ch nhng kh ci t. My o phi thc hin

    hai dng: dng gim st (monitor) v dng ngi s dng. Ngoi ra my o cn phi

    gii quyt cc vn v vn chuyn d liu v thi gian.

    Hnh 1.4 So snh gia my thc v my o

    d) Vi nhn (Microkernels)

    Khi h iu hnh UNIX c m rng, nhn tr nn ln v kh qun l. Vo

    gia nhng nm 1980, cc nh nghin cu ti i hc Carnegie Mellon pht trin mt

    h iu hnh c gi l Match m module ha nhn dng tip cn vi nhn (micro

    kernel). Phng php ny nh kin trc ca h iu hnh bng xa tt c thnh phn

    15

  • 7/29/2019 Nguyen Ly Cac He Dieu Hanh 1283 (1)

    16/145

    khng quan trng t nhn v ci chng nh cc chng trnh cp ngi dng v h

    thng. Kt qu ny lm cho nhn nh hn. C rt t s nht tr lin quan n vic quyt

    nh dch v no nn li trong nhn v dch v no nn c ci t trong khng

    gian ngi dng. Tuy nhin, thng th cc vi nhn in hnh cung cp qu trnh v

    qun l b nh ti thiu ngoi phng tin giao tip.Chc nng chnh ca vi nhn l cung cp tin nghi giao tip gia chng trnh

    khch hng v cc dch v khc m chng ang chy trong khng gian ngi dng.

    Giao tip c cung cp bng truyn thng ip. Th d, nu chng trnh khch hng

    mun truy xut mt tp tin, n phi giao tip vi trnh phc v tp tin (file server).

    Chng trnh ngi dng v dch v khng bao gi giao tip trc tip. ng

    hn l chng giao tip gin tip bng cch truyn thng ip vi vi nhn.

    Thun li ca tip cn vi nhn l d dng m rng h iu hnh. Tt c dch v

    mi c thm ti khng gian ngi dng v do khng yu cu phi hiu chnh

    nhn. Kt qu l h iu hnh d dng hn chuyn i t thit k phn cng ny

    sang thit k phn cng khc. Vi nhn cng cung cp kh nng an ton v tin cy hn

    v hu ht cc dch v ang chy nh ngi dng hn l nhn- cc qu trnh. Nu mt

    dch v b li, phn cn li ca h iu hnh vn khng b nh hng.

    Mt s h iu hnh hin i dng tip cn vi nhn. Tru64 UNIX (DigitalUNIX trc y) cung cp giao din UNIX ti ngi dng, nhng n c ci t vi

    nhn Mach. Nhn Mach nh x cc li gi h thng vo cc thng ip ti cc dch v

    cp ngi dng tng ng. H iu hnh Apple MacOS Server c da trn c s

    nhn Mach.

    QNX l h iu hnh thi thc cng da trn c s thit k vi nhn. Vi nhn

    QNX cung cp cc dch v cho vic truyn thng ip v nh thi qu trnh. N cng

    qun l giao tip mng cp thp v cc ngt phn cng. Tt c dch v khc trongQNX c cung cp bi cc qu trnh chun chy bn ngoi nhn trong ch ngi

    dng.

    Windows NT dng mt cu trc tng hp. Windows NT c thit k chy

    cc ng dng khc nhau, gm Win32 (ng dng thun Windows), OS/2, v POSIX

    (Portable Operating System Interface for uniX). N cung cp mt server chy trong

    khng gian ngi dng cho mi loi ng dng. Cc chng trnh khch hng cho mi

    loi ng dng chy trong khng gian ngi dng. Nhn iu phi vic truyn thngip gia cc ng dng khch hng v server ng dng.

    16

  • 7/29/2019 Nguyen Ly Cac He Dieu Hanh 1283 (1)

    17/145

    Khuynh hng ca cc h iu hnh hin i l chuyn dn cc on m ca h

    thng ln nhng lp cao hn v b dn cc chc nng trong ht nhn, ch cn li mt

    ht nhn ti thiu. Cch tip cn l ci t hu ht nhng chc nng ca h iu hnh

    trong cc x l ca ngi s dng. yu cu mt dch v, nh c mt khi t tp

    tin, mt x l ca ngi s dng (cn c gi l tin trnh client) s gi nhng yucu cho mt x l ca b phn dch v (cn c gi l tin trnh server). Sau ,

    n s thc hin v gi kt qu tr li.

    Trong m hnh ny, chc nng ca ht nhn ch l kim sot qu trnh thng tin

    gia client v server. Bng cch chia h iu hnh thnh nhng phn nh, mi phn

    ch kim sot mt mt ca h thng nh cc dch v v tp tin, tin trnh, terminal, b

    nh, mi phn s gn hn v d qun l hn. Hn na, tt c server thc hin nh

    nhng tin trnh mc ngi dng (user-mode) khng phi mc ht nhn

    (kernel-mode), nn n khng truy xut trc tip phn cng. Do , nu server tp tin

    b li, cc dch v v tp tin c th b hng nhng n thng khng gy nh hng n

    ton b h thng.

    17

  • 7/29/2019 Nguyen Ly Cac He Dieu Hanh 1283 (1)

    18/145

    Hnh 1.5 M hnh Client-Server trong h thng phn tn

    Mt u im khc ca m hnh client-server l n c th tng thch d dng

    vi m hnh h thng phn tn. Nu mt client giao tip vi mt server bng cch gi

    nhng thng ip, h khng bit l khi no thng ip ang c x l cc b ti

    my hay c gi vo mng n server trn mt my t xa. Khi client quan tm n,

    mt yu cu c gi i v mt tr li p ng din ra nh nhau.

    1.6 Cc tnh cht c bn ca h iu hnh

    a) Tin cy

    Mi hot ng, mi thng bo ca HH u phi chun xc, tuyt i. ch khi

    no bit chc chn l ng th HH mi cung cp thng tin cho ngi s dng.

    m bo c yu cu ny, phn thit b k thut phi c nhng phng tin h trkim tra tnh ng n ca d liu trong cc php lu tr v x l. Trong cc trng

    18

  • 7/29/2019 Nguyen Ly Cac He Dieu Hanh 1283 (1)

    19/145

    hp cn li HH thng bo li v ngng x l trao quyn quyt nh cho ngi vn

    hnh hoc ngi s dng.

    b) An ton

    H thng pah t chc sao cho chng trnh v d liu khng b xo hoc bthay i ngoi mun trong mi trng hp v mi ch hot ng. iu ny c

    bit quan trng khi h thng l a nhim. Cc ti nguyn khc nhau i hi nhng yu

    cu khc nhau trong vic m bo an ton.

    c) Hiu qu

    Cc ti nguyn ca h thng phi c khai thc trit sao chon gay c iu

    kin ti nguyn hn ch vn c th gii quyt nhng yu cu phc tp. Mt kha cnh

    quan trng ca m bo hiu qu l duy tr ng b trong ton b h thng, khng

    cc thit b tc chm tr hon hot ng ca ton b h thng.

    d) Tng qut theo thi gian

    HH phi c tnh k tha, ng thi c kh nng thch nghi vi nhng thay i

    cso th cso trong tng lai. Tnh tha k l rt quan trng ngay c vi cc h iu hnh

    th h mi. i vi vic nng cp, tnh k tha l bt buc. Cc thao tc, thng bo l

    khng c thay i, hoc nu c th khng ng k v phi c hng dn c thkhi chuyn t phin bn ny sang phin bn khc, bng cc phng tin nhn bit ca

    h thng. m bo tnh k tha s duy tr v pht trin i ng ngi s dng-mt

    nhn t quan trng HH c th tn ti. Ngoi ra ngi s dng cng rt quan tm,

    liu nhng kinh nghim v kin thc ca mnh v HH hin ti cn c s dng bao

    lu na. Kh nng thch nghi vi nhng thay i i hi HH phi c thit k theo

    mt s nguyn tc nht nh.

    e) Thun tin

    H thng phi d dng s dng, c nhiu mc hiu qu khc nhau tu theo kin

    thc v kinh nghim ngi dng. H thng tr gip phong ph ngi s dng c

    th t o to ngay trong qu trnh khai thc.

    Trong mt chng mc no , cc tnh cht trn mu thun ln nhau. Mi HH

    c mt gii php trung ho, u tin hp l tnh cht ny hay tnh cht khc.

    1.7 Nguyn l xy dng chng trnh HH

    19

  • 7/29/2019 Nguyen Ly Cac He Dieu Hanh 1283 (1)

    20/145

    a) Module

    - HH phi c xy dng t cc module c lp nhng c kh nng lin kt

    thnh mt h thng c th thu gn hoc m rng tu .

    - Cc module ng cp quan h vi nhau thng qua d liu vo v ra.

    - Tn ti quan h phn cp khi cc lien kt cc module to thnh nhng module

    c kh nng gii qut nhng vn phc tp hn.

    b) Nguyn tc tng i trong nh v

    Cc modul chng trnh c vit theo i ch tng i k t u b nh. Khi

    thc hin chng mi c nh v ti vng b nh c th. Nguyn tc ny cho php h

    thng s dng b nh mt cch linh hot v h iu hnh khng b ph thuc vo cuhnh b nh c th.

    c) Nguyn tc Macroproccessor

    Theo nguyn tc ny khi c nhim v c th h thng s xy dng cc phiu

    yu cu, lit k cc bc phi thc hin v trn c s xy dng chng trnh tng

    ng, sau thc hin chng trnh ni trn. Mi h iu hnh u phi xy dng

    nguyn l ny trong i thoi gia ngi v my trn ngn ng vn hnh. D nhin su trong vic phn tch v xy dng chng trnh l khc nhau nhng h thng khc

    nhau. Chnh nguyn tc ny lm cho qu trnh i thoi c linh hot m khng

    cn ti mt chng trnh dch phc tp.

    d) Nguyn tc khi to trong ci t

    Nguyn tc Macroproccessor c th p dng khng nhng vi tng nhim v

    m cn vi ton b HH hoc cc thnh phn ca n. Ngi s dng c cung cp

    cc b chng trnh ci t. Chng trnh ci t s to phin bn lm vic thch hpvi cc tham s k thut hin c, loi b nhng modul khng cn thit c mt phin

    bn ti u c v cu trc ln phng thc hot ng

    e) Nguyn tc lp chc nng

    Mi cng vic bao gi cng c nhiu cch thc hin khc nhau vi nhng t

    hp modul khc nhau. Nguyn tc ny trc ht m bo an ton ca h thng cao:

    vn c th khai thc h thng bnh thng ngay c khi thiu hoc hng nhiu thnhphn h thng. Ngoi ra, vi nguyn tc ny ngi s dng s thoi mi hn khi giao

    20

  • 7/29/2019 Nguyen Ly Cac He Dieu Hanh 1283 (1)

    21/145

    tip vi h thng: vi mt cng vic, ai nh hoc thch phng tin no th s dng

    phng tin . Nh vy ngi s dng khai thc c c nhng hiu ng ph ca cc

    modul chng trnh. i khi trong h thng tn ti nhiu modul khc nhau cng gii

    quyt mt vn , chng hn c nhiu chng tnh dch cho mt ngn ng thut ton

    no . S a dng cho php ngi s dng chn gii thut ti u i vi bi tonca mnh.

    f) Nguyn tc gi tr chun

    Mt modun, cu lnhc th c nhiu tham s. Vic nh ht cc tham s: s

    lng, ngha, quy cchl v cng phc tp v cu lnh hoc chng trnh tr nn

    cng cch mt cch khng cn thit. Li thot ra khi tnh trng l chun b sn b

    gi tr cc tham s ng vi trng hp thng gp nht. Nu trong cu lnh hay li gi

    modul thiu tham s no th h thng s b sung bng cc gi t quy c trc.Nguyn tc ny th hin rt r trong cc h thng ci t.

    g) Nguyn tc bo v nhiu mc

    m bo an ton h thng v an ton d liu, chng trnh v d liu phi

    c bo v bng nhiu khoa nhiu mc. V d i vi file, c th bo v mc c

    i t hoc tng th mc hay tng file ring bit, bo v thng xuyn hay tng ch

    m fileVic bo v nhiu mc lm gim ng k cc li khng c . Nguyntc ny c nghin cu p dng rt hiu qu vi thng tin ghi trong RAM.

    1.8 Cc hnh thi giao tip

    a) Hnh thi dng lnh

    Ngi s dng giao tip vi h iu hnh qua cc dng lnh, mi lnh c cc

    tham s tng ng

    -u im:

    D xy dng v gim cng sc cho ngi xy dng h thng.

    Ngi s dng c th a tham s ca lnh mt cch chnh xc theo mong

    mun.

    - Nhc im:

    Tc a lnhvo chm, ngi s dng phi nh cc tham s.

    21

  • 7/29/2019 Nguyen Ly Cac He Dieu Hanh 1283 (1)

    22/145

    i vi cc thao tc vin khng c kinh nghim, th hnh thi ny gy cn tr

    n hiu qu lm vic.

    Hnh thi giao tip ny b cn tr bi hng ro ngn ng.

    b) Hnh thi thc n

    Ngi s dng giao tip vi h iu hnh thng qua cc thc n, cc thc n

    thng c dng tri xung(popup). Mi thc n con tng ng vi mt chc nng.

    Cc tham s c th c a vo thng qua giao tip vi ngi s dng.

    -u im:

    Hnh thi ny khng yu cu nh lnh

    Ngi s dng c th truy nhp vo thc n qua bn phm hoc qua chut

    - Nhc im:

    Hnh thi giao tip ny b cn tr bi hng ro ngn ng.

    i khi cc t trn thc n khng nu bt c chc nng ca n.

    c) Hnh thi ca s-biu tng

    Ngi s dng giao tip vi h iu hnh thng qua cc thanh cng c v cc

    biu tng. Mi biu tng tng ng vi mt chc nng. Cc tham s c th c

    a vo thng qua giao tip vi ngi s dmg.

    -u im:

    Hnh thi ny khng yu cu nh lnh

    Ngi s dng khng b ang ro ngn ng gy cn tr.

    - Nhc im:

    C th c rt nhiu biu tng do gy s nhp nhng v chc nng.

    Khng thun li khi thao tc bng bn phm.

    d) Hnh thi kt hp

    22

  • 7/29/2019 Nguyen Ly Cac He Dieu Hanh 1283 (1)

    23/145

    HH thng kt hp nhiu hnh thi giao tip to ra tnh thn thin vi

    ngi s dng. V d: vic kt hp thc n vi cc biu tng, hoc kt hp gia cc

    biu tng vi cc t gi .

    Hnh thi giao tip kt hp ny khc phc c cc nhc im ca cc hnh

    thi giao tip n l.

    23

  • 7/29/2019 Nguyen Ly Cac He Dieu Hanh 1283 (1)

    24/145

    CHNG 2 QUN L TIN TRNH

    2.1 Tin trnh

    2.1.1 Khi nim v tin trnh (Process) v m hnh a tin trnh

    (Multiprocess)

    Tin trnh l mt chng trnh ang x l, s hu mt con tr lnh, tp cc

    thanh ghi v cc bin. hon thnh cng vic ca mnh, mt tin trnh c th cn n

    mt s ti nguyn nh CPU, b nh chnh, cc tp tin v thit b nhp/xut.

    Cn phn bit hai khi nim chng trnh v tin trnh. Mt chng trnh l

    mt thc th th ng, cha ng cc ch th iu khin my tnh tin hnh mt tc

    v no ; khi cho thc hin cc ch th ny, chng trnh chuyn thnh tin trnh, lmt thc th hot ng, vi con tr lnh xc nh ch th k tip s thi hnh, km theo

    tp cc ti nguyn phc v cho hot ng ca tin trnh.

    h tr s a chng, my tnh phi c kh nng thc hin nhiu cng vic

    ng thi. Nhng vic iu khin nhiu hot ng song song cp phn cng l rt

    kh khn. V th cc nh thit k h iu hnh xut mt m hnhsong song ga lp

    bng cch chuyn i b x l qua li gia cc chng trnh duy tr hot ng ca

    nhiu chng trnh cng lc, iu ny to cm gic c nhiu hot ng c thc hin

    ng thi.

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

    n, nhng trong thc t, ch c mt b x l tht s c chuyn i qua li gia cc

    tin trnh. S chuyn i nhanh chng ny c gi l s a chng

    (multiprogramming) . H iu hnh chu trch nhim s dng mt thut ton iu phi

    quyt nh thi im cn dng hot ng ca tin trnh ang x l phc v mt

    24

  • 7/29/2019 Nguyen Ly Cac He Dieu Hanh 1283 (1)

    25/145

    tin trnh khc, v la chn tin trnh tip theo s c phc v. B phn thc hin

    chc nng ny ca h iu hnh c gi l b iu phi (scheduler).

    Nhu cu x l ng hnh

    C 2 ng lc chnh khin cho cc h iu hnh hin i thng h tr mitrng a nhim (multitask) trong chp nhn nhiu tc v thc hin ng thi trn

    cng mt my tnh :

    - Tng hiu sut s dng CPU

    Phn ln cc cng vic khi thi hnh u tri qua nhiu chu k x l (s dng

    CPU) v chu k nhp xut (s dng cc thit b nhp xut) xen k nh sau :

    CPU IO CPU IO CPUNu ch c 1 tin trnh duy nht trong h thng, th vo cc chu k IO ca cng

    vic, CPU s hon ton nhn ri. tng tng cng s lng cng vic trong h

    thng l tn dng CPU : nu cng vic 1 x l IO, th c th s dng CPU thc

    hin cng vic 2...

    CPU IO CPU IO CPU

    Cng vic 1

    CPU IO CPU IOCng vic 2

    Khi CPU, b nh v cc ti nguyn khc s c tn dng ti a, nng cao

    hiu sut s dng ti nguyn.

    - Tng tc x l

    Mt s bi ton c bn cht x l song song nu c xy dng thnh nhiu

    module hot ng ng thi th s tit kim c thi gian x l.

    V d : Xt bi ton tnh gi tr biu thc kq = a*b + c*d . Nu tin hnh tnh

    ng thi (a*b) v (c*d) th thi gian x l s ngn hn l thc hin tun t.

    Trong cc trng hp , cn c mt m hnh x l ng hnh thch hp. Trn

    my tnh c cu hnh nhiu CPU, h tr x l song song (multiprocessing) tht s,

    iu ny s gip tng hiu qu thi hnh ca ht thng ng k.

    2.1.2 Khi nim tiu trnh (Thread) v m hnh a tiu trnh (Multithread)

    25

  • 7/29/2019 Nguyen Ly Cac He Dieu Hanh 1283 (1)

    26/145

    Trong hu ht cc h iu hnh, mi tin trnh c mt khng gian a ch v ch

    c mt dng x l. Tuy nhin, c nhiu tnh hung ngi s dng mong mun c

    nhiu dng x l cng chia s mt khng gian a ch, v cc dng x l ny hot

    ng song song tng t nh cc tin trnh phn bit (ngoi tr vic chia s khng

    gian a ch).V d: Mt server qun l tp tin thnh thong phi t kha ch cc thao tc

    truy xut a hon tt.Nu server c nhiu dng x l, h thng c th x l cc yu

    cu mi trong khi mt dng x l b kho. Nh vy vic thc hin chng trnh s c

    hiu qu hn. iu ny khng th t c bng cch to hai tin trnh server ring

    bit v cn phi chia s cng mt vng m, do vy bt buc phi chia s khng gian

    a ch.

    Chnh v cc tnh hung tng t, ngi ta cn c mt c ch x l mi chophp c nhiu dng x l trong cng mt tin trnh.

    Ngy nay c nhiu h iu hnh cung cp mt c ch nh th v gi l tiu

    trnh(threads).

    Nguyn l chung :

    Mt tiu trnh l mt n v x l c bn trong h thng . Mi tiu trnh x l

    tun t on code ca n, s hu mt con tr lnh, tp cc thanh ghi v mt vng nh

    stack ring. Cc tiu trnh chia s CPU vi nhau ging nh cch chia s gia cc tin

    trnh: mt tiu trnh x l trong khi cc tiu trnh khc ch n lt. Mt tiu trnh

    cng c th to lp cc tin trnh con, v nhn cc trng thi khc nhau nh mt tin

    trnh tht s. Mt tin trnh c th s hu nhiu tiu trnh.

    Cc tin trnh to thnh nhng thc th c lp. Mi tin trnh c mt tp ti

    nguyn v mt mi trng ring (mt con tr lnh, mt Stack , cc thanh ghi v khng

    gian a ch ). Cc tin trnh hon ton c lp vi nhau, ch c th lin lc thng qua

    cc c ch thng tin gia cc tin trnh m h iu hnh cung cp. Ngc li, cc tiu

    trnh trong cng mt tin trnh li chia s mt khng gian a ch chung , iu ny c

    ngha l cc tiu trnh c th chia s cc bin ton cc ca tin trnh. Mt tiu trnh c

    th truy xut n c cc stack ca nhng tiu trnh khc trong cng tin trnh. Cu trc

    ny khng ngh mt c ch bo v no, v iu ny cng khng tht cn thit v cc

    tiu trnh trong cng mt tin trnh thuc v cng mt s hu ch to ra chng

    trong nh cho php chng hp tc vi nhau.

    26

  • 7/29/2019 Nguyen Ly Cac He Dieu Hanh 1283 (1)

    27/145

    Cc tiu trnh trong cng mt tiu trnh

    Phn b thng tin lu tr

    Cu trc m t tin trnh v tiu trnh

    2.1.3 Phn loi tin trnh

    - Tin trnh tun t:

    Hai hay nhiu tin trnh gi l tun t khi im kt thc ca tin trnh ny l s

    bt u ca tin trnh khc.

    - Tin trnh song song

    im bt u ca tin trnh ny nm gia im bt u v kt thc ca tin

    trnh khc.

    - Tin trnh c quan h thng tin

    Trao i thng tin qua mt vng nh c biu din nh mt hp th c th

    trao i thng tin qua .

    -Tin trnh c lp

    Hai hay nhiu tin trnh gi l c lp khi chng khng c quan h thng tin vi

    nhau, hot ng ca tin trnh ny khng nh hng n hot ng ca tin trnh khcv ngc li.

    27

  • 7/29/2019 Nguyen Ly Cac He Dieu Hanh 1283 (1)

    28/145

    -Tin trnh cha v tin trnh con

    Mt tin trnh c sinh ra t mt tin trnh khc th c gi l s phn cp

    ca tin trnh hay c gi l tin trnh cha v tin trnh con

    -Tin trnh ng mc

    Th hin cc tin trnh truy nhp ti nguyn dung chung theo nguyn tc ln

    lt.

    2.1.4. Cc trng thi ca tin trnh

    Trng thi ca tin trnh ti mt thi im c xc nh bi hot ng hin

    thi ca tin trnh ti thi im .

    Ti mt thi im, mt tin trnh c th nhn mt trong cc trng thi sau y :

    - Mi to : tin trnh ang c to lp.

    - Running : cc ch th ca tin trnh ang c x l.

    - Blocked : tin trnh ch c cp pht mt ti nguyn, hay ch mt

    s kin xy ra (hon thnh nhp xut hay nhn mt tn hiu) .

    - Ready : tin trnh ch c cp pht CPU x l.

    - Kt thc : tin trnh hon tt x l.

    Ti mt thi im, ch c mt tin trnh c th nhn trng thi runningtrn mt

    b x l bt k. Trong khi , nhiu tin trnh c th trng thi blockedhay ready.

    S cung chuyn i trng thi:

    Hnh 2.3

    2.1.5. Cu trc d liu khi qun l tin trnh

    Mi to Kt thc

    Ready Running

    Blocked

    28

  • 7/29/2019 Nguyen Ly Cac He Dieu Hanh 1283 (1)

    29/145

    H iu hnh qun l cc tin trnh trong h thng thng qua khi qun l tin

    trnh (process control block -PCB). PCB l mt vng nh lu tr cc thng tin m t

    cho tin trnh, vi cc thnh phn ch yu bao gm :

    - nh danh ca tin trnh (1) : gip phn bit cc tin trnh

    - Trng thi tin trnh (2): xc nh hot ng hin hnh ca tin trnh.

    - Ng cnh ca tin trnh (3): m t cc ti nguyn tin trnh ang trong qu

    trnh, hoc phc v cho hot ng hin ti, hoc lm c s phc hi hot ng

    cho tin trnh, bao gm cc thng tin v:

    Trng thi CPU: bao gm ni dung cc thanh ghi, quan trng nht l con tr

    lnh IP lu tr a ch cu lnh k tip tin trnh s x l. Cc thng tin ny cn c

    lu tr khi xy ra mt ngt, nhm c th cho php phc hi hot ng ca tin trnh

    ng nh trc khi b ngt.

    B x l: dng cho my c cu hnh nhiu CPU, xc nh s hiu CPU m tin

    trnh ang s dng.

    B nh chnh: danh sch cc khi nh c cp cho tin trnh.

    Ti nguyn s dng: danh sch cc ti mguyn h thng m tin trnh ang sdng.

    Ti nguyn to lp: danh sch cc ti nguyn c tin trnh to lp.

    -Thng tin giao tip (4): phn nh cc thng tin v quan h ca tin trnh vi

    cc tin trnh khc trong h thng :

    Tin trnh cha: tin trnh to lp tin trnh ny .

    Tin trnh con: cc tin trnh do tin trnh ny to lp .

    29

  • 7/29/2019 Nguyen Ly Cac He Dieu Hanh 1283 (1)

    30/145

    Hnh 2.4 Khi m t tin trnh

    u tin : gip b iu phi c thng tin la chn tin trnh c cp

    CPU.

    -Thng tin thng k (5): y l nhng thng tin thng k v hot ngca tin trnh, nh thi gian s dng CPU,thi gian ch. Cc thng tin ny

    c th c ch cho cng vic nh gi tnh hnh h thng v d on cc tnh

    hung tng lai.

    2.1.6. Cc thao tc trn tin trnh

    H iu hnh cung cp cc thao tc ch yu sau y trn mt tin trnh :

    -To lp tin trnh (create)

    -Kt thc tin trnh (destroy)

    -Tm dng tin trnh (suspend)

    -Ti kch hot tin trnh (resume)

    -Thay i u tin tin trnh

    a) To lp tin trnh

    30

  • 7/29/2019 Nguyen Ly Cac He Dieu Hanh 1283 (1)

    31/145

    Mt tin trnh c to lp khi:

    -Ngi s dng chy mt chng trnh.

    -H iu hnh thc hin mt s dch v.

    -Tin trnh cha sinh tin trnh con

    -Mt ngi truy nhp h thng.

    Trong qu trnh x l, mt tin trnh c th to lp nhiu tin trnh mi bng

    cch s dng mt li gi h thng tng ng. Tin trnh gi li gi h thng to

    tin trnh mi s c gi l tin trnh cha, tin trnh c to gi l tin trnh con.

    Mi tin trnh con n lt n li c th to cc tin trnh miqu trnh ny tip tc

    s to ra mt cy tin trnh. V d trong UNIX: li gi h thng l fork

    Hnh 2.5 Mt cy tin trnh trong h thng UNIX

    Cc cng vic h iu hnh cn thc hin khi to lp tin trnh bao gm :

    - nh danh cho tin trnh mi pht sinh

    -a tin trnh vo danh sch qun l ca h thng

    - Xc nh u tin cho tin trnh

    - To PCB cho tin trnh

    -Cp pht cc ti nguyn ban u cho tin trnh

    Khi mt tin trnh to lp mt tin trnh con, tin trnh con c th s c h

    iu hnh trc tip cp pht ti nguyn hoc c tin trnh cha cho tha hng mt

    s ti nguyn ban u.

    31

  • 7/29/2019 Nguyen Ly Cac He Dieu Hanh 1283 (1)

    32/145

    Khi mt tin trnh to tin trnh mi, tin trnh ban u c th x l theo mt

    trong hai kh nng sau :

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

    UNIX

    Tin trnh cha ch n khi mt tin trnh con no , hoc tt c cc tin trnh

    con kt thc x l. V d MSDOS

    Cc h iu hnh khc nhau c th chn la cc ci t khc nhau thc hin

    thao tc to lp mt tin trnh.

    b). Kt thc tin trnh

    Mt tin trnh kt thc khi:

    - Tin trnh hon tt cng vic.

    - Tin trnh kt thc khi vt qu thi hn

    - Tin trnh kt thc khi s dng qu ti nguyn quy nh

    - Tin trnh kt thc khi b nh khng .

    - Tin trnh vi phm mt s quy nh

    - Tin trnh mc mt s li v php ton

    - Thit b ngoi vi b li

    -Khi cc lnh b sai

    - Khi c quyn u tin

    - D liu sai

    - HH dng mt s tin trnh

    Mt tin trnh kt thc x l khi n hon tt ch th cui cng v s dng mt

    li gi h thng yu cu h iu hnh hy b n. i khi mt tin trnh c th kt

    thc x l ca mt tin trnh khc bng mt li gi h thng tng ng. Khi mt tin

    trnh kt thc, h iu hnh thc hin cc cng vic :

    32

  • 7/29/2019 Nguyen Ly Cac He Dieu Hanh 1283 (1)

    33/145

    -Thu hi cc ti nguyn h thng cp pht cho tin trnh

    -Hy tin trnh khi tt c cc danh sch qun l ca h thng

    - Hy b PCB ca tin trnh

    Hu ht cc h iu hnh khng cho php cc tin trnh con tip tc tn ti nu

    tin trnh cha kt thc. Trong nhng h thng nh th, h iu hnh s t ng pht

    sinh mt lot cc thao tc kt thc tin trnh con.

    2.1.7 Cp pht ti nguyn cho tin trnh

    Khi c nhiu ngi s dng ng thi lm vic trong h thng, h iu hnh

    cn phi cp pht cc ti nguyn theo yu cu cho mi ngi s dng. Do ti nguyn

    h thng thng rt gii hn v c khi khng th chia s, nn him khi tt c cc yucu ti nguyn ng thi u c tha mn. V th cn phi nghin cu mt phng

    php chia s mt s ti nguyn hu hn gia nhiu tin trnh ngi dng ng thi.

    H iu hnh qun l nhiu loi ti nguyn khc nhau (CPU, b nh chnh, cc thit b

    ngoi vi ), vi mi loi cn c mt c ch cp pht v cc chin lc cp pht hiu

    qa. Mi ti nguyn c biu din thng qua mt cu trc d liu, khc nhau v chi

    tit cho tng loi ti nguyn, nhng c bn cha ng cc thng tin sau :

    - nh danh ti nguyn

    - Trng thi ti nguyn : y l cc thng tin m t chi tit trng thi ti

    nguyn : phn no ca ti nguyn cp pht cho tin trnh, phn no cn c th s

    dng ?

    - Hng i trn mt ti nguyn : danh sch cc tin trnh ang ch c cp

    pht ti nguyn tng ng.

    - B cp pht: l on code m nhim vic cp pht mt ti nguyn c th.Mt s ti nguyn i hi cc gii thut c bit (nh CPU, b nh chnh, h thng tp

    tin), trong khi nhng ti nguyn khc (nh cc thit b nhp/xut) c th cn cc gii

    thut cp pht v gii phng tng qut hn.

    33

  • 7/29/2019 Nguyen Ly Cac He Dieu Hanh 1283 (1)

    34/145

    Hnh 2.6Khi qun l ti nguyn

    Cc mc tiu ca k thut cp pht :

    Bo m mt s lng hp l cc tin trnh truy xut ng thi n cc ti

    nguyn khng chia s c.

    Cp pht ti nguyn cho tin trnh c yu cu trong mt khong thi gian tr

    hon c th chp nhn c.

    Ti u ha s s dng ti nguyn.

    c th tha mn cc mc tiu k trn, cn phi gii quyt cc vn ny

    sinh khi c nhiu tin trnh ng thi yu cu mt ti nguyn khng th chia s.

    2.2. iu phi tin trnh

    Trong mi trng a chng, c th xy ra tnh hung nhiu tin trnh ng

    thi sn sng x l. Mc tiu ca cc h phn chia thi gian (time-sharing) l

    chuyn i CPU qua li gia cc tin trnh mt cch thng xuyn nhiu ngi s

    dng c th tng tc cng lc vi tng chng trnh trong qu trnh x l.

    thc hin c mc tiu ny, h iu hnh phi la chn tin trnh c x

    l tip theo. B iu phi s s dng mt gii thut iu phi thch hp thc hin

    nhim v ny. Mt thnh phn khc ca h iu hnh cng tim n trong cng tc iu

    phi l b phn phi (dispatcher). B phn phi s chu trch nhim chuyn i ng

    cnh v trao CPU cho tin trnh c chn bi b iu phi x l.

    2.2.1. Mc tiu iu phi

    B iu phi khng cung cp c ch, m a ra cc quyt nh. Cc h iu

    hnh xy dng nhiu chin lc khc nhau thc hin vic iu phi, nhng tuchung cn t c cc mc tiu sau :

    a) S cng bng ( Fairness) :

    Cc tin trnh chia s CPU mt cch cng bng, khng c tin trnh no phi

    ch i v hn c cp pht CPU

    34

  • 7/29/2019 Nguyen Ly Cac He Dieu Hanh 1283 (1)

    35/145

    b) Tnh hiu qa (Efficiency) :H thng phi tn dng c CPU nhiu nht c

    th.Trong h thng thc, n nn nm trong khong t 40% (cho h thng c np ti

    nh) ti 90% (cho h thng c np ti nng).

    c) Thi gian p ng hp l (Response time) :

    Cc tiu ho thi gian hi p cho cc tng tc ca ngi s

    dng

    d) Thi gian lu li trong h thng ( Turnaround Time) :

    Cc tiu ha thi gian hon tt cc tc v x l heo l.

    e) Thng lng ti a (Throughput ) :

    Cc i ha s cng vic c x l trong mt n v thi gian.

    Tuy nhin thng khng th tha mn tt c cc mc tiu k trn v bn thn

    chng c s mu thun vi nhau m ch c th dung ha chng mc no .

    2.2.2 iu phi khng c quyn v iu phi c quyn

    (preemptive/nopreemptive)

    Thut ton iu phi cn xem xt v quyt nh thi im chuyn i CPU giacc tin trnh. H iu hnh c th thc hin c ch iu phi theo nguyn l c

    quyn hoc khng c quyn.

    iu phi c quyn :Nguyn l iu phi c quyn cho php mt tin trnh

    khi nhn c CPU s c quyn c chim CPU n khi hon tt x l hoc t nguyn

    gii phng CPU. Khi quyt nh iu phi CPU s xy ra trong cc tnh hung sau:

    - Khi tin trnh chuyn t trng thi ang x l(running) sang trng thi b kha

    blocked ( v d ch mt thao tc nhp xut hay ch mt tin trnh con kt thc).

    - Khi tin trnh kt thc.

    Cc gii thut c quyn thng n gin v d ci t. Tuy nhin chng

    thng khng thch hp vi cc h thng tng qut nhiu ngi dng, v nu cho php

    mt tin trnh c quyn x l bao lu ty , c ngha l tin trnh ny c th gi CPU

    mt thi gian khng xc nh, c th ngn cn nhng tin trnh cn li trong h thng

    c mt c hi x l.

    35

  • 7/29/2019 Nguyen Ly Cac He Dieu Hanh 1283 (1)

    36/145

    iu phi khng c quyn : Ngc vi nguyn l c quyn, iu phi theo

    nguyn l khng c quyn cho php tm dng hot ng ca mt tin trnh ang sn

    sng x l. Khi mt tin trnh nhn c CPU, n vn c s dng CPU n khi

    hon tt hoc t nguyn gii phng CPU, nhng mt tin trnh khc c u tin c

    th dnh quyn s dng CPU ca tin trnh ban u. Nh vy l tin trnh c th btm dng hot ng bt c lc no m khng c bo trc, tin trnh khc x l.

    Cc quyt nh iu phi xy ra khi :

    - Khi tin trnh chuyn t trng thi ang x l (running) sang trng thi b

    kha blocked ( v d ch mt thao tc nhp xut hay ch mt tin trnh con kt

    thc).

    - Khi tin trnh chuyn t trng thi ang x l (running) sang trng thi ready (

    v d xy ra mt ngt).

    - Khi tin trnh chuyn t trng thi ch (blocked) sang trng thi ready ( v d

    mt thao tc nhp/xut hon tt).

    - Khi tin trnh kt thc.

    Cc thut ton iu phi theo nguyn tc khng c quyn ngn cn c tnh

    trng mt tin trnh c chim CPU, nhng vic tm dng mt tin trnh c th dn

    n cc mu thun trong truy xut, i hi phi s dng mt phng php ng b ha

    thch hp gii quyt.

    Trong cc h thng s dng nguyn l iu phi c quyn c th xy ra tnh

    trng cc tc v cn thi gian x l ngn phi ch tc v x l vi thi gian rt di

    hon tt! Nguyn l iu phi c quyn thng ch thch hp vi cc h x l theo l.

    i vi cc h thng tng tc(time sharing), cc h thi gian thc (real

    time),cn phi s dng nguyn l iu phi khng c quyn cc tin trnh quantrng c c hi hi p kp thi. Tuy nhin thc hin iu phi theo nguyn l khng

    c quyn i hi nhng c ch phc tp trong vic phn nh u tin, v pht sinh

    thm chi ph khi chuyn i CPU qua li gia cc tin trnh.

    2.2.3. Cc danh sch s dng trong qu trnh iu phi.

    H iu hnh s dng hai loi danh sch thc hin iu phi cc tin trnh l

    danh sch sn sng (ready list) v danh sch ch i(waiting list).

    36

  • 7/29/2019 Nguyen Ly Cac He Dieu Hanh 1283 (1)

    37/145

    Khi mt tin trnh bt u i vo h thng, n c chn vo danh sch cc tc

    v (job list). Danh sch ny bao gm tt c cc tin trnh ca h thng. Nhng ch cc

    tin trnh ang thng tr trong b nh chnh v trng thi sn sng tip nhn CPU

    hot ng mi c a vo danh sch sn sng.

    B iu phi s chn mt tin trnh trong danh sch sn sng v cp CPU chotin trnh . Tin trnh c cp CPU s thc hin x l, v c th chuyn sang trng

    thi ch khi xy ra cc s kin nh i mt thao tc nhp/xut hon tt, yu cu ti

    nguyn cha c tha mn, c yu cu tm dng ...Khi tin trnh s c

    chuyn sang mt danh sch ch i.

    Hnh 2.7Cc danh sch iu phi

    H iu hnh ch s dng mt danh sch sn sng cho ton h thng, nhng mi

    mt ti nguyn ( thit b ngoi vi ) c mt danh sch ch i ring bao gm cc tin

    trnh ang ch c cp pht ti nguyn .

    Qu trnh x l ca mt tin trnh tri qua nhng chu k chuyn i qua li gia

    danh sch sn sng v danh sch ch i. S di y m t s iu phi cc tin

    trnh da trn cc danh sch ca h thng.

    Thot u tin trnh mi c t trong danh sch cc tin trnh sn sng (ready

    list), n s i trong danh sch ny cho n khi c chn cp pht CPU v bt u

    x l. Sau c th xy ra mt trong cc tnh hung sau :

    Tin trnh pht sinh mt yu cu mt ti nguyn m h thng cha th p ng,

    khi tin trnh s c chuyn sang danh sch cc tin trnh ang ch ti nguyn

    tng ng.

    37

  • 7/29/2019 Nguyen Ly Cac He Dieu Hanh 1283 (1)

    38/145

    Tin trnh c th b bt buc tm dng x l do mt ngt xy ra, khi tin

    trnh c a tr li vo danh sch sn sng ch c cp CPU cho lt tip theo.

    Hnh 2.8S chuyn i gia cc danh sch iu phi

    Trong trng hp u tin, tin trnh cui cng s chuyn t trng thi blocked

    sang trng thi ready v li c a tr vo danh sch sn sng. Tin trnh lp li chu

    k ny cho n khi hon tt tc v th c h thng hy b khi mi danh sch iu

    phi.

    2.2.4. Cc chin lc iu phi

    a). Chin lc FIFO

    Nguyn tc : CPU c cp pht cho tin trnh u tin trong danh sch snsng c yu cu, l tin trnh c a vo h thng sm nht. y l thut ton iu

    phi theo nguyn tc c quyn. Mt khi CPU c cp pht cho tin trnh, CPU ch

    c tin trnh t nguyn gii phng khi kt thc x l hay khi c mt yu cu

    nhp/xut.

    Hnh 2.9iu phi FIFO

    V d :

    Tin trnh Thi im vo RL Thi gian x lP1 0 24P2 1 3P3 2 3

    Th t cp pht CPU cho cc tin trnh l :

    P1 P2 P3

    38

  • 7/29/2019 Nguyen Ly Cac He Dieu Hanh 1283 (1)

    39/145

    0 24 27 30

    thi gian ch i c x l l 0 i vi P1, (24 -1) vi P2 v (24+3-2) vi P3.

    Thi gian ch trung bnh l ( 0+23+25)/3 = 16 milisecondes.

    Thi gian ch trung bnh khng t cc tiu, v bin i ng k i vi cc gi

    tr v thi gian yu cu x l v th t khc nhau ca cc tin trnh trong danh sch

    sn sng. C th xy ra hin tng tch ly thi gian ch, khi cc tt c cc tin trnh

    (c th c yu cu thi gian ngn) phi ch i mt tin trnh c yu cu thi gian di

    kt thc x l.

    Gii thut ny c bit khng ph hp vi cc h phn chia thi gian, trong cc

    h ny, cn cho php mi tin trnh c cp pht CPU u n trong tng khong

    thi gian.

    b). Chin lc phn phi xoay vng (Round Robin)

    Nguyn tc : Danh sch sn sng c x l nh mt danh sch vng, b iu

    phi ln lt cp pht cho tng tin trnh trong danh sch mt khong thi gian ti a

    s dng CPU cho trc gi l quantum. Tin trnh n trc th c cp pht CPU

    trc. y l mt gii thut iu phi khng c quyn : khi mt tin trnh s dng

    CPU n ht thi gian quantum dnh cho n, h iu hnh thu hi CPU v cp cho

    tin trnh k tip trong danh sch. Nu tin trnh b kha hay kt thc trc khi sdng ht thi gian quantum, h iu hnh cng lp tc cp pht CPU cho tin trnh

    khc. Khi tin trnh tiu th ht thi gian CPU dnh cho n m cha hon tt, tin

    trnh c a tr li vo cui danh sch sn sng i c cp CPU trong lt k

    tip.

    V d :

    Hnh 2.10 iu phi Round Robin

    Tin trnh Thi im vo RL Thi gian x lP1 0 24P2 1 3

    P3 2 3

    39

  • 7/29/2019 Nguyen Ly Cac He Dieu Hanh 1283 (1)

    40/145

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

    l

    P1 P2 P3 P1 P1 P1 P1 P10 4 7 10 14 18 22 26 30

    Thi gian ch i trung bnh s l (0+6+3+5)/3 = 4.66 milisecondes.

    Nu c n tin trh trong danh sch sn sng v s dng quantum q, th mi tin

    trnh s c cp pht CPU 1/n trong tng khong thi gian q. Mi tin trnh s khng

    phi i qu (n-1)q n v thi gian trc khi nhn c CPU cho lt k tip.

    Vn ng quan tm i vi gii thut RR l di ca quantum. Nu thi

    lng quantum qu b s pht sinh qu nhiu s chuyn i gia cc tin trnh v

    khin cho vic s dng CPU km hiu qa. Nhng nu s dng quantum qu ln s

    lm tng thi gian hi p v gim kh nng tng tc ca h thng.

    c). iu phi vi u tin

    Nguyn tc : Mi tin trnh c gn cho mt u tin tng ng, tin trnh

    c u tin cao nht s c chn cp pht CPU u tin. Cc tin trnh c u

    tin bng nhau th tin trnh no n trc th s c cp trc. u tin c th

    c nh ngha ni ti hay nh vo cc yu t bn ngoi. u tin ni ti s dng

    cc i lng c th o lng tnh ton u tin ca tin trnh, v d cc gii hnthi gian, nhu cu b nh u tin cng c th c gn t bn ngoi da vo cc

    tiu chun do h iu hnh nh tm quan trng ca tin trnh, loi ngi s dng s

    hu tin trnh

    Gii thut iu phi vi u tin c th theo nguyn tc c quyn hay khng

    c quyn. Khi mt tin trnh c a vo danh sch cc tin trnh sn sng, u

    tin ca n c so snh vi u tin ca tin trnh hin hnh ang x l. Gii thut

    iu phi vi u tin v khng c quyn s thu hi CPU t tin trnh hin hnh cp pht cho tin trnh mi nu u tin ca tin trnh ny cao hn tin trnh hin

    hnh. Mt gii thut c quyn s ch n gin chn tin trnh mi vo danh sch sn

    sng, v tin trnh hin hnh vn tip tc x l ht thi gian dnh cho n.

    V d : ( u tin 1 > u tin 2> u tin 3)

    Tintrnh

    Thi im vo RL u tin Thi gian xl

    P1 0 3 24P2 1 1 3

    40

  • 7/29/2019 Nguyen Ly Cac He Dieu Hanh 1283 (1)

    41/145

    P3 2 2 3

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

    P1 P2 P30 24 27 30

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

    P1 P2 P3 P10 1 4 7 30

    Tho lun : Tnh trng i CPU (starvation) l mt vn chnh yu ca cc

    gii thut s dng u tin. Cc gii thut ny c th cc tin trnh c u tin

    thp ch i CPU v hn ! ngn cn cc tin trnh c u tin cao chim dng

    CPU v thi hn, b iu phi s gim dn u tin ca cc tin trnh ny sau mi

    ngt ng h. Nu u tin ca tin trnh ny gim xung thp hn tin trnh c u tin cao th nh, s xy ra s chuyn i quyn s dng CPU.Qu trnh ny gi l

    s lo ha (aging) tin trnh.

    d). Chin lc cng vic ngn nht trc (Shortest-job-first SJF)

    Nguyn tc : y l mt trng hp c bit ca gii thut iu phi vi u

    tin. Trong gii thut ny, u tin p c gn cho mi tin trnh l nghch o ca

    thi gian x l tm tin trnh yu cu :p = 1/t. Khi CPU c t do, n s c cp

    pht cho tin trnh yu cu t thi gian nht kt thc- tin trnh ngn nht. Gii thut

    ny cng c th c quyn hay khng c quyn. S chn la xy ra khi c mt tin

    trnh mi c a vo danh sch sn sng trong khi mt tin trnh khc ang x l.

    Tin trnh mi c th s hu mt yu cu thi gian s dng CPU cho ln tip theo

    (CPU-burst) ngn hn thi gian cn li m tin trnh hin hnh cn x l. Gii thut

    SJF khng c quyn s dng hot ng ca tin trnh hin hnh, trong khi gii thut

    c quyn s cho php tin trnh hin hnh tip tc x l. Nu hai tin trnh c cng

    thi gian s dng CPU, tin trnh n trc s c yu cu CPU trc.

    V d :

    Tin trnh Thi im vo RL Thi gian xl

    P1 0 6P2 1 8P3 2 4P4 3 2

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

    41

  • 7/29/2019 Nguyen Ly Cac He Dieu Hanh 1283 (1)

    42/145

    P1 P4 P3 P2

    0 6 8 12 20

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

    P1 P4 P1 P3 P2

    0 3 5 8 12 20

    Tho lun : Gii thut ny cho php t c thi gian ch trung bnh cc tiu.

    Kh khn thc s ca gii thut SJF l khng th bit c thi gian yu cu chu k

    CPU tip theo? Ch c th d on gi tr ny theo cch tip cn sau : gi tn l di

    ca thi gian x l ln th n, t n+1 l gi tr d on cho ln x l tip theo. Vi hy

    vng gi tr d on s gn ging vi cc gi tr trc , c th s dng cng thc:

    t n+1 = a tn + (1-a )t n

    Trong cng thc ny,tn cha ng thng tin gn nht ; t n cha ng cc thng

    tin qu kh c tch ly. Tham s a ( 0

  • 7/29/2019 Nguyen Ly Cac He Dieu Hanh 1283 (1)

    43/145

    Thng thng, mt tin trnh s c gn vnh vin vi mt danh sch cp u

    tin i khi n c a vo h thng. Cc tin trnh khng di chuyn gia cc danh

    sch. Cch t chc ny s lm gim chi ph iu phi, nhng li thiu linh ng v c

    th dn n tnh trng i CPU cho cc tin trnh thuc v nhng danh sch c u

    tin thp. Do vy c th xy dng gii thut iu phi nhiu cp u tin v xoay vng.Gii thut ny s chuyn dn mt tin trnh t danh sch c u tin cao xung danh

    sch c u tin thp hn sau mi ln s dng CPU. Cng vy, mt tin trnh ch

    qu lu trong cc danh sch c u tin thp cng c th c chuyn dn ln cc

    danh sch c u tin cao hn. Khi xy dng mt gii thut iu phi nhiu cp u

    tin v xoay vng cn quytnh cc tham s :

    S lng cc cp u tin

    Gii thut iu phi cho tng danh sch ng vi mt cp u tin.

    Phng php xc nh thi im di chuyn mt tin trnh ln danh sch c

    u tin cao hn.

    Phng php xc nh thi im di chuyn mt tin trnh ln danh sch c

    u tin thp hn.

    Phng php s dng xc nh mt tin trnh mi c a vo h thng s

    thuc danh sch ng vi tin no.

    Hnh 2.12iu phi Multilevel Feedback

    2.3. Thng tin lin lc gia cc tin trnh43

  • 7/29/2019 Nguyen Ly Cac He Dieu Hanh 1283 (1)

    44/145

    2.3.1. Nhu cu lin lc gia cc tin trnh

    Trong mi trng a chng, mt tin trnh khng n c trong h thng , m

    c th nh hng n cc tin trnh khc , hoc b cc tin trnh khc tc ng. Ni

    cch khc, cc tin trnh l nhng thc th c lp , nhng chng vn c nhu cu lin

    lc vi nhau :

    Chia s thng tin: nhiu tin trnh c th cng quan tm n nhng d liu no

    , do vy h iu hnh cn cung cp mt mi trng cho php s truy cp ng thi

    n cc d liu chung.

    Hp tc hon thnh tc v: i khi t c mt s x l nhanh chng,

    ngi ta phn chia mt tc v thnh cc cng vic nh c th tin hnh song song.

    Thng th cc cng vic nh ny cn hp tc vi nhau cng hon thnh tc v banu, v d d liu kt xut ca tin trnh ny li l d liu nhp cho tin trnh khc

    Trong cc trng hp , h iu hnh cn cung cp c ch cc tin trnh c th

    trao i thng tin vi nhau.

    2.3.2. Cc C Ch Thng Tin Lin lc

    a). Tn hiu (Signal)

    Tn hiu l mt c ch phn mm tng t nh cc ngt cng tc ng n cctin trnh. Mt tn hiu c s dng thng bo cho tin trnh v mt s kin no

    xy ra. C nhiu tn hiu c nh ngha, mi mt tn hiu c mt ngha tng ng

    vi mt s kin c trng.

    V d : Mt s tn hiu ca UNIX

    Tn hiu M tSIGINT Ngi dng nhn phm DEL ngt x l tin

    trnhSIGQUIT Yu cu thot x l

    SIGILL Tin trnh x l mt ch th bt hp l

    SIGKILL Yu cu kt thc mt tin trnh

    SIGFPT Li floating point xy ra ( chia cho 0)

    SIGPIPE Tin trnh ghi d liu vo pipe m khng c reader

    SIGSEGV Tin trnh truy xut n mt a ch bt hp l

    44

  • 7/29/2019 Nguyen Ly Cac He Dieu Hanh 1283 (1)

    45/145

    Tn hiu M tSIGCLD Tin trnh con kt thcSIGUSR1 Tn hiu 1 do ngi dng nh ngha

    SIGUSR2 Tn hiu 2 do ngi dng nh ngha

    Mi tin trnh s hu mt bng biu din cc tn hiu khc nhau. Vi mi tn

    hiu s c tng ng mt trnh x l tn hiu (signal handler) qui nh cc x l ca

    tin trnh khi nhn c tn hiu tng ng.

    Cc tn hiu c gi i bi :

    Phn cng (v d li do cc php tnh s hc)

    Ht nhn h iu hnh gi n mt tin trnh ( v d lu tin trnh khi c mtthit b nhp/xut t do).

    Mt tin trnh gi n mt tin trnh khc ( v d tin trnh cha yu cu mt tin

    trnh con kt thc)

    Ngi dng ( v d nhn phm Ctl-C ngt x l ca tin trnh)

    Khi mt tin trnh nhn mt tn hiu, n c th x s theo mt trong cc cch

    sau :

    Hnh2.13 Lin lc bng tn hiu

    B qua tn hiu

    X l tn hiu theo kiu mc nh

    Tip nhn tn hiu v x l theo cch c bit ca tin trnh.

    45

  • 7/29/2019 Nguyen Ly Cac He Dieu Hanh 1283 (1)

    46/145

    Lin lc bng tn hiu mang tnh cht khng ng b, ngha l mt tin trnh

    nhn tn hiu khng th xc nh trc thi im nhn tnh hiu. Hn na cc tin

    trnh khng th kim tra c s kin tng ng vi tn hiu c tht s xy ra ? Cui

    cng, cc tin trnh ch c th thng bo cho nhau v mt bin c no , m khng

    trao i d liu theo c ch ny c.b). Pipe

    Mt pipe l mt knh lin lc trc tip gia hai tin trnh : d liu xut ca tin

    trnh ny c chuyn n lm d liu nhp cho tin trnh kia di dng mt dng cc

    byte.

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

    vo pipe v tin trnh kia s c d liu t pipe. Th t d liu truyn qua pipe cbo ton theo nguyn tc FIFO. Mt pipe c kch thc gii hn (thng l 4096 k

    t)

    Hnh 2.14 Lin lc qua pipe

    Mt tin trnh ch c th s dng mt pipe do n to ra hay k tha t tin trnh

    cha. H iu hnh cung cp cc li gi h thng read/write cho cc tin trnh thc hin

    thao tc c/ghi d liu trong pipe. H iu hnh cng chu trch nhim ng b ha

    vic truy xut pipe trong cc tnh hung:

    Tin trnh c pipe s b kha nu pipe trng, n s phi i n khi pipe c d

    liu truy xut.

    Tin trnh ghi pipe s b kha nu pipe y, n s phi i n khi pipe c ch

    trng cha d liu.

    Lin lc bng pipe l mt c ch lin lc mt chiu (unidirectional), ngha l

    mt tin trnh kt ni vi mt pipe ch c th thc hin mt trong hai thao tc c hoc

    ghi, nhng khng th thc hin c hai. Mt s h iu hnh cho php thit lp hai pipe

    gia mt cp tin trnh to lin lc hai chiu. Trong nhng h thng , c nguy c

    xy ra tnh trng tc nghn (deadlock) : mt pipe b gii hn v kch thc, do vy nu

    c hai pipe ni kt hai tin trnh u y(hoc u trng) v c hai tin trnh u mun

    46

  • 7/29/2019 Nguyen Ly Cac He Dieu Hanh 1283 (1)

    47/145

    ghi (hay c) d liu vo pipe(mi tin trnh ghi d liu vo mt pipe), chng s cng

    b kha v ch ln nhau mi mi !

    C ch ny cho php truyn d liu vi cch thc khng cu trc.

    Ngoi ra, mt gii hn ca hnh thc lin lc ny l ch cho php kt ni haitin trnh c quan h cha-con, v trn cng mt my tnh.

    c). Vng nh chia s

    Cch tip cn ca c ch ny l cho nhiu tin trnh cng truy xut n mt

    vng nh chung gi l vng nh chia s (shared memory).Khng c bt k hnh vi

    truyn d liu no cn phi thc hin y, d liu ch n gin c t vo mt

    vng nh m nhiu tin trnh c th cng truy cp c.

    Vi phng thc ny, cc tin trnh chia s mt vng nh vt l thng qua

    trung gian khng gian a ch ca chng. Mt vng nh chia s tn ti c lp vi cc

    tin trnh, v khi mt tin trnh mun truy xut n vng nh ny, tin trnh phi kt

    gn vng nh chung vo khng gian a ch ring ca tng tin trnh, v thao tc

    trn nh mt vng nh ring ca mnh.

    Hnh 2.15 Lin lc qua vng nh chia s

    y l phng php nhanh nht trao i d liu gia cc tin trnh. Nhng

    phng thc ny cng lm pht sinh cc kh khn trong vic bo m s ton vn d

    liu (coherence) , v d : lm sao bit c d liu m mt tin trnh truy xut l d

    liu mi nht m tin trnh khc ghi ? Lm th no ngn cn hai tin trnh cng

    ng thighi d liu vo vng nh chung ?R rng vng nh chia s cn c bo

    v bng nhng c ch ng b ha thch hp..

    Mt khuyt im ca phng php lin lc ny l khng th p dng hiu qu

    trong cc h phn tn , trao i thng tin gia cc my tnh khc nhau.

    d). Trao i thng ip (Message)

    47

  • 7/29/2019 Nguyen Ly Cac He Dieu Hanh 1283 (1)

    48/145

    H iu hnh cn cung cp mt c ch lin lc gia cc tin trnh khng thng

    qua vic chia s mt ti nguyn chung , m thng qua vic gi thng ip. h tr

    c ch lin lc bng thng ip, h iu hnh cung cp cc hm IPC chun

    (Interprocess communication), c bn l hai hm:

    Send(message) : gi mt thng ip

    Receive(message) : nhn mt thng ip

    Nu hai tin trnh P v Q mun lin lc vi nhau, cn phi thit lp mt mi

    lin kt gia hai tin trnh, sau P, Q s dng cc hm IPC thch hp trao i

    thng ip, cui cng khi s lin lc chm dt mi lin kt gia hai tin trnh s b

    hy. C nhiu cch thc thc hin s lin kt gia hai tin trnh v ci t cc theo

    tc send /receive tng ng : lin lc trc tip hay gin tip, lin lc ng b hockhng ng b , kch thc thng ip l c nh hay khng Nu cc tin trnh lin

    lc theo kiu lin kt tng minh, cc hm Send v Receive s c ci t vi tham

    s :

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

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

    n v truyn thng tin trong c ch trao i thng ip l mt thng ip, do cc tin trnh c th trao i d liu dng c cu trc.

    nh dng thng ip

    Loi thng ip

    a ch ch

    a ch ngun

    di thng ip

    Cc thng tin iu kin

    Ni dung thng ip

    e) Sockets

    48

  • 7/29/2019 Nguyen Ly Cac He Dieu Hanh 1283 (1)

    49/145

    Gii thiu: Mt socket l mt thit b truyn thng hai chiu tng t nh tp

    tin, chng ta c th c hay ghi ln n, tuy nhin mi socket l mt thnh phn trong

    mt mi ni no gia cc my trn mng my tnh v cc thao tc c/ghi chnh l

    s trao i d liu gia cc ng dng trn nhiu my khc nhau.

    S dng socket c th m phng hai phng thc lin lc trong thc t : lin lcth tn (socket ng vai tr bu cc) v lin lc in thoi (socket ng vai tr tng

    i)

    Cc thuc tnh ca socket:

    Domaine: nh ngha dng thc a ch v cc nghi thc s dng. C nhiu

    domaines, v d UNIX, INTERNET, XEROX_NS, ...

    Type: nh ngha cc c im lin lc:

    S tin cy

    S bo ton th t d liu

    Lp li d liu

    Ch ni kt

    Bo ton gii hn thng ip

    Kh nng gi thng ip khn

    thc hin lin lc bng socket, cn tin hnh cc thao tc :

    To lp hay m mt socket

    Gn kt mt socket vi mt a ch

    Lin lc : c hai kiu lin lc ty thuc vo ch ni kt:

    Lin lc trong ch khng lin kt: lin lc theo hnh thc hp th:

    hai tin trnh lin lc vi nhau khng kt ni trc tip

    mi thng ip phi km theo a ch ngi nhn.

    Hnh thc lin lc ny c c im c :

    49

  • 7/29/2019 Nguyen Ly Cac He Dieu Hanh 1283 (1)

    50/145

    ngi gi khng chc chn thng ip ca hc c gi n ngi nhn,

    mt thng ip c th c gi nhiu ln,

    hai thng ip gi theo mt th t no c th n tay ngi nhn theo

    mt th t khc.

    Mt tin trnh sau khi m mt socket c th s dng n lin lc vi nhiu

    tin trnh khc nhau nh s hai primitivesendv receive.

    Lin lc trong ch ni kt:

    Mt lin kt c thnh lp gia hai tin trnh. Trc khi mi lin kt ny c

    thit lp, mt trong hai tin trnh phi i c mt tin trnh khc yu cu kt ni.C th

    s dng socket lin lc theo m hnh client-serveur. Trong m hnh ny, server sdng li gi h thng listen v accept ni kt vi client, sau , client v server c

    th trao i thng tin bng cch s dng cc primitive send v receive.

    Hy mt socket

    V d :

    Trong nghi thc truyn thng TCP, mi mi ni gia hai my tnh c xc

    nh bi mt port, khi nim port y khng phi l mt cng giao tip trn thit bvt l m ch l mt khi nim logic trong cch nhn ca ngi lp trnh, mi port

    c tng ng vi mt s nguyn dng.

    Hnh 2.16 Cc socket v port trong mi ni TCP.

    Hnh 2.16 minh ha mt cch giao tip gia hai my tnh trong nghi thc truyn

    thng TCP. My A to ra mt socket v kt buc (bind) socket ny vi mt port X (tc

    l mt s nguyn dng c ngha cc b trong my A), trong khi my B to mt

    socket khc v mc vo (connect) port X trong my A.

    C ch socket c th s dng chun ho mi lin lc gia cc tin trnh vn

    khng lin h vi nhau, v c th hot ng trong nhng h thng khc nhau.

    50

  • 7/29/2019 Nguyen Ly Cac He Dieu Hanh 1283 (1)

    51/145

    2.4 ng b ho tin trnh

    2.4.1 Nhu cu ng b ha (synchronisation)

    Trong mt h thng cho php cc tin trnh lin lc vi nhau, bao gi h iu

    hnh cng cn cung cp km theo nhng c ch ng b ha bo m hot ngca cc tin trnh ng hnh khng tc ng sai lch n nhau. Truy xut ng hnh

    d liu c chia s c th dn ti vic khng ng nht d liu. Trong phn ny

    chng ta s tho lun cc c ch m bo vic thc thi c th t ca cc tin trnh hp

    tc chia s khng gian a ch tnh ng n ca d liu lun c duy tr.

    a). Yu cu c quyn truy xut (Mutual exclusion)

    Cc ti nguyn trong h thng c phn thnh hai loi: ti nguyn c th chia

    s cho php nhiu tin trnh ng thi truy xut, v ti nguyn khng th chia s ch

    chp nhn mt ( hay mt s lng hn ch ) tin trnh s dng ti mt thi im. Tnh

    khng th chia s ca ti nguyn thng c ngun gc t mt trong hai nguyn nhn

    sau y:

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

    Nu nhiu tin trnh s dng ti nguyn ng thi, c nguy c xy ra cc kt

    qu khng d on c do hot ng ca cc tin trnh trn ti nguyn nh hng lnnhau.

    gii quyt vn , cn bo m tin trnh c quyn truy xut ti nguyn,

    ngha l h thng phi kim sot sao cho ti mt thi im, ch c mt tin trnh c

    quyn truy xut mt ti nguyn khng th chia s.

    b). Yu cu phi hp (Synchronization)

    Nhn chung, mi tng quan v tc thc hin ca hai tin trnh trong h

    thng l khng th bit trc, v iu ny ph thuc vo nhiu yu t ng nh tn

    sut xy ra cc ngt ca tng tin trnh, thi gian tin trnh c cp pht b x l

    C th ni rng cc tin trnh hot ng khng ng b vi nhau. Nhng c nhng

    tnh hung cc tin trnh cn hp tc trong vic hon thnh tc v, khi cn phi

    ng b ha hot ng ca cc tin trnh , v d mt tin trnh ch c th x l nu mt

    tin trnh khc kt thc mt cng vic no

    2.4.2. Bi ton ng b ho

    51

  • 7/29/2019 Nguyen Ly Cac He Dieu Hanh 1283 (1)

    52/145

    a). Vn tranh ot iu khin (race condition)

    Gi s c hai tin trnh P1 v P2 thc hin cng vic ca cc k ton, v cng

    chia s mt vng nh chung lu tr bin taikhoan phn nh thng tin v ti khon.

    Mi tin trnh mun rt mt khon tin tienrutt ti khon:

    if (taikhoan - tienrut >=0)

    taikhoan = taikhoan - tienrut;

    else

    error( khong the rut tien ! );

    Gi s trong ti khon hin cn 800, P1 mun rt 500 v P2 mun rt 400. Nuxy ra tnh hung nh sau :

    Sau khi kim tra iu kin (taikhoan - tienrut >=0) v nhn kt qu l 300, P 1

    ht thi gian x l m h thng cho php, h iu hnh cp pht CPU cho P2.

    P2 kim tra cng iu kin trn, nhn c kt qu l 400 (do P1 vn cha rt

    tin) v rt 400. Gi tr ca taikhoan c cp nht li l 400.

    Khi P1 c ti kch hot v tip tc x l, n s khng kim tra li iu kin(taikhoan - tienrut >=0)-v kim tra trong lt x l trc- m thc hin rt tin.

    Gi tr ca taikhoan s li c cp nht thnh -100. Tnh hung li xy ra !

    Cc tnh hung tng t nh th - c th xy ra khi c nhiu hn hai tin trnh

    c v ghi d liu trn cng mt vng nh chung, v kt qu ph thuc vo s iu

    phi tin trnh ca h thng- c gi l cc tnh hung tranh ot iu khin (race

    condition) .

    b). Min gng (critical section)

    ngn chn cc tnh hung li c th ny sinh khi cc tin trnh truy xut

    ng thi mt ti nguyn khng th chia s, cn phi p t mt s truy xut c

    quyn trn ti nguyn : khi mt tin trnh ang s dng ti nguyn, th nhng tin

    trnh khc khng c truy xut n ti nguyn.

    on chng trnh trong c kh nng xy ra cc mu thun truy xut trn ti

    nguyn chung c gi l min gng (critical section). Trong v d trn, on m :

    52

  • 7/29/2019 Nguyen Ly Cac He Dieu Hanh 1283 (1)

    53/145

    if (taikhoan - tienrut >=0)

    taikhoan = taikhoan - tienrut;

    ca mi tin trnh to thnh mt min gng.

    C th gii quyt vn mu thun truy xut nu c th bo m ti mt thi

    im ch c duy nht mt tin trnh c x l lnh trong min gng.

    Mt phng php gii quyt tt bi ton min gng cn tha mn 4 iu kin

    sau:

    -Khng c hai tin trnh cng trong min gng cng lc.

    -Khng c gi thit no t ra cho s lin h v tc ca cc tin trnh, cngnh v s lng b x l trong h thng.

    -Mt tin trnh tm dng bn ngoi min gng khng c ngn cn cc tin

    trnh khc vo min gng.

    -Khng c tin trnh no phi ch v hn c vo min gng.

    2.4.3 Cc gii php ng b ho

    2.4.3.1 Gii php busy waiting

    2.4.3.1.1. Cc gii php phn mm

    a). S dng cc bin c hiu:

    Tip cn : cc tin trnh chia s mt bin chung ng vai tr cht ca

    (lock) , bin ny c khi ng l 0. Mt tin trnh mun vo min gng trc tin

    phi kim tra gi tr ca bin lock. Nu lock = 0, tin trnh t li gi tr cho lock = 1v i vo min gng. Nu lock ang nhn gi tr 1, tin trnh phi ch bn ngoi min

    gng cho n khi lock c gi tr 0. Nh vy gi tr 0 ca lock mang ngha l khng

    c tin trnh no ang trong min gng, v lock=1 khi c mt tin trnh ang trong

    min gng.

    while (TRUE) {

    while (lock==1);//wait

    lock = 1;

    53

  • 7/29/2019 Nguyen Ly Cac He Dieu Hanh 1283 (1)

    54/145

    critical-section ();

    lock = 0;

    Noncritical-section ();

    }

    Hnh 3.5 Cu trc mt chng trnh s dng bin kha ng b

    Gii php ny c th vi phm iu kin th nht: hai tin trnh c th cng

    trong min gng ti mt thi im. Gi s mt tin trnh nhn thy lock = 0 v chun

    b vo min gng, nhng trc khi n c th t li gi tr cho lock l 1, n b tm

    dng mt tin trnh khc hot ng. Tin trnh th hai ny thy lock vn l 0 th vo

    min gng v t li lock = 1. Sau tin trnh th nht c ti kch hot, n gn

    lock = 1 ln na ri va min gng. Nh vy ti thi im c hai tin trnh u trong min gng.

    b). S dng vic kim tra lun phin :

    Tip cn : y l mt gii php ngh cho hai tin trnh. Hai tin trnh ny s

    dng chung bin turn (phn nh phin tin trnh no c vo min gng), c khi

    ng vi gi tr 0. Nu turn = 0, tin trnh A c vo min gng. Nu turn = 1, tin

    trnh A i vo mt vng lp ch n khi turn nhn gi tr 0. Khi tin trnh A ri khi

    min gng, n t gi tr turn v 1 cho php tin trnh B i vo min gng.

    while (TRUE) {

    while (turn != 0); // wait

    critical-section ();

    turn = 1;

    Noncritical-section ();

    }

    (a) Cu trc tin trnh A

    while (TRUE) {

    while (turn != 1); // wait

    critical-section ();

    turn = 0;Noncritical-section ();

    54

  • 7/29/2019 Nguyen Ly Cac He Dieu Hanh 1283 (1)

    55/145

    }

    (b) Cu trc tin trnh B

    Hnh 3.6 Cu trc cc tin trnh trong gii php kim tra lun phin

    Gii php ny da trn vic thc hin s kim tra nghim nht n lt tin

    trnh no c vo min gng. Do n c th ngn chn c tnh trng hai tin

    trnh cng vo min gng, nhng li c th vi phm iu kin th ba: mt tin trnh c

    th b ngn chn vo min gng bi mt tin trnh khc khng trong min gng. Gi

    s tin trnh B ra khi min gng rt nhanh chng. C hai tin trnh u ngoi min

    gng, v turn = 0. Tin trnh A vo min gng v ra khi nhanh chng, t li gi tr

    ca turn l1, ri li x l on lnh ngoi min gng ln na. Sau , tin trnh A li

    kt thc nhanh chng on lnh ngoi min gng ca n v mun vo min gng mtln na. Tuy nhin lc ny B vn cn mi x l on lnh ngoi min gng ca mnh,

    v turn li mang gi tr 1 ! Nh vy, gii php ny khng c gi tr khi c s khc bit

    ln v tc thc hin ca hai tin trnh, n vi phm c iu kin th hai.

    c). Gii php ca Peterson

    Tip cn : Petson a ra mt gii php kt hp tng ca c hai gii php k

    trn. Cc tin trnh chia s hai bin chung :

    int turn; // n phin ai

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

    Nu interesse[i] = TRUE c ngha l tin trnh Pi mun vo min gng. Khi

    u, interesse[0]=interesse[1]=FALSEv gi tr ca est c khi ng l 0 hay 1.

    c th vo c min gng, trc tin tin trnh Pi t gi tr interesse[i]=TRUE

    ( xc nh rng tin trnh mun vo min gng), sau t turn=j ( ngh th tintrnh khc vo min gng). Nu tin trnh Pj khng quan tm n vic vo min gng

    (interesse[j]=FALSE), th Pi c th vo min gng, nu khng, Pi phi ch n khi

    interesse[j]=FALSE. Khi tin trnh Pi ri khi min gng, n t li gi tr cho

    interesse[i]= FALSE.

    while (TRUE) {

    int j = 1-i; // j l tin trnh cn li

    interesse[i]= TRUE;

    55

  • 7/29/2019 Nguyen Ly Cac He Dieu Hanh 1283 (1)

    56/145

    turn = j;

    while (turn == j && interesse[j]==TRUE);

    critical-section ();

    interesse[i] = FALSE;

    Noncritical-section ();}

    Hnh 3.7 Cu trc tin trnh Pi trong gii php Peterson

    gii php ny ngn chn c tnh trng mu thun truy xut : mi tin trnh Pi

    ch c th vo min gng khi interesse[j]=FALSEhoc turn = i. Nu c hai tin trnh

    u mun vo min gng th interesse[i] =interesse[j] =TRUEnhng gi tr ca turn

    ch c th hoc l 0 hoc l 1, do vy ch c mt tin trnh c vo min gng.

    2.4.3.1.2. Cc gii php phn cng

    a) Cm ngt:

    Tip cn: cho php tin trnh cm tt c cc ngt trc khi vo min gng, v

    phc hi ngt khi ra khi min gng. Khi , ngt ng h cng khng xy ra, do vy

    h thng khng th tm dng hot ng ca tin trnh ang x l cp pht CPU cho

    tin trnh khc, nh tin trnh hin hnh yn tm thao tc trn min gng m khngs b tin trnh no khc tranh chp.

    gii php ny khng c a chung v rt thiu thn trng khi cho php tin

    trnh ngi dng c php thc hin lnh cm ngt. Hn na, nu h thng c nhiu

    b x l, lnh cm ngt ch c tc dng trn b x l ang x l tin trnh, cn cc tin

    trnh hot ng trn cc b x l khc vn c th truy xut n min gng !

    b). Ch th TSL (Test-and-Set):Tip cn: y l mt gii php i hi s tr gip ca c ch phn cng. Nhiu

    my tnh cung cp mt ch th c bit cho php kim tra v cp nht ni dung mt

    vng nh trong mt thao tc khng th phn chia, gi l ch th Test-and-Set Lock

    (TSL) v c nh ngha nh sau:

    Test-and-Setlock(boolean target)

    {

    56

  • 7/29/2019 Nguyen Ly Cac He Dieu Hanh 1283 (1)

    57/145

    Test-and-Setlock = target;

    target = TRUE;

    }

    Nu c hai ch th TSL x l ng thi (trn hai b x l khc nhau), chng sc x l tun t . C th ci t gii php truy xut c quyn vi TSL bng cch s

    dng thm mt bin lock, c khi gn l FALSE. Tin trnh phi kim tra gi tr ca

    bin lock trc khi vo min gng, nu lock = FALSE, tin trnh c th vo min

    gng.

    while (TRUE) {

    while(Test-and-Setlock(lock));

    critical-section ();

    lock = FALSE;

    Noncritical-section ();

    }

    Hnh 3.8 Cu trc mt chng trnh trong gii php TSL

    cng ging nh cc gii php phn cng khc, ch th TSL gim nh cng viclp trnh gii quyt vn , nhng li khng d dng ci t ch th TSL sao cho

    c x l mt cch khng th phn chia, nht l trn my vi cu hnh nhiu b x

    l.

    Tt c cc gii php trn y u phi thc hin mt vng lp kim tra liu

    n c c php vo min gng, nu iu kin cha cho php, tin trnh phi ch tip

    tc trong vng lp kim tra ny. Cc gii php buc tin trnh phi lin tc kim tra

    iu kin pht hin thi im thch hp c vo min gng nh th c gi ccgii php busy waiting. Lu rng vic kim tra nh th tiu th rt nhiu thi

    gian s dng CPU, do vy tin trnh ang ch vn chim dng CPU. Xu hng gii

    quyt vn ng b ho l nn trnh cc gii php busy waiting.

    2.4.3.2. Cc gii php SLEEP and WAKEUP

    loi b cc bt tin ca gii php busy waiting , chng ta c th tip cn

    theo hng cho mt tin trnh cha iu kin vo min gng chuyn sang trng thi

    blocked, t b quyn s dng CPU. thc hin iu ny, cn phi s dng cc th

    57

  • 7/29/2019 Nguyen Ly Cac He Dieu Hanh 1283 (1)

    58/145

    tc do h iu hnh cung cp thay i trng thi tin trnh. Hai th tc c bn

    SLEEPv WAKEUPthng c s dng phc v mc ch ny.

    SLEEP l mt li gi h thng c tc dng tm dng hot ng ca tin trnh

    (blocked) gi n v ch n khi c mt tin trnh khc nh thc . Li gi h

    thng WAKEUPnhn mt tham s duy nht : tin trnh s c ti kch hot (t vtrng thi ready).

    tng s dng SLEEP v WAKEUP nh sau : khi mt tin trnh cha

    iu kin vo min gng, n gi SLEEP t kha n khi c mt tin trnh khc gi

    WAKEUP gii phng cho n. Mt tin trnh gi WAKEUPkhi ra khi min gng

    nh thc mt tin trnh ang ch, to c hi cho tin trnh ny vo min gng :

    Cu trc chng trnh trong gii php SLEEP and WAKEUP

    int busy; // 1 nu min gng ang b chim, nu khng l 0

    int blocked; // m s lng tin trnh ang b kha

    while (TRUE) {

    if (busy){

    blocked = blocked + 1;sleep();

    }

    else busy = 1;

    critical-section ();

    busy = 0;

    if(blocked){wakeup(process);

    blocked = blocked - 1;

    }

    Noncritical-section ();

    }

    Khi s dng SLEEP v WAKEUP cn ht sc cn thn, nu khng mun xyra tnh trng mu thun truy xut trong mt vi tnh hung c bit nh sau : gi s

    58

  • 7/29/2019 Nguyen Ly Cac He Dieu Hanh 1283 (1)

    59/145

    tin trnh A vo min gng, v trc khi n ri khi min gng th tin trnh B c

    kch hot. Tin trnh B th vo min gng nhng n nhn thy A ang trong , do

    vy B tng gi tr bin blockedv chun b gi SLEEP t kho. Tuy nhin trc khi

    B c th thc hin SLEEP, tin trnh A li c ti kch hot v ra khi min gng.

    Khi ra khi min gng A nhn thy c mt tin trnh ang ch ( blocked=1) nn giWAKEUPv gim gi tr ca blocked. Khi tn hiu WAKEUPs lc mt do tin

    trnh B cha tht s ng nhn tn hiu nh thc !Khi tin trnh B c tip tc

    x l, n mi goi SLEEPv t kh vnh vin !

    Vn ghi nhn c l tnh trng li ny xy ra do vic kim tra t cch vo

    min gng v vic gi SLEEP hay WAKEUP l nhng hnh ng tch bi, c th b

    ngt na chng trong qu trnh x l, do c khi tn hiu WAKEUP gi n mt tin

    trnh cha b kha s lc mt.

    trnh nhng tnh hung tng t, h iu hnh cung cp nhng c ch ng

    b ha da trn tng ca chin lc SLEEP and WAKEUP nhng c xy

    dng bao hm c phng tin kim tra iu kin vo min gng gip s dng an ton.

    a). Semaphore

    Tip cn: c Dijkstra xut vo 1965, mt semaphore s l mt bin c cc

    thuc tnh sau:

    Mt gi tr nguyn dng e(s)

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

    semaphores

    Ch c hai thao tc c nh ngha trn semaphore

    Down(s): gim gi tr ca semaphores i 1 n v nu semaphore c tr e(s) >0, v tip tc x l. Ngc li, nu e(s) 0, tin trnh phi ch n khi e(s) >0.

    Up(s): tng gi tr ca semaphore s ln 1 n v. Nu c mt hoc nhiu tin

    trnh ang ch trn semaphores, b kha bi thao tc Down, th h thng s chn mt

    trong cc tin trnh ny kt thc thao tc Down v cho tip tc x l.

    59

  • 7/29/2019 Nguyen Ly Cac He Dieu Hanh 1283 (1)

    60/145

    Hnh 2.17 Semaphore s

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

    Down(s):

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

    if e(s) < 0 {

    status(P)= blocked;

    enter(P,f(s));

    }

    Up(s):

    e(s) = e(s) + 1;

    if s 0 {

    exit(Q,f(s)); //Q l tin trnh ang ch trn s

    status (Q) = ready;

    enter(Q,ready-list);}

    Lu ci t ny c th a n mt gi tr m cho semaphore, khi tr tuyt

    i ca semaphore cho bit s tin trnh ang ch trn semaphore.

    iu quan trng l cc thao tc ny cn thc hin mt cch khng b phn chia,

    khng b ngt na chng, c ngha l khng mt tin trnh no c php truy xut

    n semaphore nu tin trnh ang thao tc trn semaphore ny cha kt thc x lhay chuyn sang trng thi blocked.

    60

  • 7/29/2019 Nguyen Ly Cac He Dieu Hanh 1283 (1)

    61/145

    S dng: c th dng semaphore gii quyt vn truy xut c quyn hay

    t chc phi hp gia cc tin trnh.

    T chc truy xut c quyn vi Semaphores: khi nimsemaphore cho php

    bo m nhiu tin trnh cng truy xut n min gng m khng c s mu thun truy

    xut. n tin trnh cng s dng mt semaphore s, e(s) c khi gn l 1. thc hinng b ha, tt c cc tin trnh cn phi p dng cng cu trc chng trnh sau y:

    while (TRUE) {

    Down(s)

    critical-section ();

    Up(s)

    Noncritical-section ();

    }

    Hnh 3.11 Cu trc mt chng trnh trong gii php semaphore

    V d:

    Ln Tintrnh

    Thaotc

    E(s) CS F(s)

    1 A Down 0 A

    2 B Down -1 A B

    3 C Down -2 A B, C

    4 A Up -1 B C

    T chc ng b ha vi Semaphores: vi semaphore c th ng b ha hot

    ng ca hai tin trnh trong tnh hung mt tin trnh phi i mt tin trnh khc

    hon tt thao tc no mi c th bt u hay tip tc x l. Hai tin trnh chia s

    mt semaphore s, khi gn e(s) l 0. C hai tin trnh c cu trc nh sau:

    P1:

    while (TRUE) {

    job1();

    Up(s); //nh thc P2

    61

  • 7/29/2019 Nguyen Ly Cac He Dieu Hanh 1283 (1)

    62/145

    }

    P2:

    while (TRUE) {

    Down(s); // ch P1

    job2();

    }

    Hnh 3.12 Cu trc chng trnh trong gii php semaphore

    Nh c thc hin mt cc khng th phn chia, semaphore gii quyt c

    vn tn hiu "nh thc" b tht lc. Tuy nhin, nu lp trnh vin v tnh t ccprimitive Down v Up sai v tr, th t trong chng trnh, th tin trnh c th b kha

    vnh vin.

    V d : while (TRUE) {

    Down(s)

    critical-section ();

    Noncritical-section ();

    }

    tin trnh trn y qun gi Up(s), v kt qu l khi ra khi min gng n s

    khng cho tin trnh khc vo min gng !

    V th vic s dng ng cch semaphore ng b ha ph thuc hon ton

    vo lp trnh vin v i hi lp trnh vin phi ht sc thn trng.

    b). Monitors

    Tip cn: c th d vit ng cc chng trnh ng b ha hn,

    Hoare(1974) v Brinch & Hansen (1975) ngh mt c ch cao hn c cung

    cp bi ngn ng lp trnh , l monitor. Monitor l mt cu trc c bit bao gm cc

    th tc, cc bin v cu trc d liu c cc thuc tnh sau :

    Cc bin v cu trc d liu bn trong monitor ch c th c thao tc bi cc

    th tc nh ngha bn trong monitor . (encapsulation).

    62

  • 7/29/2019 Nguyen Ly Cac He Dieu Hanh 1283 (1)

    63/145

    Ti mt thi im, ch c mt tin trnh duy nht c hot ng bn trong mt

    monitor (mutualexclusive).

    Trong mt monitor, c th nh ngha cc bin iu kin v hai thao tc km

    theo l Wait v Signal nh sau : gi c l bin iu kin c nh ngha trong

    monitor:

    Wait(c): chuyn trng thi tin trnh gi sang blocked , v t tin trnh ny vo

    hng i trn bin iu kin c.

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

    tin trnh , v tin trnh gi s ri khi monitor.

    Hnh 2.18 Monitor v cc bin iu kin

    Ci t : trnh bin dch chu trch nhim thc hin vic truy xut c quyn

    n d liu trong monitor. thc hin iu ny, mt semaphore nh phn thng

    c s dng. Mi monitor c mt hng i ton cc lu cc tin trnh ang ch c

    vo monitor, ngoi ra, mi bin iu kin c cng gn vi mt hng if(c) v hai thao

    tc trn c nh ngha nh sau:

    Wait(c) :

    status(P)= blocked;

    enter(P,f(c));

    Signal(c) :

    63

  • 7/29/2019 Nguyen Ly Cac He Dieu Hanh 1283 (1)

    64/145

    if (f(c) != NULL){

    exit(Q,f(c)); //Q l tin trnh ch trn c

    statusQ) = ready;

    enter(Q,ready-list);

    }

    S dng: Vi mi nhm ti nguyn cn chia s, c th nh ngha mt monitor

    trong c t tt c cc thao tc trn ti nguyn ny vi mt s iu kin no .:

    monitor

    condition ;

    ;

    procedure Action1();

    {

    } ....

    procedure Actionn();

    {

    }

    end monitor;

    Hnh 3.14 Cu trc mt monitor

    Cc tin trnh mun s dng ti nguyn chung ny ch c th thao tc thng quacc th tc bn trong monitor c gn kt vi ti nguyn:

    while (TRUE) {

    Noncritical-section ();

    .Actioni; //critical-section();

    Noncritical-section ();

    }

    64

  • 7/29/2019 Nguyen Ly Cac He Dieu Hanh 1283 (1)

    65/145

    Hnh 3.15 Cu trc tin trnh Pitrong giiphp monitor

    Vi monitor, vic truy xut c quyn c bo m bi trnh bin dch m

    khng do lp trnh vin, do vy nguy c thc hin ng b ha sai gim rt nhiu. Tuy

    nhin gii php monitor i hi phi c mt ngn ng lp trnh nh ngha khi nim

    monitor, v cc ngn ng nh th cha c nhiu.

    c). Trao i thng ip

    Tip cn: gii php ny da trn c s trao i thng ip vi hai primitive

    Send v Receive thc hin s ng b ha:

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

    hp th.

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

    mt tin trnh no, tin trnh gi s ch nu khng c thng ip no nhn.

    S dng: C nhiu cch thc thc hin vic truy xut c quyn bng c ch

    trao i thng ip. y l mt m hnh n gin: mt tin trnh kim sot vic s

    dng ti nguyn v nhiu tin trnh khc yu cu ti nguyn ny. Tin trnh c yu cu

    ti nguyn s gi mt thng ip n tin trnh kim sot v sau chuy