You are on page 1of 13

H IU HNH THI GIAN THC CHO CC H THNG NHNG H iu hnh thi gian thc (RTOS) cho cc h thng nhng

rt khc so vi h iu hnh trn my tnh desktop nh Windows hay UNIX : Th nht, trn my tnh desktop h iu hnh s chim quyn iu khin ngay sau khi my c bt v sau mi cho chng ta bt u ng dng ca mnh. Chng ta bin dch v lin kt cc ng dng ca mnh tch bit vi h iu hnh. Ngc li, trong mt h thng nhng, ng dng thng xuyn lin kt vi RTOS. Ti lc khi ng, ng dng nhn ly quyn iu khin u tin v sau n mi bt u RTOS. Bi vy ng dng v RTOS phi c mi quan h cht ch hn. Th hai, rt nhiu RTOS khng bo v chnh bn thn chng mt cch cn thn nh h iu hnh trn desktop. Th ba, tit kim b nh cc RTOS mc nh ch bao gm cc dch v cn thit cho ng dng nhng ca chng ta. Hu ht cc RTOS cho php chng ta cu hnh bao qut trc khi chng ta lin kt chng vi ng dng. Th t, hu ht cc iu hnh trn my desktop quan tm n hiu nng trung bnh trong khi cc h iu hnh thi gian thc li quan tm n cc gii hn, thi gian p ng. trong phn ny, chng ta tm hiu khi nim tc v - Task trong mi trng RTOS v vn chia s d liu, semaphores, mailbox, queue Ngoi ra, chng ta cn xem xt vn truyn thng lin qu trnh, dch v b nh thi, qun l b nh v tng tc gia cc th tc ngt. Cc h iu hnh thi gian thc nhn mnh n kh nng d on v cc rng buc v thi gian p ng. Ni chung, h iu hnh thi gian thc thng c phn thnh ba kiu li chnh l: I. Gii thiu 1. S cn thit ca RTOS v c im ca mt RTOS Do cc yu cu kht khe v thi gian, v vic s dng ti nguyn, v s quan trng ca vic lp lch, cc RTOS ng vai tr rt quan trng trong pht trin h nhng thi gian thc. Chng ging nh nhng th vin, chng ta c th dng, thm bt cc dch v cho ph hp vi ng dng nhng thi gian thc c th pht trin ng dng nhng thi gian thc mt cch nhanh hn, tin tng hn. V vy s tn ti ca cc RTOS l rt cn thit v quan trng. Trc khi xem xt cc dch v ca h iu hnh thi gian thc xc nh, ta cn bit nh th no c th nh gi y l h iu hnh thi gian thc tt, ph hp vi cc ng dng nhng thi gian thc ca ta. Theo FQA cho comp.realtime: Mt RTOS tt ch khi c mt nhn tt. Mt RTOS tt s c mt ti liu tt v c phn pht cng cc cng c tt pht trin v vn hnh ng dng ca chng ta. V vy, cc tnh ton v khong thi gian ngt v thi gian chuyn mch ng cnh l rt quan trng, cng vi cc thng s khc lm nn mt RTOS tt. Cho v d, mt RTOS h tr nhiu dch v c nhiu thun li hn mt RTOS n gin. Thm vo , c nhng c t chnh xc l rt quan trng nhn ra RTOS tt. Theo comp.realtime th cc nh sn xut RTOS nn ch r cc yu t: 1. Khong thi gian tr ngt - Interrupt Latency: l khong thi gian t lc ngt ti lc chy tc v. Khong thi gian ny phi tng thch vi cc i hi ca ng dng

v phi d on c. Cc gi tr ny ph thuc trn s lng ca cc ngt ng thi ch i. 2. Cho mi li gi h thng, thi gian ti a c bit trc. N s c th on v khng ph thuc vo s lng cc i tng trong h thng. 3. 4. Thi gian cc i ca RTOS v iu khin cc mt n ngt. Cc mc ngt h thng.

5. Trnh thit b iu khin cc ngt (IRQ: Interrupt ReQuest), thi gian cc i ca h thng m trnh thit b iu khin ngt thc hin. H iu hnh thi gian thc tng t nh mt h iu hnh a mc ch v cung cp cc chc nng nh:

+ Giao tip vi phn cng lp di

