一种嵌入式操作系统的任务调度方法技术方案

技术编号:5328950 阅读:251 留言:0更新日期:2012-04-11 18:40
一种嵌入式操作系统的任务调度方法,(1)时间片的分配,时间片记录任务处于就绪状态的时间;(2)实时可抢占的任务调度,当系统调度定时器中断后,遍历就绪任务队列,找出是否有比当前任务更改优先级的就绪状态任务,如果有则运行切换到改任务运行,把当前任务置位就绪态后挂起;(3)类时间片轮的任务调度,当任务就绪时调度定时器每次中断后,在当前没有需要实时抢占运行的任务时,扫描就绪任务队列,把当前就绪的任务就绪状态计数加1,同时找出就绪时间最长的任务执行,同时清除其就绪计数;(4)信号量超时触发调度,当信号量到达或者超时时,立即触发等待该信号量的任务运行。保证实时性的前提下又能保证各个任务都有被调度的机会。

【技术实现步骤摘要】

本专利技术涉及嵌入式系统任务调度领域,特别是涉及一种基于实时可抢占的嵌入式 操作系统中类时间片轮调度的方法。
技术介绍
现在嵌入式设备的功能变得越来越强大,功能也越来越丰富。随着嵌入式设备的 功能越来越复杂,为了简化日益复杂的功能的设计,嵌入式操作系统就变的越来越不可或缺。在现有的嵌入式操作系统领域,现在主要的操作系统的调度方式一般是采用基于 优先级的可抢占的调度算法或者是采用基于时间片轮的调度算法。基于优先级的可剥夺调度法是指,CPU总是让处于就绪态的、优先级最高的任务运 行;最高优先级的任务一旦就绪,总能得到CPU的使用权,当一个运行着的任务使一个比它 优先级高的任务进入了就绪态时,当前任务的CPU使用权就被剥夺了,更高优先级的任务 立刻得到了 CPU的使用权。除非最高优先级的任务主动放弃CPU的使用权,否则低优先级 的任务是没机会获得CPU使用权的。基于时间片轮转的调度算法是指是,系统将所有的就绪进程按先来先服务算法的 原则,排成一个队列,每次调度时,系统把处理机分配给队列首进程,并让其执行一个时间 片。当执行的时间片用完时,由一个计时器发出时钟中断请求,调度程序根据这个请求停止 该进程的运行,将它送到就绪队列的末尾,再把处理机分给就绪队列中新的队首进程,同时 让它也执行一个时间片。这样能够保证每个任务都有足够的机会获得CPU,对于需要实时响 应的任务这样的调度算法就不能够保证CPU能够及时响应。而现在的很多复杂嵌入式系统中的任务既需要实时可抢占,同时又保证所有的任 务都有足够的调用机会。
技术实现思路
本专利技术所要解决的技术问题是提供,保证实 时性的前提下又能保证各个任务都有足够的被调度的机会。为解决上述技术问题,本专利技术的技术方案是一种嵌入式操作系统的任务调度方 法,包括以下步骤(1)时间片的分配,利用时间片记录任务处于就绪状态的时间;(2)实时可抢占的任务调度,当系统调度定时器中断后,遍历就绪任务队列,找出 是否有比当前任务更改优先级的就绪状态任务,如果有则运行切换到改任务运行,把当前 任务置位就绪态后挂起;(3)类时间片轮的任务调度,当任务就绪时调度定时器每次中断后,在当前没有需 要实时抢占运行的任务时,扫描就绪任务队列,把当前就绪的任务就绪状态计数加1,同时 找出就绪时间最长的任务执行,同时清除其就绪计数;(4)信号量超时触发调度,当信号量到达或者超时时,立即触发等待该信号量的任 务运行。作为改进,系统的进程控制块的进程信息包括任务类型,用于标识实时任务和非 实时任务;现场信息,用于保存调度过程中的各种现场信息;控制信息,用于进程的调度和管理。作为改进,所述现场信息包括通用寄存器的内容、控制寄存器的内容、用户堆栈指 针、系统堆栈指针。作为改进,所述控制信息包括进程调度的相关信息,如状态、等待事件或等待原 因、优先级等;进程间通信的相关信息,如消息队列指针、信号量;资源的使用信息。本专利技术与现有技术相比所带来的有益效果是本专利技术提供了一种在抢占式调度的操作系统上实现类时间片轮的调度方法,该方 法包括时间片的分配、就绪状态判断、任务调度、时间片的回收、信号量触发调度的步骤。本 专利技术在保证实时性的前提下又能保证各个任务都有足够的被调度的机会。附图说明图1为本专利技术流程图。具体实施方式下面结合说明书附图对本专利技术作进一步说明。如图1所示,,包括以下步骤(1)时间片的分配,采取一种类似时间片轮的调度方法,这里的用来类似时间片轮 调度的时间片的方法是记录任务处于就绪状态的时间(就绪状态计数);(2)实时可抢占的任务调度,当系统调度定时器中断后,先遍历就绪任务队列,找 出是否有比当前任务更改优先级的就绪状态任务,如果有则运行切换到改任务运行,把当 前任务置位就绪态后挂起。否则执行空闲任务;本系统中创建的实时的任务是基于优先级的,而高优先级的任务一旦就绪总是可 以抢占低优先级的或者基于时间片轮的任务。需要实时运行的任务只要将其优先级设置为 足够高即可保证其需要运行时总能占有CPU资源,从而保证其实时性;(3)类时间片轮的任务调度,当任务就绪时调度定时器每次中断后,在当前没有需 要实时抢占运行的任务时,扫描就绪任务队列,把当前就绪的任务就绪状态计数加1,同时 找出就绪时间最长的任务执行,同时清除其就绪计数,从而实现类似时间片乱的调度以保 证非实时的任务也都能够有足够的机会获得CPU资源执行。(4)信号量(消息邮件)超时触发调度,当信号量(消息邮件)到达或者超时时, 立即触发等待该信号量(消息邮件)的任务运行,从而保证系统中消息传递的实时性。系统的进程控制块的进程信息包括任务类型,用于标识实时任务和非实时任务; 现场信息,用于保存调度过程中的各种现场信息,所述现场信息包括通用寄存器的内容、控 制寄存器的内容、用户堆栈指针、系统堆栈指针;控制信息,用于进程的调度和管理,所述控 制信息包括进程调度的相关信息,如状态、等待事件或等待原因、优先级等;进程间通信的 相关信息,如消息队列指针、信号量;资源的使用信息。 本专利技术提供了一种在抢占式调度的操作系统上实现类时间片轮的调度方法,该方 法包括时间片的分配、就绪状态判断、任务调度、时间片的回收、信号量触发调度的步骤。本 专利技术在保证实时性的前提下又能保证各个任务都有足够的被调度的机会。权利要求1.,其特征在于,包括以下步骤(1)时间片的分配,利用时间片记录任务处于就绪状态的时间;(2)实时可抢占的任务调度,当系统调度定时器中断后,遍历就绪任务队列,找出是否 有比当前任务更改优先级的就绪状态任务,如果有则运行切换到改任务运行,把当前任务 置位就绪态后挂起;(3)类时间片轮的任务调度,当任务就绪时调度定时器每次中断后,在当前没有需要实 时抢占运行的任务时,扫描就绪任务队列,把当前就绪的任务就绪状态计数加1,同时找出 就绪时间最长的任务执行,同时清除其就绪计数;(4)信号量超时触发调度,当信号量到达或者超时时,立即触发等待该信号量的任务运行。2.根据权利要求1所述的,其特征在于系统的 进程控制块的进程信息包括任务类型,用于标识实时任务和非实时任务; 现场信息,用于保存调度过程中的各种现场信息; 控制信息,用于进程的调度和管理。3.根据权利要求2所述的,其特征在于所述现 场信息包括通用寄存器的内容、控制寄存器的内容、用户堆栈指针、系统堆栈指针。4.根据权利要求2所述的,其特征在于所述控 制信息包括进程调度的相关信息、进程间通信的相关信息、资源的使用信息。全文摘要,(1)时间片的分配,时间片记录任务处于就绪状态的时间;(2)实时可抢占的任务调度,当系统调度定时器中断后,遍历就绪任务队列,找出是否有比当前任务更改优先级的就绪状态任务,如果有则运行切换到改任务运行,把当前任务置位就绪态后挂起;(3)类时间片轮的任务调度,当任务就绪时调度定时器每次中断后,在当前没有需要实时抢占运行的任务时,扫描就绪任务队列,把当前就绪的任务就绪状态计数加1,同时找出就绪时间最长的任务执行,同时清除其就绪计数;(4)信号量超时触发调度,当信号量到达或者超时时,立即触发等待该信号量的任务运行。保证实时性的前提下又能保证各个任务都有被调度的机会。文档编号G06F9/48GK102043667SQ2010105本文档来自技高网...

【技术保护点】
一种嵌入式操作系统的任务调度方法,其特征在于,包括以下步骤:(1)时间片的分配,利用时间片记录任务处于就绪状态的时间;(2)实时可抢占的任务调度,当系统调度定时器中断后,遍历就绪任务队列,找出是否有比当前任务更改优先级的就绪状态任务,如果有则运行切换到改任务运行,把当前任务置位就绪态后挂起;(3)类时间片轮的任务调度,当任务就绪时调度定时器每次中断后,在当前没有需要实时抢占运行的任务时,扫描就绪任务队列,把当前就绪的任务就绪状态计数加1,同时找出就绪时间最长的任务执行,同时清除其就绪计数;(4)信号量超时触发调度,当信号量到达或者超时时,立即触发等待该信号量的任务运行。

【技术特征摘要】

【专利技术属性】
技术研发人员:杨进
申请(专利权)人:深圳市科陆电子科技股份有限公司
类型:发明
国别省市:94[中国|深圳]

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

1