CN102323895A - 一种基于机顶盒嵌入式操作系统实时调度方法 - Google Patents

一种基于机顶盒嵌入式操作系统实时调度方法 Download PDF

Info

Publication number
CN102323895A
CN102323895A CN201110259076A CN201110259076A CN102323895A CN 102323895 A CN102323895 A CN 102323895A CN 201110259076 A CN201110259076 A CN 201110259076A CN 201110259076 A CN201110259076 A CN 201110259076A CN 102323895 A CN102323895 A CN 102323895A
Authority
CN
China
Prior art keywords
time
task
real
operating system
top box
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.)
Pending
Application number
CN201110259076A
Other languages
English (en)
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.)
Guangdong Zhongdaxuntong Software Science & Technology Co Ltd
Original Assignee
Guangdong Zhongdaxuntong Software Science & Technology Co Ltd
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 Guangdong Zhongdaxuntong Software Science & Technology Co Ltd filed Critical Guangdong Zhongdaxuntong Software Science & Technology Co Ltd
Priority to CN201110259076A priority Critical patent/CN102323895A/zh
Publication of CN102323895A publication Critical patent/CN102323895A/zh
Pending legal-status Critical Current

Links

Images

Abstract

本发明实施例公开了一种基于机顶盒嵌入式操作系统实时调度方法,所述方法包括:接收进入嵌入式操作系统的任务;根据进程任务管理task_Struct属性识别任务的实时性的类型;若所述任务的实时性的类型为硬实时,则采用最小松弛时间优先调度算法MLF对任务进行处理;若所述任务的实时性的类型为软实时,则采用原内核的时间片轮转法RR调度算法对任务进行处理。通过实施本发明实施例,分析了Linux的实时性,针对其在实时应用中的技术障碍,在参考了与此相关研究基础上,从提出了改善Linux实时性能的改进措施,保证了机顶盒操作系统的实时性,保证了电视流数据的质量。

Description