+ Lp lch v x l u tin

+ Qun l b nh

+ Cc dch v vo ra

+ H tr s la chn b vi x l

+ Tnh kh chuyn ti cc b vi x l khc

+ Tnh mm do ph hp vi cc yu cu ng dng khc nhau

+ H tr b a vi x l

+ M rng cc dch v nh h tr mng

Theo nhng tiu chun POSIX - Mt khuynh hng gip nhng nh thit k di chuyn t h iu hnh thi gian thc ny ti h iu hnh thi gian thc khc. c bit, bt c RTOS no tun theo chun POSIX u chia s mt chun API (giao din lp trnh ng dng). LynxOS l mt RTOS tun theo y chun POSIX. Mt RTOS thng c tnh mm do v c tnh cu trc. N cho php tch hp thm cc dch v gia tng theo vng trn ng tm. Vng trong cng hay nhn cung cp nhng c tnh quan trng nht ca h iu hnh thi gian thc. Cc c im khc c th c thm vo nh mt vng ngoi khi cn thit. Nhn nh ca mt RTOS thch hp cho mt ng dng b x l nh, trong khi nhng vng ngoi c th gip xy dng h thng thi gian thc ln. Cc RTOS thng cung cp cc mc x l u tin. Cc cng vic u tin cao hn s c thc hin trc. Cc RTOS thch hp vi cc yu cu ca h thng nhng. N cung cp khi ng t ROM, cho nhng h thng khng c bt c a lu tr no, nh vy gim mt cch ng k thi gian khi ng ca h thng. Mt vi v d ca cc h iu hnh thi gian thc l: VxWorks, QNX, LynxOS, COS, RTX-51 2. Phn loi h iu hnh thi gian thc

+ H iu hnh thi gian thc nh vi mc ch thng mi.

+ H iu hnh thi gian thc m rng ti UNIX v cc h iu hnh khc.

+ Cc nhn cho mc ch nghin cu. a. H iu hnh thi gian thc nh vi mc ch thng mi Cc h iu hnh ny thng nh v nhanh. Nh: QNX, PDOS, pSOS, VxWorks, Nulceus, ERCOS, EMERALDS, Windows CE, chng c cc c im sau: + C thi gian chuyn ng cnh v thi gian p ng nhanh. + Kch thc rt nh. + Khng c b nh o v c th c nh m, d liu trong b nh.

+ H thng a tc v v chun giao tip lin qu trnh. Cc mailbox, cc s kin, cc tn hiu v cc n bo c nh ngha tt. Nhng h iu hnh ny thng c cc c t tt v c cc cng c tt pht trin cc ng dng nhng thi gian thc. N h tr cc rng buc thi gian thc vi cc dch v nh: + Cc gii hn thi gian thc hin. + ng h thi gian thc. + Lp lch th t u tin.

+ Cnh bo c bit v thi gian qu hn (timeout). + H tr cc hng i thi gian thc. + Cung cp vic x l tr, treo hay kch hot vic thc hin.

b. H iu hnh thi gian thc m rng ti Unix v cc h iu hnh khc Cc h iu hnh ny nh: RT-UNIX, RT-LINUX, RT-MACH, RT-POSIX. Chng chm hn v c kh nng d on t hn so vi cc h iu hnh thi gian thc thng mi trn nhng chng li c nhiu chc nng v mi trng pht trin tt hn da trn tp cc giao tip chun v thn thin. c. Cc nhn cho mc ch nghin cu Cc h iu hnh ny c cc c im sau: + H tr cc thut ton lp lch thi gian thc v vic phn tch thi gian. + H tr cc dch v c bn ng b thi gian thc. + Nhn mnh kh nng d on hn l hiu nng trung bnh. + H tr cho kh nng chu li. V d nh: Spring, MARS, HARTOS, MARUTI, ARTS, CHAOS, DARK.

