资料介绍
引言
笔者曾在本刊2008年12期上发表过一篇文章——《基于μC/OS-11的时间片调度法设计》,近期在网络上看到有很多感兴趣的技术同行作了大量引用和转载。根据在实际项目中的应用经验,有必要对其再议,主要原因如下:①多任务的时间片调度在嵌入式领域有实用价值。一方面是很多嵌入式软件系统升级有这种需求,旧的软件模块基于Endless Loop实现,升级到μC/OS-II后,若要最大限度地复用旧的软件模块,时间片调度算法是实现旧的设计模式到新架构之间最简单的桥梁。另一方面,对于控制领域,存在大量的耗时任务无法自动释放控制权,时间片调度降低了任务设计的复杂度。刚刚发布不久的μC/OS-II,推出的重大改进之一就是增加了对Round Robin的支持,更是表明μC/OS-II的使用者们对该功能的实际需求是切实存在的。
②不更改μC/OS-II内核代码实现时间片调度。《基于μC/OS-II的时间片调度法设计》对OS内核代码作了修改,虽然很少但增加了系统耦合度,对日后的项目维护和第三方升级都是不利的。如果存在完全不用更改内核而仅基于OS服务的正常调用的实现方案,对系统的可靠性和移植性都是有益的。
③相对μC/OS-III,μC/OS-II仍然有广泛的应用领域。μC/OS-III作出了重大的改进,增加了时间片调度,扩展了任务数的限制,允许了同等优先级任务的存在,更多新特性的引入带来了内核结构的重整以及运行时开销的增加。虽然可以通过配置优化系统,但就大部分的应用而言,μC/OS-II完全能够胜任,至少不需要仅仅为了时间片调度功能而选用μC/OS-III.
1调度原理
该调度算法对系统的要求有两点:首先要建立一个额外的调度任务用于管理待调度的用户任务时间片计时及其切换,我们将其命名为TaskRB_Scheduler;其次是保证其任务优先级高于所有的待调度时间片任务,保证调度任务能抢占所有被调度任务的控制权。
我们假设系统中有3个任务需要分享时间片,分别为TaskRB_1、TaskRB_2、TaskRB_3.为了实现时间片的调度功能,还需要额外的调度任务TaskRB Scheduler,于是系统中的将会有4个任务。其中,TaskRB Scheduler由初始化代码创建,而待调度的3个用户任务的创建和管理完全由TaskRB Scheduler任务来完成。
TaskRB_Scheduler的运行分为两个阶段:首先是初始化阶段,负责所有时间片任务的创立并确保其处于Suspend状态;然后是调度运行阶段,如图
笔者曾在本刊2008年12期上发表过一篇文章——《基于μC/OS-11的时间片调度法设计》,近期在网络上看到有很多感兴趣的技术同行作了大量引用和转载。根据在实际项目中的应用经验,有必要对其再议,主要原因如下:①多任务的时间片调度在嵌入式领域有实用价值。一方面是很多嵌入式软件系统升级有这种需求,旧的软件模块基于Endless Loop实现,升级到μC/OS-II后,若要最大限度地复用旧的软件模块,时间片调度算法是实现旧的设计模式到新架构之间最简单的桥梁。另一方面,对于控制领域,存在大量的耗时任务无法自动释放控制权,时间片调度降低了任务设计的复杂度。刚刚发布不久的μC/OS-II,推出的重大改进之一就是增加了对Round Robin的支持,更是表明μC/OS-II的使用者们对该功能的实际需求是切实存在的。
②不更改μC/OS-II内核代码实现时间片调度。《基于μC/OS-II的时间片调度法设计》对OS内核代码作了修改,虽然很少但增加了系统耦合度,对日后的项目维护和第三方升级都是不利的。如果存在完全不用更改内核而仅基于OS服务的正常调用的实现方案,对系统的可靠性和移植性都是有益的。
③相对μC/OS-III,μC/OS-II仍然有广泛的应用领域。μC/OS-III作出了重大的改进,增加了时间片调度,扩展了任务数的限制,允许了同等优先级任务的存在,更多新特性的引入带来了内核结构的重整以及运行时开销的增加。虽然可以通过配置优化系统,但就大部分的应用而言,μC/OS-II完全能够胜任,至少不需要仅仅为了时间片调度功能而选用μC/OS-III.
1调度原理
该调度算法对系统的要求有两点:首先要建立一个额外的调度任务用于管理待调度的用户任务时间片计时及其切换,我们将其命名为TaskRB_Scheduler;其次是保证其任务优先级高于所有的待调度时间片任务,保证调度任务能抢占所有被调度任务的控制权。
我们假设系统中有3个任务需要分享时间片,分别为TaskRB_1、TaskRB_2、TaskRB_3.为了实现时间片的调度功能,还需要额外的调度任务TaskRB Scheduler,于是系统中的将会有4个任务。其中,TaskRB Scheduler由初始化代码创建,而待调度的3个用户任务的创建和管理完全由TaskRB Scheduler任务来完成。
TaskRB_Scheduler的运行分为两个阶段:首先是初始化阶段,负责所有时间片任务的创立并确保其处于Suspend状态;然后是调度运行阶段,如图
下载该资料的人也在下载
下载该资料的人还在阅读
更多 >
- FreeRTOS时间片进行任务调度
- FreeRTOS时间片调度
- UCOIII时间片轮转调度
- 单片机应用程序架构-时间片轮询法
- 小信号放大电路设计方案汇总 139次下载
- 空调PFC原理及交错设计方案分析 18次下载
- AC24V接口EMC标准电路设计方案 36次下载
- AC380V EMC标准电路设计方案 50次下载
- AV接口EMC标准电路设计方案 29次下载
- CAN总线接口EMC标准电路设计方案 206次下载
- 基于NVM和DRAN的混合内存系统设计方案 12次下载
- 如何进行窄带蜂窝物联网的资源分配和调度问题分析与设计 6次下载
- UCOS扩展例程-UCOSIII时间片轮转调度 21次下载
- 嵌入式实时操作系统VxWorks内核调度机制分析
- 时间继电器设计方案
- FreeRTOS任务调度器的三种调度算法讲解(下) 1794次阅读
- 软件架构之时间轮片法 384次阅读
- 配网调度自动化自愈系统的设计与实现 923次阅读
- 不同功率的充电桩设计方案总结 2091次阅读
- 电力变压器保护设计方案 573次阅读
- 高效电路分析:叠加定理、支路分析法、网孔分析法、结点分析法、戴维南和诺顿定理 5273次阅读
- 任务调度开源代码是什么 784次阅读
- 时间片调度算法issue详解 1206次阅读
- 利用IP流量发生器实现IPTV测试仪的设计方案 2477次阅读
- 单片机中的时间片轮询法解析 8389次阅读
- 智能电网调度的主要运行技术分析 4279次阅读
- 四种常用的电路分析法 1.7w次阅读
- 基于FPGA的数字核脉冲分析器硬件设计方案 2075次阅读
- 基于FPGA的帧同步系统设计方案 4712次阅读
- LED大屏幕控制电路设计方案研究 2473次阅读
下载排行
本周
- 1TC358743XBG评估板参考手册
- 1.36 MB | 330次下载 | 免费
- 2开关电源基础知识
- 5.73 MB | 6次下载 | 免费
- 3100W短波放大电路图
- 0.05 MB | 4次下载 | 3 积分
- 4嵌入式linux-聊天程序设计
- 0.60 MB | 3次下载 | 免费
- 5基于FPGA的光纤通信系统的设计与实现
- 0.61 MB | 2次下载 | 免费
- 6基于FPGA的C8051F单片机开发板设计
- 0.70 MB | 2次下载 | 免费
- 751单片机窗帘控制器仿真程序
- 1.93 MB | 2次下载 | 免费
- 8基于51单片机的RGB调色灯程序仿真
- 0.86 MB | 2次下载 | 免费
本月
- 1OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 2555集成电路应用800例(新编版)
- 0.00 MB | 33564次下载 | 免费
- 3接口电路图大全
- 未知 | 30323次下载 | 免费
- 4开关电源设计实例指南
- 未知 | 21548次下载 | 免费
- 5电气工程师手册免费下载(新编第二版pdf电子书)
- 0.00 MB | 15349次下载 | 免费
- 6数字电路基础pdf(下载)
- 未知 | 13750次下载 | 免费
- 7电子制作实例集锦 下载
- 未知 | 8113次下载 | 免费
- 8《LED驱动电路设计》 温德尔著
- 0.00 MB | 6653次下载 | 免费
总榜
- 1matlab软件下载入口
- 未知 | 935054次下载 | 免费
- 2protel99se软件下载(可英文版转中文版)
- 78.1 MB | 537796次下载 | 免费
- 3MATLAB 7.1 下载 (含软件介绍)
- 未知 | 420026次下载 | 免费
- 4OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 5Altium DXP2002下载入口
- 未知 | 233046次下载 | 免费
- 6电路仿真软件multisim 10.0免费下载
- 340992 | 191185次下载 | 免费
- 7十天学会AVR单片机与C语言视频教程 下载
- 158M | 183278次下载 | 免费
- 8proe5.0野火版下载(中文版免费下载)
- 未知 | 138040次下载 | 免费
评论
查看更多