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

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

Info

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
Application number
CNB2006100498741A
Other languages
English (en)
Other versions
CN1818875A (zh
Inventor
陈天洲
胡威
谢斌
赵懿
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhejiang University ZJU
Original Assignee
Zhejiang University ZJU
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Zhejiang University ZJU filed Critical Zhejiang University ZJU
Priority to CNB2006100498741A priority Critical patent/CN100377091C/zh
Publication of CN1818875A publication Critical patent/CN1818875A/zh
Application granted granted Critical
Publication of CN100377091C publication Critical patent/CN100377091C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

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所述的一种嵌入式操作系统分组硬实时任务调度的实现方法,其特征在于:所述的各种常见的调度算法为:循环执行调度算法,先进先出的调度算法,基于优先级的调度算法和反馈式队列的调度算法。
CNB2006100498741A 2006-03-16 2006-03-16 嵌入式操作系统分组硬实时任务调度的实现方法 Expired - Fee Related CN100377091C (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (4)

* Cited by examiner, † Cited by third party
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) 嵌入式操作系统分组硬实时任务调度的实现方法
WO2021208546A1 (zh) Kubernetes集群架构系统下多维资源调度方法
US9798595B2 (en) Transparent user mode scheduling on traditional threading systems
US7370326B2 (en) Prerequisite-based scheduler
US8683474B2 (en) Accounting apparatus and method for SMT processor
EP2300910B1 (en) Scheduler instances in a process
CN100485625C (zh) 一种实时系统任务调度方法
WO2016078008A1 (zh) 调度数据流任务的方法和装置
CN108804211A (zh) 线程调度方法、装置、电子设备及存储介质
US20120072621A1 (en) Dynamic balancing of io resources on numa platforms
CN109144710A (zh) 资源调度方法、装置及计算机可读存储介质
US8397234B2 (en) Determining a priority value for a thread for execution on a multithreading processor system
US7590990B2 (en) Computer system
WO2018126771A1 (zh) 一种存储控制器及io请求处理方法
CN102207883A (zh) 异构分布式实时系统的事务调度方法
CN107885577A (zh) 一种基于任务主副本和重提交结合的云计算资源混合式容错调度方法
US20070150899A1 (en) Semaphore management method and computer product
CN110187970A (zh) 一种基于Hadoop MapReduce的分布式大数据并行计算方法
Yu et al. Colab: a collaborative multi-factor scheduler for asymmetric multicore processors
CN103870313B (zh) 一种虚拟机任务调度方法及系统
WO2018119899A1 (zh) 一种存储控制器及io请求处理方法
CN106325983A (zh) 一种内存占用小、支持并发的微程模型及调度方法
CN110879746B (zh) 基于核间迁移的高安全关键任务调度方法
CN112416539B (zh) 面向异构众核处理器的多任务并行调度方法
Wawrzoniak et al. Imaginary Machines: A Serverless Model for Cloud Applications

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