II. Cc dch v c bn 1. Tc v v cc trng thi tc v Xy dng cc khi c bn ca phn mm di RTOS l tc v - Task. Vic to ra cc tc v di RTOS l rt n gin. Mt tc v n gin ch l mt th tc con. Ti mt s im trong chng trnh, chng ta thc hin mt hoc nhiu li gi ti mt hm trong RTOS bt u cc tc v. Mi tc v trong RTOS lun lun mt trong ba trng thi chnh: 1. Running: Vi ngha b x l ang thc hin tc v. Vi mt b x l th chng ta ch chy mt tc v ti mt thi im nht nh. 2. Ready: Vi ngha mt s tc v khc sn sng chy nu b x l ri. 3. Blocked: Vi ngha tc v khng sn sng chy k c khi b x l trong trng thi ngh - Idle. Tc v trong trng thi ny v chng i mt s kin bn ngoi tc ng kch hot n tr li trng thi sn sng. 2. B lp lch Mt phn ca RTOS c gi l b lp lch, lu vt cc trng thi ca mi tc v v quyt nh mt tc v duy nht s i vo trng thi Running. Khng ging nh b lp lch trong Windows hay UNIX, b lp lch trong hu ht cc RTOS l kh n gin: Chng nhn vo mc u tin c gn ti mi tc v v gia nhng tc v ang sn sng mt tc v c mc u tin cao nht s c thc hin. B lp lch s phc v tc v no c mc u tin cao hn trong khi cc tc v u tin thp hn s i cho n khi gii phng b x l khi tc v u tin cao hn. B lp lch gip chng ta bit tc v no phi lm trc khi chng ta thit lp th t u tin.

b lp lch bit c tc v no kho v sn sng th RTOS cung cp mt tp cc hm m tc v c th gi b lp lch nhn bit c cc s kin m cc tc v ny ang i tn hiu s kin xy ra .

Nu tt c tc v u b kho, khng th ch c tn hiu no lm cho cc tc v tr li trng thi sn sng bn trong hay bn ngoi RTOS th ta ni rng h thng ca chng ta b hng, phn mm chng ta thit k b li. Nu hai tc v cng mc u tin sn sng, th n ph thuc vo cch x l ca RTOS m chng ta s dng. t nht mt h thng gii quyt vn ny l vic khng bao gi cho php hai tc v c cng mc u tin, mt s khc s dng phn chia thi gian (time-slice) gia cc tc v , mt s khc li chy mt tc v bt k cho n khi n b kho. Nu mt tc v ang chy, c mt tc v khc u tin cao hn c kch hot th RTOS s dng tc v ang chy v s chy tc v u tin cao hn kia. Tc v c mc u tin thp hn s kho. 3. Tc v v d liu Mi tc v c mt ng cnh ring, bao gm gi tr thanh ghi, b m chng trnh v mt stack. Tt c nhng d liu khc c chia s gia cc tc v. Khi chng ta s dng bin chia s d liu gia cc tc v, iu rt d dng chuyn d liu t tc v ny ti tc v khc: hai tc v cn phi truy nhp ti cng bin. Tuy nhin, vn chia s d liu rt d dn ti vic khng nht qun trong chng trnh v c th gy sp h thng ca chng ta, v vy cn c cc bin php trong RTOS gii quyt vn ny. 4. n bo v chia s d liu (Semaphore) Semaphore c th gii quyt vn trong chia s d liu. Khi ch c mt tc v c th nm quyn s dng n bo ti mt thi im. Cc tc v khc d c u tin cao hn vn phi ch n khi gii phng n bo v vy m n bo c th ngn chn vic chia s d liu dn n li. n bo c hai hm lin quan l take v release. Hm take nm ly quyn s dng n bo ti thi gian v hm release l hm gii phng n bo sau khi s dng xong. Chng ta c th s dng n bo nh tn hiu giao tip gia cc tc v vi nhau hoc gia hm ngt v tc v. Tuy n bo khng th gii quyt mi vn v chia s d liu nhng h thng ca chng ta c th lm vic tt hn, t thi gian hn khi chng ta s dng n bo. Vn y l n bo ch lm vic tt khi chng ta s dng chng ng n. Nhng trong thc t th chng ta gp phi mt s vn nh: Qun ly quyn s dng n bo trc khi s dng. Qun gii phng n bo khi s dng xong, iu c th gy ra treo chng trnh ca chng ta. Nm ly quyn s dng n bo li. Nu chng ta ang s dng nhiu n bo, th vic ly quyn s dng n bo cn ph thuc vo cc n bo khc, i khi chng ta qun nn gy ra li rt ln. Gi mt n bo trong thi gian qu lu. Vn ny c th vi phm thi gian p ng trong h thng nhng thi gian thc ca chng ta.

