嵌入式操作系统分组硬实时任务调度的实现方法

文档序号:6556481阅读:200来源:国知局
专利名称:嵌入式操作系统分组硬实时任务调度的实现方法
技术领域
本发明涉及嵌入式操作系统实时任务调度技术领域,尤其是涉及一种嵌入式操作系统分组硬实时任务调度的实现方法。
背景技术
操作系统是充当计算机用户和计算机硬件之间的一个中介,并用于管理计算机资源和控制应用程序运行的计算机程序。一个程序的运行离不开操作系统的配合,其中包括指令和数据载入内存,I/O设备和文件系统的初始化等等;每种I/O设备的管理和使用都有自己的特点。而操作系统接管了这些工作,从而使得用户在使用这些I/O设备的过程中会感觉更方便。文件访问不仅需要熟悉相关I/O设备(磁盘驱动器等)的特点,而且还要熟悉相关的文件格式。另外,对于多用户操作系统或者网络操作系统,从计算机安全角度考虑,需要对文件的访问权限做出相应的规定和处理。这些都是操作系统所要完成的工作。对于一个多用户或者网络操作系统而言,操作系统需要对用户系统访问权限做出相应的规定和处理。当操作系统运行时,会出现这样那样的问题。操作系统应当提供相应的机制来检测这些信息,并且能对某些问题给出合理的处理或者报告用户。
在一些现代操作系统中,出于系统性能优化或者系统安全角度考虑,操作系统会对用户使用过程纪录相关信息。一般操作系统都会提供丰富的API供程序员开发应用程序,并且很多程序编辑工具,集成开发环境等等也都是通过操作系统提供的。而计算机有很多资源,它们分别用于数据的传输、处理或存储以及这些操作的控制。这些资源的管理工作就交给了操作系统。
实时操作系统(RTOS)是指能对外部事件在限定的时间内作出并完成响应的多任务操作系统,它是嵌入式计算机中的重要的系统资源,与通用平台的操作系统不同,它往往嵌入到目标机硬件设备内部运行,一般用户无法看到它的运行界面,因而又被称为嵌入式操作系统。它往往采用微内核结构,具有实时性、可靠性和可裁减性的特点,非常适合于嵌入式系统和要求实时处理的应用场合。
实时的特征有两点,那就是系统不仅需要给出合乎逻辑的计算结果,而且其处理时间还需要满足一定的要求,比如说不能超过某个截止时间等等。可以把实时系统分为两类,一类是硬实时(Hard Real-Time);另外一类则是软实时(Soft Real-Time)。所谓硬实时是指如果系统对某个实时任务的处理未能在某个截止时间开始或者结束的话,最终的结果将是灾难性的,这就意味着即便是处理结果合乎逻辑但是仍然毫无意义;而在软实时系统中,处理任务启动或者结束的截止时间只是一个期望值,并不见得必须满足;即便是处理时间超过了截止时间,也是有意义的。
实时操作系统与普通操作系统的区别主要表现在五个方面,这就是其任务处理的确定性、响应灵敏度、用户参与控制、可靠性以及故障保护措施上。
实时操作系统应当能够做到这一点实时任务处理的开始时间和结束时间应当是确定的、可预测的、这在实时处理上显得非常重要。从这方面来讲,在实时操作系统中,系统的吞吐量和确定的任务处理相比,要次要的多,实时操作系统的任务处理具备一定的确定性。
衡量系统的确定性有一个比较好的指标,就是系统从接到要求处理的中断和对应的处理任务启动这两个事件发生的时间间隔。一般操作系统这个时间参数很大,而且可能会有几个数量级的变动。而在实时操作系统中,它应当很小,并且比较稳定,有一个上限值。

