CN100377091C - 嵌入式操作系统分组硬实时任务调度的实现方法 - Google Patents
嵌入式操作系统分组硬实时任务调度的实现方法 Download PDFInfo
- Publication number
- CN100377091C CN100377091C CNB2006100498741A CN200610049874A CN100377091C CN 100377091 C CN100377091 C CN 100377091C CN B2006100498741 A CNB2006100498741 A CN B2006100498741A CN 200610049874 A CN200610049874 A CN 200610049874A CN 100377091 C CN100377091 C CN 100377091C
- Authority
- CN
- China
- Prior art keywords
- task
- real
- time
- group
- distance
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种嵌入式操作系统分组硬实时任务调度的实现方法,对于嵌入式操作系统中的任务,统计各个可预测任务的特点,并给每个任务定义了维和任务间距离,对于多个任务的集合定义了组、组群以及组间距离和组群间距离,采用了多任务情况下,对冲突最少的任务进行调度的方法,从而能够减少切换时间,减少任务切换时的各项开销,提高任务调度的效率和嵌入式操作系统的实时性。
Description
技术领域
本发明涉及嵌入式操作系统实时任务调度技术领域,尤其是涉及一种嵌入式操作系统分组硬实时任务调度的实现方法。
背景技术
操作系统是充当计算机用户和计算机硬件之间的一个中介,并用于管理计算机资源和控制应用程序运行的计算机程序。一个程序的运行离不开操作系统的配合,其中包括指令和数据载入内存,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)中对算法的描述。
组间调度使得一些相互存在耦合的进程同时一对一地指定给同样数目的处理器并运行。对于几个相互关联的进程,如果并行处理的话,就会减少同步阻塞,减少进程切换,从而提高性能;另外,由于一个调度决策会同时影响一组进程,从而也降低了调度程序执行的频度,从而减少了调度时间。
所述的各种常见的调度算法为:循环执行算法,先进先出的调度算法,基于优先级的调度算法或反馈式队列的调度算法。
Claims (2)
1.一种嵌入式操作系统分组硬实时任务调度的实现方法,其特征在于:
1)嵌入式操作系统中,对于实时任务,多个由实时任务组成的集合的定义:
●维,统计各个可预测实时任务的特点,将每个特点称为这个任务的一个维;
●组,嵌入式操作系统对实时任务进行分组,将维空间相近的任务聚类为组,分组时主要依据是任务所需要的资源和任务对实时性的要求;
●组群,在一定数量维上相似的组的组合;
●任务间距离:使用欧几里得距离在同一个组空间内的任务之间计算;
●组间距离:使用欧几里得距离在组之间计算;
●组群间距离:使用欧几里得距离以部分维数在组群之间计算;
●相吸的任务:任务间距离小的任务;
●相斥的任务:任务间距离大的任务;
2)实时任务的调度方法:
i)任务分组
对于操作系统中的实时任务,统计各个可预测的实时任务,将实时任务按照所需要的资源和对实时性的要求分为不同的组,并将不同的组分为不同组群,计算任务间距离、组间距离和组群间距离;
ii)组内调度
在组内选出最合适的任务,具体的调度算法可以根据各个组的不同情况来选取,选择相吸的任务进行调度;
iii)组间调度
收集操作系统目前的状况和各种资源的利用情况来选择合适的调度算法,在实时任务的相关属性的选取上调整种类和权重,实现各种常见的调度算法。
2.根据权利要求1所述的一种嵌入式操作系统分组硬实时任务调度的实现方法,其特征在于:所述的各种常见的调度算法为:循环执行调度算法,先进先出的调度算法,基于优先级的调度算法和反馈式队列的调度算法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2006100498741A CN100377091C (zh) | 2006-03-16 | 2006-03-16 | 嵌入式操作系统分组硬实时任务调度的实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2006100498741A CN100377091C (zh) | 2006-03-16 | 2006-03-16 | 嵌入式操作系统分组硬实时任务调度的实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1818875A CN1818875A (zh) | 2006-08-16 |
CN100377091C true CN100377091C (zh) | 2008-03-26 |
Family
ID=36918899
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2006100498741A Expired - Fee Related CN100377091C (zh) | 2006-03-16 | 2006-03-16 | 嵌入式操作系统分组硬实时任务调度的实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100377091C (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100444121C (zh) * | 2006-09-11 | 2008-12-17 | 中国工商银行股份有限公司 | 批量任务调度引擎及调度方法 |
CN101246437B (zh) * | 2008-01-28 | 2010-06-09 | 中兴通讯股份有限公司 | 一种嵌入式实时系统进程均衡调度方法 |
US8566830B2 (en) * | 2008-05-16 | 2013-10-22 | Microsoft Corporation | Local collections of tasks in a scheduler |
CN101452404B (zh) * | 2008-12-09 | 2013-11-06 | 中兴通讯股份有限公司 | 一种嵌入式操作系统的任务调度装置及方法 |
CN101540787B (zh) * | 2009-04-13 | 2011-11-09 | 浙江大学 | 片上分布式操作系统通讯模块的实现方法 |
CN102455932B (zh) * | 2010-10-22 | 2014-06-25 | 金蝶软件(中国)有限公司 | 一种任务实例串行执行方法、装置及系统 |
CN103631751B (zh) * | 2013-12-17 | 2016-04-27 | 武汉科技大学 | 一种基于连接特征的多任务集合划分方法 |
CN104765640B (zh) * | 2014-01-02 | 2018-02-16 | 中国科学院声学研究所 | 一种智能服务调度方法 |
CN104090747B (zh) * | 2014-05-22 | 2018-08-21 | 清华大学 | 利用实时调度优化器对Linux智能终端进行优化的方法 |
CN106502767B (zh) * | 2015-09-08 | 2019-11-19 | 大唐移动通信设备有限公司 | 一种进程管理方法及其装置 |
CN109144716A (zh) * | 2017-06-28 | 2019-01-04 | 中兴通讯股份有限公司 | 基于机器学习的操作系统调度方法及装置、设备 |
CN116700135B (zh) * | 2023-08-09 | 2023-10-20 | 长江三峡集团实业发展(北京)有限公司 | 可编程逻辑控制器任务调度方式的测试方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6052707A (en) * | 1993-09-21 | 2000-04-18 | Microsoft Corporation | Preemptive multi-tasking with cooperative groups of tasks |
CN1516419A (zh) * | 2002-12-23 | 2004-07-28 | 国际商业机器公司 | 在主机计算机网络上处理客户机请求的系统和方法 |
US20040226015A1 (en) * | 2003-05-09 | 2004-11-11 | Leonard Ozgur C. | Multi-level computing resource scheduling control for operating system partitions |
US20060037018A1 (en) * | 2004-08-16 | 2006-02-16 | Dell Products L.P. | System, method and software providing an adaptive job dispatch algorithm for large distributed jobs |
-
2006
- 2006-03-16 CN CNB2006100498741A patent/CN100377091C/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6052707A (en) * | 1993-09-21 | 2000-04-18 | Microsoft Corporation | Preemptive multi-tasking with cooperative groups of tasks |
CN1516419A (zh) * | 2002-12-23 | 2004-07-28 | 国际商业机器公司 | 在主机计算机网络上处理客户机请求的系统和方法 |
US20040226015A1 (en) * | 2003-05-09 | 2004-11-11 | Leonard Ozgur C. | Multi-level computing resource scheduling control for operating system partitions |
US20060037018A1 (en) * | 2004-08-16 | 2006-02-16 | Dell Products L.P. | System, method and software providing an adaptive job dispatch algorithm for large distributed jobs |
Also Published As
Publication number | Publication date |
---|---|
CN1818875A (zh) | 2006-08-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100377091C (zh) | 嵌入式操作系统分组硬实时任务调度的实现方法 | |
Qin et al. | Arachne:{Core-Aware} Thread Management | |
Hedayati et al. | {Multi-Queue} fair queuing | |
US9454389B2 (en) | Abstracting a multithreaded processor core to a single threaded processor core | |
CN103324525B (zh) | 一种云计算环境下的任务调度方法 | |
US8881161B1 (en) | Operating system with hardware-enabled task manager for offloading CPU task scheduling | |
CN105955796B (zh) | 一种云平台上高性能并行应用的调度方法及系统 | |
CN101923491A (zh) | 多核环境下线程组地址空间调度和切换线程的方法 | |
CN105550040B (zh) | 基于kvm平台的虚拟机cpu资源预留算法 | |
WO2014110702A1 (zh) | 协同并发式消息总线、主动构件组装模型及构件拆分方法 | |
Ng et al. | Paella: Low-latency model serving with software-defined gpu scheduling | |
CN104598298A (zh) | 基于虚拟机当前工作性质以及任务负载的虚拟机调度算法 | |
CN101968749B (zh) | 虚拟机过度分配环境下的mpi消息接收方法 | |
CN106339257A (zh) | 使客户机操作系统轻量化的方法及系统和虚拟化操作系统 | |
Yu et al. | Colab: a collaborative multi-factor scheduler for asymmetric multicore processors | |
Zhao et al. | Preemptive multi-queue fair queuing | |
CN107589993A (zh) | 一种基于linux实时操作系统的动态优先级调度算法 | |
CN104866370B (zh) | 一种云计算环境下面向并行应用的动态时间片调度方法及系统 | |
CN1825288A (zh) | 嵌入式sram操作系统进程多队列调度的实现方法 | |
Minami et al. | Effectiveness of the oversubscribing scheduling on supercomputer systems | |
CN103777995B (zh) | 虚拟化环境下基于群调度的同步优化调度系统和调度方法 | |
Wellings et al. | Asynchronous event handling and real-time threads in the real-time specification for Java | |
WO2014110701A1 (zh) | 独立主动构件和可运行主动构件组装模型及构件拆分方法 | |
Ding et al. | Scheduling policy optimization in kernel-based virtual machine | |
CN119065817B (zh) | 一种在大小核架构cpu下的多进程动态调度方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20080326 Termination date: 20120316 |