Mt vn c gi l th t u tin o ngc (Priority Inversion), nu tc v C c mc u tin thp ang gi n bo v phi nhng quyn s dng b x l cho tc v B c quyn u tin trung bnh. V mt tc v c quyn u tin cao l A mun s dng n bo m C ang nm gi, nhng C khng th gii phng cho n khi n chim quyn s dng b x l. Mt s RTOS gii quyt vn ny bng cch k tha mc u tin, chng tm thi nng mc u tin tc v C chy v gii phng n bo cho tc v A. III. Cc dch v m rng ca RTOS thng mi 1. Message Queues, Mailboxes v Piles a. Hng i - Queue Cc tc v phi c kh nng giao tip vi nhau kt hp cc hot ng v chia s d liu. Hu ht RTOS kt hp ca mt s dch v nh: hng cc i thng ip, cc mailboxe, cc pipe cho mc ch ny. Tnh nng xc nh ca cc dch v ny ph thuc vo RTOS, chng ta phi c hng dn m RTOS a ra. Hu ht RTOS yu cu chng ta phi khi to hng i trc khi chng ta s dng chng bng vic gi hm cung cp cho mc ch ny. Mt s h thng cho php chng ta cp pht b nh m RTOS s qun l nh mt hng i. Hu ht cc RTOS cho php ta s dng nhiu hng i nu chng ta mun. Chng ta thm mt s thng s nh danh hng i v t chng ta c th c, ghi vo hng i . Nu chng ta c ghi vo hng i khi n y, RTOS s tr li mt thng bo li chng ta bit hot ng b hng hoc l hot ng phi b kho cho n khi c mt tc v c d liu khi hng i. Rt nhiu RTOS s dng mt hm c t mt hng i nu c d liu trong hng i v s tr ra mt li nu hng i rng. V hm ny s trng thi kho (block) nu hng i rng. S byte d liu m RTOS ghi vo hng i trong mt li gi c th khng chnh xc vi s byte d liu chng ta mun ghi. Rt nhiu RTOS khng mm do v vn ny nhng c mt s RTOS cho php chng ta ghi ln mt hng i trong mt ln gi s lng byte mang n bng mt con tr hm. b. Mailbox Ni chung, mailbox l ging hng i. Mc nh RTOS c cc hm to, c v ghi vo mailbox v c l cc hm ny s kim tra xem mailbox c cha c hay khng bt k mt thng ip no. Khi mailbox khng cn thit na th n s c hu gii phng b nh. Trong cc RTOS th mailbox c nhng c im ring: + Mt s RTOS cho php chnh xc s lng thng ip trong mi mailbox, con s ny chng ta c th chn khi to mailbox, mt s khc th ch cho php mt thng ip trong mt mailbox ti mt thi im. Mt thng ip c ghi ti mailbox, mailbox s y khi cc thng ip khc ch c th ghi ti mailbox khi thng ip u c c. + Trong mt s RTOS, s lng ca thng ip trong mi mailbox l khng b gii hn. Ch c mt gii hn l tng s thng ip trong tt c cc mailbox trong h thng.

+ Trong mt s RTOS, chng ta c th u tin cc thng ip trong mailbox. Cc thng ip u tin cao hn s c c trc cc thng ip c u tin thp hn, khng ph thuc vo th t chng c ghi vo mailbox. c. Pipe Cc pipe cng rt ging hng i. RTOS c th to chng, ghi ln chng, c t chng Nhng trong mi RTOS chng cng c nhng c im ring: + Mt s RTOS cho php chng ta ghi thng ip vi di tu ln trn pipe (khng ging nh mailbox v queue di thng ip l c nh). + Pipe trong mt s RTOS l ton b hng byte: Nu task A ghi 11 byte ti pipe v sau task B ghi 19 byte ti pipe, sau nu task C c 14 byte t pipe, n s nhn c 11 byte ca task A ghi cng vi 3 byte u tin m task B ghi. + Mt s RTOS s dng hm th vin chun C l fread v fwrite c v ghi ti pipe. d. S dng queue, mailbox, pipe Mc d queue, mailbox, pipe c th lm vn chia s d liu gia cc tc v tr ln d dng hn nhng n cng rt d gy ra li trong h thng ca chng ta. y l mt s kinh nghim khi s dng chng: + Hu ht RTOS khng gii hn tc v no c th c, ghi vo queue, mailbox, pipe v vy chng ta phi m bo rng cc tc v c s dng l chnh xc ti mi thi im. + RTOS khng m bo rng d liu c ghi vo trong queue, mailbox, pipe s ng vi tc v c n. V d mt tc v ghi vo mt s nguyn v tc v khc c v coi n mt con tr. + Chy ra ngoi khng gian queue, mailbox hoc pipe s gy ra mt s ph hu trong phn mm nhng. + Chuyn con tr t mt tc v ny ti tc v khc thng qua mt queue, mailbox hoc pipe l cch to ra chia s d liu. Chng ta trnh dng hm malloc v free. 2. Chc nng b nh thi (Timer Functions)

