论文部分内容阅读
未来的实时系统将具备多种能力,包括分布式处理、多媒体处理、实时控制、后台信息处理等。这类实时系统将在未来的信息社会中发挥着更为重要的作用,成为最主要的应用之一。它最主要的特征是需要处理各种类型的实时任务,如实时控制等硬实时任务、以多媒体为代表的软实时任务,以及信息显示等非实时任务。因此,底层操作系统不仅需要提供丰富的系统功能,还需要具备较好的实时支持能力,为各种类型任务提供有效的资源调度支持。然而传统的通用操作系统,如UNIX,Windows,Solaris,虽然具备丰富的系统功能,但资源管理的目标是提高资源利用的公平性和有效性,对所有应用均采用最好服务(best-effort)的支持方式,没有针对硬实时任务和多媒体任务的特征进行专门的有效的支持。另一方面,传统的实时操作系统虽然具备很好的实时响应能力,但系统功能单一,不能满足新型实时系统发展的需要。
为此,业内提出了两种解决方案:(1)设计一个全新的多媒体操作系统,提供对硬实时任务、多媒体等软实时任务、以及其他传统非实时任务的全面支持;(2)基于通用操作系统进行实时化改造,以满足应用发展的需要。由于方案一需要较长的开发时间,而方案二所需的时间和成本都较低,因此可以作为支持未来实时系统的过渡方案。目前,针对通用操作系统的实时化研究已经得到了较多关注,例如基于Windows NT和UNIX等。Linux凭借强大的网络功能、丰富的系统功能以及可裁减定制等特点,已经成为实时领域越来越重要的操作系统之一。许多国内外大学和研究机构均开展了增强Linux实时性的研究和改造工作,并出现了一些比较有代表性的实时研究项目,如RT-Linux、RTAI、RED-Linux和Kurt-Linux等。本文所从事的基于Linux的实时操作系统研究正是在这样的背景下产生的。
针对Linux应用于实时领域存在的问题,包括核心服务不可控、时钟粒度和调度粒度粗糙、不能为硬实时任务和多媒体任务提供有效的调度支持,本文的主要工作包括:
1、实现中断服务的进程化。作为Linux最主要的核心服务之一,中断服务并没有相应的进程体,导致了服务的不可控性,以及内核延迟不确定性的增加。这与实时应用要求的可确定性相违背。为此,本文借鉴ART Linux和微内核体系结构的服务进程思想,基于现有的Linux“核心线程”技术,实现了中断服务的进程化,使得该服务在调度层面上可见,从而增强其可控性和可预见性,大大降低内核不确定延迟。
2、提出一种改进的微秒级时钟管理机制RT-TIMER。Linux内核实现的是10ms级的时间粒度,这种级别的时间粒度可以很好地满足非实时应用的需求,但无法满足实时任务微秒级的定时需求以及微秒级的抢占调度需求。为此,本文提出了一种改进的时钟管理机制RT-TIMER,不但满足了实时任务的定时需求,提高了任务的抢占调度精度,而且为用户提供了灵活的编程接口,使得用户可以根据实际需要实现相应的定时精度,从而更合理的利用系统资源。
3、提出了一种新的实时任务调度算法SBRD(Scheduler Based on RM and EDF)。Linux虽然实现了实时进程的概念,但在调度算法的具体设计上,却没有考虑周期、截止期限、执行时间等实时任务的重要执行属性,因此并没有实现真正意义上的实时任务调度。为此,本文提出了一种新的实时任务调度算法SBRD。与传统实时调度算法不同的是,SBRD算法并不是只根据优先级或截止期限等单独的片面的属性来确定任务执行的先后顺序,而是同时兼顾了重要性和紧急性这两个基本而重要的任务属性,在保证重要任务顺利执行的前提下,尽可能让紧急型任务优先执行。在具体设计上,该算法除了考虑优先级和调度策略,还考虑了周期、截止期限、执行时间等重要的实时任务属性。实验表明:(1)SBRD算法在保证重要任务顺利执行的前提下,可以支持紧急型任务的优先执行,从而让更多实时任务的截止期限得到满足,更为充分地利用系统资源。(2)在系统轻载情况下,SBRD具有与EDF算法同样的性能,即可以充分地利用系统资源,保证所有任务的顺利执行。(3)在超载情况下,SBRD具有与RM算法同样的性能,可以优先保证重要任务的执行。(4)与Linux原有实时调度策略相比,SBRD算法可以更有效地支持实时任务调度。
4、提出了一种改进的多媒体任务模型ARB(Adaptive Rate-Based)和调度算法FB_PRIO。传统的多媒体任务调度算法需要预先知道多媒体任务的计算需求或最坏情况下的执行时间(Worst Case Execution Time,WCET)。但多媒体任务对资源的需求往往是动态变化的,甚至变化很大,因此很难预先确定其资源需求或最坏情况执行时间。传统算法主要采用资源预留的方式实现对多媒体任务的调度支持,显然,这种静态的资源分配方式不仅不能满足多媒体任务对资源的动态需求,而且会造成系统资源的大量浪费。为此,本文提出了一种基于速率的自适应任务模型ARB和调度算法FB_PRIO。
ARB的主要特点包括:
(1)不需要预先知道多媒体任务的计算需求或最坏情况执行时间。
(2)多媒体任务在一定的时间间隔内执行指定的次数,而且任意相邻的两次执行之间具有一定的时间距离约束。因此在保证多媒体任务以一定速率执行的同时,延迟抖动的问题也得到了解决。
(3)通过一种反馈机制实现了多媒体任务的准入控制和服务质量的动态调节,在保证原有任务顺利执行的前提下,满足尽可能多任务的执行,以充分的利用系统资源。
(4)可以适应动态变化的环境,包括适应多媒体任务对资源需求的动态变化以及系统可用资源的动态变化。
(5)实现用户与底层调度的动态交互,即用户层可以动态调节多媒体任务的服务质量需求,底层调度根据新需求作出响应,实现新的服务质量保证。这一点是目前任务调度研究的重点之一,因为传统的任务调度不能与用户实现动态沟通,任务一旦开始执行,包括重要性在内的任务属性就不能在任务运行过程中动态改变,因而无法及时反应用户的当前需求。