第一章 绪 论

第一章

§ 1.1课题背景

随着计算机应用的不断深入和发展,计算机已不再只是科学计算的工具,互联网和多媒体技术的发展对操作系统提出了新的需求,多类型的硬实时、软实时与非实时任务共存于同一系统中已经很平常了。实时操作系统的相关理论研究虽然已取得了很多成果,出现了许多经典的调度算法如RM[9]EDF[10]等,但却没有一个可以适用于所有任务的调度,本文提出的调度模型构造了一个通用的集成调度框架,让各种算法在一个系统中可以共存。

实时调度算法种类繁多,大致可以分为以下三种:

Priority-Driven Scheduling:优先级驱动的调度。这是最常用的实时调度方法,根据运行时任务优先级在执行期是否变化,又可分为固定优先级和动态优先级调度。调度器每次选择最高优先级的任务运行,经典的有RMEDF算法。在优先级分配时可以按速率(RM)快慢、期限(EDF)的早迟来进行,所以也就只适合这类任务的调度,当一个长周期任务需要快速响应时,这种调度就不适合,而常见的鼠标、键盘等人机交互设备都有这种需求。

Share-Driven Scheduling:共享驱动的调度。系统中的所有任务按所请求的比例共享计算资源。该类算法都基于GPS[11](通用处理器共享算法)理论,为特定任务预留带宽,经典的RR(轮询)、WFQ[12](加权公平队列)CBS[13](常数带宽服务器)等都属于这类。由于不能严格保证任务的按时完成所以这类算法不适合硬实时任务的调度。

Time-Driven Scheduling:时间驱动的调度。这是一种离线调度方法,所有的调度决定都事先设好,保存在数据表中,运行时只是简单的读取表,按表的内容来调度任务。对于系统任务很明确,并且变化不大的情况,这种方法是最有效并且最容易实现的,只要有定时设备就可以了。然而对于系统中任务不确定,或者任务运行异常的情况,该方法并不适合。

可见,每种调度算法都只适合于一类任务,而操作系统却需要运行在各种应用环境下,所以希望能同时支持多种调度类型,这就是为什么要引入集成调度框架的主要原因。

另一方面,随着实时应用的日趋复杂,即使是单个应用中也有多种调度需求,这类应用的大量出现,也对操作系统提出了多类型共存的需求。

此外还有个原因促使我设计一个集成的框架——软件的重用,我们都知道实时调度理论中有很多经典的调度算法,这些算法如果可以事先设计好,应用开发人员就不需要再重新编写了。

最后还有一个重要的原因:虽然现实的应用提出了对集成调度的需求,并且实时理论的发展也已经提供了很多解决方法,但是目前为止实际使用的系统中却鲜有提供多类型集成调度的。

§ 1.2 研究现状

实时系统的理论研究一直在试图解决多任务类型的调度问题,其中出现了很多方法如CBSCUSTBS等,本节介绍与层次型调度理论相关的一些研究和进展。

层次调度框架起源于前面介绍的比例共享调度算法。提出基本模型的是Rajkumar[5],其原理是为每个任务分配一个服务器,系统中存在多个服务器,每个服务器预留一定比例的处理器带宽,如果一个任务超过分配给它的带宽,系统便会减慢它的执行。该框架允许一个任务在系统中的运行就象在一个独占的CPU上一样,只是这个CPU的速度是实际处理能力的一部分。

后来又有许多技术将该资源预留框架扩展为层次型调度。Baruah Lipari[6]中提出了H-CBS算法,可以在一个系统中组合任意层的CBS调度器,而每一层采用EDF算法。Saewong [7]作了类似的工作,他们还提出了局部固定优先级调度器在最坏响应时间下的可调度性分析。

Liu Deng[3]中提出了两层的层次型调度框架,该框架使用EDF作为全局调度算法,而局部调度器可以选择任意合适的算法。在论文中他们还推出了可调度性的充分条件。后来Kuo等人在[4]中对他们的工作进行了扩展,采用RM作为全局调度算法,但是假设所有的任务都是周期的,并且各个周期扰动不大。

LipariBaruah[6][5]中提出了BSS调度算法,该算法使用EDF作为全局调度算法,而局部的算法可以根据应用任意选择。该论文还推出了在使用EDFRM作为局部调度算法时的可调度条件,可惜该算法过于复杂并且假设知道每个任务的期限所以难以实现。