Hu ht cc RTOS u duy tr nhp p ca b nh thi. B nh thi ny ngt mt cch nh k v c s dng cho cc dch v thi gian ca RTOS. Khong thi gian gia cc ngt c gi l mt n v thi gian ca h thng (System Tick). Hu ht cc RTOS thng s dng dch v thi gian : + Mt tc v c th kho chnh bn thn n sau mt s n v thi gian xc nh. + Mt tc v s b gii hn bao nhiu n v thi gian ca h thng khi n i mt n bo, hng i... + Chng trnh ca chng ta c th iu khin RTOS gi mt hm xc nh sau mt s n v thi gian ca h thng.

3. Cc s kin - Event Mt dch v khc ca RTOS a ra l qun l cc s kin bn trong h thng. Mi s kin c bn l mt c boolean m cc tc v c th thit lp, thit lp li v c th c cc tc v khc nhau cng i n. Mt s c im ca s kin trong cc RTOS l: + Nhiu hn mt tc v c th cng b kho i cho mt s kin, RTOS s gii phng tt c chng v thc hin chng theo th t u tin khi s kin xy ra. + RTOS mc nh hnh thnh mt nhm cc s kin v cc tc v i cho bt k tp con no ca nhm s kin xy ra. + Cc h iu hnh thi gian thc khc nhau a ra cc cch khc nhau thit lp li mt s kin sau khi n xy ra v cc tc v i s kin s c gii phng. Mt s RTOS thit lp li cc s kin mt cch t ng, mt s khc i hi cc tc v phn mm ca chng ta phi t lm. Chng ta s dng cc queue, mailbox, pipe, semaphore, v cc s kin cho vic giao tip gia 2 tc v hoc gia mt ngt v mt tc v. Nhng chng c mt s c im ring: + Semaphore l phng thc nhanh nht v n gin nht. Tuy nhin, khng nhiu thng tin c th thng qua mt semaphore. Ch mt bit thng ip c chuyn thng bo semaphore c gii phng. + S kin l t phc tp hn semaphore nhng li tiu tn nhiu thi gian b x l hn semaphore. S dng cc s kin thun li hn semaphore ch: mt tc v i mt hay nhiu s kin trong cng thi gian trong khi n ch i mt semaphore. + Hng i cho php chng ta gi mt s lng ln thng tin t tc v ny ti tc v khc. Cho d tc v ch i trn mt hng i ti mt thi im nhng s tht l chng cho php chng ta c th gi d liu thng qua mt hng i lm n linh hot hn mt s kin. S bt li l khi c v ghi thng ip s chim nhiu thi gian b x l v rt d mc phi li trong chng trnh ca chng ta. Mailboxe v pipe c cng c im vi queue.

4. Cc hm ngt trong mi trng RTOS Cc hm ngt trong hu ht cc mi trng RTOS phi tun theo hai quy tc, iu ny khng p dng cho m ca tc v: Quy tc 1: Mt hm ngt khng c gi bt k hm RTOS no m nhng hm c th kho li gi. Bi vy th tc ngt khng s dng n bo, khng c t cc hng i hoc mailbox khi cc hng i v mailbox rng, khng i cc s kin... Nu hm ngt gi mt hm RTOS v b kho, th tc v ang chy khi ngt xy ra s mi b kho, thm ch tc v ny c quyn u tin cao nht. Ngoi ra, hu ht cc hm ngt phi chy hon thnh vic thit lp li phn cng sn sng cho ngt tip theo. Quy tc 2: Mt hm ngt c th khng gi bt k hm RTOS no nhng hm c th gy ra cho RTOS chuyn ti chy cc tc v tr khi RTOS bit l mt hm ngt v khng l mt tc v trong lc ang thc hin hm ngt. Nu th tc ngt ph v quy tc ny th RTOS c th chuyn vic iu khin t hm ngt ti chy mt tc v khc, v hm ngt c th khng hon

