CN103823706B - 一种基于RTLinux的被控对象模型模拟仿真实时调度方法 - Google Patents

一种基于RTLinux的被控对象模型模拟仿真实时调度方法 Download PDF

Info

Publication number
CN103823706B
CN103823706B CN201410048370.2A CN201410048370A CN103823706B CN 103823706 B CN103823706 B CN 103823706B CN 201410048370 A CN201410048370 A CN 201410048370A CN 103823706 B CN103823706 B CN 103823706B
Authority
CN
China
Prior art keywords
task
time
computation
queue
intensive
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
CN201410048370.2A
Other languages
English (en)
Other versions
CN103823706A (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 CN201410048370.2A priority Critical patent/CN103823706B/zh
Publication of CN103823706A publication Critical patent/CN103823706A/zh
Application granted granted Critical
Publication of CN103823706B publication Critical patent/CN103823706B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

本发明公开了一种基于RTLinux的被控对象模型模拟仿真实时调度方法,利用周期性计算密集型任务在周期到来时,并不是直接抢占突发性交互任务,而是以低优先级的形式参与全局调度。从而提高了交互任务响应时间,减少其任务丢失率,而计算密集型任务在经过提升时间后,进入与特定处理器进行绑定的高优先级队列中参与局部调度,减少了其在不同处理器之间切换所造成的处理器缺页,降低了调度延迟,从而有效提升计算密集型任务的响应实时性,交互任务能够和计算密集型任务并行执行,充分利用了多核处理器的性能。

Description

一种基于RTLinux的被控对象模型模拟仿真实时调度方法
技术领域
基于RTLinux的被控对象模型模拟仿真实时调度方法的研究是属于实时操作系统的调度性能领域,特别涉及模型模拟仿真计算以及仿真信号监控任务的响应实时性的关键问题,尤其涉及一种基于RTLinux的被控对象模型模拟仿真实时调度方法。
背景技术
RTLinux(Real-Time Linux)是由美国新墨西哥科技大学数据挖掘技术学院的Victor Yodaiken为了提高系统实时性,在Linux内核基础上研发的一套实时操作系统。其将系统内核划分为实时内核和原有的Linux内核。实时内核上运行实时任务,原有Linux内核则作为实时内核的一个优先级最低的作业运行普通的作业。原有Linux内核通过实时内核访问硬件或进行其他操作,即系统的调度和管理都是由RTLinux内核负责。当系统中出现实时任务请求时,系统会以抢占方式优先调用该实时任务,从而保障实时任务的响应时间。RTLinux允许用户针对具体的应用场景改造实时调度方法,从而更有效的提高系统实时性能。
随着计算机软件和硬件的快速发展,越来越多的动态仿真模型运行在多处理器通用机上,而目前RTLinux系统中提出的各种成熟的实时调度方法大多都是基于单处理器系统,无法充分发挥多核处理器强大的并行能力。同时,大多数的仿真模型系统中除了存在可预测的周期性实时计算任务以外,还存在大量的不可预测的非周期性交互任务。需要提出一种基于多处理器的混合任务实时调度机制来合理的分配模型中的任务到各个处理器中进行处理,在提高模型周期性任务实时性能的同时,减少突发交互任务的丢失率。
发明内容
针对上述技术问题,本发明提出一种基于RTLinux的被控对象模型模拟仿真实时调度方法。
为了解决上述技术问题,本发明的技术方案如下:
一种基于RTLinux的被控对象模型模拟仿真实时调度方法,包括如下步骤:
11)根据被控对象模型的仿真任务特点,将其划分为计算密集型任务和交互性任务,所述计算密集型任务负责不断的计算模型的仿真参数,是周期性的硬实时任务,假设有n个;所述交互性任务负责模型的I/O通信,是突发性的非周期性软实时任务;
12)根据仿真系统处理器核心个数m,将实时任务队列划分为m-1个高优先级局部任务队列以及2个低优先级全局任务队列A、B,且A队列的优先级大于B列队,同时将仿真系统中存在n个周期性硬实时任务{τ1,τ2,…,τn},依次绑定到m-1个局部队列中;
13)系统进行初始化,当不存在交互性任务时,各个计算密集型任务第一个周期的提升时间阈值为Li 1,随后,对于每个计算密集型任务,根据上一个周期的响应时间,不断的更新下一个周期的提升时间阈值;
14)对于模型的每个计算密集型任务τi,所述i大于等于1,且小于等于n,规定其在初始状态下,处于全局队列B中,与全局队列A中的交互性任务一起参与全局调度,当全局队列B中的密集型任务经过提升时间阈值后,会切换到对应的局部队列中,参与到特定处理器的调度,具体步骤包括:
14-1):周期性的硬实时任务在每个周期到来时,首先加入到全局队列B中,使用非抢占式速率单调调度方法来参与调度;
14-2):非周期性软实时任务出现时,加入到全局队列A中,使用非抢占式时限调度方法来参与调度;
14-3):全局调度器遍历处理器列表,获取一个空闲的处理器,并从全局队列中按照优先级选择任务进行执行;
14-4):全局队列B中的计算密集型任务经过提升时间阈值后,从全局队列中转移到原先绑定的局部队列中,使用抢占式最早时限优先调度方法参与特定处理器的调度。
进一步的,步骤13)中更新提升时间阈值的方法包括如下步骤:
21)当系统处于初始状态时,通过模拟理想状态下的实时任务调度,能够得到每个计算密集型任务的响应时间Ri,并通过公式得到每个任务第一个周期的提升时间阈值Li 1;所述Di为每个任务的截止时间;
22)当第i个计算密集型任务第k次周期结束后,获得当前周期的响应时间Ri k,并通过公式得到第k+1次周期的提升时间阈值Li k+1
进一步的,步骤14)中当交互性任务出现时,需要通过调度模拟,计算检测该任务的执行是否会响应到周期性的硬实时任务响应情况,具体包括如下步骤:
31)首先对当前出现的所有交互性任务按照非抢占式速率单调调度方法进行排序,对于第u个交互性任务Pu=<Du,Au,Eu>,通过计算公式来判断是否可接受,其中αj为第j个交互性任务已经完成的时间部分,T指周期性服务器的周期,L是指将这个周期平均分为L个单位,D和A都作为时间单位,若δu>0,则进一步判断当此任务加入到全局队列A后,所有截止时间在Du之后的突发任务的相应δ,若δ>0,则可以接受该作业,并将该任务放入全局队列A对应的位置,否则丢弃。
本发明的有益效果在于:与现有技术相比,(1)周期性计算密集型任务在周期到来时,并不是直接抢占突发性交互任务,而是以低优先级的形式参与全局调度。从而提高了交互任务响应时间,减少其任务丢失率。(2)计算密集型任务在经过提升时间后,进入与特定处理器进行绑定的高优先级队列中参与局部调度,减少了其在不同处理器之间切换所造成的处理器缺页,降低了调度延迟,从而有效提升计算密集型任务的响应实时性。(3)交互任务能够和计算密集型任务并行执行,充分利用了多核处理器的性能。
附图说明
图1为基于RTLinux的被控对象模型模拟仿真实时调度方法示意图;
图2为周期性计算密集型任务调度流程示意图;
图3为处理器调度过程。
具体实施方式
下面将结合附图和具体实施例对本发明做进一步的说明。
步骤1:根据被控对象模型的仿真任务特点,将其划分为计算密集型任务和交互性任务,主要是完成simulink模型自带的计算程序的任务作为计算密集型任务,而完成与外部交互的程序的任务作为突发性交互性任务。前者是计算密集型任务负责不断的计算模型的仿真参数,是周期性的硬实时任务,必须保证其实时性;而后者是交互性任务负责模型的I/O通信,是突发性的非周期性软实时任务,尽可能保证在截至时间之前完成,如果完成不了,则丢弃。
步骤2:根据仿真系统处理器核心个数m,将硬实时任务队列划分为m-1个高优先级局部任务队列以及2个低优先级全局任务队列A、B,局部列队和全局列队两者相互独立,全局是指在全局队列中的任务可以选择任何处理器进行调度,而局部则指当前局部队列只能在原先绑定过的处理器上进行调度。其中按照优先级高低分局部队列>全局队列A>全局队列B。同时设仿真系统中存在n个周期性实时任务{τ1,τ2,…,τn},依次绑定到m-1个局部队列中,具体例如可以采取在Linux内核的cpu数据结构上加上一个队列模块,标识当前处理器所绑定的局部队列的方式进行绑定。
步骤3:系统在初始状态时,模拟、计算理想状态下(不存在突发性交互任务),各个周期性计算密集型任务第一个周期的提升时间阈值L1。随后,对于每个周期性任务,根据上一个周期的响应时间,不断的更新下一个周期的提升时间阈值。
步骤4:对于模型的每个计密集型任务τi,规定其在初始状态下,处于全局队列B中,以更低的优先级与全局队列A中的交互性任务一起参与全局调度。当全局队列B中的密集型任务经过提升时间后,会切换到对应的局部队列中,参与到特定处理器的调度。具体步骤如下:
步骤2-1:周期性任务在每个周期到来时,首先加入到全局队列B中,使用非抢占式速率单调调度方法(RM,Rate Monotonic)来参与调度。
步骤2-2:非周期性突发任务出现时,加入到全局队列A中,使用非抢占式时限调度方法(DM,Deadline Monotonic)来参与调度。
步骤2-3:全局调度器遍历处理器列表,获取一个空闲的处理器,并从全局队列中按照优先级选择任务进行执行。
步骤2-4:全局队列B中的周期性计算密集型任务经过提升时间后,从全局队列中转移到原先绑定的局部队列中,使用抢占式最早时限优先调度方法(EDF,EarliestDeadline First)参与特定处理器的调度。
进一步的,假设仿真系统内存在n个计算密集型任务{τ1,τ2,…,τn},且认为这些任务相互独立并可抢占。对于每个任务τi=<Di,Ti,Ei>,有任务截止时间Di、任务运行周期Ti以及最坏情况下的执行时间Ei。对于第i个任务的第k次周期执行τi k,其截止时间Di k应满足公式T为当前任务的周期,所有涉及时间的表述都是处理器时钟周期的整倍数。将第k个突发作业性交互任务Pk描述为Pk=<Dk,Ak,Ek>,其中Ak为作业的释放时间,Ek为作业在最坏情况下的执行时间,Dk为作业的响应截止时间。
提升时间阈值计算:
计算密集型任务优先级的调度是一个动态的过程。在每个周期出现时,密集型任务以低优先级处于全局队列B中参与全局调度。当经过提升时间后,该任务的优先级提升,进入局部队列中参与调度。计算密集型任务当前周期的提升时间阈值根据如下方式获得:
(1)当系统处于初始状态时,通过模拟理想状态下(不存在突发性交互任务)的实时任务调度,能够得到每个计算密集型任务的响应时间R,并通过公式得到每个任务第一个周期的提升时间阈值Li 1
(2)当第i个计算密集型任务第k次周期结束后,获得当前周期的响应时间Ri k,并通过公式得到第k+1次周期的提升时间阈值Li k+1
3、突发性交互任务可接受测试
当突发性交互任务出现时,需要通过调度模拟,计算来检测该任务的执行是否会响应到周期性实时任务的响应情况。只有通过可接受测试的突发性任务才能被加入到全局队列A中参与调度。
首先对当前出现的所有突发性交互任务按照RM方法进行排序。对于第u个突发性交互任务Pu=<Du,Au,Eu>,
通过计算公式来判断是否可接受。其中αj为第j个突发性任务已经完成的时间部分,T指周期性服务器的周期,而L是指将这个周期平均分为L个单位。因为可执行时间E以及α都是按照时间单位算的,此处的公式也可以直接改为,即将D和A都作为时间单位算。
若δu>0,则进一步判断当此任务加入到全局队列A后,所有截止时间在Du之后的突发任务的相应δ,若δ>0,则可以接受该作业,并将该任务放入全局队列A对应的位置,否则丢弃,此处的δ泛指所有截止时间在Du之后的突发性任务,根据公式计算出每一个δ,如果其中有一个δi<0,那么当前的突发性任务就是不可以接收的。如此完成对突发性交互任务的可接受检测。
4、内核数据结构改造
(1)添加任务分类模块。在内核中建立局部任务类别模块{M1,M2,…Mn},以及全局任务类别模块{MA,MB},分别指向不同优先级的调度队列。同时在调度参数结构体中添加分类模块属性,以识别任务当前所处的队列。
(2)逻辑函数的重定义。修改相应的函数逻辑处理方式,包括对新增属性的初始化、任务在各个队列中的切换、多处理器绑定等操作。
5、实时调度方法的实现
具体在Linux系统中,可以通过修改内核中的调度函数和中断处理函数对本发明的调度方法进行实现。
(1)调度函数:在中断函数到来时,根据当前调用函数的处理器以及任务分类模块的类别对当前的任务进行调度。当处理器空闲时,若其相应的局部队列中存在就绪任务,则按照EDF调度方法,在局部队列中选择一个计算密集型任务进行调度,若不存在,则遍历全局队列A,判断是否存在突发性交互任务,若存在,则按照RM调度方法,选择一个高优先级的突发性任务进行调度,若不存在,则在全局队列B中按照RM调度方法选择一个计算密集型任务进行调度;当处理器非空闲且正在执行局部任务时,则遍历当前的局部队列,根据EDF方法,判断是否存在优先级更大的局部任务,若存在,则触发任务切换,若不存在,则继续执行;当处理器非空闲且正在执行全局任务时,若此时相应局部队列中存在就绪任务,则触发任务切换,否则,继续执行当前任务。
(2)中断处理函数:循环调用调度函数,使调度函数不间断的运行,及时处理到达的实时任务。中断处理函数首先获取当前时刻,将所有释放的任务标记为就绪状态,并通过计算将全局队列B中的达到提升时间阈值的计算密集型任务提升到相应的局部队列中,最后调用调度函数。
Smart Controller是浙江大学ESE工程中心自主研发的在环仿真测试工具,能够提供完整的测试开发功能。本发明在Smart Controller中的实时模拟仿真监控平台上获得了实现,能够有效提高RTLinux目标机上运行的模型仿真的实时性能。通过使用车辆发动机模型的案例,可以得到:本发明优化后的调度方法,能够明显提高非周期突发交互任务的响应实时性,同时减少了模型计算密集任务的最短步长周期,提高了模型的计算速度。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员,在不脱离本发明构思的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明保护范围内。

