发明名称 一种嵌入式虚拟机的实时调度系统
摘要 本发明公开了嵌入式虚拟机的实时调度系统,包括位于各VM内的时间同步和预约模块、任务信息更新调度触发模块、任务资源监控调度触发模块、操作系统内部调度模块,负责在各个VM中收集信息并且实时触发VMM信息更新和调度进行;以及位于VMM内的计时器模块1S、任务信息收集模块、资源回收模块和任务调度模块,负责对各个VM的任务信息进行统计管理,并最终通过任务调度模块做出VMM层调度最终决策,并且监督各个VM操作系统内部的实时调度过程。该发明为开放实时系统提供低成本,高利用率的同时,保证了系统高实时性,并且利用可拆卸的服务器模块实现了可扩展性优化,充分利用虚拟化的安全和隔离特性,为整个实时系统带来了高可靠性,高吞吐率。
申请公布号 CN102541651B 申请公布日期 2013.07.31
申请号 CN201110410689.1 申请日期 2011.12.12
申请人 华中科技大学 发明人 金海;谢夏;曹杰;曹文治;柯西江;王希斌;岑文峰;赵璐
分类号 G06F9/48(2006.01)I;G06F9/455(2006.01)I 主分类号 G06F9/48(2006.01)I
代理机构 华中科技大学专利中心 42201 代理人 曹葆青
主权项 一种嵌入式虚拟机的实时调度系统,其特征在于,该系统包括位于各VM内的时间同步和预约模块(1C)、任务信息更新调度触发模块(2C)、任务资源监控调度触发模块(3C)、操作系统内部调度模块(4C),它们负责在各个VM中收集信息并且实时触发VMM进行信息更新和调度;此外还包括位于VMM内的计时器模块(1S)、任务信息收集模块(2S)、资源回收模块(3S)和任务调度模块(4S),它们分别对应于各个VM中的4个客户端模块,对各个VM的任务信息进行统计管理,并最终通过任务调度模块(4S)做出VMM层调度最终决策,并且监督各个VM操作系统内部的实时调度过程;所述时间同步和预约模块(1C)用于实现各VM和VMM的时钟同步,以便进行全局时钟的时间驱动任务调度;同时当有时间驱动任务输入时,时间同步和预约模块(1C)还根据该时间驱动任务的时间要求,发出时间预约请求给计时器模块(1S),并且发出任务更新请求到任务信息更新调度触发模块(2C);所述任务信息更新调度触发模块(2C)用于接收时间同步和预约模块(1C)的任务信息更新请求和外部事件驱动任务请求,并计算VM中位于SharedInfo结构中的任务信息块内容,输出Hypercall触发任务信息收集模块(2S)从SharedInfo结构中收集该VM中的任务信息,从而实现VMM对VM中的事件驱动和时间驱动的任务感知;所述任务资源监控调度触发模块(3C),以系统中任务销毁事件作为输入,通过对该事件及时响应,更新位于SharedInfo结构中的任务信息,并输出Hypercall通知任务信息收集模块(2S)进行任务信息收集分析,进而引发重新调度,从而解决任务信息更新调度触发模块(2C)中WCET估算不精确导致的时间片浪费问题;所述操作系统内部调度模块(4C)主要承担操作系统内部的任务调度的任务,该模块由任务调度模块(4S)的VCPU调度触发,当操作系统内部调度模块(4C)所在虚拟机进入运行状态时,该模块将能按照全局优先级,以 及内部系统调用的抢占实现对VM操作系统的任务进行优先级抢占调度;所述计时器模块(1S)通过SharedInfo信息块与运行中的VM时间同步,并用于向任务调度模块(4S)输出重新调度请求;所述任务信息收集模块(2S)用于收集任务信息,任务信息收集模块(2S)在任务信息更新调度触发模块(2C)和任务资源监控调度触发模块(3C)向其发送任务信息收集Hypercall时,用于对各VM中的任务进行收集;此外,任务信息收集模块(2S)在接收到资源回收模块(3S)的更新请求时,对任务信息块中下次调度时间和阈值的最新计算值进行更新;所述资源回收模块(3S)利用任务信息收集模块(2S)更新得到的下次调度时间和阈值,计算不重新调度情况下所取得的平均收益与花费dt时间进行重新调度情况下所获得的收益进行比较,重新计算最新资源回收阈值,以便资源回收时避免没有任何增益的重新调度,dt为预测试出的XenARM的一次调度和中断处理延迟最长时间和;所述任务调度模块(4S)用于接收重新调度请求,检测是否需要重新调度,以将多余的时间片分给其他优先级更高或者即将有时间驱动任务的VM运行;若需要重新调度,针对全局任务信息结合响应比优先和EDF算法进行第一层VM调度后,使得各VM开始调度运行,进而使得VM内部的操作系统内部调度模块(4C)开始第二层调度,并触发资源回收模块(3S)结合全局任务信息对资源回收阈值进行重新计算和更新。
地址 430074 湖北省武汉市洪山区珞喻路1037号