thnh sau mt thi gian di, v vy kho tt c cc ngt c mc u tin thp hn v c th l tt c cc ngt khc.

H IU HNH THI GIAN THC CHO CC H THNG NHNG (Tip theo) 06/10/2008 IV. Thit k h thng nhng thi gian thc Vic thit k mt h thng thi gian thc l kh khn hn ng dng trn desktop. Chng ta phi tr li cc cu hi: H thng phi lm g? V thi hn hon thnh x l l bao lu? Chng ta phi bit h thng phi hot ng trong bao lu v bit cc gii hn tiu chun ca n. Nu gii hn l cng nhc th h thng ca chng ta l h thng thi gian thc cng, trong trng hp ngc li n l h thng thi gian thc mm. Chng ta cng phi bit phn cng no chng ta s dng v tc ca n nh th no (tc b vi x l, b nh, thanh ghi...). Vic thit k phn mm ni chung nh: cu trc, module ho, ng gi, v kh nng bo tr vn c p dng trong thit k h nhng. Trong nhiu phn mm nhng, s kin gy ra cc ngt sau pht tn hiu kch hot tc v thc hin. H thng s khng lm g khi khng c ngt, tc v s b kho tr khi c s kin kch hot chng. V hm ngt ngn l tt hn v hm ngt c u tin hn cc tc v. Chng ta nn s dng t tc v nht c th v nhiu tc v s gia tng vic c nhiu li, tiu tn nhiu thi gian b vi x l trong RTOS v cn nhiu khng gian b nh. Cc x l c mc u tin khc nhau phi trong cc tc v khc nhau. Mt tc v c cu trc tt l mt tc v b kho, i mt thng ip v ch ra cc cng vic tip theo phi thc hin. Cc tc v thng xuyn c cu trc nh cc my trng thi. Khng nn to ra v hu cc tc v khi h thng ang chy. Nn to ra tt c tc v khi h thng bt u. Chc chn khi chng ta thc s cn phn chia thi gian. Gii hn danh sch cc hm trong RTOS cho php chng ta xy dng h thng nh hn bng vic xy dng mt v xung quanh nhn RTOS v c th to m linh ng hn. Chng ta nn ng gi vic s dng n bo, hng i... trong mt module, vic giao tip gia cc module c thc hin bng mt li gi hm. Phi m bo rng mt h thng thi gian thc cng c cc gii hn ca n, phi d on c cc tc v trong trng hp thc hin ti nht.

Chng ta phi tit kim khng gian m trong h thng bng vic cu hnh RTOS chnh xc, bng vic gii hn s hm th vin C v bng vic kim tra u ra ca b bin dch C hoc c th chng ta vit m trong ngn ng Assemply thay v vit trong ngn ng C.

V. Gii thiu mt s h iu hnh thi gian thc 1. RTX51-Real Time Operating System RTX51 l mt h iu hnh thi gian thc a tc v cho h vi iu khin 8051. RTX51 l mt h thng n gin c thit k cho cc phn mm c phc tp v c gii hn chnh xc v thi gian p ng. RTX51 c cc cng c rt mnh qun l cc tc v. C hai phin bn ca RTX51: RTX51 Full cho php thc hin c chuyn mch xoay vng v chuyn tc v vi 4 mc u tin, c th hot ng cng vi cc hm ngt mt cch song song. RTX51 chuyn cc tn hiu, chuyn cc thng ip s dng mt h thng mailbox v cc semaphore. Hm os_wait ca RTX51 c th i cho cc s kin: ngt, timeout, thng ip t tc v hoc ngt, semaphore. RTX51 Tiny l mt tp con ca RTX51 Full. RTX51 Tiny d dng chy trn mt chip khng c b nh d liu ngoi. Tuy nhin chng trnh s dng RTX51 Tiny c th truy nhp s dng b nh ngoi. RTX51 Tiny cho php chuyn mch xoay vng gia cc tc v, h tr chuyn cc thng ip v c th hot ng cng vi cc hm ngt mt cch song song. Hm os_wait ca RTX51 c th i cho cc s kin: timeout, tn hiu t tc v hoc ngt.