Claims (3)

1.一种基于RTLinux的被控对象模型模拟仿真实时调度方法,其特征在于,包括如下步骤:
11)根据被控对象模型的仿真任务特点,将其划分为计算密集型任务和交互性任务,所述计算密集型任务负责不断的计算模型的仿真参数,是周期性的硬实时任务,假设有n个;所述交互性任务负责模型的I/O通信,是突发性的非周期性软实时任务;
12)根据仿真系统处理器核心个数m,将实时任务队列划分为m-1个高优先级局部任务队列以及2个低优先级全局任务队列A、B,且A队列的优先级大于B列队,同时将仿真系统中存在n个周期性硬实时任务{τ1,τ2,…,τn},依次绑定到m-1个局部队列中;
13)系统进行初始化,当不存在交互性任务时,各个计算密集型任务第一个周期的提升时间阈值为Li 1,随后,对于每个计算密集型任务,根据上一个周期的响应时间,不断的更新下一个周期的提升时间阈值;
14)对于模型的每个计算密集型任务τi,所述i大于等于1,且小于等于n,规定其在初始状态下,处于全局队列B中,与全局队列A中的交互性任务一起参与全局调度,当全局队列B中的密集型任务经过提升时间阈值后,会切换到对应的局部队列中,参与到特定处理器的调度,具体步骤包括:
14-1):周期性的硬实时任务在每个周期到来时,首先加入到全局队列B中,使用非抢占式速率单调调度方法来参与调度;
14-2):非周期性软实时任务出现时,加入到全局队列A中,使用非抢占式时限调度方法来参与调度;
14-3):全局调度器遍历处理器列表,获取一个空闲的处理器,并从全局队列中按照优先级选择任务进行执行;
14-4):全局队列B中的计算密集型任务经过提升时间阈值后,从全局队列中转移到原先绑定的局部队列中,使用抢占式最早时限优先调度方法参与特定处理器的调度。
2.根据权利要求1所述的一种基于RTLinux的被控对象模型模拟仿真实时调度方法,其特征在于,步骤13)中更新提升时间阈值的方法包括如下步骤:
21)当系统处于初始状态时,通过模拟理想状态下的实时任务调度,能够得到每个计算密集型任务的响应时间Ri,并通过公式得到每个任务第一个周期的提升时间阈值Li 1;所述Di为每个任务的截止时间;
22)当第i个计算密集型任务第k次周期结束后,获得当前周期的响应时间Ri k,并通过公式得到第k+1次周期的提升时间阈值Li k+1
3.根据权利要求2所述的一种基于RTLinux的被控对象模型模拟仿真实时调度方法,其特征在于,步骤14)中当交互性任务出现时,需要通过调度模拟,计算检测该任务的执行是否会响应到周期性的硬实时任务响应情况,具体包括如下步骤:
31)首先对当前出现的所有交互性任务按照非抢占式速率单调调度方法进行排序,对于第u个交互性任务Pu=<Du,Au,Eu>,通过计算公式来判断是否可接受,其中αj为第j个交互性任务已经完成的时间部分,T指周期性服务器的周期,L是指将这个周期平均分为L个单位,D和A都作为时间单位,若δu>0,则进一步判断当此任务加入到全局队列A后,所有截止时间在Du之后的突发任务的相应δ,若δ>0,则可以接受该作业,并将该任务放入全局队列A对应的位置,否则丢弃。
CN201410048370.2A 2014-02-12 2014-02-12 一种基于RTLinux的被控对象模型模拟仿真实时调度方法 Expired - Fee Related CN103823706B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410048370.2A CN103823706B (zh) 2014-02-12 2014-02-12 一种基于RTLinux的被控对象模型模拟仿真实时调度方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410048370.2A CN103823706B (zh) 2014-02-12 2014-02-12 一种基于RTLinux的被控对象模型模拟仿真实时调度方法