一种基于机顶盒嵌入式操作系统实时调度方法
技术领域
本发明涉及通信技术领域,尤其涉及一种基于机顶盒嵌入式操作系统实时调度方法。
背景技术
嵌入式数字电视操作系统由于硬件条件和产品需求的不同,需要不同的系统内核模块,项目通过内核裁减、系统移植,内核重编译等技术的研究,研发机顶盒终端嵌入式操作系统的个性定制,实现不同产品嵌入式操作系统的定制。另一方面,面向三网融合的交互服务具有多任务、并发性等特点,要求嵌入式操作系统具有更好的并发任务调度管理机制。并研发多任务的并发调度机制,多任务内存管理机制,多任务优先级响应机制等技术,实现对嵌入式数字电视操作系统并发任务调度管理。同时,媒体服务和交互应用服务都具有实时响应的特点,开展实时多任务的操作系统(RTOS)内核的研究也是非常必要的,从分时调度、中断响应、上下文切换等方面进行研究,提高操作系统的实时性、并发任务调度等技术,实现高效、稳定的嵌入式数字电视操作系统实时响应。
近年来,人们对于Linux内核实时性改造提出了一些方法和设想,它们采用了不同的思路和技术方案。归纳总结,支持Linux的硬实时性一般有两种策略:一种是直接修改Linux内核,重新编写一个由优先级驱动的实时调度器(Real-timeScheduler),替换原有内核中的进程调度器sched.c,KURT是采用这一方案较为成功的实时Linux操作系统;另外一种是在Linux内核之外,以可加载内核模块(Loadable Kernel Module)的形式添加实时内核,确保其高响应特性,实时内核接管来自硬件的所有中断,并依据是否是实时任务决定是否直接响应。新墨西哥科技大学的RT-Linux,就是基于这种策略而开发的。以上两种策略有其借鉴之处,但如果综合考虑任务响应、内核抢占性、实时调度策略等几个影响操作系统实时性能的重要方面,它们还不能很好的满足实时性问题。
尽管Linux本身提供了一些支持实时性的机制,然而,由于Linux系统是以高的吞吐量和公平性为追求目标,基本上没有考虑实时应用所要满足的时间约束,它只是提供了一些相对简单的任务调度策略。因此,实时性问题是将Linux应用于嵌入式系统开发的一大障碍,无法在硬实时系统中得到应用。Linux在实时应用中的技术障碍具体表现在:
(1)Linux系统时钟精度太过粗糙,时钟中断周期为10ms,使得其时间粒度过大,加大了任务响应延迟。
(2)Linux的内核是不可抢占的,当一个任务通过系统调用进入内核态运行时,一个具有更高优先级的进程,只有等待处于核心态的系统调用返回后方能执行,这将导致优先级逆转。实时任务执行时间的不确定性,显然不能满足硬实时应用的要求。
(3)Linux采用对临界区操作时屏蔽中断的方式,在中断处理中是不允许进行任务调度的,从而抑制了系统及时响应外部操作的能力。
(4)缺乏有效的实时任务调度机制和调度算法。
针对这些问题,利用Linux作为底层操作系统,必须增强其内核的实时性能,从而构建出一个具有实时处理能力的嵌入式系统,适应机顶盒嵌入式领域应用的需要。
发明内容
本发明的目的在于克服现有技术的不足,本发明提供了一种基于机顶盒嵌入式操作系统实时调度方法,分析了Linux的实时性,针对其在实时应用中的技术障碍,在参考了与此相关研究基础上,从提出了改善Linux实时性能的改进措施,保证了机顶盒操作系统的实时性,保证了电视流数据的质量。
为了解决上述问题,本发明提出了一种基于机顶盒嵌入式操作系统实时调度方法,所述方法包括:
接收进入嵌入式操作系统的任务;
根据进程任务管理task_Struct属性识别任务的实时性的类型;
若所述任务的实时性的类型为硬实时,则采用最小松弛时间优先调度算法MLF对任务进行处理;
若所述任务的实时性的类型为软实时,则采用原内核的时间片轮转法RR调度算法对任务进行处理。
所述步骤之前还包括:
对task_Struct属性进行修改,增加MLF调度策略,并按task_Struct中的policy的取值来区分标识硬实时任务、或者软实时任务、或者非实时任务。
所述硬实时为系统中确保任务执行最坏情况下的执行时间必须满足实时事件的响应时间的截止期限;软实时为统计意义上的实时,整体吞吐量大或整体响应速度快,但不能保证特定任务在制定时期内完成。
所述根据task_Struct属性识别任务的实时性的类型中包括:
将处于运行状态的任务进行任务队列的划分,将属于硬实时的任务放入硬实时任务队列,将属于软实时的任务、或者非实时的任务、或者空闲任务放入到软实时任务队列。
在根据task_Struct属性识别任务的实时性的类型之后,首先通过MLF调度器扫描任务,并提取属于硬实时的任务队列,通过MLF对任务进行调度处理。
在根据task_Struct属性识别任务的实时性的类型之后,首先采用原内核的RR调度算法对属于软实时的任务进行处理,之后,通过MLF调度器对硬实时的任务进行处理。
在根据task_Struct属性识别任务的实时性的类型之后,同步对硬实时的任务或者软实时的任务进行调度处理。
在本发明实施例中,基于增强Linux内核实时性的主流技术,从实时调度策略入手,提出了改善Linux实时性能的优化方法;针对Linux中缺乏实时调度机制和调度算法的问题,可以将目前采用的几种调度算法结合起来,实现一个通用的实时调度框架;针对长任务的存在使系统的实时性下降的问题,可以采用两种长任务分割方法来实现。通过分析Linux的实时性,针对其在实时应用中的技术障碍,在参考了与此相关研究基础上,从提出了改善Linux实时性能的改进措施,保证了机顶盒操作系统的实时性,保证了电视流数据的质量。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1是本发明实施例中的MLF调度流程图;
图2是本发明实施例中的双队列任务运行示意图;
图3是本发明实施例中的MLF双队列任务调用方法流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例中主要分析了Linux的实时性,针对其在实时应用中的技术障碍,在参考了与此相关研究基础上,从提出了改善Linux实时性能的改进措施,保证了机顶盒操作系统的实时性,保证了电视流数据的质量。将进入系统的所有任务按实时性分成三类:硬实时、软实时、非实时任务。硬实时要求系统确保任务执行最坏情况下的执行时间,即必须满足实时事件的响应时间的截止期限,否则,将引发致命的错误;软实时是指统计意义上的实时,一般整体吞吐量大或整体响应速度快,但不能保证特定任务在指定时期内完成。针对不同的实时性任务,分别采用不同的调度方法进行处理。
为了严格保证硬实时任务的时限要求,改善的Linux内核实时调度器采用了优先级调度算法,目前最小松弛时间优先调度算法MLF(Minimum-Laxity-FirstScheduling Algorithm)是动态优先级调度最常见的实时调度策略。它在系统中为每一个任务设定松弛时间(任务的松弛时间等于任务的截止期减去任务执行时间、当前时间)即:laxity=deadline current_time CPU_time_needed,系统优先执行具有最小松弛时间的任务。根据就绪队列的各任务的松弛时间来分配优先级,松弛时间最小的任务具有最高的优先级。为了提高Linux的实时性,我们设计了MLF调度器,并把它作为可加载模块加入Linux内核中,在实现中需对内核进行相应的修改。其具体步骤如下:
Step1:启动到机顶盒基本运行系统,系统内核加载MLF调度器;
Step2:MLF调度器扫描实时任务队列,以顺序方式找出任务松弛时间最小的任务调用。
Step3:若找到实时任务,加载实时任务。
为了区分任务的类型,对基本Linux的task_struct属性进行改进,在其中增加SCHED_MLF调度策略,并按task_struct中的policy的取值来进行区分,分别用SCHED_MLF,SCHED_RR,SCHED_OTHER来标识硬实时、软实时、非实时任务。将处于运行状态的三类任务放入两个队列,硬实时任务放入hard_real_queue队列,采用MLF调度算法,软实时和非实时任务放入non_real_queue队列(空闲任务也在其中),沿用原内核的RR调度算法。这两个队列可以用一个run_queue的指针数组来指向,如图2所示。
双队列任务运行过程与原内核的单运行队列执行流程的主要区别在:首先,各硬实时任务采用了MLF调度算法代替原内核的FIFO调度,提高了Linux系统的实时性能。其次,在判断是否有软中断需要处理之前需判断硬实时任务队列是否为空,如果不为空,即使存在中断的后半部分需要处理,也要先调度硬实时任务投入运行,在硬实时队列为空的条件下才去处理中断的后半部分(因为中断的后半部分没有硬实时任务紧急)。最后,如果没有硬实时任务存在,则说明只有run_queue队列中有软实时或非实时任务存在,这时的处理方法和原内核对单运行队列的处理方法相同。这样改进后,可以明显提高硬实时任务的调度效率,而在没有硬实时任务时,系统性能没有变化。其具体步骤如下:
Step1:启动到机顶盒基本运行系统,系统内核加载MLF调度器。
Step2:把任务分成硬实时任务和软实时任务。
Step3:MLF调度器扫描硬实时任务队列,以顺序方式找出任务松弛时间最小的任务调用。
Step4:若没有硬实时任务,切换到内核自带的任务调度器调用软实时任务。
需要说明的是,本发明实施例中主要实现方案中:接收进入嵌入式操作系统的任务;根据进程任务管理task_Struct属性识别任务的实时性的类型;若所述任务的实时性的类型为硬实时,则采用最小松弛时间优先调度算法MLF对任务进行处理;若所述任务的实时性的类型为软实时,则采用原内核的时间片轮转法RR调度算法对任务进行处理。
这里在根据task_Struct属性识别任务的实时性的类型之后,可以首先通过MLF调度器扫描任务,并提取属于硬实时的任务队列,通过MLF对任务进行调度处理。
具体的,这里可以是在根据task_Struct属性识别任务的实时性的类型之后,首先采用原内核的RR调度算法对属于软实时的任务进行处理,之后,通过MLF调度器对硬实时的任务进行处理。
进一步的,这里还可以在根据task_Struct属性识别任务的实时性的类型之后,同步对硬实时的任务或者软实时的任务进行调度处理。
在本发明实施例中,基于增强Linux内核实时性的主流技术,从实时调度策略入手,提出了改善Linux实时性能的优化方法;针对Linux中缺乏实时调度机制和调度算法的问题,可以将目前采用的几种调度算法结合起来,实现一个通用的实时调度框架;针对长任务的存在使系统的实时性下降的问题,可以采用两种长任务分割方法来实现。通过分析Linux的实时性,针对其在实时应用中的技术障碍,在参考了与此相关研究基础上,从提出了改善Linux实时性能的改进措施,保证了机顶盒操作系统的实时性,保证了电视流数据的质量。
以上对本发明实施例所提供的,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (7)

