VxWorks信号量是提供任务间通信、同步和互斥的最优选择,提供任务间最快速的通信。也是提供任务间同步和互斥的主要手段。VxWorks提供3种信号量来解决不同的问题。
二进制信号量:最快的最常用的信号量,可用于同步或互斥。
互斥信号量:为了解决内在的互斥问题如优先级继承、删除安全和递归等情况而最优化的特殊的二进制信号量。
计数信号量:类似于二进制信号量,但是随信号量释放的次数改变而改变。
二进制信号量
二进制信号量能够满足任务间的互斥和同步,需要的系统开销最小,因此也称快速信号量。二进制信号量可以看成一个标志,对应资源是可用还是不可用。当一个任务调用semTake ()请求一个信号量时,如果此时信号量可用,信号量会被清零,并且任务立即继续执行;如果信号量不可用,任务会被阻塞来等待信号量。
当一个任务调用semGive ()释放一个二进制信号量时。如果信号量已经可用,释放信号量不会产生任何影响;如果信号量不可用并且没有任务等待使用该信号量,信号量只是被简单地置为可用;如果信号量不可用并且有一个或多个任务等待该信号量,最高优先级的任务被解阻塞,信号量仍为不可用。
互斥
当两个以上的任务共享使用同一块内存缓冲区或同一个I/O设备之类的资源时,可能会发生竞争状态。
二进制信号量可以通过对共享资源上锁,实现高效的互斥访问,不象禁止中断或禁止抢占,二进制信号量将互斥仅仅限于对与之联系的资源的访问,并且比禁止中断和禁止抢占提供更精确的互斥粒度。使用时创建用于保护资源的二进制信号量,初始时信号量可用。
当任务需要访问这个资源时,首先取得这个信号量,所有其它想要访问这个资源的任务将被阻塞。当任务完成了对该资源的访问时,释放该信号量,允许其他任务使用该资源。因此所有对一个需要互斥访问资源的操作由semTake ()和semGive ()对一起来实现。
semTake(semMutex,WAIT FOREVER)
临界区,某一时刻仅被一个任务访问
semGive (semMutex)
同步
信号量另一种通常的用法是用于任务间的同步机制。在这种情况下,信号量代表一个任务所等待的条件或事件。最初,信号量是不可用的。一个任务或中断处理程序释放该信号量来通知这个事件的发生。等待该信号量的任务将被阻塞直到事件发生、该信号量可用。一旦被解阻塞,任务就执行恰当的事件处理程序。信号量在任务同步中的应用对于将中断服务程序从冗长的事件处理中解放出来以缩短中断响应时间是很有用的。
互斥信号量
互斥信号量是一种特殊的二进制信号量,用于解决具有内在的互斥问题:优先级继承、删除安全和对资源的递归访问等情况。
对于一般的操作系统,一般互斥信号量就是二值信号靓量,但VxWoks中有非同寻常的意义。另外一个典型就是,Linux内核也单独设立了互斥信号量。
互斥信号量与二进制不同点在于:
①定义一个互斥信号量时,其已经初始化完毕为可用,它仅用于互斥;
②仅能由取(semTake ())它的任务释放,即由同一个任务申请然后使用完毕后释放;
③因为semTake和semGive是成对出现的,因此不能在ISR 中释放(semGive ())。
优先级继承
优先级倒置发生在一个高优先级的任务被迫等待一段不确定时间,等待一个低优先级任务完成。VxWorks允许使用优先级继承算法,在互斥信号量中使用选项SEM-INVERSION-SAFE ,将使能优先级继承算法,优先级继承协议确保拥有资源的任务以阻塞在该资源上的所有任务中优先级最高的任务的优先级执行,直到它释放所拥有的所有信号量,然后该任务返回到正常状态。因此这个“继承的高优先级”任务受到不会被任何中间优先级任务抢占的保护。
删除安全
另一个互斥问题涉及到任务删除。在一个受信号量保护的临界区,经常需要保护在临界区执行的任务不会被意外地删除。删除一个在临界区执行的任务可能引起意想不到的后果,造成保护资源的信号量不可用,可能导致资源处于破坏状态,也就导致了其他要访问该资源的所有任务无法得到满足。
原语taskSafe()和taskUnsafe ()提供了防止任务被意外删除的一种方法。同时互斥信号量提供了选项SEM-DELETE-SAFE ,使用这个选项,每次调用semTake ( )时隐含地使能了taskSafe(),当每次调用semGive ()时隐含地使能了taskUnsafe ()这种方式,任务得到信号量时得到不会被删除的保护。
递归资源访问
互斥信号量能够被递归地获得。这意味着信号量能够被一个拥有该信号量的任务在该信号量最终被释放之前多次获取。递归对于满足一些子程序即要求能够相互调用但是也要求互斥访问一个资源非常有用。这种情形是可能的,因为系统需要跟踪哪一个任务当前拥有信号量。
计数器信号量
计数器信号量是实现任务同步和互斥的另一种手段,在具体实现上有点差异。计数器信号量除了像二进制信号量那样工作外,还保持对信号量释放次数的跟踪。与二进制信号量不同的时,计数型信号量每次释放,计数器加一;每次获取,计数器减一,当信号量减到0 时,试图获取该信号量的任务被阻塞。
正如二进制信号量,当计数信号量释放时,如果有任务阻塞在该信号量阻塞队列上,那么任务解除阻塞;但是如果信号量释放时,没有任务阻塞在该信号量阻塞队列上,那么计数器加一。
结 论
通过对嵌入式操作系统VxWorks的多任务之间的通信机制的分析可以看出,信号量在实现多任务间的通信、同步和互斥中发挥着重要的作用。因此,深入理解和正确使用VxWorks的信号量,可以提高实时系统中多任务间通信的效率
英文单词在某种意义上来说,是跟汉字一样有偏旁部首的,更确切地说是由各个部分组成的。这里的各个部分,就是英文词根。 词根(roots)是一个词最根本、最核心且不能加以分析的部分。词干(stems) 是加后缀之前词根的变形。 编辑本段词根的基本特点 (1)英语中某些来自外族语的词根或词干只见于科技词汇; (2)一个词根通常会含有多个含义。这些含义,大多为原始含义的引申义。引申方式多种多样,有的扩大,有的缩小,有的扬升,有的贬降,有的甚至为比喻义,但大多数为平行义(类似近义词); (3)有一些词根可以单独构成单词,即它本身就是一个单词,有时称这种词根为根词。如:-fact-、-man-、-act-、-work-等; (4)有时表示同一含义且来源不同的外来词根(或词干) 分别用于不同的文体。如:表示“心”的拉丁语词根(或词干) -cor- (-cordis-),多用来 构成常用词;而来源希腊语词根(或词干) -cardio- (-cardia-),多用来构成科技词汇; (5)词根大部分是单音节的,只有一小部分是多音节的; (6)词根的含义或词根所决定的字面含义,总在一定程度上表现在单词词义中,且或明或暗地反映出单词的基本意义。 编辑本段学习英文字根的意义 (1)帮助我们分析单词的结构,加强对单词的记忆,从而更科学、更快速的记忆单词,大面积地提升词汇量; (2)帮助我们正确地理解单词词义,更好地使用这些单词; (3)还能帮助我们理解单词的读音规则,减少发音上的盲目性。 编辑本段举例 例如autobiography这个单词,是由auto+bio+graphy这3部分(词源都是希腊文)组成的,意思分别为self(自己)、life(生活)、write(写),“写自己的生活”,引申为“自传”的意思。其中auto也算是前缀。 再比如representative,re是“回来”的意思,pre也是一个偏旁部首,是“向前”的意思。sent是“发出去,派出去”的意思,a是偏旁部首之间的连接词,tive是“人”的意思。然后把他们连起来,就是“回来-向前-派出去-的人”就是“回来又被派出去替大家讲话的人”即代表。 编辑本段英语字根总览(共252个) 1,ag=do,act 做,动 2,agri=field 田地,农田(agri也做agro,agr) 3,ann=year年 4,audi=hear听 5,bell=war战争 6,brev=short短 7,ced,ceed,cess=go行走 8,cept=take拿取 9,cid,cis=cut,kill切,杀 10,circ=ring环,圈 11,claim,clam=cry,shout喊叫 12,clar=clear清楚,明白 13,clud=close,shut关闭 14,cogn=known知道 15,cord=heart心 16,corpor=body体 17,cred=believe,trust相信,信任 18,cruc=cross 十字 19,cur=care关心 20,cur,curs,cour,cours=run跑 21,dent=tooth牙齿 22,di=day 日 23,dict=say说 24,dit=give给 25,don=give给 26,du=two二 27,duc,duct=lead引导 28,ed=eat吃 29,equ=equal等,均,平 30,ev=age年龄,寿命,时代,时期 31,fact=do,make做,作 32,fer=bring,carry带拿 33,flor=flower花 34,flu=flow流 35,fus=pour灌,流,倾泄 36,grad=step,go,grade步,走,级 37,gram=write,draw写,画,文字,图形 38,graph=write,records写,画,记录器,图像 39,gress=go,walk 行走 40,habit=dwell居住 41,hibit=hold拿,持 42,hospit=guest客人 43,idio=peculiar,own,private,proper特殊的,个人的,专有的 44,insul=island岛 45,it=go行走 46,ject=throw投掷 47,juven=young年轻,年少 48,lect=choose,gather选,收 49,lev=raise举,升 50,liber=free自由 51,lingu=language语言 52,liter=letter文字,字母 53,loc=place地方 54,log=speak言,说 55,loqu=speak言,说 56,lun=moon月亮 57,man=dwell,stay居住,停留 58,manu=hand手 59,mar=sea海 60,medi=middle中间 61,memor=memory记忆 62,merg=dip,sink 沉,没 63,migr=remove,move迁移 64,milit=soldier兵 65,mini=small,little小 66,mir=wonder惊奇 67,miss=send 投,送,发(miss也作mit) 68,mob=move动 69,mort=death死 70,mot=move移动,动 71,nomin=name名 72,nov=new新 73,numer=number 数 74,onym=name 名 75,oper=work工作 76,ori=rise升起 77,paci=peace和平,平静 78,pel=push,drive推,逐,驱 79,pend ,pens=hang悬挂/weigh称量/pay支出,付钱,花费 80,pet=seek追求 81,phon=sound声音 82,pict=paint画,描绘 83,plen=full满,全 84,plic=fold折,重叠 85,pon=put放置 86,popul=people人民 87,port=carry拿,带,运 88,pos=put放置 89,preci=price价值 90,punct=point,prick点,刺 91,pur=pure清,纯,净 92,rect=right,straight正,直 93,rupt=break破 94,sal=salt盐 95,scend,scens=climb爬,攀 96,sci=know知 97,sec,sequ=follow跟随 98,sect=cut切割 99,sent,sens=feel感觉 100,sid=sit坐 101,sist=stand站立 102,son=sound声音 103,spect=look看 104,spir=breathe呼吸 105,tail=cut切割 106,tain,ten,tin=hold握,持,守 107,tect=cover掩盖 108,tele=far远 109,tempor=time时 110,tend(tens,tent)=stretch伸 111,terr=land,earth土地,陆地 112,text=weave纺织 113,tract=draw拉,抽,引 114,un=one一 115,urb=city城市 116,vac,vacu=empty空 117,vad,vas=walk,go行走 118,vari=change变化 119,ven=come来 120,vert,vers=turn转 121,vi,via=way道路 122,vis,vid=see看 123,vit=life生命 124,viv=live活 第二部分,多认词根,多识单词。 125,aer(o)空气,空中,航空 126,alt高 127,am爱 128,ambul行走 129,anim生命,活,心神,意见 130,anthrop(o)人,人类 131,aqu水 132,arch统治者,首脑archy 统治 133,avi鸟 134,bat打 135,biblio书 136,birg战斗,打 137,cad,cas降落,降临 138,cert 确定,确信 139,chron时 140,cid降落,降临 141,clin倾 142,co**(o)世界,宇宙 143,cracy统治crat支持 144,cub躺,卧 145,cult耕,培养 146,cycl(o)圈,环,轮 147,dem(o)人民 148,dexter右 149,doc教 150,dom屋,家 151,dorm睡眠 152,drom跑 153,ego我 154,err漫游,走,行 155,fabl,fabul 言 156,feder联盟 157,ferv沸,热 158,fict,fig塑造,虚构 159,fid信任 160,fil线 161,flat 吹 162,flect,flex弯曲 163,flict打击 164,frag,fract破,折 165,frig冷 166,fug逃,散 167,fund,found底,基础 168,gam婚姻 169,gram谷物,谷粒 170,grav重 171,greg群,集合 172,gyn,gynce(o)妇女 173,hal呼吸 174,helic(o)螺旋 175,hes,her粘着 176,ign火 177,integr整,全 178,junct连接,连结 179,later边 180,leg读 181,leg,legis法 182,luc光 183,lumin光 184,magn(i)大 185,matr(i),metro母 186,mega大 187,mens测量 188,ment心,神,智,思,意 189,min伸出,突出 190,misc混合,混杂 191,mis(o)恨,厌恶 192,mon告诫,提醒 193,mon单独,一个 194,mur墙 195,mut变换 196,nat诞生 197,nav船 198,nect,nex结,系 199,negr,nigr黑 200,nihil无 201,noc,nox伤害 202,noct(i)夜 203,norm规范,正规,正常 204,nutri营养 205,orn装饰 206,par生,产 207,parl说,谈 208,past喂,食 209,path(o),pathy疾病,疗法 210,patr(i)父,祖 211,ped脚,足 212,ped儿童,小孩 213,petr(o)石 214,phag吃 215,phil(o)爱 216,phob(ia)怕 217,plex重叠,重 218,polis城市 219,prim第一,最初 220,radic根 221,ras,rad擦,刮 222,rid,ris笑 223,rod,ros咬,啮 224,rot轮,转 225,rud原始,粗野 226,rur,rus农村 227,sat,satis,satur足,满,饱 228,sen老 229,simil,simul相似,相同 230,solo单独 231,sol太阳 232,soph智慧 233,sper希望 234,spe,spars散,撒 235,splend发光,照耀 236,stell星 237,tact,tag触 238,the(o)神 239,ton音 240,tort扭 241,tour迂回,转 242,trud,trus推,冲 243,tut,tuit监护,看管 244,umbr阴影 245,ut,us用 246,vas走,漫游 247,val强 248,van空,无 249,ver(i)真实 250,voc,vok声音,叫喊 251,vol,volunt意志,意愿 252,volu,volv滚,转 编辑本段初级阶段必知词根 即中学生及中学生以下水平的学习者必须掌握的词根(不加引申词根共197个) (1)A~H之间的词根:(82个) 例如:-ac- (尖)、-act- (做)、-ag- (做)、-alb- (白色)、-ampl- (大)、-ann- (年)、-apt-(适应)、-arc- / -arch- (弓)、-arm- (武器)、- aug- (大)、-ball- (跳舞)、-ban- (禁止)、-band- (捆绑)、-bar- (横木)、-bat-(打)、-bel- (战争)、-bell- (铃)、-bon- (好)、-bi- (生命 )、-c- (覆盖)、-cap- (头)、-car- (车)、-cart- (纸板)、-cast-(投掷)、-ced- / -ceed- / -cess- (走)、-cel- (覆盖)、-cent- (百)、- cid- / -cis- (切)、-cite- (召唤)、-coc-(煮)、-corn- (角)、-count-(数)、-cred- / -credit- (相信)、-cup- (占有)、-cur- (关心)、 -deb-(负债)、-di- (日)、-doc- / -doct- (教)、-draw-(拉)、-du- / -dupl- (二)、-em-(拿)、-equ- (相等的)、-fab- / -fam- / -fan- / - fat-(说)、-fac-(脸)、-fac- / -fact- / -fect- (做)、-fal- / -fail-(犯错)、-fan- (虚幻)、-fend-(打击)、-fer- (带来)、-fid- (信任)、 -fil-(填充)、-fin- (末尾)、-firm-(坚固的)、-fix-(固定)、-flat- (吹)、-flu- / -flux- (流动)、-forc- / -fort-(力量)、-form- (形)、-fund-(基础)、-fus- (流)、-gee- / -geo- (地)、-gress- (行走)、-h- (篱笆)、-hap-(偶然)、-hospit-(客人)、-hom-(人) (2)I~P之间的词根:(47个) 例如:-imag-(图像)、-it- (走)、-joy-(欢乐)、-just- (正义)、-leg- (言)、-lev- (举)、-log- / -logue- (说话)、-logy- (学科)、-long- (长) 、-maj- / -max- (大)、-mal- (坏)、-medi-(中)、-ment- (心)、-mir- (魔)、-miss- (送)、-mort- (死)、-mov- / -mot- (动)、-mut- ( 改变)、-nasc- / -nat- (出生)、-nau- / -nav- (船)、-norm- (规则)、-not-(知晓)、-nov- (新)、-ori- (升起)、-par- (平等)、-para-(降落 )、-ped- (脚)、-pen- / -pun- (处罚)、-pli- / -plex-(折叠)、-polic- / -polis- / -polit- (国家)、-port- / -portat- (运)、-punc(t)- / -pung- (尖)、-pur- (纯)、-put- / -putat- (考虑) (3)Q~Z之间的词根:(68个) 例如:-rac-(种族)、-rad-(刮擦)、-radi- (光)、-rap-(抢)、-rat-(计算)、-reg-(直)、-rid- (笑)、-riv- (水流)、-rol- (圆)、-rot- (轮) 、-rupt- (断裂)、-sal-(盐)、-sci- (知)、-sect- (切)、-sel-(召集)、-sen- (老)、-sens- / -sent- (感觉)、-serv-(服务)、-sid- / - sess- (坐)、-sign-(标记)、-soci-(同伴)、-sol- (太阳)、-son- (声音)、-spir- / -spirat- (呼吸)、-st- / -stat- (站)、-sum-(拿)、- sur-(确定)、-tail-(分割)、-tend- / -tens- / -tent- (伸)、-test-(证据)、-text-(编织)、-theo- (神)、-tors- / -tort- (卷缠)、-tox- ( 毒)、-trop- (转)、-ump- (隆起)、-un- (一)、-urb- (城市)、-util- (用)、-vag-(徘徊)、-us- / -util- (用)、-vari- (变化)、-verb- (字) 、-vers- / -vert- (转)、-via-(道路)、-vid- / -vis- (看)、-vict- / -vinc- (胜)、-vil- / -vuln- (野蛮)、-viv- / -vit- (活)、-voc- / -vok- (声)、-vor- (吃)、-vot- / -vow-(发誓)、-zo- (动物) 2.中级阶段必知词根,即大学生及四、六级的学习者必须掌握的词根(不加引申词根共201个) (1)A~E之间的词根:(55个) 例如:-agon- (痛苦)、-al-(生长)、-alg- (痛)、-alt- (高)、-am- / -amat- (爱)、-anim- (精神)、-anti- (触角)、-aqua- (水)、-arch- / -archy- (统治)、-art-(技艺)、-camp- (营地)、-cand- (白)、-cant-(歌唱)、-cav-(洞)、-centr- (中心)、-cert- (确实)、-civ- (公民)、- clud- / -clus- (关闭)、-cord- (心)、-cover-(覆盖)、-crat- (统治)、-cre- / -cresc- / -cret- (生长)、-cret-(分离)、-crit-(判断)、- cruc- (十字)、-cub- / -cumb- (卧)、-cult- (耕)、-cuss-(打击)、-cycl- (圆)、-cyte- (细胞)、-dec- / -decor-(合适)、-dei- / -divin-( 神)、-dent- (牙齿)、-dic- / -dict- (说)、-dign-(价值)、-dom- (圆屋顶)、-don- / -dot- / -dow- (给)、-duc- / -duct- (引导)、-dyn-( 力量)、-eco-(住所)、-electr- (电)、-emper- (命令)、-err- (漫游) (2)F~O之间的词根:(63个) 例如:-fess- (说)、-fest-(节日)、-fid- / -fiss- (裂)、-fil- (线)、-flagr- / -flam- (火焰)、-flect- / -flex-(弯曲)、-flor- / - flour- (花)、-found- / -fus-(倾倒)、-freeze- / -frig- (冷)、-front-(前)、-fund- / -found- / -fus-(熔化)、-gen- / -gener- (出生)、 -ger-(运送)、-gon- (角)、-grad- / -gress- (步)、-gram- (写)、-graph- (画)、-grav- (重)、-greg- (群)、-gyn- / -gynec- (妇女)、- habit-(拥有)、-here-(继承)、-herb-(草)、-homo- (同)、-hydr- (水)、-imit-(模仿)、-jac- / -ject- (投掷)、-jud- (判断)、-junct-(连接 )、-jur- (法律)、-lect- /-leg- / -lig- (选)、-liber- (自由)、-lig- / -luc- (光)、-loqu- / -locut- (讲)、-macro- (大)、-magn- (大) 、-memor-(记住的)、-micro- (小)、-migr- (迁移)、-min- / -minu- (小)、-mit- / -miss- (送)、-noc- (伤害)、-nom- (学)、-nom(in)- (名 ) (3)P~Z之间的词根:(83个) 例如:-ped-(儿童)、-pel- / -puls- (驱动)、-pend- / -pens- (悬挂)、-phil- (爱)、-pict-(画)、-plant-(种植)、-plaud- / -plod- (大声) 、-ple- / -pli- / -ply- (满)、-pon- / -pos(it)- (放)、-popul-(人)、-port-(门)、-press- (压)、-pris- (抓)、-psych- (精神)、-quer- / -quest-(询问)、-quie-(静)、-quit-(释放)、-radi-(根)、-rog-(询问)、-rud-(原始)、-rur- / -rust- (乡村)、-s-(在)、-sal-(跳)、-sal- / -san- (卫生)、-scrib- / -script- (写)、-sed- / -sess- / -sie- (坐)、-sem- / -sim- (相同)、-sert-(加入)、-serv-(保留)、-sinu-(弯 曲)、-sol-(单独的)、-solv-(解)、-somn- (睡眠)、-soph- (智慧)、-sort-(种类)、-stell- (星)、-sua- (劝告)、-sum-(全)、-surg-(升)、- tard-(慢的)、-techn- (技术)、-tele- (远)、-ten-(容纳)、-terr- (恶)、-thes-(放置)、-tom- (切)、-torn- / -tour- (转)、-tors- / - tort- (转)、-tract-(拉)、-tri-(擦)、-tribut- (给予)、-turb-(搅动)、-tum-(肿胀)、-ur- (尿)、-veg- / -vig- / -viv- (生命)、-ven- /-vent- (来)、-ver-(尊敬)、-vest-(穿衣)、-viol- (暴力)、-vit- / -void- (空)、-volut- / -volv- (转)、-vulg-(大众)硬件看门狗实际上就是一个定时器,有一个输入和输出,它的功能是定期检查芯片内部的情况,一旦发生错误就向芯片发出重启信号。实际上,就是监控芯片。
由于单片机系统在工作的时候,容易受到外界电磁场的干扰,造成数据混乱,程序出错,导致死循环,影响单片机的正常工作,从而导致单片机控制系统发生不可预料的后果。
使用硬件看门狗,可以预防程序发生死循环。应用看门狗电路后单片机可以在无人状态下连续工作。硬件看门口电路,利用一个定时器来监控主程序的运行。
扩展资料
注意事项:
大多数51 系列单片机都有看门狗,当看门狗没有被定时清零时,将引起复位。这可防止程序跑飞。也可以防止程序在线运行时候出现死循环。
设计者必须清楚看门狗的溢出时间以决定在合适的时候,清看门狗。清看门狗也不能太过频繁否则会造成资源浪费,程序正常运行时,软件每隔一定的时间(小于定时器的溢出周期)给定时器置数,即可预防溢出中断而引起的误复位。
参考资料来源:百度百科--看门狗 (监控芯片)
参考资料来源:百度百科--看门狗(监控软件)
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)