2. ARTX-Advanced Real Time Operating System ARTX Kernel l mt h iu hnh thi gian thc n cho php chng ta to ng dng m ng dng ny c th ng thi thc hin nhiu tc v. iu ny thng xuyn i hi trong cc ng dng nhng thi gian thc. ARTX Kernel s dng lp lch linh ng cc ngun d liu ca h thng nh CPU v b nh a ra mt s cch giao tip gia cc tc v. ARTX Kernel l mt RTOS tt, d dng s dng v lm vic cng vi tt c cc vi iu khin h ARM. H iu hnh ARTX c vit bng vic s dng cc hm chun v b bin dich C cng vi b bin dch Keil CARM. Thm vo , ngn ng C cho php chng ta khai bo cc tc v d dng m khng cn s dng cc stack phc tp v s a dng trong cu hnh.

3. C/OS C/OS l nhn mt h iu hnh thi gian thc do J. Labrosse xy dng. N l nhn h iu hnh thi gian thc c tnh kh chuyn cao, mm do, c tnh nng u tin, thi gian thc v a tc v. C/OS h tr cc tnh nng sau: + B lp lch + Truyn thng ip

+ ng b v chia s d liu gia cc tc v + Qun l b nh + Cc thit b vo ra + H thng file + Mng C/OS h tr nhiu b vi x l v rt gn nh s dng cho nhiu h thng nhng. Phin bn C/OS-II tng cng thm kh nng t tn ti mi i tng ca nhn. c bit vi phin bn V2.6, chng ta c th gn tn ti mt tc v, n bo, mailbox, hng i, mt nhm s kin hay mt vng b nh. Do , b pht hin li c th hin th tn ca nhng i tng , v cho php chng ta nhanh chng xem thng tin v nhng i tng. Ngoi ra, V2.6 cho php b sa li c thng tin cu hnh ca mt ng dng v hiu th nhng thng tin .

4. QNX Neutrino QNX Neutrino l chun mc cho cc ng dng nhng thi gian thc. N c th co gin ti mt kch thc rt nh v cung cp nhiu tc v hot ng ng thi, cc tin trnh, iu khin lp lch th t u tin v chuyn ng cnh nhanh tt c cc thnh phn c bn ca mt ng dng nhng thi gian thc. Hn na, nh cung cp OS tng thch vi chun thi gian thc POSIXstandard API. QNX Neutrino l rt mm do. Ngi pht trin c th d dng tu bin OS cho ph hp vi ng dng ca mnh. T mt cu hnh c bn nht ca mt nhn nh (microkernel) cng vi mt vi module nh ti mt h thng c trang b pht trin mng din rng phc v hng trm ngi dng. QNX Neutrino t c mc chuyn mn ho v tnh hiu qu, tnh module ho v tnh n gin vi hai yu t c bn sau: + Kin trc microkernel + Giao tip lin qu trnh da trn thng ip

a. Kin trc microkernel Ti tng thp nht, microkernel cha ng mt vi i tng c bn v cc hm thao tc vi chng. OS l c xy dng t cc i tng c bn ny. Mt s nh pht trin cho rng microkernel nn c thc thi hon ton trong m assembly cho l do kch thc v hiu nng. Nhng, vic thc thi ca QNX da ch yu vo m C. Cc mc tiu kch thc v hiu nng t c thng qua vic tinh lc cc thut ton v cu trc d liu hn l vic ti u thng qua mc vit m bng assembly.

QNX Neutrino microkernel c nhn h tr cc dch v sau: 1. Cc tin trnh

2. 3. 4. 5. 6. 7. 8.

Truyn thng ip Cc tn hiu Cc ng h Cc b nh thi iu khin cc ngt Cc n bo Cc kho loi tr ln nhau (mutexes)