1.一种基于机顶盒嵌入式操作系统实时调度方法,其特征在于,所述方法包括:
接收进入嵌入式操作系统的任务;
根据进程任务管理task_Struct属性识别任务的实时性的类型;
若所述任务的实时性的类型为硬实时,则采用最小松弛时间优先调度算法MLF对任务进行处理;
若所述任务的实时性的类型为软实时,则采用原内核的时间片轮转法RR调度算法对任务进行处理。
2.如权利要求1所述的基于机顶盒嵌入式操作系统实时调度方法,其特征在于,所述步骤之前还包括:
对task_Struct属性进行修改,增加MLF调度策略,并按task_Struct中的policy的取值来区分标识硬实时任务、或者软实时任务、或者非实时任务。
3.如权利要求2所述的基于机顶盒嵌入式操作系统实时调度方法,其特征在于,所述硬实时为系统中确保任务执行最坏情况下的执行时间必须满足实时事件的响应时间的截止期限;软实时为统计意义上的实时,整体吞吐量大或整体响应速度快,但不能保证特定任务在制定时期内完成。
4.如权利要求3所述的基于机顶盒嵌入式操作系统实时调度方法,其特征在于,所述根据task_Struct属性识别任务的实时性的类型中包括:
将处于运行状态的任务进行任务队列的划分,将属于硬实时的任务放入硬实时任务队列,将属于软实时的任务、或者非实时的任务、或者空闲任务放入到软实时任务队列。
5.如权利要求1至4任一项所述的基于机顶盒嵌入式操作系统实时调度方法,其特征在于,在根据task_Struct属性识别任务的实时性的类型之后,首先通过MLF调度器扫描任务,并提取属于硬实时的任务队列,通过MLF对任务进行调度处理。
6.如权利要求1至4任一项所述的基于机顶盒嵌入式操作系统实时调度方法,其特征在于,在根据task_Struct属性识别任务的实时性的类型之后,首先采用原内核的RR调度算法对属于软实时的任务进行处理,之后,通过MLF调度器对硬实时的任务进行处理。
7.如权利要求1至4任一项所述的基于机顶盒嵌入式操作系统实时调度方法,其特征在于,在根据task_Struct属性识别任务的实时性的类型之后,同步对硬实时的任务或者软实时的任务进行调度处理。
CN201110259076A 2011-09-02 2011-09-02 一种基于机顶盒嵌入式操作系统实时调度方法 Pending CN102323895A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201110259076A CN102323895A (zh) 2011-09-02 2011-09-02 一种基于机顶盒嵌入式操作系统实时调度方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201110259076A CN102323895A (zh) 2011-09-02 2011-09-02 一种基于机顶盒嵌入式操作系统实时调度方法

