Baocao Real Time System

  • Upload
    sy-ron

  • View
    57

  • Download
    0

Embed Size (px)

DESCRIPTION

RT system

Citation preview

  • Bo coH thng thi gian thc.

    Mn: H iu hnh nng cao.

    Ging vin: L Hoi Ngha

    Nhm:

    07520599 Phm Sn Trng

    07520477 Phan Trung Kin

    07520377 Nguyn Xun Trng

    07520311 Vng Xt Ty

  • 1. Tng quan v h thng thi gian thc.H thng thi gian thc (real -time system) l mt h thng my tnh, n khng

    ch i hi vic tnh ton a ra kt qu ng, m n cn i hi vic tnh ton a rakt qu phi trong 1 khong thi gian nht nh (deadline). Trong cc h thng mytnh thng thng, chng cng p ng yu cu ca user mt cch nhanh chng nht cth, nhng n khng bt buc phi nh vy. V d nh h thng batch-processing nkhng i hi v timing.

    S thc thi ca cc h thng thi gian thc trn cc phn cng my tnh truynthng c s dng cho nhiu mc ch, nhiu ng dng khc nhau. Trn thc t, cnhiu h thng thi gian thc c nhng trong cc thit b chuyn dng specializeddevices. Nh trong cc thit b gia nh thng thng (ni nu cm, l vi sng, mygit), cc thit b s nh my chp hnh, my MP3. N cng c th nm trong xe hi,hay my bay. Mt h thng nhng, n l mt thit b tnh ton, n l mt phn ca mtthit b ln hn, trong s hin din ca n thng ngi s dng khng bit n.

    minh ho, chng ta s xem xt mt h thng nhng d ng iu khin myra chn, h thng nhng ny c th c vi tu chn khc nhau thit lp ch hotng ca my ra chn nh nhit ca nc, cch thc ra (light hay heavy), hthng c th c mt b nh th i (timer) xc nh khi no my bt u hot ng.hu ht nhng ngi s dng my ra chn khng bit rng n l mt thit b tnh tonnhng trong mt thit b.

    Mt vi h thng thi gian thc c xem nh cc h thng safety-critical. Trongmt h thng safety-critical, cc hot ng khng chnh xc, thng th ng l do vickhng p ng yu cu trong mt khong thi gian n o (vt qua deadline) dnn cc kt qu v cng thm khc. Mt vi v d v h thng safety-critical:

    H thng v kh - weapons system, H thng qun l my bay flight management systems, Cc h thng nhng dng trong cc dng c y khoa nh my iu ho nhp

    tim.

    Trong cc h thng ny, h thng thi gian thc phi p ng cc s kin mtcch nhanh chng, trong mt khong thi gian xc nh (specified deadline) nu khngc th dn n cc thm hoi ti t. Tuy nhin a s cc h thng nhng khng i hi

  • kht khe nh cc h thng safety-critical v d nh my FAX, l vi sng, ng h eotay v cc thit b mng nh switch v router. i vi cc thit b ny nu p ng sauthi hn cho php th khng c ng tic xy ra, ch c iu n s lm khng hi lngngi s dng.

    Vic tnh ton thi gian thc c hai loi: hard v soft.

    H thng thi gian thc cng (Hard real-time system) : i hi mt cch nghimngt v thi gian p ng. N i hi cc tc v, cc yu cu phi c p ng trongmt thi hn xc nh, khng c php vt qua thi hn ny (deadline).

    H thng thi gian thc mm (Soft real-time system): n khng i hi chnhxc v thi gian kht khe nh hard real-time, mt tc v c u tin cao hn cc tcv khc th n s c gi li thc hin cho n khi n ho n tt. V d nh h iuhnh Linux, c h tr soft real-time.

    2. Cc c im ca h thng thi gian th c.Cc c im ca h thng thi gian thc:

    Single purpose. Kch thc nh. Sn xut hng lot r. i hi v thi gian p ng chnh xc.

    Khng ging nh cc h thng my tnh thng thng, phc v cho nhiu mcch khc nhau. Cc h thng thi gian thc ch phc v cho mt mc ch n l duynht.

    Nhiu h thng thi gian thc c tch hp trong mt khng gian vt l rt nh.V d nh ng h eo tay hoc l l vi sng. Cc my tnh hin nay v cc h thngserver thng s dng cc vi x l 32 hoc 64 -bit, nhng nhiu h thng thi gian thcchy trn cc con vi x l 8 hoc 16-bit. Cc my tnh hin nay c th c vi Gigabytesb nh vt l, nhng ngc li b nh vt l ca cc h thng t hi gian thc c th nhhn mt Megabyte. footprint ca mt h thng l lng b nh cn thit chy h

  • iu hnh v cc chng trnh ng dng ca n. Bi v b nh b gii hn, nn phn lncc h iu hnh thi gian thc c footprint nh.

    Chng ta c th tm thy cc h thng thi gian thc trong cc dng c gia nhnh: my nh k thut s, l vi sng. Chng c sn xut hang lot vi gi th nh hpl. V th cc b vi x l cho h thng thi gian thc cng c sn xut hng lot vigi thnh khng cao.

    System-On-Chip.Mt k thut gim gi thnh ca cc embedded controller l system -on-chip

    (SOC). Chng ta s xem xt t chc ca mt h thng my tnh thng thng nh sau:

    SOC: CPU, memory (bao gm c b nh m catch), memory management unit(MMU), v cc port ngoi vi v d nh port USB tt c u c tch hp trn mt chipduy nht. SOC r hn vic hin thc mt h thng nh trong my tnh.

    3. Cc nt c trng ca real-time kernel.Trong phn ny chng ta s tho lun n cc im c trng cn thit cho vic thit

    k mt h iu hnh h tr cc qu trnh thi gian thc.

  • u tin chng ta s xem xt cc h iu hnh nh: Linux, unix, v mt vi phinbn windows. Nhng h iu hnh ny h tr:

    Cc thit b ngoi vi , in hnh nh mn hnh, CD, DVD. Cc c ch protection v security Multiple user h tr cho nhiu mc ch s dng khc nhau.

    h tr cc yu cu trn, cc h iu hnh ny thng c mt kernel phc tp vln. V d nh windows XP, c hn 40 triu dng m ngun (over forty million linesof source code). Ngc li, mt h iu hnh thi gian thc th c thit k rt n gin,ch khong vi ngn dng m ngun.Chng khng i hi nhng yu cu nh trn.

    Vy ti sao cc h thng thi gian thc khng i hi nhng yu t trn, trong khinhng yu t ny gi vai tr quyt nh trong cc h thng desktop v server chun. y c 3 l do c bn nh sau:

    1. Th nht, cc h thng nhng c to ra nhm phc v cho mt mc ch nhtnh no , nn chng khng i hi phi c nhiu tnh nng nh my tnhchng ta s dng. V d nh mt ci ng h eo tay in t , r rng l nkhng cn s h tr ca a. Hn na mt h thng thi gian thc in hnh thkhng c khi nim v user, h thng ny n gin ch h tr mt vi tc v,mt s lng nh cc tc v, thng ch cc input t cc thit b phn cng nh thit b cm bin, vv

    2. Th hai, cc tnh nng c h tr bi cc h iu hnh my tnh chun i hiphi c mt b vi x l nhanh, mnh v dung lng b nh ln. M c hai iukin ny u khng c trong mt h thng thi gian th c v trong h thng thigian thc n c hin thc trong mt khng gian nh, nh ci ng h eo tayin t chng hn. Hn th na, cc h thng thi gian thc khng c khnggian h tr cc a ngoi vi hoc hin th ho .

    3. Th 3 l v gi c, cc h thng thi gian thc phi r, thng dng tch hpvo cc h thng khc nhau.

  • B nh o trong h thng thi gian thc . cung cp cc tnh nng b nh o hthng cn phi c n v qun l b nh (memory management unit -MMU) thchin vic chuyn i a ch lun l sang a ch vt l. Tuy nhin, cc MMUs s lmtng gi v vic s dng nng lng ca h thng. Ngoi ra, h thng cn tn thi giancho vic chuyn i a ch , v vy n c th khng c s dng trong cc h thngthi gian thc cng. Sau y, chng ta s xem xt mt s phng php chuyn i ach trong cc h thng thi gian thc.

    C 3 chin lc qun l vic chuyn i a ch (address translation) ca cc hiu hnh thi gian thc. Khi CPU to ra a ch lun l (logical address) L n phic nh x sang a ch vt l (physical address) P.

    phng php tip cn th nht, b qua cc a ch lun l (logical address), CPUtrc tip to ra cc a ch vt l. Cch ny c gi l real-addressing mode - khngs dng cng ngh b nh o (virtual memory technique) . Vn vi real-addressingmode l khng c s qun l b nh gia cc qu tr nh (memory protection betweenprocesses). Real-addressing mode cng c th yu cu lp trnh vin xc nh r v trvt l (physical location) ni m cc chng trnh ca h c np vo b nh. Tuynhin, li ch ca cch tip cn ny l h thng hot ng kh nhanh, khng tn thigian cho vic chuyn i a ch. Real-addressing mode ph bin trong cc h thng

  • nhng thi gian thc cng. Trong thc t mt s h iu hnh thi gian thc chy trncc microprocessor c cha mt MMU, v th h iu hnh s v hiu ho MMU tc li ch thc thi ca vic tham chiu a ch vt l trc tip (referencing physicaladdresses directly).

    Phng php tip cn th hai l s chuyn i a ch s dng thanh ghi ti nh vng dynamic relocation register.

    Mt thanh ghi ti nh v (relocation) R c thit lp n v tr b nh nichng trnh c np. a ch vt l P c to ra bi vic cng ni dung c a thanhghi ti nh v R vi a ch lun l L. Li ch r rng ca phng php tip cn ny lMMU c th d dng chuyn a ch lun l thnh a ch vt l bng cch P = R + L.Tuy nhin h thng ny vn b thiu vic bo v b nh gia cc qu tr nh.

    Phng php cui cng cho cc h thng thi gian thc cung cp y chcnng b nh o. Trong trng hp ny, vic chuyn i a ch c thc hin thngqua bng trang (page table) v mt translation look-aside buffer (TLB). Ngoi vic chophp mt chng trnh c np vo bt k mt v tr nh, phng php ny cng cungcp vic bo v b nh gia cc qu tr nh. i vi cc h thng c disk drive s ( a)

  • km theo, demand paging v swapping c th khng hp l. Tuy nhin h thng c thcung cp cc tnh nng nh s dng b nh flash NVRAM. Cc h thng LynxOS vOnCore l cc v d v cc h iu hnh thi gian thc cung cp s h tr y chob nh o.

    4.Hin thc cc h iu hnh thi gian thc.Tng qut, cc h iu hnh thi gian thc a ra cc tnh nng sau:

    Preemptive, priority-based scheduling (nh thi da trn u tin). Preemptive kernel. Minimized latency (Gim thiu tr bt buc).Mt tnh nng ng ch khc l s h tr networking. Nu mt h thng thi gian

    thc cn phi c kt ni vi mt network, h iu hnh phi cung cp kh nngnetworking cho h thng. V d nh mt h thng thu thp d liu thi gian thc v truyn n n mt server.

    4.1 Priority-Based Scheduling.

    Tnh nng quan trng nht ca h iu hnh thi gian thc l phi p ng ngay lptc cho mt qu trnh thi gian thc ngay khi qu trnh ny yu cu CPU. Nh vy, bnh thi cho mt h iu hnh thi gian thc phi cung cp mt thut ton da tr n u tin (priority-based algorithm with preemption) . Cc thut ton nh thi da trn u tin (priority-based scheduling algorithms) gn mi mt qu trnh vi mt u tinda trn tm quan trng ca qu trnh. Cc tc v c tm quan trng cao hn s cgn u tin cao hn cc tc v c tm quan trng thp. Nu mt h iu hnh cngcung cp preemption (trng dng), th mt qu trnh ang gi CPU, v mt qu trnhkhc n vi u tin cao hn th CPU s b ly li v cp cho qu trnh c u tincao hn.

    Preemptive v cc thut ton nh thi da trn u tin (priority-basedscheduling) c trnh by rt k trong chng 5 (nh thi), trong c trnh bycc v d v cc tnh nng nh thi thi gian thc mm ca cc h iu h nh Solaris,Windows XP, v Linux. Mi h thng ny gn cc qu trnh thi gian thc vi utin cao nht. V d, Windows XP c 32 cp u tin khc nhau, cc mc u tin

  • cao nht (16 - 31) c dnh ring cho cc qu trnh thi gian thc. Solaris v Linux cchin lc u tin tng t.

    Tuy nhin, cn phi lu rng vic cung cp a preemptive, cc b nh thi da trn u tin (priority-based scheduler) ch m bo chc nng thi gian thc mm. Cch thng hard real-time phi m bo rng cc tc v thi gian thc s c phc vph hp vi cc yu cu v thi gian ca n (deadline). V m bo c iu nyth cn b sung thm vi tnh nng nh thi na, cc thut ton nh thi thch hp chocc h thng thi gian thc cng s c trnh by sau.

    4.2 Preemptive Kernels.

    Cc nonpreemptive kernel khng cho php s trng dng mt qu trnh trong kernelmode. Mt qu trnh kernel mode s chy cho n khi n thot khi kernel mode, blockhoc voluntarily yields control of the CPU. Ng c li, mt preemptive kernel cho phpvic trng dng ca mt tc v chy trong kernel mode. Vic thit k preemptive kernelkh kh khn, v cc ng dng nh spreadsheets, x l vn bn v trnh duyt webthng khng i hi thi gian p ng nhanh chng . Nh vy cc h iu hnh dngcho cc my tnh thng thng nh windows xp l nonpreemptive.

    Tuy nhin p ng cc yu cu v thi gian ca cc h thng thi gian thc, cbit cc h thng thi gian thc cng th cc preemptive kernel l iu bt buc. Nukhng mt tc v thi gian thc c th phi ch trong mt khng th i gian di khi mttc v khc ang hot ng trong kernel (ang gi CPU).

    Cc phng php to preemptive kernel:

    Phng php th nht l chn cc im preemption trong cc li gi h thngthi gian di (long-duration system calls). Mt im preemption kim tra xem cmt qu trnh vi u tin cao cn phi c thc thi hay khng? Nu c, mtcontext switch s xy ra. Sau , tin trnh c u tin cao s thc thi, sau khin thc thi xong th qu trnh b gin on s c thc thi tip vi system call.Cc im preemption ch c th c t ti cc v tr an ton trong kernel nicc cu trc d liu kernel khng b thay i ( kernel data structures are not beingmodified).

  • Chin lc th hai l s dng c ch ng b ho (synchronization chng 6),vi phng php ny kernel lun lun c th preemptible, bi v bt k d liukernel ang c cp nht s c bo v bi cc qu trnh c u tin cao.

    4.3 Minimizing Latency (gim tr bt buc)H thng thi gian thc thng ch i mt s kin trong thi gian thc xy ra. Cc

    s kin c th c pht sinh bi software nh khi mt timer b trn (hay kt thc)hoc c pht sinh bi hardware nh khi mt chic xe iu khin t xa pht hin cvt cn trc mt, khi s kin xy ra h thng phi p ng cho n cng nhanh cng tt. tr ca mt s kin (event latency) l khong thi gian t khi s kin xy ra nkhi n c p ng.

    Thng thng, cc s kin khc nhau c cc yu cu v tr bt buc (latency)khc nhau. V d, yu cu v tr bt buc cho h thng antilock brake c th t 3 -5ms, c ngha l t khi pht hin ra bnh xe ang tr t th h thng iu khin ccantilock brakes c t 3 n 5ms p ng v kim sot tnh hnh. Nu lu hn th cth dn n vic mt kim sot. Ngc li, mt h thng nhng iu khin radar trongmt my bay th thi gian tr bt buc (latency) c th ln n vi giy.

    C hai loi tr bt buc (latency):

    Interrupt latency Dispatch latency

  • Interrupt latency l khong thi gian t lc mt ngt xut hin CPU cho n khibt u thc hin mt routine phc v ngt . Khi mt ngt xy ra, u tin h iuhnh phi hon thnh instruction ang thc thi v xc nh loi ngt xy ra (determinethe type of interrupt that occurred). Sau n lu trng thi qu trnh ang hot ngtrc khi p ng cho interrupt s dng the specific interrupt service routine (ISR) .Tng thi gian cn thit thc hin cc tc v ny chnh l interrupt latency. R rngh iu hnh thi gian thc phi gim interrupt latency n mc ti thiu m borng cc tc v thi gian thc (real -time tasks) nhn c s p ng ngay lp tc.

    Mt nhn t quan trng lm tng interrupt latency l khong thi gian ccinterrupt b v hiu ho trong khi cc cu trc d liu kernel (kernel data structure)ang c cp nht. Cc h iu hnh thi gian thc yu cu cc interrupt ch c vhiu ho trong mt khong thi gian rt ngn. Tuy nhin i vi cc h thng thi gianthc cng, interrupt latency khng nhng phi c gim thiu, m trn thc t ncn phi c gii hn.

    Khong thi gian cn thit scheduling dispatcher dng mt qu trnh v btu mt qu trnh khc c gi l dispatch latency. K thut hiu qu nht gimdispatch latency chnh l s dng preemptive kernel.

    Giai on xung t (conflict phase) ca dispatch c hai thnh phn:

  • 1. S trng dng ca qu trnh bt k chy trong kernel. (Preemption of any processrunning in the kernel).

    2. Gii phng ti nguyn m cc qu trnh c u tin thp ang gi cho qu tr nhc u tin cao hn ang cn.

    V d nh, trong Solaris, dispatch latency vi h thng v hiu ho preemption th hn 100ms, nhng vi cho php preemption n c gim xung nh hn 1ms.

    Khi mt qu trnh c u tin cao hn cn c v thay i d liu kernel angc truy xut bi mt qu tr nh c u tin thp hn hoc l mt chui cc qutrnh c u tin thp hn. D liu kernel thng c bo v bng mt kho (lock),qu trnh c u tin cao hn s phi ch qu trnh c u tin thp hn kt thc. Vd nh, chng ta c 3 qu trnh L, M v H vi u tin theo th t L < M < H. Gi squ trnh H yu cu ti nguyn R m ti nguyn R ang c gi bi qu trnh L.Thng thng qu trnh H phi i cho n khi qu tr nh L hon tt vic s dng tinguyn R. Tuy nhin, gi s rng, ti thi im qu trnh M runable, do preempting qu trnh L. Mt qu trnh vi u tin thp hn qu trnh M tc ngn khong thi gian qu tr nh H phi i qu trnh L tr li ti nguyn R. Vn nyc gi l priority inversion (o ngc u tin), n c th c gii quyt bnggiao thc k tha u tin priority-inheritance protocol. Theo giao thc ny, tt ccc qu trnh ang gi cc ti nguyn m qu trnh c u tin cao hn ang cn th

  • s c k tha u tin ca qu trnh cao hn cho n khi chng hon thnh vic sdng cc ti nguyn ny. Khi chng kt thc, u tin ca chng tr v gi tr banu. Trong v d trn, priority-inheritance protocol cho php qu trnh L tm thi ktha u tin ca qu trnh H, do ngn chn qu trnh M preempting qu trnh thcthi ca n. Khi qu trnh L kt thc vic s dng ti nguyn R, n s ly li u tinban u ca n. Khi ti nguyn R c gii phng th qu trnh H c x l, chkhng phi qu trnh M nh trn.

    5.Real-Time CPU Scheduling.Nh cp trn, nh thi cho cc h thng thi gian thc mm , n ch m

    bo cc qu trnh c u tin cao s c u tin. Cc h thng thi gian thc cngi hi nghim ngt hn. Mt tc v phi c p ng trong mt khong thi giannht nh (deadline). Nu n c p ng sau khong thi gian , n c xem nhkhng c p ng.

    nh thi cho cc h thng thi gian thc cng. Cc c im ca cc qu tr nh s cdng nh thi. u tin cc qu trnh c xem l tun hon. C ngha l cc qutrnh yu cu CPU trong mt khong thi gian c nh . Mi periodic process c thigian x l c nh processing time t khi n gi CPU, mt thi hn deadline d khin phi c p ng bi CPU v khong thi gian period P. Mi quan h gia thigian x l processing time, deadline v period l 0 t d p. Tc ca periodictask l 1/p. Cc b nh thi c th tn dng mi quan h n y v gn cc mc utin theo cc yu cu v deadline v tc ca mt periodic process.

    Hnh minh ho vic thc hin ca mt qu tr nh tun hon theo thi gian.

  • 5.1 Rate-Monotonic Scheduling

    Thut ton nh thi rate-monotonic nh thi cc tc v periodic task theochnh sch u tin tnh vi vic trng dng CPU ca qu trnh c u tin cao hnpreemption. Nu mt qu trnh c u tin thp hn ang chy v mt qu trnh c u tin cao hn ang sn sng thc thi, n s preempt qu tr nh c u tinthp hn, tc l n s ly CPU ca qu trnh c u tin thp hn thc thi.

    Khi i vo h thng, mi mt tc v periodic task s c gn vi mt utin ngc li vi khong thi gian period ca n. Cc tc v c period ngn hn sc u tin cao hn v ngc li, cc tc v c period di hn s c u tin thphn. Chnh sch ny gn u tin cao hn cho cc tc v yu cu CPU thng xuynhn. Hn th na, i vi nh thi rate-monotonic th thi gian x l processingtime ca cc qu trnh l nh nhau cho mi CPU burst. Ngha l, mi ln mt qutrnh gi CPU th khong thi gian CPU burst ca n l ging nhau.

    V d: C 2 qu trnh P1 v P2, khong thi gian period ca 2 qu tr nh P1, P2l P1 = 50 v P2 = 100. Thi gian x l processing time ca hai qu tr nh ln lt lt1 = 20 v t2 = 35. Thi hn deadline cho mi qu trnh i hi rng n hon thnhCPU burst ca n bng vic bt u ca period tip theo ca n.

    Nu chng ta nh gi vic s dng CPU ca mt qu tr nh Pi nh t l ti/pi(burst ca qu trnh / period).

    S s dng CPU ca P1: 20/50 = 0.4

    S s dng CPU ca P2: 35/100 = 0.35

    Tng s s dng CPU l 75%

    a) u tin, gi s qu trnh P2 c u tin cao hn P1

  • Nh vy, chng ta thy P2 c thc thi trc v sau khong thi gian 35ms nthc thi xong v ti P1 thc thi t thi im 35ms n thi im 55ms n hon thnh.Tuy nhin deadline ca P1 l 50ms, m n thi im 55ms n mi c hon thnh,nh vy n vt qu deadline ca n.

    b) By gi chng ta s dng thut ton rate -monotonic, chng ta s gn P1 c u tin cao hn P2, bi v period ca P1 ngn hn P2.

    P1 c thc thi trc, v n hon thnh CPU burst ca n ti thi im 20ms,do gp deadline u tin ti thi im 20ms. Sau P2 bt u c thc thi cho tithi im 50ms, ti thi im ny P1 li n v do u tin ca n cao hn, nn nly CPU v thc thi n thi im 70ms, n hon thnh v tr li CPU cho P2 thc thitip n thi im 75ms. Sau h thng i vo trng thi idle n thi im 100,khi P1 c nh thi li.

    nh thi Rate-monotonic c xem l ti u, nu mt tp cc qu trnh khngth c nh thi bi thut ton ny th n khng th c nh thi bng mt thutton gn u tin tnh no khc.

  • Hy xem xt mt tp cc qu trnh m khng th s dng thut ton Rate-monotonic nh thi. Gi s rng P1 c period p1 = 50, v CPU burst t1 = 25 .P2 c period p2 = 80 v CPU burst t2 = 35.

    Thut ton Rate-monotonic phi gn P1 c u tin cao hn v period ca nngn hn. Tng s s dng CPU ca 2 qu trnh l (25/50) + (35 / 80) = 0.94. Nh vyhai qu trnh s dng 94% CPU, cn 6% th h thng i vo trng thi idle.

    u tin P1 c thc thi trong 25ms, sau n P2 thc thi n 50ms th P1 lin v chim CPU, ti thi im ny th P2 vn cn 10ms CPU burst. Qu trnh P1chy ti thi im 75ms , v tr li CPU cho P2 thc thi, P2 thc thi n thi im 85msmi hon tt. Nh vy, P2 vt qu deadline ca n. (P2 phi hon thnh CPUburst ca n ti thi im 80ms).

    nh thi rate-monotonic c mt hn ch, s s dng CPU b gii hn , khng gicho CPU hot ng mc ti a. Vic s dng CPU ti t nht i vi N qu tr nh l:2(21/n - 1)

    Vi mt qu trnh trong h thng, vic s dng CPU l 100%. Nhng n gimxung xp x 69% khi s lng cc qu trnh tin ra v cc. Vi 2 qu trnh, vic sdng CPU c gii hn khong 83% .

    5.2 Earliest-Deadline-First Scheduling

    nh thi Earliest-deadline-first (EDF) t ng gn cc mc u tin theodeadline. Qu trnh c deadline sm hn s c u tin cao hn, qu tr nh cdeadline tr hn s c u tin thp hn. Khi mt qu trnh sng sng thc thi, nbo cc yu cu deadline ca n cho h thng . Mc u tin ca cc qu trnh cth c iu chnh li cho thch hp khi c mt qu trnh mi i vo h thng. nh

  • thi EDF khc vi nh thi rate -monotonic, vi nh thi rate-monotonic cc u tin c gn c nh, khng bao gi thay i.

    V d:

    Gi s rng P1 c period p1 = 50, v CPU burst t1 = 25. P2 c period p2 =80 v CPU burst t2 = 35.

    Qu trnh P1 c deadline sm nht, v th ban u u tin ca n cao hnP2. P2 bt u thc thi khi CPU burst ca P1 kt thc. Tuy nhin, trong thut tonnh thi rate-monotonic th P1 ly li CPU ti thi im 50ms, nhng vi thut tonnh thi EDF n cho php qu tr nh P2 thc thi tip cho ti khi n hon tt v lc ny u tin ca n cao hn P1, bi v lc ny deadline ca P2 (ti thi im 80ms) lcny sm hn P1 (ti thi im 100ms) . V th, c hai qu trnh P1 v P2 u p ngc cc yu cu deadline ca chng.

    Qu trnh P1 li bt u t thi im 60ms, v n hon tt chu k CPU burstca n ti thi im 85ms, n p ng c deadline ca n thi thi im 100ms.P2 bt u thc thi ti thi im 85ms, v n b P1 ly li CPU thi im 100ms, biv lc ny P1 c u tin cao hn P2 do deadline c a P1 ( thi im 150ms) smhn deadline ca P2 ( thi im 160ms). Ti thi im 125ms P1 hon thnh CPUburst ca n, P2 ly li CPU tip tc thc thi v hon tt thi im 145ms , n vnp ng c yu cu deadline ca n . H thng i vo trng thi idle n thiim 150ms v P1 bt u c nh thi li nh lc u.

    Khng ging nh thut ton rate-monotonic, nh thi EDF khng i hi ccqu trnh phi tun hon hay cc khong thi gian s dng CPU c nh . N ch i himt qu trnh thng bo thi hn deadline ca n cho b nh thi khi n c th thcthi. nh thi EDF ti u v mt l thuyt, n c th nh thi cc qu trnh sao cho

  • mi qu trnh p ng c thi hn deadline ca n v s dng CPU 100%. Tuynhin trong thc t, n khng th t c mc s dng CPU nh vy do chi phchuyn i bi cnh context switching gia cc qu trnh v x l ngt.

    5.3 Proportional Share Scheduling

    Cc b nh thi Proportional Share schedulers hot ng bng vic phn phtT share c phngia cc trnh ng dng application . Mt application c thnhn c N share v thi gian, v vy m bo rng application s c N/T tngthi gian x l. V d, chng ta c T = 100 share v c phn pht gia 3 qu tr nhA, B, C. A gi 50 share, B gi 15 share v C gi 20 share. Chin lc ny mbo rng A s c 50% tng thi gian x l, B c 15% v C c 20 %.

    Cc b nh thi Proportional share schedulers lm vic vi mt chnh schiu khin admission m bo rng mt application nhn c cc share thigian ca n. Mt chnh sch iu khin admission s ch p ng yu cu ca mtclient yu cu mt s share c th nu trong h thng cn c share cungcp. Nh v d trn, chng ta cp pht 50 + 15 + 20 = 85 share trong tng s 100share. Nu mt qu trnh mi D yu cu 30 share th b admission controller tchi D i vo h thng.

    5.4 Pthread Scheduling

    Chun POSIX cng cung cp phn m rng cho vic tnh ton thi gian th c -POSIX.lb. Trong phn ny chng ta s xem xt mt vi POSIX Pthread API lien quann vic nh thi cc lung thi gian thc real -time threads. Pthreads nh ngha hailp nh thi cho cc lung thi gian thc:

    SCHED_FIFO SCHED_RRSCHED_FIFO nh thi cc thread theo chnh sch first-come, first-served,

    ngha l ci no n trc th c phc v trc, s dng hang i FIFO. Tuy nhin,khng c thi gian ct gia cc thread c u tin bng nhau. Nh vy, ccthread thi gian thc c u tin cao nht s nm u hang i FIFO , v s ccp pht CPU cho n khi n k t thc hoc block.

  • SCHED_RR tng t nh SCHED_FIFO, nhng n cung cp thm thi gian ctgia cc thread c u tin bng nhau.

    Pthreads cung cp mt lp nh thi b sung SCHED_OTHER nhng khngc xc nh v h thng c th, n c th thao tc khc nhau trn cc h thng khcnhau.

    Pthread API ch r hai hm chc nng sau getting v setting chnh sch nhthi:

    pthread_attr_getsched_policy(pthread_attr_t *attr, int *policy) pthread_attr_getsched_policy (pthread_attr_t *attr, int policy)Tham s u tin c s dng cho c hai chc nng , n l mt con tr, tr n

    tp cc thuc tnh ca mt thread. Tham s th 2 c th l mt con tr ch n snguyn, l mt tp cc chnh sch nh thi hin h nh (i vipthread_attr_getsched_policy () ) hoc n l mt gi tr s nguyn CHED_FIFO,SCHED_RR, hoc SCHED_OTHERcho hm chc nng pthread_attr_getsched_policy(). C hai hm chc nng tr v gi tr non-zero nu mt li xut hin.#include

    #include

    #define NUM.THREADS 5

    int main(int argc, char *argv[]){

    int i, policy;

    pthread_t tid [NUM_THREADS] pthread_attr_t attr;

    /* get the default attributes */

    pthread_attr_init j&attr) ;/* get the current scheduling policy */

  • if (pthread_attr_getsched_policy(&attr, &policy) != 0)fprintf(stderr, "Unable to get policy. \n");

    else {if (policy == SCHED_OTHER)

    printf ( "SCHED_OTHER\n" ) ;else if (policy == SCHED_RR)

    printf ("SCHED_RR\n") ;else if (policy == SCHED_FIFO)

    printf ("SCHED_FIFO\n") ;}/* set the scheduling policy - FIFO, RR, or OTHER */

    if (pthread_attr_setsched_policy (&attr, SCHED_OTHER) != 0)fprintf(stderr, "Unable to set policy. \n");

    /* create the threads */

    for (i = 0; i < NUM_THREADS; i++)pthread_create ( &tid [i] , &attr, runner, N ULL) ;

    /* now join on each thread */for (i = 0; i < NUM_THREADS; i++)

    pthread_join(tid [i] , NULL) ;/* Each thread will begin control in this function */

    void *runner(void *param){

    /* do some work ... */

  • pthread_exit (0) ;}Pthread scheduling API

    Trn y, chng minh chng trnh Pthreads dng RPR. Chng trnh u tinny xc nh mt chnh sch nh thi hin hnh theo setting thut tonSCHED_OTHER.

    6. VxWorks 5.x

    Trong phn ny, chng ta s m t VxWorks, mt h iu hnh thi gian thc phbin h tr cho h thng thi gian thc cng hard real -time. VxWorks c pht trinbi Wind River Systems, c s dng rt nhiu trong cc h thng xe h i, cc thit bcng nghip, v cc thit b mng nh switch v router. VxWorks c dng iukhin hai rover Spirit v Opportunity bt u thm him sao ho nm 2004.

  • Trn y l t chc ca VxWorks

    Processes:

    Wind microkernel h tr cc c tnh c bn sau: Wind microkernel h tr ccthread v qu trnh (s dng Pthread API). Tuy nhin, n cng ging nh Linux,VxWorks khng phn bit gia process v thread. Thay vo n xem chng nhcc tc v task.

    Real time LINUX

    H iu hnh LINUX ngy cng c s dng nhiu trong cc mi trng thigian thc. Chng ta bit v tnh nng lp lch soft real time ca n, theo cc tcv thi gian thc c u tin cao nht trong h thng. Cc tnh nng khc trong phi nbn 2.6 ca nhn Linux lm cho n ngy cng ph hp hn trong cc h thng nhng.Nhng tnh nng ny bao gm c ht nhn u tin ton phn v b lp lch hiu quhn, iu hnh theo thi gian, bt k s lng cc tc v trong h thng. Bn 2.6 cnglm cho vic nhng Linux vo cc kin trc phn cng khc nhau d dng hn bngcch chia ht nhn vo cc m un thnh phn.

    Mt chin lc cho vic tch hp Linux vo cc mi trng thi gian thc linquan n vic kt hp cc h iu hnh Linux vi mt ht nhn thi gian thc nh, qua cung cp mt h thng hot ng nh c mt h thng mc ch chung v mt hthng thi gian thc. y l phng php ca h iu hnh RTLinux. Trong RTLinux,cc chun ht nhn Linux chy nh mt tc v trong mt h iu hnh thi gian thcnh. Cc ht nhn thi gian thc x l tt c cc ngt (interrupt), ch o tng interruptti mt x l trong ht nhn chun hay mt tr nh x l ngt trong ht nhn thi gianthc. Hn na, RTLinux ngn nhn Linux chun t bt k vic v hiu ho ngt no, m bo rng khng th c thm tr trong h thng thi gian thc. RTLinux cngcung cp cc c ch lp lch khc nhau, bao gm:

    Rate-monotonic scheduling (mc 19.5.1) Earliest-deadline-first scheduling (mc 19.5.2).

    nh thi: Wind cung cp hai ch nh thi khc nhau: preemptive v nonpreemptive round-robin scheduling vi 256 mc u tin khc nhau. B nhthi cng h tr POSIX API cho cc thread thi gian thc.

  • Interrupt: Wind microkernel cng qun l cc ngt. h tr cho cc yu cuthi gian thc cng, thi gian interrupt v dispatch latency c gii hn li.

    Interprocess communication: Wind microkernel a ra hai k thut b nh chias v truyn thng ip cho vic giao tip gia cc tc v khc nhau. Wind cngcho php cc task giao tip vi nhau s dng k thut ng ng pipe mt kthut hot ng tng t nh hng i FIFO nhng cho php cc task giao ti pbng vic ghi vo mt file c bit. bo v d liu c chia s gia cc tcv khc nhau, VxWorks cung cp semaphores and mutex locks vi mt giaothc k tha u tin

    Bn ngoi microkernel, VxWorks gm c vi th vin thnh phn h tr choPOSrx, Java, TCP/IP networking. Tt c cc thnh phn ny l tu chn, cho phpngi thit k mt h thng nhng c th ti u h thng ca h. V d, nu h thngca chng ta khng c nhu cu kt ni vi mng th th vin TCP/IP c th c loitr ra khi hnh nh ca h iu hnh. iu ny cho php nhng nh thit k h iuhnh ch tch hp nhng thuc tnh cn thit , do ti u c kch c - footprint cah iu hnh.

    VxWorks c mt chin lc qun l b nh v cng th v, h tr hai mc b nho. mc th nht, n kh n gin, cho php iu khin ca b nh catch trn mitrang c s. C ch ny cho php mt ng dng xc nh mt trang l non-cachenable.Khi d liu ang c chia s bi cc tc v ring bit chy trn mt kin trc a x l ,d liu chia s c th c sp xp li vo cc catch a phng ring bit cho x l cnhn. Tr khi mt kin trc h tr c ch cache-coherency (cache mch lc) mbo rng cng mt d liu c tr trong 2 cache s khng khc nhau. D liu chia s khng nn c lu tr vo cache m thay vo ch cn c tr trong b nh chnh cng mt d liu th u ging nhau trong cc tc v.

    Cp th hai ca b nh o yu cu ty chn cc thnh phn b nh o VxVMI,cng vi b x l h tr n v qun l b nh (MMU). Bng cch np th nh phn tychn ny vo mt h thng c MMU, VxWorks cho php mt tc v nh du cc vngd liu xc nh l d liu ring. Mt vng d liu c nh du l d liu ring thch c th c truy cp bi tc v m n thuc v. Hn na, VxWorks cho php cctrang c cha kernel code cng vi cc vector ngt c khai bo l ch c (readonly). iu ny rt hu ch, nh VxWorks khng phn bit gia cc ch ngi dng

  • v ht nhn, tt c cc ng dng chy ch ht nhn ,cho mt ng dng truy cp vokhng gian a ch ton b h thng.

    7. Tm ttMt h thng thi gian thc l mt h thng my tnh yu cu kt qu n trong

    vng mt deathline, kt qu n sau deathline l v ch. Nhiu h thng thi gian thcc nhng trong cc thit b tiu dng v cng nghip. C hai loi h thng thi gianthc: cng v mm. H thng thi gian thc mm l hn ch nht, lp lch u tin tcv thi gian thc hn so vi cc nhim v khc. H thng thi gian thc cng phi mbo rng tc v thi gian thc l thc thi trong vng deathline. Ngoi yu cu thi giannghim ngt, h thng thi gian thc c th c m t nh l h thng ch c mt mcch duy nht v chy trn cc thit b nh, r tin.

    p ng yu cu thi gian, h iu hnh thi gian thc phi s dng cc kthut khc nhau. Cc b lp lch cho mt h iu hnh thi gian thc phi h tr mtthut ton u tin da trn cc quyn u tin. Hn na, h iu hnh phi cho php tcv chy trong ht nhn c u tin trong vic chn quyn u tin cao hn ca tc vthi gian thc. H iu hnh thi gian thc cng quyt cc vn thi gian c th bngcch gim thiu c interrupt v dispatch latency.

    Thut ton lp lch thi gian thc bao gm: rate-monotonic v earliest-deadline-first. Rate-monotonic scheduling gn cc tc v yu cu nhiu CPU c u tn caohn cc tc v yu cu t CPU hn. Earliest-deadline-first scheduling gn u tinbng thi hn deathline, deathline n o n trc th u tin cao hn. Proportional sharescheduling s dng k thut phn chia khong thi gian x l thnh c phn v phncng mi tin trnh mt s c phiu, do m bo mi tin tr nh chia s theo t l can trong thi gian CPU. Cc Pthread API cung cp tnh nng khc nhau lp lchthread thi gian thc tt.