- 1
- 0
- 约3.19万字
- 约 29页
- 2016-11-07 发布于江苏
- 举报
第2-5:uC/OS-II 实时操作系统
目 录:
概述
任务栈切换方法
优先级别算法
任务通信-使用邮箱
任务通信-使用消息队列
对共享资源的互斥访问控制与信号(semaphore)
任务同步与信号(signal)
内存分配方法
缺陷与改进(1:任务调度问题,2:通信问题:任务通信模型与uC/OS-II通信机制的缺陷)
附录1:uC/OS-II文件列表
附录2:相关函数列表
附录3:主要变量和数据类型列表
概述
技术指标 uC/OS-II是一个占先式实时多任务操作系统内核,但不支持时间片调度,支持任务间通信,提供了多种对共享资源的访问控制,如禁止切换,调度上锁等。
uC/OS-II的也是一个可剪裁的系统,可以根据需要保留或者删除某些功能,任务数最多可达64个。下表中给出了2种常用情况下的目标代码大小。
序号 目标码(程序+数据) 任务数 邮箱 消息队列 信号量 任务栈大小 1 8K+6K 62 5 5 1 512 2 5K+4K 16 0 10 1 512 注:该表数据是根据《 uC/OS-II --源码公开的实时嵌入式操作系统》书中p229,p230 的表9.1和表9.2综合得到的. 通过改变OS_CFG.H文件中的各种配制,可以取消或者保留某些功能,并且改变某些数据结构的大小,在uC/OS-II中,影响内存大小的数据结构主要包括任务数量,事件控制块数量和任务堆栈大小。
uC/OS-II源代码 uC/OS-II的X86版本代码规模约为5000行,包括用于应用任务的例子代码和辅助代码,核心代码约3500行,分布在 17 个文件中【详见附录1】。
任务状态 uC/OS-II的任务一般会处于以下6状态之一,
运行态
就绪态
等待信号量
等待邮箱消息
等待消息队列消息
挂起
在某一时刻,系统中只会有一个任务处于“运行态”,处于其他各种状态的任务数量没有限制,“挂起态”的进入是任务主动进行的,其他状态一般由各种外部因素造成。只有处于“就绪态”的任务才可能成为下个要执行的任务。
任务切换过程和优先级别算法 uC/OS-II不支持时间片调度切换,而仅仅提供按任务优先级别的切换,提供了2种任务切换方式,主动切换和被动切换,前者是应用任务通过调用系统函数自动将自己挂起,后者是操作系统根据当前任务运行情况,将正在运行的任务强制挂起,从而切换到另一个任务执行。被动切换对于任务来说是不可预知的,因此可能发生在任意代码位置。
uC/OS-II的任务优先级别一般采用常量定义,实际上属于静态优先级别,即在任务运行过程中,系统不改变任务的优先级别,但提供了一个优先级别改变的接口函数,用户任务可以通过调用该函数来修改自身或者其他任务的优先级别。
由于uC/OS-II不支持时间片调度,因此如果一个任务函数代码中包含无限循环代码的话,其他低优先级别得任务将永远得不到调度。对于高优先级别任务,也可能得不到执行。
任务之间的数据传递 在uC/OS-II中,提供了邮箱和消息队列2种方式来满足任务之间的数据传递,在使用邮箱时,如果收信任务没有将数据取走,就无法传送下个消息,而一个消息队列方式实际上相当与多个邮箱,因此可以连续传送多条消息。
共享资源访问控制 uC/OS-II中可以使用禁止调度、设置信号量来保证共享资源访问的排它性。系统的信号量数量由事件控制块数量决定。
任务同步 如果一个任务需要立即切换到另外一个指定任务,可以通过设置信号量来实现。在uC/OS-II中,实现任务间同步运行需要较为较为负责的处理。
uC/OS-II的使用问题 uC/OS-II只是一个任务调度内核,没有用于某个特定硬件环境的I/O系统,例如TCP/IP协议栈、图形GUI等,需要另外开发。
此外,uC/OS-II上也不能使用磁盘或者flash存储器的文件系统,不支持中文显示和中文输入接口,在uC/OS-II上开发应用产品任然需要做大量工作。
调度过程:任务栈切换方法
任务栈的定义与赋初值 uC/OS-II是采用独立任务栈的切换方法,给每个任务分配一个任务栈数组,比如在例子1中ex1l.c文件中定义的“TaskStk[ ][ ]”变量, 在切换时将处理器的堆栈指针SP指向该数组,从而实现任务切换。任务栈数组(如“TaskStk[0][ ]”)在系统初始化时被赋予每个任务控制块(OS_TCB)的“OS_STK *OSTCBStkPtr”变量,?这个赋值过由函数:
TaskStart()- OSTaskCerat( ) -OSTaskStkInit()-OSTCBinit()
的依次执行完成,具体过程见【表1】:
表格 1:任务栈的初始化过程
步骤 文件 函数名 堆栈变量传递 : SP指针 说明 1 ex1l.c main( ) TaskStk[N_
您可能关注的文档
- 中学教育做中国最好的老师.ppt
- 中学教育甘薯鲜食及食品加工用名优品种.doc
- 中学教育消防工程认识实习动员.ppt
- 中学教育专题复习:近代世界主要国家的资产阶级革命和改革.ppt
- 中学教育遗传综合大实验().ppt
- 中学教育毕业论文66362.doc
- 中学教育第六章企业人力资源管理.doc
- 中学教育2014年高中历史专题五《走向世界的资本主义市场》单元测试B卷人民版必修3.doc
- 中学教育常见食用菌栽培技术.doc
- 中学教育《数据库设计》实验指导书84078.doc
- 2026年及未来5年内中国液体氩气行业投资前景及策略咨询研究报告.docx
- 2026年及未来5年内中国黄铜合页行业投资前景及策略咨询研究报告.docx
- 2026年及未来5年内中国竹工艺家具行业投资前景及策略咨询研究报告.docx
- 2025年中国微机数显自动分析仪市场调查研究报告.docx
- 2026年及未来5年内中国微尘白色粉笔行业投资前景及策略咨询研究报告.docx
- 2025年中国微电脑型压胶机市场调查研究报告.docx
- 2026年及未来5年内中国数字化等功游泳训练测试系统行业投资前景及策略咨询研究报告.docx
- 2025年中国圆形花瓶市场调查研究报告.docx
- 2026年及未来5年内中国植物纤维静淀过滤器行业投资前景及策略咨询研究报告.docx
- 2025年中国超音波手套机市场调查研究报告.docx
最近下载
- 医院财务管理制度.docx
- 2025年2月26日西安市军队文职面试真题及答案解析(计算机岗).doc VIP
- (苏教版)数学五年级上册寒假“天天练”作业设计,含30份题组,附参考答案.pdf
- 鸡胴体等级及要求、鸡分割肉等级及要求.pdf VIP
- 2025年青岛酒店管理职业技术学院单招语文考试题库及答案解析.docx VIP
- 北师大版高中英语选择性必修第二册unit6 lesson3课文英汉对照.docx VIP
- 水利厅水利工程招投标管理工作手册(标准版).doc VIP
- 山东单招语文题库及答案.doc VIP
- 八项基本管理技能.pdf VIP
- 深度解析(2026)《YST 1777-2025微纳米铜粉》:新材料产业精细化、高端化发展的权威指南与未来展望.pptx VIP
原创力文档

文档评论(0)