Publications (1)

Publication Number Publication Date
CN102323895A true CN102323895A (zh) 2012-01-18

Family

ID=45451640

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110259076A Pending CN102323895A (zh) 2011-09-02 2011-09-02 一种基于机顶盒嵌入式操作系统实时调度方法

Country Status (1)

Country Link
CN (1) CN102323895A (zh)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102866917A (zh) * 2012-09-27 2013-01-09 深圳市金宏威技术股份有限公司 一种基于Linux平台的冷火实时处理方法及系统
CN104915254A (zh) * 2014-12-31 2015-09-16 杰瑞石油天然气工程有限公司 一种嵌入式系统的多任务调度方法及系统
CN105373425A (zh) * 2015-10-28 2016-03-02 浪潮(北京)电子信息产业有限公司 一种嵌入式Linux系统性能优化的方法及装置
US20160299796A1 (en) * 2013-11-26 2016-10-13 Siemens Aktiengesellschaft Offloading human-machine-interaction tasks
CN107273202A (zh) * 2017-07-14 2017-10-20 郑州云海信息技术有限公司 一种控制任务调度的方法和装置
CN107832154A (zh) * 2017-11-14 2018-03-23 浙江亿邦通信科技股份有限公司 一种多进程处理方法、处理装置及应用
CN109343960A (zh) * 2018-10-12 2019-02-15 郑州云海信息技术有限公司 一种Linux系统的任务调度方法、系统及相关装置
CN109885383A (zh) * 2018-10-30 2019-06-14 广东科学技术职业学院 一种带约束条件的非单位时间任务调度方法
CN110825506A (zh) * 2019-10-31 2020-02-21 湖南智领通信科技有限公司 一种嵌入式操作系统的任务调度方法、装置及存储介质
CN111221638A (zh) * 2020-01-03 2020-06-02 北京字节跳动网络技术有限公司 并发任务的调度处理方法、装置、设备和介质
CN113759815A (zh) * 2021-08-03 2021-12-07 北京工业职业技术学院 一种基于边缘计算的互联工厂iotplc处理平台

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060010446A1 (en) * 2004-07-06 2006-01-12 Desai Rajiv S Method and system for concurrent execution of multiple kernels
CN101923487A (zh) * 2010-08-06 2010-12-22 西华师范大学 一种综合嵌入式实时周期任务调度方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060010446A1 (en) * 2004-07-06 2006-01-12 Desai Rajiv S Method and system for concurrent execution of multiple kernels
CN101923487A (zh) * 2010-08-06 2010-12-22 西华师范大学 一种综合嵌入式实时周期任务调度方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
吴娇梅等: "改善嵌入式linux实时性能的方法研究", 《微计算机信息》, vol. 22, no. 12, 31 December 2006 (2006-12-31) *

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102866917B (zh) * 2012-09-27 2015-08-19 深圳市金宏威技术股份有限公司 一种基于Linux平台的冷火实时处理方法及系统
CN102866917A (zh) * 2012-09-27 2013-01-09 深圳市金宏威技术股份有限公司 一种基于Linux平台的冷火实时处理方法及系统
US10185598B2 (en) * 2013-11-26 2019-01-22 Siemens Akitiengesellschaft Method and system for offloading industrial tasks in a human-machine interface panel to other devices
US20160299796A1 (en) * 2013-11-26 2016-10-13 Siemens Aktiengesellschaft Offloading human-machine-interaction tasks
CN104915254A (zh) * 2014-12-31 2015-09-16 杰瑞石油天然气工程有限公司 一种嵌入式系统的多任务调度方法及系统
CN105373425A (zh) * 2015-10-28 2016-03-02 浪潮(北京)电子信息产业有限公司 一种嵌入式Linux系统性能优化的方法及装置
CN107273202A (zh) * 2017-07-14 2017-10-20 郑州云海信息技术有限公司 一种控制任务调度的方法和装置
CN107832154A (zh) * 2017-11-14 2018-03-23 浙江亿邦通信科技股份有限公司 一种多进程处理方法、处理装置及应用
CN107832154B (zh) * 2017-11-14 2020-07-17 浙江亿邦通信科技有限公司 一种多进程处理方法、处理装置及应用
CN109343960A (zh) * 2018-10-12 2019-02-15 郑州云海信息技术有限公司 一种Linux系统的任务调度方法、系统及相关装置
CN109885383A (zh) * 2018-10-30 2019-06-14 广东科学技术职业学院 一种带约束条件的非单位时间任务调度方法
CN109885383B (zh) * 2018-10-30 2023-08-01 广东科学技术职业学院 一种带约束条件的非单位时间任务调度方法
CN110825506A (zh) * 2019-10-31 2020-02-21 湖南智领通信科技有限公司 一种嵌入式操作系统的任务调度方法、装置及存储介质
CN111221638A (zh) * 2020-01-03 2020-06-02 北京字节跳动网络技术有限公司 并发任务的调度处理方法、装置、设备和介质
CN113759815A (zh) * 2021-08-03 2021-12-07 北京工业职业技术学院 一种基于边缘计算的互联工厂iotplc处理平台