发明内容
本发明的目的在于提供一种嵌入式操作系统分组硬实时任务调度的实现方法。
本发明解决其技术问题采用的技术方案如下1)嵌入式操作系统中,对于实时任务,多个实时任务集合的定义·维,统计各个可预测任务的特点,将每个特点称为这个进程的一个维;·组,嵌入式操作系统对实时任务进行分组,将维空间相近的任务聚类为组,分组时主要依据任务按照所需要的资源和对实时性的要求;·组群,一定数量维上相似的组组合;·进程间距离使用欧几里得距离在组空间进程之间计算;·组间距离使用欧几里得距离在组之间计算;·组群间距离使用欧几里得距离以部分维数在组群之间计算;·相吸的任务进程间距离小的任务;·相斥的任务进程间距离大的任务;2)实时任务的调度方法i)任务分组对于系统中的实时任务,统计各个可预测任务,将任务按照所需要的资源和对实时性的要求分为不同的组,并将不同的组分为不同组群,计算进程间距离、组间距离和组群间距离;ii)组内调度在组内选出最合适的进程,具体的调度算法可以根据各个组的不同情况来选取,尽量选择相吸的任务进行调度;iii)组间调度收集系统目前的状况和各种资源的利用情况来选择合适的调度算法,由于调度算法是根据进程的相关属性来进行调度的,所以,只要在属性的选取上调整一下种类和权重,实现各种常见的调度算法。
所述的各种常见的调度算法为循环执行算法,先进先出的调度算法,基于优先级的调度算法或反馈式队列的调度算法。
本发明与背景技术相比,具有的有益的效果是(1)实时性。实时任务处理的开始时间和结束时间是确定的、可预测的,在实时操作系统中,系统的吞吐量和确定的任务处理相比,要次要的多,实时操作系统的任务处理具备一定的确定性。
(2)灵敏性。系统在确认任务请求之后,处理完相关的计算任务的时间较短,有利于提高响应速度。


