发明名称 |
一种进程实时调度方法 |
摘要 |
本发明实施例公开了一种进程实时调度方法,包括:步骤A、预先设置进程任务的价值值,任务的价值值应根据任务本身的价值在进程的优先级值与当前所有进程最大优先级值之间取一个值;步骤B、当进程任务的优先级相近或相等时,比较进程任务的价值值,优先运行价值大的任务;或者,当系统过载时也比较当前所有任务的价值值,运行价值值最大的进程任务,保证系统整体价值最大化和被维持在一个可接受的水平之上。通过实施本发明,通过引入基于价值的抢占阀值,既可以在系统过载情况下,系统能保证关键任务的及时完成,维持系统性能优雅地降级,不致出现系统失效甚至崩溃,最终达到便整个系统价值最大化,还可以减少因颠簸现象造成的资源浪费。 |
申请公布号 |
CN101887383B |
申请公布日期 |
2013.08.21 |
申请号 |
CN201010215050.3 |
申请日期 |
2010.06.30 |
申请人 |
中山大学 |
发明人 |
罗笑南;唐青华;傅明 |
分类号 |
G06F9/50(2006.01)I |
主分类号 |
G06F9/50(2006.01)I |
代理机构 |
|
代理人 |
|
主权项 |
一种进程实时调度方法,其特征在于,包括: 步骤A、预先设置进程任务的价值值,任务的价值值应根据任务本身的价值在进程的优先级值与当前所有进程最大优先级值之间取一个值; 步骤B、当进程任务的优先级相近或相等时,比较进程任务的价值值,优先运行价值大的任务;或者,当系统过载时也比较当前所有任务的价值值,运行价值值最大的进程任务,保证系统整体价值最大化和被维持在一个可接受的水平之上; 所述预先设置进程任务的价值值具体为: 在进程控制块task_struct中增加优先级相关属性:任务剩余执行时间Ct,任务提交时间Et,任务相对截至期限Dt,优先级值St,系统当前时间T,由优先级值定义公式得:St=(Et+Dt)‑Ct‑T; 保持Linux2.6内核的运行队列结构、候选任务的选取方式及实时任务优先级属性不变,按优先级从小到大依次排列同一优先级属性的实时任务; 在时钟中断子程序中增加对优先级值St的实时更新处理,即随着时钟周期增加任务剩余执行时间Ct,减小等待进程的优先级值St,也在时钟中断子程序中修改把价值值作为抢占阀值的候选任务的选取操作; 改进最小裕度优先LSF算法,修改内核代码并重新编译,完成改进算法在系统中的实现。 |
地址 |
510006 广东省广州市番禺区大学城中山大学东校区教学实验中心C401 |