一种嵌入式虚拟机的实时调度系统的制作方法

文档序号:6440795阅读:209来源:国知局
专利名称:一种嵌入式虚拟机的实时调度系统的制作方法
技术领域
本发明属于嵌入式虚拟化系统结构领域,具体涉及一种基于Xen ARM(Xen是剑桥大学的一个开源虚拟机项目,XenARM是其移植到ARM架构上的开源版本)的嵌入式虚拟机的实时调度系统,该系统不仅能够满足嵌入式虚拟化系统的丰富应用需求,而且还具有实时性特征。
背景技术
当前嵌入式应用面临着新的需求,它在之前嵌入式系统满足基本实时性的基础上,还必须满足具有丰富的人机交互应用。传统的RTOS(实时操作系统)具有高实时、低延迟中断、高效进程通信的实时性特征,但是它缺少丰富的应用。而传统的GPOS(传统意义的通用操作系统、如Windows,Mac OS等)拥有丰富的UI、完整协议栈等应用接口,但是它缺少实时的调度。因此无论是传统的RTOS(实时操作系统,如RTLinux,Vxfforks等)还是传统的GPOS都无法独立满足最新的需求。当前嵌入式虚拟化技术中Xen ARM半虚拟化技术通过实现在一台嵌入式物理机器上同时运行多个虚拟机,分别运行不同类别的操作系统, 从而满足GPOS和RTOS整合的联合需求,部分解决了上述问题,并且一定程度上减少了嵌入式成本,提高资源利用率,简化嵌入式系统开发难度,让更加复杂的系统依赖于更少的硬件,但是其实时调度系统并不能满足实时系统的需求,经过实践调研发现,当前主要还存在以下几个问题1.VM计时器不同步由于Xen ARM定时器机制与调度系统未能很好的关联,导致原定时器机制无法保证当前未运行的VM(虚拟机)定时器立即激活并同步,因此在调度运行中可能会错过一些时间驱动的实时性任务。2.最坏执行时间需要在虚拟化的条件下修正调整。最坏执行时间分析与可调度性分析构成了实时系统调度可信的基础。最坏执行时间分析计算任务执行时间的上界,这些任务的上界用来分配正确的CPU时间给实时任务。 最坏执行时间是可调度分析工具的输入,可调度分析决定了一组任务在一个给定的目标系统下是否可调度。在非虚拟化情况下,原本采用对源程序、中间码的路径分析,对机器码的时间分析方法,但是,由于虚拟化情况下,其他VM调度的干扰以及虚拟资源的性能的影响 (如IO等),最坏执行时间必须进行修正才能做正确的可调度性分析。3. VMM无法感知VM中的任务信息在没有VMM(虚拟机管理器)的实时操作系统中,操作系统内部调度能够很清楚的知道系统中的任务情况,并根据这些实时任务的信息作出实时调度;但是嵌入式虚拟化情况下,VMM的出现,在利用硬件抽象性能隔离提高资源利用率的同时,也产生了新的问题, VMM无法感知到各VM中的任务的相关信息,由于信息的缺失VMM调度模块无法根据VM中的任务信息做出全局的正确调度。而此问题上原有的task-aware (任务感知)技术,由于嵌入式系统中MMU(内存管理单元)的是否使用无法确定,不具有普遍适用性,并且在实时系统中task-aware的准确度并不能满足精度要求,因此如何有效解决此问题是解决嵌入式虚拟化实时调度的基础。4.如何及时回收预估过剩的资源在实时操作系统中,由于时间分配通常是按照问题3中预估的最坏执行时间进行的,所以当一个任务提前完成时,我们必须及时回收多余的时间片,供其他任务使用,在虚拟化环境下这种需求显得特别的重要,因为在其他的虚拟域中可能有同样优先级的任务正在等待中,尽早的释放CPU时间,将会为系统带来更好的实时性。因此如何在虚拟化环境下,及时回收过剩的资源,并且及时的分配给急需的其他VM任务使用。5.如何协调VMM和VM内部的层级调度,使实时性能最优.在虚拟化环境下,任务需要经过两层调度,才能获得CPU时间运行,首先任务所在的VM必须首先获得CPU时间,这里通常为VM分配了 N个VCPU (虚拟CPU),通过对VCPU的调度,到达调度VM的效果,在VM获得时间片运行后,VM系统内部的进程调度则会成为第二层调度负责对VM内部的任务进行调度。因此在解决上面4个问题之后,我们需要利用这些信息,构建一个层级调度的模型,充分利用VMM对全局信息的掌握以及VM对内部资源的调控,实现对整个虚拟机系统的高实时性。