FengMok[8]则提出了一个通用理论,可以对可计算资源进行层次分割,从而将调度器进行任意层次的组合。他们在该论文中还提出了一个简单的,针对任意层调度器的可调度性测试,但是这些测试只是充分条件。

本文的研究主要基于LiuDeng提出的层次型调度模型,与之相比本文提出的模型最大优势在于实用、轻量。

§ 1.3 研究目标

本课题的研究目标是要解决多类型任务的集成调度问题,并在主流的实时操作系统RTLinux[1]中实现该原型。具体的目标有几点:

1、研究多类型任务的集成调度理论,提出解决的方法。

2、结合RTLinux等实际系统的特点,设计易于实现的模型。

3、在实际系统中实现该模型,并进行相关的测试和验证。

§ 1.4 研究内容

       针对研究目标,确定研究内容主要有三个方面:一是多类型任务调度的理论研究;二是提出易于实现的模型;最后实际实现并进行测试和验证。

1.4.1 集成调度的理论研究

多种类型的任务集成的时候,主要面对的问题有两个:一是如何为不同类型的任务提供最佳的调度策略;二是怎样才能保证各种任务之间的隔离,比如非实时任务不能影响到实时任务的按期完成。基于带宽预留理论的一类算法都可以不同程度的解决该难题,比如CBS(常数带宽服务器)sporadic server(离散任务服务器)等。但是这类算法主要解决的是,在周期的实时任务中如何调度离散的实时任务或非实时任务等问题。而本文要解决的是如何按任务的不同特点提供最佳的调度,比如同样是实时任务根据应用的不同有的适合RM调度,有的却适合EDF调度。所以本文要完成的是不同调度算法的集成,在该领域中层次型调度是比较好的解决途径,所以本课题的理论研究主要基于该理论。在层次调度理论中主要研究三方面的内容:全局调度的保证;局部调度的保证以及如何计算局部调度器所需的带宽。

1.4.2 调度模型的研究

理论模型往往都比较理想,但要在实际中实现还需要根据已有系统的特点建立实用的模型。例如著名的EDF调度算法,虽然理论上已证明该算法在调度周期任务上是最优的,但实际系统中几乎没有实现的,其中一个原因就是在做准入测试时,该算法一定要知道任务将要执行的时间,这在实际系统中基本上是不可能的。所以在研究该实现模型时,应主要考虑如何易于实现。由于该模型选在RTLinux中实现,研究其原理及分析其实现也是本课题的重要内容之一。

1.4.3 系统设计及实现

根据理论研究,以及对RTLinux的分析,设计并实现原型系统。作为调度框架,主要关心性能和调度的正确性。所以该部分工作的重点除了实现外还有测试,一是性能测试,与未加入该调度框架前的系统相比较,测试增加的系统负载;二是验证调度的正确性,主要验证各个局部调度器的调度时序是否正确。

§ 1.5 研究意义

从前面的背景分析可以知道,这样一个调度框架在实时应用领域具有深远的意义。

1、该模型通过在一个系统中,同时支持多种调度算法的方法,解决了各种类型任务集成调度的难题。

2、该模型的实现,大大增强了实时操作系统的通用性和开放性。现有系统由于调度算法的单一,往往都是专用操作系统,而且是封闭系统。本模型的带宽隔离能力,可以保证系统一定程度上的开放性;多类型调度算法的并存,使实时操作系统可以应用于更多的场合。

3、该课题选在业界应用广泛的RTLinux进行实现,将直接增强其性能及易用性,解决长期以来RTLinux调度算法单一的问题。

§ 1.6论文结构

论文共六章,其中第一章为绪论,介绍研究背景、研究现状及存在的不足,确定课题研究的目标和研究内容,论述课题研究的重要意义。

第二章给出实时系统的理论模型、层次调度中涉及经典的调度算法及各自的局限性,然后引出层次型调度理论并分析其优缺点,该章是本文研究的理论基础。

第三章主要分析RTLinux的实现原理及现有调度算法,该章是实现模型的基础。

第四章引入轻量级层次调度模型,详细讨论该模型的结构、特点及与层次型调度的异同。

第五章主要根据前面提出的轻量级调度模型,在RTLinux中设计和实现该模型的原型,并进行测试和验证。

第六章对本文的工作进行总结,并对下一步的工作进行展望。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值