物联网考勤机的多任务优先级调度方法技术

技术编号:8532688 阅读:244 留言:0更新日期:2013-04-04 15:36
一种物联网考勤机的多任务优先级调度方法,对于考勤机的每个任务,设定Prioriy为任务重要性因子,?Urgency表示紧急性,当新的任务到达时,任务准入控制模块首先判断新任务与系统原有多任务的CPU总占用率之和是否超过上界1.0,如果不超过,则接纳该工作;否则,比较新任务与系统原有多任务中Prioriy最大的任务的重要性优先级,若新任务的重要性优先级较低,则拒绝它,否则去掉Prioriy_FIFO队尾的任务,补充上新的任务;实现任务调度。本发明专利技术提供一种考虑了重要性和紧急性、调度效率较高的物联网考勤机的多任务优先级调度方法。

【技术实现步骤摘要】

本专利技术涉及考勤机领域,尤其是一种物联网考勤机的多任务调度方法。
技术介绍
Linux遵循P0SIX. 1003.1b实时扩展标准,实现了实时进程的概念,支持SCHED_FIFO和SCHED_RR两种实时调度策略。但SCHED_FIF0策略只是简单地根据先来先服务的原则调度任务,没有考虑任务的执行时间,使得紧急型任务无法优先执行,从而错过其执行时间,导致运行结果出错或服务质量下降。SCHED_RR策略体现了资源共享的思想,它可以保证每个实时任务获得均等的执行机会,但同样由于没有考虑任务的执行时间,因而导致紧急型任务不能如期完成。当系统超载时,这种策略将使得任务的大多数执行时间无法得到满足。由此可见,Linux内核并不能为实时任务提供有效的调度支持。对于考勤机而言,目前的优先级调度方法存在下列主要问题(I)不能够直接将对于任务在其他重要性方面的约束条件映射到调度的优先级上,在现有实现的算法中对于确定优先级所采用的标准比较简单和片面,如RM算法仅以任务的周期确定优先级,EDF算法仅以任务的执行时间确定优先级;(2)重要任务不一定是紧急任务,而紧急任务不一定是重要任务,而目前的优先级调度算法的实现一般将这两个任务属性分开,从而容易导致重要任务的执行性能无法得到保证,如在根据任务执行时间确定优先级的调度算法中;或容易导致紧急型任务的执行时间不能被满足,如在根据周期等固有属性确定优先级的调度算法中,重要性的任务没法执行;(3)实时任务中的“实时”并不是指让任务越早执行越好,而是指只需满足任务的期限即可。
技术实现思路
为了克服已有考勤机优先级调度方式的单纯由周期或时间决定优先级、调度效率较低的不足,本专利技术提供一种考虑了重要性和紧急性、调度效率较高的。本专利技术解决其技术问题所采用的技术方案是一种,对于考勤机的每个任务,设定Prioriy为任务重要性因子,反映任务在完成中的重要程度,由用户决定;Urgency表示紧急性,由任务执行时间动态决定;若任务A具有比任务B更高的优先级,如果满足下列条件之一(I)任务A的Priority比任务B的小;(2)任务A和任务B具有相同的Priority,但前者的Urgency更小;当新的任务到达时,任务准入控制模块首先判断新任务与系统原有多任务的CPU总占用率之和是否超过上界1. 0,如果不超过,则接纳该工作;否则,比较新任务与系统原有多任务中Prioriy最大的任务的重要性优先级,若新任务的重要性优先级较低,则拒绝它,否则去掉Prioriy_FIFO队尾的任务,补充上新的任务;实现任务调度。进一步,设置两个任务管理队列,Prioriy_FIF0和 Urgency_FIF0, Prioriy_FIF0任务队列中优先级由重要性因子決定,UrgenCy_FIF0任务队列中优先级由执行时间決定,系统中的每个任务同时存在于这两个队列中。本专利技术的有益效果主要表现在(I)任务的优先级并不是单纯地由周期或执行时间决定的,而是考虑了任务的重要性和紧急性这两个基本的实时任务特征,综合决定任务的优先级顺序;(2)在轻载状态下,SABPU调度算法不仅能够保证重要任务的执行,而且能够尽可能满足紧急型任务的执行;(3)在超载状态下,SABPU算法将确保重要性任务顺利执行;(4)如果新任务的到达使得系统超载,而该任务又具有较高重要性,那么并不会直接拒绝该任务,而是去掉比其重要性低的任务,直到接纳或拒绝它;(5)在保证重要任务执行性能的前提下,执行尽可能多的任务,使系统资源利用最大化。具体实施例方式下面对本专利技术作进ー步描述。一种,任务的调度优先级并不是单纯地由任务周期或任务执行时间来决定,而是由重要性(Priority)和紧急性(Urgency)来协同决定。其中,Prioriy表示任务重要性因子,它并不代表任务周期等时间属性,而是反映任务在完成中的重要程度,由用户决定!Urgency表示紧急性,由任务执行时间动态決定。我们称任务A具有比任务B更高的优先级,如果满足下列条件之一(I)任务A的Priority比任务B的小,这里Priority值越小表示优先级越高,任务对用户越重要;(2)任务A和任务B具有相同的Priority,但前者的Urgency更小,即任务更紧急SABPU 算法中设置两个任务管理队列,Prioriy_FIF0 和 Urgency_FIF0。Prioriy_FIFO任务队列中优先级由重要性因子决定,这个因子越小表示任务越重要,优先级越高;UrgenCy_FIF0任务队列中优先级由执行时间决定,执行时间越小表示任务越紧急,优先级越尚。SABPU算法中最核心的是具有动态调整任务队列中各任务优先级的能力。SABPU算法主要包括两个部分任务准入控制机制和在线调度器。其中,准入控制是为了保证系统中原有重要任务的执行不受新任务影响而设计的,当有新任务到达时,准入控制将根据当前系统CPU占用率和新任务的重要性以及紧急性,决定接纳或拒绝该任务进入系统。在线调度器是具有任务优先级在线调度的能力。系统中的每个任务同时存在于这两个队列中。当新的任务到达吋,SABPU算法的任务准入控制首先判断新工作与系统原有多任务的CPU总占用率是否超过上界1. 0,如果不超过,则接纳该工作,并将它同时加入Prioriy_FIF0和Urgency_FIF0这两个队列中。否则,比较新任务与Prioriy_FIF0队尾任务的重要性优先级,即将新任务与系统中优先级最低的任务进行比较,若新任务的重要性优先级较低,则拒绝它,否则去掉Prioriy_FIFO队尾的任务,补充上新的任务;同时更新Urgency_FIFO队列中的任务优先级,然后再次判断新任务与系统中剩余任务的总CPU占用率是否超载,反复迭代,直至接受或拒绝该任务。 这里的CPU占用率是这样定义的,对于周期性任务本文档来自技高网...