发明内容
本发明针对嵌入式互联网对于实时性和应用丰富的新需求,结合服务器虚拟化技术,针对当前实时性能不能满足需要的缺陷,提出一种嵌入式虚拟机的实时调度系统,该系统使上层VMM中的虚拟机调度器能够感知各VM中的实时任务,通过响应比优先与EDF算法的结合实现全局任务调度,一定程度上满足时间驱动任务和事件驱动任务的实时性要求。本发明提供的一种嵌入式虚拟机的实时调度系统,其特征在于,该系统包括位于各VM内的时间同步和预约模块、任务信息更新调度触发模块、任务资源监控调度触发模块、操作系统内部调度模块,它们负责在各个VM中收集信息并且实时触发VMM进行信息更新和调度;此外还包括位于VMM内的计时器模块、任务信息收集模块、资源回收模块和任务调度模块,它们分别对于各个VM中的4个客户端模块,对各个VM的任务信息进行统计管理,并最终通过任务调度模块做出VMM调度最终决策,并且监督各个VM操作系统内部的实时调度过程。本发明采用计时器同步与预约模块对处理实时系统中时间驱动任务,利用任务信息收集模块对实时收集VM中的任务信息,利用资源回收模块对来回收估计过剩的WCET时间提高CPU时间利用率,最后结合操作系统内部调度以及基于全局任务信息实现的响应比优先与EDF算法结合的VMM层调度建立一种满足实时性要求的嵌入式虚拟机实时调度系统,它解决了背景技术中提到的5个关键问题。上述基于Xen-ARM的嵌入式虚拟化实时调度系统具有以下效果及优点(1)低成本,高利用率由于嵌入式虚拟化实时调度系统的实时性保障,原来需要多个独立设备才能运行的嵌入式系统,但是每一个设备的计算能力并没有充分的利用完,存在极大的资源浪费。现在可以通过虚拟化技术移植到同一台嵌入式设备上,在保证实时性能的同时,降低了设备上的开销,节约了成本,同时也达到了较高的资源利用率。
(2)实时性高本发明一定程度上解决了上述嵌入式系统虚拟化中5个关键问题,其中对于计时器模块,任务信息收集模块的实现,解决了任务信息的正确性和实时性。此外资源回收模块在保证高实时性的同时,利用资源回收技术,充分缩短各个实时任务的等待时间,从而提高其实时响应速度,最后任务调度模块在全局任务信息的基础上保证了整个嵌入式虚拟化系统的实时性。(3)高安全,高隔离相比开放式实时系统环境下提出的双层调度模型,本调度系统借用虚拟化隔离性的优势,解决了之前在开放式实时环境下各种类应用处于同一执行环境相互影响的问题。 虚拟化技术的使用提供了高安全和高隔离的特点,使得开放式实时系统有了新的技术实现方式。(4)高吞吐率最早截止时间优先算法(EDF)已被证明是时间驱动情况下动态最优调度,处理机利用率最大可达100%。但是在VMM的全局任务信息中,除了时间驱动的情况,还存在普通的无确定DeadLine限制的任务,在EDF情况下,这些任务会由于没有明确截止时间而迟迟得不到响应。因此本系统基于全局任务信息的响应比优先和EDF算法结合实现,使得VMM 层能充分考虑各VM中任务优先级,进一步提高整个虚拟机系统的吞吐率。


