转自21ic网
本文假定硬实时系统(hard-real-time system)具有如下特性:包含的进程具有严格时序约束且数目相对较多;这些进程具有不同的时序特性与相关性;处理器利用率并不很低,即没有太多的cpu空闲容量. 【程序编程相关:经典陷害大全】
优先级调度作为实时嵌入式系统设计方法,近年来日益受到广泛关注. 【推荐阅读:我认为学习linux的顺序】
为了对复杂硬实时系统的性能进行预估,必须预先了解各进程的主要特性,否则不可能保证得到满足所有时序约束的优先级条件. 【扩展信息:MRTG配置完整全功略】
进程与调度
1.周期性进程
周期性进程由反复执行的运算组成,每个固定的时间周期执行一次运算.周期性进程的一个典型应用就是读取传感器数据并更新内部变量与输出的当前状态.
周期性进程p的四要素是rp, cp, dp, prdp:prdp表示周期;cp表示进程p在最坏情形下的运算时间;dp表示时限,即在每个周期中,从周期起始到进程p执行完毕之间的时间间隔;rp表示释放时间,即在每个周期中,从周期起始到进程p最早开始执行之间的时间间隔.此外,假定rp, cp, dp, prdp以及其它任何表示时间的参数均为整数.
周期性进程p可包含无数个周期性进程执行p0, p1, p2,...,每个周期执行一次进程.第i个进程执行对应于第i个周期的进程pi,而pi的释放时间可表示为rpi = rp + prdp × (i-1);pi的时限可表示为dpi= dp + prdp × (i-1).
2.异步进程
异步进程由响应内部或外部事件的运算组成,异步进程的典型应用是响应操作人员的请求.尽管无法预知执行异步进程a的精确请求时间,但通常可以预先得到两个连续请求间的最短时间mina.异步进程a可由三要素ca, da, mina描述:ca 表示进程a在最坏情形下的运算时间;da 表示时限,即从向进程a发出请求到进程a完成执行之间的时间间隔.异步进程a可具有无数个异步进程执行a0, a1, a2, ...,,每个进程执行对应于一个异步请求.对于对应于第i个请求的第i个异步进程执行ai,如果ai的请求时间为rai,则ai的时限为dai = rai + da.
3.调度
下面引入进程执行单元与处理器时间单元的概念.如果周期性进程p或异步进程a的运算时间为cp或ca,那么假定进程执行pi或ai由cp或ca进程执行单元组成,而且每个处理器都与起始于0的进程时间轴关联并分成连续的处理器时间单元.
调度能在一个或多个处理器时间轴上,将无数个进程执行单元映射到无数个处理器时间单元上.在0与进程执行中由第一个执行单元所映射的处理器时间单元之间,所存在的处理器时间单元数量被称为进程执行起始时间;0到进程执行中由最后一个执行单元所映射的处理器时间单元之间,所存在的处理器时间单元数称为进程执行完成时间.如果调度中,每个进程执行的起始时间大于或等于进程执行的释放时间或请求时间,并且进程的完成时间小于或等于进程的执行时限,那么该调度是有效的.
4.进程分段
每个进程p均可由有限的分段序列p[0].p[1]....p[n[p]]组成,其中p[0]表示进程p的第一个分段,p[n[p]]则表示进程p的最后一个分段.给定进程p的释放时间rp.时限dp与进程p中每个分段p[i]的运算时间,可以简单地计算出每个分段的释放时间与时限.
5.优先与排斥关系
进程分段有序对之间可以存在各类关系,如优先关系(precedence relation)与排斥关系(exclusion relation).
如果只有当进程分段i执行完成,进程分段j才能开始执行,则称进程分段i优先于进程分段j.当某些进程分段需要由其它进程分段产生的信息时,这些进程分段之间就可能存在优先关系.
如果从进程分段i开始执行运算到结束运算之间,不能执行任何进程分段j的运算,则称进程分段i排斥进程分段j.... 下一页