论文部分内容阅读
随着实时系统应用的日益广泛,使硬实时、软实时任务共存于同一系统中的情况越来越普遍,虽然针对不同类型的实时任务提出的调度方法不断涌现,如何对拥有多种不同时间要求任务的混合实时系统进行合理、有效的调度,成为研究的热点问题。本文的目标是设计一种分层调度算法,在保证硬实时周期任务的截止期的前提下,尽可能地提高软实时非周期任务的响应速度。本文以RT-Linux3.2内核为研究对象。RT-Linux3.2内核调度是可抢占式的静态固定先级调度。通过对实时内核任务调度的组织结构、调度算法进行综合分析,在RTLinux中实现了一种按比例分配服务器的分层混合调度算法。任务模块间按时间片轮转方式调度,任务模块内部按基于优先级的抢占调度策略调度运行。新调度算法首先添加任务模块数据结构,用以存储任务所属模块的控制信息。其次,修改任务调度参数,添加任务所属模块标识,为任务模块分层调度提供依据。通过修改调度器中断时间和定时器的中断处理过程,实现任务模块间的轮转调度。从调度器中分离出新任务选取功能和抢占任务选取功能独立封装,便于修改调度器适应不同类型任务。通过对任务模块间切换规则的限定,在一个模块占用资源时,其它模块任务不能基于优先级抢占该资源,只有模块内部任务间才能相互抢占。通过重构RTLinux的内核并对调度器进行修改,实现了分层调度,扩展了可调度任务的类别,增强了调度器功能。新内核不改变原来的优先级抢占的调度器,使其作为底层的调度器,同时实现了不同类型的子模块按比例分配时间的轮转调度策略,使得RTLinux内核能够支持软实时和硬实时共存的复杂的实时应用。