Similar Documents

Publication Publication Date Title
CN102323895A (zh) 一种基于机顶盒嵌入式操作系统实时调度方法
KR101057452B1 (ko) 스마트카드 임베디드 조작 시스템 및 작업처리 방법
US9880875B2 (en) Apparatus and method for hardware-based task scheduling
US9772879B2 (en) System and method for isolating I/O execution via compiler and OS support
CN101452404B (zh) 一种嵌入式操作系统的任务调度装置及方法
KR101258502B1 (ko) 멀티코어 아키텍처 내의 리소스 관리
US7493436B2 (en) Interrupt handling using simultaneous multi-threading
CN102779075A (zh) 一种在多处理器核系统中进行调度的方法、装置及系统
US9858115B2 (en) Task scheduling method for dispatching tasks based on computing power of different processor cores in heterogeneous multi-core processor system and related non-transitory computer readable medium
CN104536827B (zh) 一种数据调度方法和装置
CN102043667A (zh) 一种嵌入式操作系统的任务调度方法
CN101459605B (zh) 一种流量控制方法和设备
CN102541640A (zh) 一种集群gpu资源调度系统和方法
CN103941649A (zh) 多轴运动卡控制系统的控制方法
CN105337896A (zh) 报文处理方法和装置
CN101135981A (zh) 一种实现批量报表生成的方法及装置
CN102541642B (zh) 一种增强实时性能的任务管理方法
CN101414270A (zh) 硬件辅助的辅核任务动态优先级调度的实现方法
CN103136047A (zh) 一种多线程管理方法及架构
WO2023246044A1 (zh) 调度方法及装置、芯片、电子设备及存储介质
CN109343960A (zh) 一种Linux系统的任务调度方法、系统及相关装置
CN102799487A (zh) 基于阵列/lun的io调度方法及装置
CN111026519A (zh) 基于分布式的任务优先级调度方法和系统及存储介质
CN112162835A (zh) 一种异构云环境下实时任务的调度优化方法
CN105373425A (zh) 一种嵌入式Linux系统性能优化的方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
DD01 Delivery of document by public notice

Addressee: Guangdong Zhongdaxuntong Software Science & Technology Co., Ltd.

Document name: Notification that Application Deemed to be Withdrawn

C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20120118