【技术保护点】
一种物联网考勤机的多任务优先级调度方法,其特征在于:对于考勤机的每个任务,设定Prioriy为任务重要性因子,反映任务在完成中的重要程度,由用户决定;Urgency表示紧急性,由任务执行时间动态决定;若任务A具有比任务B更高的优先级,如果满足下列条件之一:(1)任务A的Priority比任务B的小;(2)任务A和任务B具有相同的Priority,但前者的Urgency更小;当新的任务到达时,任务准入控制模块首先判断新任务与系统原有多任务的CPU总占用率之和是否超过上界1.O,如果不超过,则接纳该工作;否则,比较新任务与系统原有多任务中Prioriy最大的任务的重要性优先级,若新任务的重要性优先级较低,则拒绝它,否则去掉Prioriy_FIFO队尾的任务,补充上新的任务;实现任务调度。

【技术特征摘要】
1.一种物联网考勤机的多任务优先级调度方法,其特征在于对于考勤机的每个任务,设定Prioriy为任务重要性因子,反映任务在完成中的重要程度,由用户决定;Urgency表示紧急性,由任务执行时间动态决定;若任务A具有比任务B更高的优先级,如果满足下列条件之一 (1)任务A的Priority比任务B的小; (2)任务A和任务B具有相同的Priority,但前者的Urgency更小; 当新的任务到达时,任务准入控制模块首先判断新任务与系统原有多任务的CPU总占用率之和是否超过上界1. 0,如果不...

【专利技术属性】
技术研发人员:史慧波王涌朱晋天贾立新徐海峰洪峰陈杰樱
申请(专利权)人:浙江工业大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1