图1为基于XenARM的实时调度系统的结构示意图;图2为计时器模块示意图;图3为任务信息搜集模块示意图;图4为资源回收模块示意图;图5为任务调度模块示意图。
具体实施例方式下面结合附图和描述对本发明作进一步详细的说明。如图1所示,本发明在半虚拟化系统架构下实现,系统包括位于各VM内的时间同步和预约模块1C、任务信息更新调度触发模块2C、任务资源监控调度触发模块3C、操作系统内部调度模块4C,它们负责在各个VM中收集信息并且实时触发VMM进行信息更新和调度 (将其表述为客户端模块,用后缀C表示);此外还包括位于VMM内的计时器模块1S、任务信息收集模块2S、资源回收模块3S和任务调度模块4S,它们分别对于各个VM中的4个客户端模块,对各个VM的任务信息进行统计管理,并最终通过任务调度模块4S做出VMM层调度最终决策,并且监督各个VM操作系统内部的实时调度过程(将其表述为服务器端模块, 用后缀S表示)。在VM运行过程中,时间同步和预约模块IC与VMM中的计时器模块IS通过XenARM 原有的SiarecHnfo结构实现各VM和VMM的时钟同步,以便进行全局时钟的时间驱动任务调度。同时当有时间驱动任务输入时,本模块将根据该时间驱动任务的时间要求,并且发出时间预约请求给计时器模块1S,发出任务更新请求到任务信息更新调度触发模块2C。
任务信息更新调度触发模块2C在接收到时间同步与预约模块IC的任务信息更新请求和外部事件驱动任务请求作为输入时,计算VM中位于a^recHnfo结构中的任务信息块内容(包括WCET等),并输出Hypercall (虚拟机超级调用)触发任务信息收集模块2S 从SiarecHnfo结构中收集该VM中的任务信息,从而实现VMM对VM中的事件驱动和时间驱动的任务感知。任务资源监控调度触发模块3C,以系统中任务销毁事件作为输入,通过对该事件及时响应,更新位于SiarecHnfo结构中的任务信息,并输出Hypercall通知任务信息收集模块2S进行任务信息收集分析,进而引发重新调度,从而解决任务信息更新调度触发模块 2C中WCET估算不精确导致的时间片浪费问题。操作系统内部调度模块4C,主要承担操作系统内部的任务调度的任务,该模块由任务调度模块4S的VCPU调度触发,当4C所在虚拟机进入运行状态时,该模块将能按照全局优先级,以及内部系统调用的抢占实现对VM操作系统的任务进行优先级抢占调度。位于VMM中的计时器模块1S,将会通过SiarecHnfo信息块与运行中的VM同步时间,同时以时间同步和预约模块IC的时间驱动预约请求作为输入,在接受预约请求后,计时器模块将预约请求加入到预约队列中,待指定时刻到达之前将会输出请求,让任务调度模块4S进行提前调度,以便解决由于VM未被调度而错过时间驱动任务的问题,4S模块处理该请求,决定是否对该请求对应的时间驱动任务所在虚拟机进行调度,并返回给IS模块结果,若返回调度成功,则该时间驱动任务从IS内部预约队列中出队,否则说明系统中当前有更高优先级别任务运行,则依据其是否已经错过其起始时间决定是否继续保留该任务。当有时间或者事件驱动任务,或者有任务销毁时,均会间接由任务信息更新调度触发模块2C通过Hypercall触发任务信息收集模块2S对任务信息进行收集,其中对于事件驱动任务发生和任务销毁的情况,都将会引发任务调度模块4S进行重新调度,而对于时间驱动任务的通知,将会由计时器模块IS在时间到达前直接通知任务调度模块4S进行重新调度。此外,当资源回收模块3S计算得到最新资源回收阈值时,将会要求任务信息收集模块2S对部分任务信息块中下次调度时间和阈值进行更新。当在VM内部判断时间浪费未超过阈值时,则会在VM内部进行资源回收,而超过阈值时,任务资源监控调度触发模块3C会引发任务信息收集模块2S重新收集任务信息,并且引发任务调度模块4S检测是否需要重新调度,以将多余的时间片分给其他优先级更高或者即将有时间驱动任务的VM运行。若需要重新调度,则任务调度模块4S将会触发资源回收模块3S结合全局任务信息对资源回收阈值进行重新计算和更新。任务调度模块4S,当计时器模块IS处理预约请求队列要求提前调度时,以及由于事件驱动任务、资源回收等要求时,任务调度模块4S将会接到重新调度请求作为输入,该模块针对全局任务信息利用响应比优先和EDF算法结合的方式进行第一层VM调度后,使得各VM开始调度运行,进而使得VM内部的操作系统内部调度模块4C开始第二层调度。如图2所示,时间同步和预约模块IC和计时器模块IS主要解决在技术背景中提到的虚拟化情况下时间驱动任务的调度问题。图中从to时刻获得时间片的VM1,在t4时刻有预先知道的时间驱动任务必须投入运行。图中第一条时间轴表示的是在Xen ARM最初版本中,VMl的系统时间不做更新时的任务调度情况。在该情况下,tl时刻VMl由于调度不再获取CPU时间运行,这时VMl的始终处于停滞状态,当t2时刻恢复运行重新被调度到时,由于没有进行时间更新,VMl通过自己的计时器认为系统时间仍然是在t2,然后本应该在t4时刻发生的时间驱动任务因此被错过了。图中第二条时间轴表示的是在当前Xen ARM版本中,已经实现的运行时通过 SharedInfo结构更新时间的机制,在该机制下虽然进行了时间更新,若是t4 > t3时,可以满足时间驱动的任务,因为这时它在运行,然而对于在t4 < t3的情况,由于在当时VMl并没有被调度运行,因此VMl将会失去在t4时刻运行的机会。图中第三条时间轴表示的是在本发明中的处理办法,由时间同步和预约模块IC 在时间片结束前预先分析本系统的时间驱动任务,并生成请求进入计时器模块中排队。在计时器模块is的处理后,和任务调度模块4S进行交互,交互的逻辑分为图中的4步步骤1.计时器模块先将请求记录到IS模块中的预约请求队列中。步骤2.于t4时刻的2*dt、l*dt时间段长度之前发出对应任务优先级中断通知, 并根据当时的中断屏蔽情况来确定是否重新调度(dt为预测试出的XenARM的一次调度和中断处理延迟最长时间和,参考值为10ms,具体值需按照特点)。步骤3.若接收到4S中分配时间片成功调度则删除请求步骤4.若接收到4S中有更重要VM运行导致调度失败时,若任务未过期则保留请求,等待下一次事件触发时重新调度,转步骤1 ;否则由于已经不满足其时间驱动起始时间要求(当前时间大于起始时间),删除该请求。但是其任务并没有删除,在2S的任务信息收集模块中依然会有该任务的信息,任务调度模块4S也会做出全局调度,而该任务错过起始时间的处理将由任务所在应用逻辑处理。如此,当在t4_dt时亥lj,计时器的预约请求出队列,并引起中断,将CPU时间还给调度模块重新调度,这时调度模块考虑即将到来的新任务进行全局重新调度,不会盲目的认为有新任务则直接给予时间片,具体的算法会在4S中任务调度算法详细描述。这时如果中断处于关闭或者优先级屏蔽状态则不会引起新的任务调度。因此t4时刻的任务可能会因为满足更高优先级的任务而产生不可避免的延时。而队列中任务请求,会因此保存直到下一次调度。如图3所示,任务信息更新触发调度模块2C和任务信息收集模块2S主要配合解决技术背景中提到的VMM无法感知到VM的任务信息的问题,由于信息的缺失VMM调度模块无法根据VM中的任务信息做出全局的正确调度。而此前的task-aware精度不够并不能较好的满足嵌入式虚拟化的实时性要求,并且针对MMU内存管理的适用性不高,导致可扩展性差。本模块中采用一种新的适用于调度算法并包含足够信息的通用任务信息块,该信息块除了会由于时间驱动任务而新建外,会随着原系统的任务创建而创建、销毁而销毁,并且对于高优先级任务的创建和满足资源回收模块3S要求的任务销毁,会产生Hypercall引发重新调度,是否引发重新调度会根据Hypercall的优先级别和所屏蔽的优先级来决定。并且会同时分别计算出适用调度算法的任务信息(全局优先级gp,开始运行时刻st,约定开始时刻pst,最坏情况执行时间WCET,已执行时间et,约定结束时刻ptt,估计结束时刻ett, 下次调度时刻nt,当前状态cs)。其中全局优先级gp只需要在系统中实现一个全局任务优先级映射表,将本系统的任务优先级与全局任务做一个映射计算得出,本系统中gp由任务调度模块4S中采用的响应比优先与EDF算法结合的响应比rr表示。实际开始时刻st是创建任务时一同设置, 而约定开始时刻pst则为时间驱动任务所特有的,记录此值在于为后面的调度算法分析指定任务是否能按期开始做出可调度判断。WCET则是利用外部WCET分析工具在编译时已经决定了,这里不做研究实现。约定结束时刻ptt为硬实时任务应该完成的结束时刻,估计结束时刻ett则是根据运行情况动态计算的任务估计结束时刻,使得任务调度模块4S能尽快做出调度,此参数与EDF算法结合保证在DeadLine前顺利完成。下次调度时间nt和阈值χ分别为任务调度模块决定调度结果后分配额定时间片的下次正常调度时间和必须满足的资源回收阈值。当前状态cs,则记录任务的三种基本状态,就绪、运行和等待,使得系统具有较大的可扩展性,该字段将为后面任务调度算法提供优先级和调度选择分析。任务信息收集模块2S是本发明的基础,该模块为后文任务调度模块的实现提供全局的任务信息,并且同时由于其信息更新的实时性,它还担负了触发任务调度模块4S进行重新调度的作用。如图4所示,本发明中任务资源监控触发调度模块3C和资源回收模块3S主要用于解决前文技术背景中指出的如何及时回收由于WCET过大估计导致时间片浪费带来的实时性能影响。该模块与图中任务调度模块4S以及任务信息收集模块2S直接相关联,首先, 任务调度模块做出调度决策,该决策过程中主要进行如下三个步骤步骤1.根据调度结果更新通用任务信息块中的下一次调度nt字段步骤2.根据任务调度模块4S中的任务排队,决定资源回收的阈值X步骤3.更新资源回收阈值,结束VMM层调度决策。其中步骤2中资源回收的阈值X的计算过程详见任务调度模块4S的具体实现。VM被调度运行的过程中,流程图如图4中任务资源监控调度触发模块3C,该模块执行步骤如下步骤1.在任务完成时,设置任务信息块结束时刻信息;步骤2.计算结束时刻和下一次调度之间nt的差值步骤3.比较该值与阈值之间的大小,若大则用hHypercall激活任务信息收集模块2S,转步骤4 ;否则继续进行操作系统内部调度4C。步骤4.调用任务信息收集模块2S,进行任务信息更新,并触发任务调度模块4S进行新一轮的任务调度决策。由此过程,可充分利用由于WCET造成的时间浪费,并及时将其分配给其他急需运行时间的任务,从而提高了系统的整体实时性能。如图5所示,本发明中任务调度模块4S是最为核心的模块,它结合之前3个模块中收集的实时任务信息、计时器模块对对时间驱动任务的辅助、资源监控和回收模块对对实时系统中时间过剩问题的解决,最终做出全局实时任务的调度决策,调用资源回收模块 3S计算并更新通用任务信息块中下次更新时间nt和阈值X。对于仅有时间驱动任务的情况,EDF算法已经可以被证明是最优的调度算法,由于在多个VM各类任务共存的情况下,仅仅依靠EDF算法,可能会导致部分没有截止时间限制的低优先级任务饥饿,本发明的任务调度模块采用改进的响应比优先和EDF算法结合的方式,借鉴EDF的算法作为响应比优先算法的分母,来实现距离DeadLine越小的越优先调度,此外利用任务从开始到调度时刻的总响应时间作为分子,实现总响应时间较长者优先的效果,使得较低优先级的任务不会因为一直等待而发生饥饿的情况。
假设计算当时的时刻为ct,全局优先级gp利用响应比优先的如下公式计算gp = (Ct-St)/I(WCET-et)
其中响应时间(ct-st)为当前时间减去任务开始时刻,而待执行时间计算 (WCET-et)为最坏执行时间减去当前已经执行过的时间的绝对值。对于非实时任务,由于 WCET并不存在,我们让其保持为初值0,因此算得的待执行时间实际为已经执行的时间同样可以起到响应比优先的效果,同时对于WCET估计较小的情况,取绝对值使得待执行的时间值为已经超过的时间。本系统中响应比将作为全局任务优先级的具体实现,响应比能够起到照顾长时间得不到响应的任务,并且其短任务优先的做法一定程度上提高了系统吞吐率。
当实时任务调度运行时,通过实现优先级中断请求技术,实现对时间和事件驱动实时任务的支持。该过程分为如图5中的8个步骤
步骤1.对于时间驱动任务,通过对计时器实现和时间驱动预约队列的实现,生成Hypercall请求中断;对于事件驱动任务,则由任务信息更新调度触发模块直接发出 Hypercall请求中断。这些任务将优先被各自专门的CPU负责处理,而尽量不会占用其他低实时要求任务的CPU处理时间,转步骤2判断是否能够处理;
步骤2.在两个独立监督式CPU中比较自身任务优先级和当前中断屏蔽优先级,若表示中断屏蔽则不进入中断,即独立监督式CPU无法处理,则打断非独立监督式CPU的运行。转入步骤3。若中断未能屏蔽,则进入中断处理程序,保存原程序信息,处理中断和时间驱动任务或事件驱动任务,则不经过非独立监督式CPU的调度直接分配时间片给该任务, 转步骤4 ;
步骤3.调用任务信息收集模块,进行通用任务信息块的信息构造处理。
步骤4.对各VM进行调度,对于单处理机的情况,直接按照最高优先级就绪态任务的最坏执行时间给予保证其运行结束的最长时间片ti。而对于多处理机而非独立监控CPU 的情况,它们需要公用相同的时间片Pt统一调度.Pt取所有接受调度VM的ti的最大值。
Pt = Max (ti)
步骤5.利用调度结果,设置调用资源回收模块进行任务信息块的下一次调度时间和阈值X的更新。其中阈值X的计算减轻了由于频繁调度的开销。
由于取得最长时间片和最坏情况执行时间的缘故,当在被调度VM之外若存在等待调度的其他实时任务时,则必须要及时回收过剩的时间片,进行重新调度。因此需要计算资源回收的阈值X,根据如下等式求得
权利要求
1.一种嵌入式虚拟机的实时调度系统,其特征在于,该系统包括位于各VM内的时间同步和预约模块(IC)、任务信息更新调度触发模块(2C)、任务资源监控调度触发模块(3C)、 操作系统内部调度模块(4C),它们负责在各个VM中收集信息并且实时触发VMM进行信息更新和调度;此外还包括位于VMM内的计时器模块(1 、任务信息收集模块0 、资源回收模块(3 和任务调度模块0 ,它们分别对于各个VM中的4个客户端模块,对各个VM的任务信息进行统计管理,并最终通过任务调度模块GS)做出VMM层调度最终决策,并且监督各个VM操作系统内部的实时调度过程。
2.根据权利要求1所述的实时调度系统,其特征在于,时间同步和预约模块(IC)用于实现各VM和VMM的时钟同步,以便进行全局时钟的时间驱动任务调度;同时当有时间驱动任务输入时,时间同步和预约模块(IC)还根据该时间驱动任务的时间要求,并且发出时间预约请求给计时器模块(IS),发出任务更新请求到任务信息更新调度触发模块QC)。
3.根据权利要求1或2所述的实时调度系统,其特征在于,任务信息更新调度触发模块0C)用于接收时间同步与预约模块(IC)的任务信息更新请求和外部事件驱动任务请求,并计算VM中位于amrecHnfo结构中的任务信息块内容,输出Hypercall触发任务信息收集模块QS)从SiarecHnfo结构中收集该VM中的任务信息, 从而实现VMM对VM中的事件驱动和时间驱动的任务感知。
4.根据权利要求1或2所述的实时调度系统,其特征在于,任务资源监控调度触发模块(3C),以系统中任务销毁事件作为输入,通过对该事件及时响应,更新位于SiarecHnfo结构中的任务信息,并输出Hypercall通知任务信息收集模块0 进行任务信息收集分析,进而引发重新调度,从而解决任务信息更新调度触发模块 (2C)中WCET估算不精确导致的时间片浪费问题。
5.根据权利要求1或2所述的实时调度系统,其特征在于,操作系统内部调度模块 (4C)主要承担操作系统内部的任务调度的任务,该模块由任务调度模块GS)的VCPU调度触发,当操作系统内部调度模块GC)所在虚拟机进入运行状态时,该模块将能按照全局优先级,以及内部系统调用的抢占实现对VM操作系统的任务进行优先级抢占调度。
6.根据权利要求1或2所述的实时调度系统,其特征在于,计时器模块(IS)通过 amrecHnfo信息块与运行中的VM时间同步,并用于向任务调度模块0S)输出重新调度请求。
7.根据权利要求3或4所述的实时调度系统,其特征在于,任务信息收集模块OS)用于收集任务信息,任务信息收集模块OS)在任务信息更新调度触发模块0C)和任务资源监控调度触发模块(3C)向其发送任务信息收集Hypercall 时,用于对各VM中的任务进行收集;此外,任务信息收集模块0 在接收到资源回收模块 (3S)的更新请求时,对任务信息块中下次调度时间和阈值的最新计算值进行更新。
8.根据权利要求1或2所述的实时调度系统,其特征在于,资源回收模块(3S)利用任务信息收集模块0 更新得到的下次调度时间和阈值,计算不重新调度情况下所取得的平均收益与花费dt时间进行重新调度情况下所获得的收益进行比较,重新计算最新资源回收阈值,以便资源回收时避免没有任何增益的重新调度,dt为预测试出的XenARM的一次调度和中断处理延迟最长时间和。
9.根据权利要求1或2所述的实时调度系统,其特征在于,任务调度模块GS)用于接收重新调度请求,检测是否需要重新调度,以将多余的时间片分给其他优先级更高或者即将有时间驱动任务的VM运行;若需要重新调度,针对全局任务信息结合响应比优先和EDF 算法进行第一层VM调度后,使得各VM开始调度运行,进而使得VM内部的操作系统内部调度模块GC)开始第二层调度,并触发资源回收模块(3S)结合全局任务信息对资源回收阈值进行重新计算和更新。
全文摘要
本发明公开了嵌入式虚拟机的实时调度系统,包括位于各VM内的时间同步和预约模块、任务信息更新调度触发模块、任务资源监控调度触发模块、操作系统内部调度模块,负责在各个VM中收集信息并且实时触发VMM信息更新和调度进行;以及位于VMM内的计时器模块1S、任务信息收集模块、资源回收模块和任务调度模块,负责对各个VM的任务信息进行统计管理,并最终通过任务调度模块做出VMM层调度最终决策,并且监督各个VM操作系统内部的实时调度过程。该发明为开放实时系统提供低成本,高利用率的同时,保证了系统高实时性,并且利用可拆卸的服务器模块实现了可扩展性优化,充分利用虚拟化的安全和隔离特性,为整个实时系统带来了高可靠性,高吞吐率。
文档编号G06F9/48GK102541651SQ201110410689
公开日2012年7月4日 申请日期2011年12月12日 优先权日2011年12月12日
发明者岑文峰, 曹文治, 曹杰, 柯西江, 王希斌, 谢夏, 赵璐, 金海 申请人:华中科技大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1