Vng i ca tin trnh S lng cc tin trnh trong mt x l c th rt a dng, cng vi cc tin trnh l c to v c hu mt cch t ng. Vic to tin trnh (pthread_create()) lin quan ti vic cp pht v khi to ngun d liu cn thit bn trong khng gian a ch ca x l (v d: thread stack) v vic bt u thc hin ca tin trnh ti mt s hm trong khng gian a ch. Chm dt tin trnh (pthread_exit(), pthread_cancel()) lin quan ti vic dng tin trnh v phc hi li ngun d liu ca tin trnh. Khi mt tin trnh thc hin, trng thi ca n ni chung c th c m t nh l mt trong hai trng thi "ready" hoc "blocked." - CONDVAR: Tin trnh b kho trn mt bin iu kin (v d: n c gi bi hm pthread_condvar_wait()). DEAD: Tin trnh chm dt v ang i c ghp cng mt tin trnh khc. - INTERRUPT: Tin trnh b kho v i cho mt ngt (v d: n c gi bi hm InterruptWait()). - JOIN: Tin trnh b kho i ghp vi mt tin trnh khc (v d: n c gi bi hm pthread_join()). - MUTEX: Tin trnh b kho trn mt kho loi tr ln nhau (v d: n c gi bi hm pthread_mutex_lock()). - NANOSLEEP: Tin trnh ang ng cho mt khong thi gian ngn (v d: n c gi bi hm nanosleep()). - NET_REPLY: Tin trnh ang i cho s p li ti vic phn pht qua mng (v d: n c gi bi hm MsgReply*()). - NET_SEND: Tin trnh ang i cho mt xung hoc tn hiu ti vic phn pht qua mng (v d: n c gi bi hm MsgSendPulse(), MsgDeliverEvent(), hoc SignalKill()). - READY: Tin trnh ang i cho c thc hin trong khi b x l thc hin mt tin trnh khc c mc u tin cao hn hoc bng tin trnh . - RECEIVE: Tin trnh b kho i nhn c mt thng ip (v d: n c gi bi hm MsgReceive()). - REPLY: Tin trnh b kho i mt thng ip p li (v d: n c gi bi hm MsgSend() v server nhn c thng ip ). RUNNING: Tin trnh ang c thc hin bi b x l.

- SEM: Tin trnh ang i cho mt n bo gii phng (v d: n c gi bi hm SyncSemWait()). - SEND: Tin trnh l b kho ch thng ip gi (v d: n c gi bi hm MsgSend() nhng server cha nhn c thng ip). - SIGSUSPEND: Tin trnh b kho i cho mt tn hiu (v d: n c gi bi hm sigsuspend()). - SIGWAITINFO: Tin trnh b kho i cho mt tn hiu (v d: n c gi bi hm sigwaitinfo()). STACK: Tin trnh ang i cho mt khng gian a ch o c cp pht cho stack ca tin trnh . STOPPED: Tin trnh b kho i cho tn hiu SIGCONT. WAITCTX: Tin trnh ang i cho khng phi mt s nguyn (v d: du phy ng) tr thnh c gi tr cho vic s dng. WAITPAGE: Tin trnh ang i cho mt khng gian b nh o c cp pht. WAITTHREAD: Tin trnh ang i cho mt tin trnh con kt thc c to bi chnh n (v d: n c gi bi hm ThreadCreate()). b. Giao tip lin qu trnh da trn vic truyn thng ip QNX l h iu hnh thng mi u tin s dng truyn thng ip lin qu trnh. Trong QNX Neutrino, mt thng ip l mt gi cc byte c truyn i t tin trnh ny n tin trnh khc. QNX cung cp chc nng ng b truyn thng ip t mt tin trnh ti tin trnh khc. Tin trnh phi thay i trng thi ca n khi truyn, nhn v p li thng ip. Bit c trng thi ca chng v th t u tin ca chng, microkerel c th lp lch tt c cc thng ip. Cc thut ton lp lch: QNX Neutrino cung cp cc thut ton lp lch sau: * Vo trc ra trc (FIFO) * Xoay vng (round-robin) * Lp lch ri rc (sporadic) Kt lun: Trong bi ny chng ta tm hiu cc dch v c bn nht ca mt nhn h iu hnh thi gian thc ni chung. Cc h iu hnh thng mi thng c cc dch v khc nh qun l file, qun l thit b, qun l mng V thng thng chng cho php cu hnh vic s dng cc dch v ca chng tu theo ng dng nhng ca chng ta.

You might also like