Publications (2)

Publication Number Publication Date
CN103823706A CN103823706A (zh) 2014-05-28
CN103823706B true CN103823706B (zh) 2018-02-06

Family

ID=50758791

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410048370.2A Expired - Fee Related CN103823706B (zh) 2014-02-12 2014-02-12 一种基于RTLinux的被控对象模型模拟仿真实时调度方法

Country Status (1)

Country Link
CN (1) CN103823706B (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105260497B (zh) * 2015-08-07 2019-04-30 黑龙江大学 基于线性链表的实时任务可调度性测试半直接模拟方法
CN106547611A (zh) * 2015-09-16 2017-03-29 中兴通讯股份有限公司 基于业务流的任务调度方法及装置
CN106547721A (zh) * 2015-09-16 2017-03-29 晨星半导体股份有限公司 例行工作的分配方法及应用其的多核心计算机
FR3043808B1 (fr) * 2015-11-12 2017-12-08 Peugeot Citroen Automobiles Sa Procede de controle commande de taches fonctionnelles par un microprocesseur multicoeurs
CN109814985B (zh) * 2017-11-20 2021-07-16 华为技术有限公司 一种任务调度方法及调度器、计算设备、系统
CN110162399B (zh) * 2019-05-08 2023-05-09 哈尔滨工业大学 一种面向多核实时系统的时间确定性方法
CN111708639A (zh) * 2020-06-22 2020-09-25 中国科学技术大学 任务调度系统及方法、存储介质及电子设备
CN115098430B (zh) * 2022-06-27 2024-03-19 西安电子科技大学 一种基于amp架构的核间通信优先级调度方法
CN116795603B (zh) * 2023-08-22 2024-03-29 北京遥感设备研究所 一种数据库系统中备份事务的高效发布时间分配方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7086057B2 (en) * 2001-05-17 2006-08-01 Matsushita Electric Industrial Co., Ltd. Task allocation time decision apparatus and method of deciding task allocation time
CN100580632C (zh) * 2008-02-22 2010-01-13 浙江大学 嵌入式系统rm低功耗调度中松弛时间在线重分配方法
CN101887378A (zh) * 2010-06-18 2010-11-17 阳坚 一种半实物实时仿真机和半实物实时仿真系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7086057B2 (en) * 2001-05-17 2006-08-01 Matsushita Electric Industrial Co., Ltd. Task allocation time decision apparatus and method of deciding task allocation time
CN100580632C (zh) * 2008-02-22 2010-01-13 浙江大学 嵌入式系统rm低功耗调度中松弛时间在线重分配方法
CN101887378A (zh) * 2010-06-18 2010-11-17 阳坚 一种半实物实时仿真机和半实物实时仿真系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于linux的实时操作系统的分析与研究;邢国良 等;《小型微型计算机系统》;20010831;第22卷(第8期);第1018-1021页 *

Also Published As

Publication number Publication date
CN103823706A (zh) 2014-05-28

Similar Documents

Publication Publication Date Title
CN103823706B (zh) 一种基于RTLinux的被控对象模型模拟仿真实时调度方法
CN112433819A (zh) 异构集群调度的模拟方法、装置、计算机设备及存储介质
US9239734B2 (en) Scheduling method and system, computing grid, and corresponding computer-program product
CN104243617B (zh) 一种异构集群中面向混合负载的任务调度方法及系统
CN107861606A (zh) 一种通过协调dvfs和任务映射的异构多核功率封顶方法
CN102779075A (zh) 一种在多处理器核系统中进行调度的方法、装置及系统
CN102360313B (zh) 片上异构多核计算平台的性能加速方法
CN104298550A (zh) 一种面向Hadoop的动态调度方法
WO2015066979A1 (zh) 一种MapReduce任务资源配置参数的机器学习方法
CN106339351A (zh) 一种sgd算法优化系统及方法
Weinstock et al. Time-decoupled parallel SystemC simulation
CN108345502A (zh) 基于dpdk的资源调度方法、装置、终端设备及可读存储介质
CN105378668B (zh) 多处理器系统中的操作系统管理的中断引导
JP2009026113A (ja) シミュレーション装置及びプログラム
CN103136056A (zh) 一种云计算平台调度方法
CN103593232A (zh) 一种数据仓库的任务调度方法及装置
CN114327829A (zh) 一种多核实时任务调度分析与仿真系统及方法
CN110297703A (zh) 一种在实时仿真系统中模拟硬件任务调度的方法及装置
CN100531070C (zh) 网络资源调度仿真系统
CN106649067B (zh) 一种性能和能耗预测方法及装置
CN103309676A (zh) 用于海洋数值模拟ROMS的Web服务封装方法以及系统
CN109977025A (zh) 一种工业机器人伺服系统性能单工位测试建模调度方法
CN105653243B (zh) 一种通用图形处理器多任务并发执行的任务派发方法
CN103310002B (zh) 用于气象预报计算系统MM5的Web服务封装方法以及系统
CN104166593A (zh) 一种计算多应用功能异步并发调度方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20180206

Termination date: 20180212

CF01 Termination of patent right due to non-payment of annual fee