英国欧陆温控器实时多使命体系运用极端广泛,简直渗透到各行各业,体系分类也很杂乱。在嵌入式体系中,实时多使命机制是依托发动之后运转的一段后台使命办理程序完结的。运用程序运转在该办理器程序之上。后台依据各个使命的要求,进行资源办理、音讯办理、使命调度、反常处理等作业。其首要意图是调度全部可利用的资源完结实时操控使命。
实时体系主要有两大类:软实时体系和硬实时体系。软实时体系的主旨是使各个使命运转的越快越好,并不要求限制某一使命必须在多长时刻内完结。在硬实时体系中,各使命不只要履行无误并且要做到准时。大多数实时体系都是二者的结合。关于一个杂乱使命体系,使命调度形式的选用是其体系架构的一个重点。无纸记载仪具有多层次的界面办理和较高的实时呼应需求,由此选择与之相适应的体系使命调度形式是势在必行的。
本论文归纳考虑了各使命呼应的实时性需求,对使命进行了创造性的调整,进而将软实时体系和硬实时体系进行了有机的结合,规划出为合理的使命调度形式。
1、记载仪实时多使命的特色
一般的实时多使命操作体系都比较巨大,关于由单片机(80C320)组成的实时体系是不适用的。因为单片机的运算才能和内存有限,要求实时操作体系具有简略有用、高效牢靠的特性。就记载仪而言,其使命和功用是预知的,则内存和文件办理体系可简化,乃至撤销[1]。因为使命对存储器的要求是明确的,这样就能够运用固定和独立的存储区域分配计划,无需经过OS来操控和分配。因而,实时多使命操作体系就能够简化为依据使命调度与时钟中止办理为中心的调度模块。记载仪中的使命状况有四种:运转、安排妥当、等候、挂起,睡觉状况并入等候,不再另加以区分。
2、使命的区分、安排和调度
2.1使命的区分
在单片机实时多使命体系中,完结实时多使命机制的关键在于将体系功用合理地分解成各个使命模块。区分使命的准则:功用相对独立,并能与其他程序同时履行的程序区分为一个使命。但使命区分不能太细,否则将增加使命切换的体系开支,下降体系功率并影响体系呼应的实时性。文献[2]指出,应尽量将关系密切的使命兼并,削减使命间的通讯。归纳考虑使命的实时性和履行时刻,记载仪的十个使命可分为三类:
(1)高优先级使命:下位机上传采样值的处理,虚拟通道安排,报警处理。这类使命实时性要求高,履行时刻<0.1s,如采样值处理使命,记载仪要保存采样值作为历史数据,保存过程中要加上时标,采样值正确而时标过错的记载是无效的。
(2)低优先级使命:按键呼应、显现、PID操控、流量积算。这类使命履行时刻<0.2s,使命实时性要求一般。如按键呼应使命,延迟0.5s是能够容忍的。
(3)后台使命:存储、打印、与办理机(PC)通讯。这类使命的履行时刻>1s,对实时性的要求低。
2.2使命的安排
体系上电,初始化每个使命的固定使命栈,树立使命行列状况表和使命操控表(TCB),这两张表是使命调度的依据。使命行列状况表由高优先级、低优先级、后台使命三张子表组成;使命操控表由使命首地址、状况寄存器、使命局部变量三部分组成,数据结构见图1。
2.3依据音讯驱动机制的使命调度
学习面向对象程序设计的思想,在记载仪程序中引入音讯概念,将使命的履行条件转换为音讯,由音讯对相应的使命进行激活,并由使命调度模块完结调度。音讯界说为:当某个事情(如中止或某使命完结)发作时,事情处理程序设置相应的标志,不同的标志代表不同的音讯。事情处理程序能够是中止效劳程序,也能够是履行后需设置的标志的使命,因而,记载仪中使命的调度是依据音讯机制来驱动的。音讯在多使命程序中的作用相当于桥梁,使使命间既彼此独立又有机相关,使命之间不能直接调用,需凭借音讯,由使命调度模块施行。
中止效劳程序由中止音讯(标志)处理程序和中止使命处理程序两部分组成,前者只是完结音讯(标志)处理就退出中止,而中止真正要完结的操作,是在使命调度模块的协调下,由中止使命处理程序来完结。如按下显现,则按键中止音讯处理程序只发生一个按键音讯(标志)就退出中止,而调度模块依据按键音讯,调用按键中止使命处理程序获取键值,并发生显现音讯。调度模块依据显现音讯,调用显现使命程序。
3、实时多使命调度战略
多使命的体系,一般选用内核来办理各个使命,也就是经过内核为每个使命分配CPU时刻,并担任使命之间的通讯。依据使命的调度机制,能够分为非占先式内核和占先式内核。前者要求每个使命能够自动开释CPU等资源,后者则支撑对当前使命的CPU运用权的掠夺,从而使更高优先级安排妥当使命得到CPU操控权进而履行。
嵌入式体系选用何种调度战略,一般要考虑三个要素:体系的处理才能,使命的数目,体系对呼应时刻和履行功率的要求。抢占式调度能改进高优先级使命的实时性,但体系开支较大;非抢占式调度刚好与抢占式相反。针对记载仪,提出抢占式和非抢占式的复合多使命调度战略。记载仪的正常作业周期为1s,调度模块的作业周期亦为1s,并将1s分为三个时段:0s-0.5s,0.5-0.8s,0.8s-1s,实时时钟在0s,0.5s,0.8s各发生一次中止,将Time-flag别离设置为0,5,8,并将Attemper-flag置为0。使命调度程序框图如图2所示。
在记录仪一个作业周期(1s)内,复合调度战略,答应高优先级使命三次抢占低优先级和后台使命,而低优先级使命具有两次抢占后台使命的权利。因而,高优先级使命的呼应时刻t≤0.5s,低优先级使命的呼应时刻t≤0.7s。因为抢占的次数有限,所以使命切换开支不大,有利于进步体系功率。
抢占式和非抢占式的复合多使命调度战略已成功运用于某记载仪,达到了预期的方针。