实时Java系统中非周期性事件处理策略解析
在实时系统中,任务可分为周期性任务和非周期性任务。对于非周期性任务的处理,有两种常见的方法:预留方法和空闲时间窃取方法。下面将详细介绍这两种方法及其相关算法。
1. 非周期性任务处理方法
1.1 预留方法
预留方法主要通过任务服务器预留时间片来处理非周期性任务。这里介绍三种服务器策略:轮询服务器(Polling Server,PS)、可延迟服务器(Deferrable Server,DS)和零星服务器(Sporadic Server,SS)。
- 轮询服务器(PS)
- 原理 :PS是一个具有优先级 $P_s$、周期 $T_s$ 和容量 $C_s$ 的周期性任务。从可行性分析的角度看,它与具有最坏执行时间(WCET)为 $C_s$ 的普通周期性任务完全相同。PS可以访问一个队列,非周期性事件释放时会被排入该队列。队列策略(先进先出、后进先出等)与PS的一般原理无关,也不影响硬任务的可行性分析。当服务器周期性释放时,其容量会重置为初始值。如果作业队列不为空,它会开始服务作业,消耗其容量,直到容量降为零。如果没有更多作业要服务,其容量会立即降为零。
- 缺点 :如果一个非周期性作业在服务器周期性激活后立即释放,且此时队列为空,该作业的服务至少要延迟到下一次激活。
- 可延迟服务器(DS)
- 原理 :DS是为解决PS的上述缺点而提出的。DS算法与PS算法非常相似,但即使队列为空,它也会保留其容量。这使
超级会员免费看
订阅专栏 解锁全文
1228

被折叠的 条评论
为什么被折叠?