附图是本发明调度方法示意图。
具体实施方法下面结合附图和实施例对本发明作进一步的说明。
一种嵌入式操作系统分组硬实时任务调度的实现方法,其具体实施方式
为1)嵌入式操作系统中,对于实时任务,多个实时任务集合的定义·维,统计各个可预测任务的特点,将每个特点称为这个进程的一个维;·组,嵌入式操作系统对实时任务进行分组,将维空间相近的任务聚类为组,分组时主要依据任务按照所需要的资源和对实时性的要求;·组群,一定数量维上相似的组组合;·进程间距离使用欧几里得距离在组空间进程之间计算;·组间距离使用欧几里得距离在组之间计算;·组群间距离使用欧几里得距离以部分维数在组群之间计算;·相吸的任务进程间距离小的任务;
·相斥的任务进程间距离大的任务;2)实时任务的调度方法i)任务分组作为调度算法的准备,先将任务按照所需要的资源和对实时性的要求分为不同的组,这样做比较方便对资源的管理,例如,当某一种资源紧缺时,可以直接停止对这个组的调度,提高系统的效率。特别的是,专门设置一个实时任务的组,并为这个组预留一部分资源,用来确保实时任务的响应时间。
对于系统中的实时任务,还要统计各个可预测任务,将任务按照所需要的资源和对实时性的要求分为不同的组,并将不同的组分为不同组群,计算进程间距离、组间距离和组群间距离。
在多道程序设计系统中,操作系统需要为各个进程合理分配各种资源,从而使得不仅不会让它们的运行相互产生冲突,而且还希望能对这些资源进行充分利用。在计算机系统中,最宝贵并且最容易引起各进程竞争的资源就是处理器。如何公平合理地分配给各进程足够的处理器时间,并且尽可能提高处理器的利用率同样是操作系统原理研究的重要内容。而这个任务是由操作系统的调度机制完成的。
ii)组内调度在组内选出最合适的进程,具体的调度算法可以根据各个组的不同情况来选取,尽量选择相吸的任务进行调度;组内调度就是在组内选出最合适的进程,具体的调度算法可以根据各个组的不同情况来选取,例如对于网络相关的组,可能轮转法更好一点,而对于实时进程的组来说FIFO可能更能体现系统的实时性。每个组都有自己的调度算法,这样做可以很灵活地调整组内进程的对资源的需求,也可以根据不同的情况及时地进行调整。但是因为需要在传统的调度算法前先在组内进行调度,所以如果算法过于复杂的话,会导致系统的效率降低,所以在组内调度的时候,一般都是使用比较成熟的,比较简单的调度算法。
例如,可采用循环执行算法。
循环执行算法的基本指导思想是,将处理器时间分成一个一个的时间片(Time Slice),从等待进程队列中选择下一个运行进程的方法和FCFS一样,所不同的是,每一个被选中的进程一次所占有的处理器时间顶多是这么一个时间片,而后,下一个被选中的进程将会以抢占式的方式来顶替该进程取得处理器的控制权。而将处理器时间分片是靠定时器中断来实现的,即每当一个时间片耗完之后,会有一个中断产生,告知调度程序,然后调度算法就被激活,选取下一个要运行的进程,开始新一轮循环。
循环执行算法有一个缺点就是它在处理I/O操作密集型进程和处理器使用密集型进程时会带来的资源使用的不平衡。I/O密集型进程会导致I/O设备忙,而处理器使用却很少。
而处理器使用密集型进程则会让处理器连轴转,而I/O设备却往往处于空闲状态。这会导致该算法在进程间的公平性和资源使用的平衡度方面表现比较差。
其改进是虚拟循环执行算法。
虚拟循环执行算法的进程创建、入列以及被选中运行部分与FCFS算法别无二致。所不同的是,加入了一个辅助进程队列。这样,当一个原来因为I/O操作挂起的进程现在如果它申请的I/O操作已经完成的话,它不是进入普通的等待进程队列,而是进入辅助进程队列。当一个新的处理器时间片来临的时候,辅助进程队列里的进程比普通的等待进程队列里的进程优先获取处理器控制权,而其运行时间将不会超过它在上一次自己获取的时间片里用剩下来的时间。
iii)组间调度在每个组的组内调度结束后,就进入到了组间调度的阶段。本系统所使用的调度算法可以根据系统的具体情况进行改变。众所周知,没有一种调度算法适用于各种情况,每种调度算法都有自己的适用情况,所以使用一种固定的调度算法肯定无法让系统一直保持高效率运行,只有根据系统运行的状况来变换调度算法才能合理地调整系统的运行状况。具体的实现是通过收集系统目前的状况和各种资源的利用情况来选择合适的调度算法,由于调度算法是根据进程的相关属性来进行调度的,所以,只要在属性的选取上调整一下种类和权重,就可以实现各种常见的调度算法了,比如虚拟循环执行算法,具体算法过程如2)iii)中对算法的描述。
组间调度使得一些相互存在耦合的进程同时一对一地指定给同样数目的处理器并运行。对于几个相互关联的进程,如果并行处理的话,就会减少同步阻塞,减少进程切换,从而提高性能;另外,由于一个调度决策会同时影响一组进程,从而也降低了调度程序执行的频度,从而减少了调度时间。
所述的各种常见的调度算法为循环执行算法,先进先出的调度算法,基于优先级的调度算法或反馈式队列的调度算法。
权利要求
1.一种嵌入式操作系统分组硬实时任务调度的实现方法,其特征在于1)嵌入式操作系统中,对于实时任务,多个实时任务集合的定义·维,统计各个可预测任务的特点,将每个特点称为这个进程的一个维;·组,嵌入式操作系统对实时任务进行分组,将维空间相近的任务聚类为组,分组时主要依据任务按照所需要的资源和对实时性的要求;·组群,一定数量维上相似的组组合;·进程间距离使用欧几里得距离在组空间进程之间计算;·组间距离使用欧几里得距离在组之间计算;·组群间距离使用欧几里得距离以部分维数在组群之间计算;·相吸的任务进程间距离小的任务;·相斥的任务进程间距离大的任务;2)实时任务的调度方法i)任务分组对于系统中的实时任务,统计各个可预测任务,将任务按照所需要的资源和对实时性的要求分为不同的组,并将不同的组分为不同组群,计算进程间距离、组间距离和组群间距离;ii)组内调度在组内选出最合适的进程,具体的调度算法可以根据各个组的不同情况来选取,尽量选择相吸的任务进行调度;iii)组间调度收集系统目前的状况和各种资源的利用情况来选择合适的调度算法,由于调度算法是根据进程的相关属性来进行调度的,所以,只要在属性的选取上调整一下种类和权重,实现各种常见的调度算法。
2.根据权利要求1所述的一种嵌入式操作系统分组硬实时任务调度的实现方法,其特征在于所述的各种常见的调度算法为循环执行算法,先进先出的调度算法,基于优先级的调度算法或反馈式队列的调度算法。
全文摘要
本发明公开了一种嵌入式操作系统分组硬实时任务调度的实现方法,对于嵌入式操作系统中的任务,统计各个可预测任务的特点,并给每个任务定义了维和任务间距离,对于多个任务的集合定义了组、组群以及组间距离和组群间距离,采用了多任务情况下,对冲突最少的任务进行调度的方法,从而能够减少切换时间,减少任务切换时的各项开销,提高任务调度的效率和嵌入式操作系统的实时性。
文档编号G06F9/46GK1818875SQ20061004987
公开日2006年8月16日 申请日期2006年3月16日 优先权日2006年3月16日
发明者陈天洲, 胡威, 谢斌, 赵懿 申请人:浙江大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1