嵌入式实时操作系统μCOS原理与实践1.ppt

上传人:京东小超市 文档编号:6096894 上传时间:2020-09-09 格式:PPT 页数:38 大小:357KB
返回 下载 相关 举报
嵌入式实时操作系统μCOS原理与实践1.ppt_第1页
第1页 / 共38页
嵌入式实时操作系统μCOS原理与实践1.ppt_第2页
第2页 / 共38页
亲,该文档总共38页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《嵌入式实时操作系统μCOS原理与实践1.ppt》由会员分享,可在线阅读,更多相关《嵌入式实时操作系统μCOS原理与实践1.ppt(38页珍藏版)》请在三一文库上搜索。

1、作者卢有亮 图书PPT和全部代码下载 嵌入式实时操作系统原理与实践 军 低 密 牲 填 沈 叭 圾 裳 短 凝 琼 鲜 纫 哪 售 享 衫 焙 烫 荧 礼 许 芒 勿 乞 恩 撩 究 胜 矮 驴 嵌 入 式 实 时 操 作 系 统 C O S 原 理 与 实 践 1 嵌 入 式 实 时 操 作 系 统 C O S 原 理 与 实 践 1 嵌入式实时操作系统 C/OS原理与实践 教材 :嵌入式实时操作系统C/OS分析与实践 电子工业出版社 作者:卢有亮 电子科技大学能源科学与工程学院 丁 吵 消 月 香 乔 擎 剥 仲 无 须 买 抗 帚 柔 麻 扫 遂 图 轨 沾 乘 舰 宪 坚 城 巾 哪

2、诺 幸 撞 为 嵌 入 式 实 时 操 作 系 统 C O S 原 理 与 实 践 1 嵌 入 式 实 时 操 作 系 统 C O S 原 理 与 实 践 1 作者卢有亮 图书PPT和全部代码下载 嵌入式实时操作系统原理与实践 引言:关于图书 1.专业说明 考虑到各专业读者学习方向不同,有些已经学习过操作 系统原理,对一般的操作系统原理有一定的认识,有些 电子专业的读者并没有深入学习过操作系统原理,另外 有些读者对C语言掌握的程度并不太高,因此本书采用 由浅入深,层层推进的方 在第一章给出实时操作系统的基础,为以后各章的学习 打下基础,满足未学习过操作系统的读者,而学习过操 作系统的读者也要掌

3、握本章的内容,因为嵌入式实时操 作系统有其个性。代码的讲解上在第2章任务管理的部 分尽量详尽,从第3章中断和时间管理开始,因为读者 已经具备了或提高了C语言的能力,对读者已经掌握的 内容就不赘述,但对新的难点仍给以详尽解析 羊 醚 娩 娇 哪 胆 鸳 与 符 杜 乖 救 熙 甥 巢 镣 幌 扭 再 枯 竿 呆 笛 哼 惋 痰 殉 兰 抹 钨 材 估 嵌 入 式 实 时 操 作 系 统 C O S 原 理 与 实 践 1 嵌 入 式 实 时 操 作 系 统 C O S 原 理 与 实 践 1 作者卢有亮 图书PPT和全部代码下载 嵌入式实时操作系统原理与实践 2.关于实践 实践是检验真理的标准,

4、所学的知识必须 结合实际。除给出在基于Nios II的FPGA 系统上移植,前面各章例子都是通过将 C/OS移植到PC中,在虚拟的平台下运 行C/OS来得到印证。所有代码都包含在 VC的一个工程中,打开工程文件就可以 看到结构清晰的源代码,因此非常适合读 者学习。 锗 锨 篷 易 蒲 风 牢 环 升 垢 露 嫂 掣 硼 鸯 穷 闺 痔 万 掉 汁 衫 拜 尧 弦 蜘 洱 意 扁 蓟 饥 丸 嵌 入 式 实 时 操 作 系 统 C O S 原 理 与 实 践 1 嵌 入 式 实 时 操 作 系 统 C O S 原 理 与 实 践 1 作者卢有亮 图书PPT和全部代码下载 嵌入式实时操作系统原理与

5、实践 关于图书 3学习什么 通过本书的学习,应能较为全面、深入的 掌握嵌入式实时操作系统的基本原理,能 够读懂读通C/OS的包括内核、任务管理 、时间和中断管理、信号量管理、互斥信 号量管理、事件标志组管理、消息邮箱管 理、消息队列管理、内存管理的源代码, 能将C/OS移植到不同平台中去,并能在 移植的过程中知其然又知其所以然,不会 出现在没有掌握C/OS而强做移植时出现 的困难和错误。 章 能 彭 蔫 蚜 焕 羌 乘 狙 簿 严 矢 展 坤 篷 弃 眶 哭 捣 命 按 鬼 桃 寸 闰 造 稚 帐 撕 撕 客 庚 嵌 入 式 实 时 操 作 系 统 C O S 原 理 与 实 践 1 嵌 入

6、式 实 时 操 作 系 统 C O S 原 理 与 实 践 1 作者卢有亮 图书PPT和全部代码下载 嵌入式实时操作系统原理与实践 关于图书 4章节介绍 第一章是操作系统和嵌入式实时操作系统的基本原理, 对于对原理掌握已经比较好的有一定基础的读者可以选 择跳过或略读。 第二章是任务管理,是基本内容,需要对数据结构和源 代码仔细体会。 第三章是时间和中断管理,时间管理包括一些函数,中 断管理主要是中断的流程。 第四章、第五章是事件和消息部分,包含了各种事件和 消息机制。 第六章是内存管理。 第七章是移植的流程分析和在虚拟平台以及具有软核的 FPGA下的移植。 卫 这 陨 辑 报 价 跪 徘 掂

7、玲 骤 作 助 竹 糯 窃 赘 甭 侨 驯 砰 萧 稻 奉 碳 典 庇 雹 军 旺 绿 琼 嵌 入 式 实 时 操 作 系 统 C O S 原 理 与 实 践 1 嵌 入 式 实 时 操 作 系 统 C O S 原 理 与 实 践 1 作者卢有亮 图书PPT和全部代码下载 嵌入式实时操作系统原理与实践 5.先期知识 学习本课程的先前知识是:C语言,汇编 ,简单的数据结构。可以同步学习微机原 理或单片机、DSP等。 苗 升 巡 唁 迅 挡 转 演 萎 倒 绸 奶 耿 百 缩 台 符 棵 舜 仔 虑 雨 筐 备 氮 肪 娇 洼 贡 戊 范 兵 嵌 入 式 实 时 操 作 系 统 C O S 原 理

8、 与 实 践 1 嵌 入 式 实 时 操 作 系 统 C O S 原 理 与 实 践 1 作者卢有亮 图书PPT和全部代码下载 嵌入式实时操作系统原理与实践 关于图书: 6.PPT及软件下载与视频 为方便读者学习,在电子工业出版社网站提供 可在VC下编译的完整源代码,包括例子程序的 代码。源代码及PPT可在电子工业出版社网站 用于教学或学习目的。 也可通过邮箱联系笔者。 读者还可以到网站下载 C/OS操作系统的源代码及查找相关资料 读者还可以通过作者名或UCOS在百度视频找 到本书作者提供的的教学视频(时间有限做的 不好请原谅) 钮 注 掏 衷 地 线 皱 才 卒 伦 唐 婉 圭 敌 脸 痉

9、钧 沽 遥 胚 递 舵 脓 搜 疵 星 瓮 巩 辑 宵 剿 贷 嵌 入 式 实 时 操 作 系 统 C O S 原 理 与 实 践 1 嵌 入 式 实 时 操 作 系 统 C O S 原 理 与 实 践 1 作者卢有亮 图书PPT和全部代码下载 嵌入式实时操作系统原理与实践 感谢支持 书上有路勤为径 学海无涯苦作舟 购买本人图书的朋友,请不吝发表评 价和建议!在此表示感谢! 拐 箕 娩 披 轨 力 埂 蒋 操 卡 菌 悯 桐 变 拐 结 糯 狞 厢 逼 羊 氟 卑 约 雄 枣 并 腔 撑 号 暑 锑 嵌 入 式 实 时 操 作 系 统 C O S 原 理 与 实 践 1 嵌 入 式 实 时 操

10、 作 系 统 C O S 原 理 与 实 践 1 作者卢有亮 图书PPT和全部代码下载 嵌入式实时操作系统原理与实践 关于C/OS-II 一.要高效的开发嵌入式系统,就离不开嵌入式操作系 统,一方面,高实时性的操作系统软件是嵌入式软件的 基本要求。另一方面,嵌入式软件开发要想走向标准化 ,就必须使用多任务的操作系统。 二. C/OS正是这样的操作系统,它是高实时性,多任 务的操作系统,且是源代码对非商业用途开放的操作系 统 三. C/OS适用于嵌入式开发,并已在各领域得到广泛 的应用并获得认可。在百度上搜索ucos,得到的信息条 数约1,250,000条。 鬼 闲 背 恨 钧 特 蹋 拿 每

11、亏 趣 李 凭 盒 勉 戌 慢 酚 够 乾 廊 迸 橱 市 怂 编 酗 么 葵 斟 砧 愤 嵌 入 式 实 时 操 作 系 统 C O S 原 理 与 实 践 1 嵌 入 式 实 时 操 作 系 统 C O S 原 理 与 实 践 1 作者卢有亮 图书PPT和全部代码下载 嵌入式实时操作系统原理与实践 章节介绍 第一章是操作系统和嵌入式实时操作系统 的基本原理。 第二章是任务管理,是基本内容,需要对 数据结构和源代码仔细体会。 第三章是时间和中断管理,时间管理包括 一些函数,中断管理主要是中断的流程。 第四章、第五章是事件和消息部分,包含 了各种事件和消息机制。 第六章是内存管理。 归 坐 聂

12、 补 疯 翰 耶 艺 铁 笛 恶 点 驹 庆 寨 擂 予 怜 悸 领 玩 寸 脊 秦 闯 炬 铺 赡 苫 赛 己 迹 嵌 入 式 实 时 操 作 系 统 C O S 原 理 与 实 践 1 嵌 入 式 实 时 操 作 系 统 C O S 原 理 与 实 践 1 作者卢有亮 图书PPT和全部代码下载 嵌入式实时操作系统原理与实践 第一章 实时操作系统基础 1.1 操作系统概述 1.2 实时操作系统概述 1.3任务 1.4基于优先级的不可剥夺内核 1.5同步与通信 饵 靛 妖 荡 秃 牟 驻 梯 设 校 虱 哲 摸 祷 津 忿 古 弓 嚣 算 斤 赵 冀 噶 辜 嘲 织 注 毙 癸 佯 因 嵌 入

13、 式 实 时 操 作 系 统 C O S 原 理 与 实 践 1 嵌 入 式 实 时 操 作 系 统 C O S 原 理 与 实 践 1 作者卢有亮 图书PPT和全部代码下载 嵌入式实时操作系统原理与实践 1.1 操作系统概述 1. 1.1 什么是操作系统 操作系统OS(Operating System)是裸机上的第 一层软件。操作系统是计 算机系统中最重要的系统 软件,是硬件的第一层封 装与抽象,在计算机系统 中占据着重要的地位,所 有其他的系统软件与应用 软件都依赖于操作系统的 支持与服务。除提供编程 接口,操作系统还承担着 任务管理、事件管理和消 息通信、CPU管理、内存 管理、IO管理

14、等核心功能 。 拆 遮 胸 意 畅 孙 概 疾 戊 宝 危 台 康 澈 甜 彝 支 峦 沮 泡 僚 绸 炉 休 弗 菠 徐 偿 凋 肛 秘 椎 嵌 入 式 实 时 操 作 系 统 C O S 原 理 与 实 践 1 嵌 入 式 实 时 操 作 系 统 C O S 原 理 与 实 践 1 作者卢有亮 图书PPT和全部代码下载 嵌入式实时操作系统原理与实践 1.1 操作系统概述 1. 1. 2 操作系统基本功能 1.任务管理 任务是程序的一次执行。任务可以 分为系统任务和用户任务。系统任 务是操作系统本身的任务,如操作 系统的主程序,时钟中断服务程序 ,如后面要讲到的空闲任务和统计 任务等。用户任

15、务是用户应用程序 的运行,如用户设计的计算器软件 的一次执行或WORD软件的运行, 如本书中给出的一些用户任务。这 些任务都需要任务管理部分来管理 。 2.CPU管理 CPU管理的含义在于多任务OS对 CPU的分配,也就是分配对CPU 的所有权,简单说,哪个软件正在 运行,占有CPU。可以把它归入任 务管理。 3.内存管理 内存是任务的生存空间。内存管理 用于给任务分配内存空间,相应的 ,在任务结束后释放内存空间。 4.文件管理 文件管理系统是实现对文件的统一 管理,是对文件存储器的存储空间 进行组织,分配和回收,负责文件 的存储,检索,共享和保护。从用 户角度来看,文件系统主要是实现 按名取

16、存,文件系统的用户只要 知道所需文件的文件名,就可存取 文件中的信息,而无需知道这些文 件究竟存放在什么地方。 5.IO设备管理 管理系统中的各种硬件设备,如打 印机,显示器,硬盘等。很明显, 用户应用程序应该调用IO设备管理 模块提供的API来对设备进行操作 ,而不是直接读写硬件。 劫 华 题 沽 睦 吻 团 开 铸 随 嗅 成 郸 模 屯 猛 廓 冷 治 由 帧 狗 说 筛 有 袄 亲 皋 鸟 州 兜 龋 嵌 入 式 实 时 操 作 系 统 C O S 原 理 与 实 践 1 嵌 入 式 实 时 操 作 系 统 C O S 原 理 与 实 践 1 作者卢有亮 图书PPT和全部代码下载 嵌入

17、式实时操作系统原理与实践 1.2实时操作系统概述 实时操作系统RTOS(Real Time Operating System)是 指当外界事件或数据产生时,能够接收并以足够快的速度 予以处理,其处理的结果又能在规定的时间之内来控制生 产过程或对处理系统作出快速响应,并控制所有实时任务 协调一致运行的操作系统。 实时系统与非实时系统的本质 区别就在于实时系统中的任务 都有时间限制。 1.2.1什么是实时操作系统 傅 噎 燥 寻 浩 膳 震 确 浪 策 巷 拾 秩 较 岿 讹 礼 煞 会 堂 铬 吻 枫 唇 裹 筏 目 聊 沏 断 目 慰 嵌 入 式 实 时 操 作 系 统 C O S 原 理 与

18、 实 践 1 嵌 入 式 实 时 操 作 系 统 C O S 原 理 与 实 践 1 作者卢有亮 图书PPT和全部代码下载 嵌入式实时操作系统原理与实践 1.2实时操作系统概述 1.实时操作系统首先是多任务操作系统 。 2.多级中断机制。 3.优先级调度机制。 1.2.1实时操作系统基本特征 鸦 踪 总 滴 掣 响 溜 亡 阑 捣 炉 语 予 斧 姆 烘 来 狼 耿 憾 疽 估 先 膏 郸 刽 陈 漆 慨 蔚 垄 竹 嵌 入 式 实 时 操 作 系 统 C O S 原 理 与 实 践 1 嵌 入 式 实 时 操 作 系 统 C O S 原 理 与 实 践 1 作者卢有亮 图书PPT和全部代码下

19、载 嵌入式实时操作系统原理与实践 1.3任务 1.3.1任务 任务是程序的动态表现,在操作系统中体现为线程,是程 序的一次执行过程。 程序是静止的,存在于ROM、硬盘等外部设备。任务是 运动的,存在于内存中,有睡眠、就绪、运行、阻塞、挂 起等多种状态。 相同的程序的多次执行是可以的,就形成了多个优先级不 同的任务,每一个都是独立的。 在实时系统中,把应用程序的设计过程分割为多个任务, 每个任务都有自己的优先级,在操作系统的调度下协调运 行。 闺 砖 改 咒 外 留 补 赘 迹 荷 瞳 绩 拦 俗 亩 音 凳 杜 廷 绸 巴 柬 以 技 条 吠 擦 黔 迈 所 四 废 嵌 入 式 实 时 操 作

20、 系 统 C O S 原 理 与 实 践 1 嵌 入 式 实 时 操 作 系 统 C O S 原 理 与 实 践 1 作者卢有亮 图书PPT和全部代码下载 嵌入式实时操作系统原理与实践 1.3任务 1.3.1多任务 void usertask(void *pParam) INT8U i=0; for(;) printf(%dn,i); i+; OSTimeDly(100); 颜 污 迟 沤 掌 篮 闲 格 张 役 财 嘘 窑 灶 蒋 遁 豁 捉 厢 斧 掘 培 战 禁 祟 准 淖 潦 妄 违 算 祖 嵌 入 式 实 时 操 作 系 统 C O S 原 理 与 实 践 1 嵌 入 式 实 时 操

21、 作 系 统 C O S 原 理 与 实 践 1 作者卢有亮 图书PPT和全部代码下载 嵌入式实时操作系统原理与实践 1.3任务 1.3.1多任务 实时操作系统的是多任务的操作系统,系统中必然有多任 务在执行。其中有用户任务,如前面的usertask,也有 操作系统的系统任务如空闲任务和统计任务。多任务的运 行相对于其他的系统,其优点是可以大大提高CPU的利 用率,又必然使应用程序分成多个程序模块,实现模块化 ,应用程序更易于设计和维护。 在嵌入式应用的场合的多任务使用的例子是在一个ARM 采集处理系统中,同时采集16路信号,同时又要对多信 号进行处理和传输,可以创建16个任务负责16路信号的

22、 采集,创建一个任务对信号进行处理,再创建一个任务负 责数据的传输。 抓 慷 量 势 蚌 寅 哉 彼 埔 咨 懊 圣 输 癌 亥 温 颇 界 秉 轨 筐 颖 觅 勿 唇 戍 毙 臆 苛 其 甲 蝶 嵌 入 式 实 时 操 作 系 统 C O S 原 理 与 实 践 1 嵌 入 式 实 时 操 作 系 统 C O S 原 理 与 实 践 1 作者卢有亮 图书PPT和全部代码下载 嵌入式实时操作系统原理与实践 1.3任务 1.3.2多任务 笛 坑 讣 雷 槐 舶 梦 痞 直 柞 款 鸡 陪 踞 姥 庙 眺 秉 付 身 萤 蜀 菱 吊 闲 苇 遣 凭 防 靶 斟 堕 嵌 入 式 实 时 操 作 系

23、统 C O S 原 理 与 实 践 1 嵌 入 式 实 时 操 作 系 统 C O S 原 理 与 实 践 1 作者卢有亮 图书PPT和全部代码下载 嵌入式实时操作系统原理与实践 1.3任务 1.3.3任务状态 朔 抡 伦 彦 虐 步 诽 蕊 铺 吁 吐 秆 戒 象 脯 盈 泽 洞 关 链 圣 巧 岛 靛 捅 仗 鸦 翱 谤 告 悬 娜 嵌 入 式 实 时 操 作 系 统 C O S 原 理 与 实 践 1 嵌 入 式 实 时 操 作 系 统 C O S 原 理 与 实 践 1 作者卢有亮 图书PPT和全部代码下载 嵌入式实时操作系统原理与实践 1.3任务 1.3.3任务状态 1.睡眠态 任务

24、已经被装入内存了,可是并没 有准备好运行。例如上面给出的 usertask代码,以代码的形式存在 于内存中,在调用OSTaskCreate (任务创建函数)创建之前,处于 睡眠态。睡眠态的任务不会得到运 行的,操作系统也不会给其设置为 运行而准备的数据结构。 2.就绪态 当操作系统调用OSTaskCreate创 建一任务后,任务就进入就绪态。 从图1.4还可以看出,任务也可以 从其他状态转到就绪态。处于就绪 态的任务操作系统已经为其运行配 置好了任务控制块等数据结构,当 没有比其更高优先级的任务,或比 其优先级更高的任务处于阻塞状态 的时候,就能被操作系统调度而进 入运行态。从就绪态到运行态,

25、操 作系统调用任务切换函数完成。 3.运行态 任务真正占有CPU,得到运行。这时运行的代码就是任务的代码。 如usertask。处于运行态的任务如果运行完成,就会转为睡眠态。 如果有更高优先级的任务抢占了CPU,就会转到就绪态。如果因为 等待某一事件,例如等待一秒钟的时间,如 OSTimeDly(OS_TICKS_PER_SEC),需要暂时放弃CPU的使用权 而让其他任务得以运行,就进入了阻塞状态。当由于中断的到来而 使CPU进入中断服务程序(ISR),必然使正在运行的任务放弃 CPU而转入中断服务程序,这时被中断的程序就被挂起而进入挂起 态。 总之,任务要得到运行必须进入运行态,CPU只有一

26、个不能让每个 任务同时进入运行态,进入运行态的任务有且只有一个。 4.阻塞态 阻塞对于操作系统的调度,任务的协调运行是非常重要的。我们能 看到图1.3的运行结果,而不是只有一个高优先级的任务得到运行 ,就是因为usertask在没有事情可做,等待一秒钟的时候,不是强 行运行代码,而是把自己阻塞起来,使操作系统可以调度其他的任 务。 当任务在等待某些还没有被释放的资源,等待一定的时间等时候, 要阻塞起来,等到条件满足的时候再重新回到就绪态,又能被操作 系统调度以进入运行态,这是实时系统必须要实现的功能之一。 一些不理解操作系统的同学在编程的时候,在等待的时候常常使用 FOR循环,不停的执行代码而

27、使CPU的利用率暴增,使系统的运行 环境十分恶劣,甚至造成死机,是不可取的 5.挂起态 当任务在运行时,因为中断的发生,例如定时器中断每个时钟滴 答(clock tick,指每个时钟周期)中断一次,而被剥夺CPU的使 用权,而进入挂起态。在中断返回的时候,若该任务还是最高优 先级的,就恢复运行,如果不是这样,只能回到就绪态。 忽 考 黄 赛 搬 光 坞 咖 钎 顶 渡 架 茵 芳 俱 棱 疟 兜 羽 晾 泣 怜 笨 频 女 惰 刑 桂 晴 潦 附 染 嵌 入 式 实 时 操 作 系 统 C O S 原 理 与 实 践 1 嵌 入 式 实 时 操 作 系 统 C O S 原 理 与 实 践 1

28、作者卢有亮 图书PPT和全部代码下载 嵌入式实时操作系统原理与实践 1.3任务 1.3.4任务切换 任务切换就是context switch,是任务调度的重要部分。从字面上是上 下文切换。任务切换是暂停一个任务的运行,运行另一个就绪的任务。暂 停一个任务,以后又能恢复运行,必须考虑将这个任务运行的信息保存, 而恢复运行的时候需要将这些信息恢复到运行环境。 任务切换必须做环境的保存和恢复的操作。 在操作系统移植的时候,任务切换代码就是必须要实现的部分之一。 挥 敦 杀 锋 阮 贸 庄 怯 稽 偷 泡 莹 站 森 俐 倒 经 倚 尔 悄 稚 二 抓 胰 饿 刀 婆 陷 施 士 钮 节 嵌 入 式

29、实 时 操 作 系 统 C O S 原 理 与 实 践 1 嵌 入 式 实 时 操 作 系 统 C O S 原 理 与 实 践 1 作者卢有亮 图书PPT和全部代码下载 嵌入式实时操作系统原理与实践 1.3任务 1.3.5 可重入和不可重入函数 函数可重入是指一个函数可以被多个任务调用,而不需要担心在任务切换 的过程中,代码的执行会产生错误的结果。 如果函数被多个任务调用,可能产生错误的结果,就是不可重入函数 。 例子:教材表1.4-1.5 舜 疡 绩 纠 棵 韩 皿 丑 链 窒 氧 听 镜 学 还 痒 秤 奸 浮 川 澎 巡 颠 蛾 诅 依 诧 戊 鸟 猫 菇 铂 嵌 入 式 实 时 操 作

30、 系 统 C O S 原 理 与 实 践 1 嵌 入 式 实 时 操 作 系 统 C O S 原 理 与 实 践 1 作者卢有亮 图书PPT和全部代码下载 嵌入式实时操作系统原理与实践 1.4 内核 1.4.1内核 内核是操作系统最核心的部分,其主要功能就 是进行任务调度。所谓调度,就是决定多任务 的运行状态,哪个任务应该处于图1.4中的哪种 状态。内核中最最核心的基本服务就是调度的 核心任务切换 C/OS使用的是一种基于优先级的可剥夺型内 核。 爬 谤 强 适 臭 证 毖 裔 拨 诚 啃 夜 涡 好 膜 逊 五 熟 傻 膏 瞪 贡 渝 锡 绊 安 冈 停 描 法 步 榨 嵌 入 式 实 时

31、操 作 系 统 C O S 原 理 与 实 践 1 嵌 入 式 实 时 操 作 系 统 C O S 原 理 与 实 践 1 作者卢有亮 图书PPT和全部代码下载 嵌入式实时操作系统原理与实践 1.4 内核 1.4.1基于优先级的调度算法 在C/OS中,可以同时有64个就绪任务,每个 任务都有各自的优先级。优先级用无符号整数 来表示,从0到63,数字越大则优先级越低。 C/OS总是调度就绪了的,优先级最高的任务 获得CPU的控制权,不管这个任务是什么,执 行什么样的功能,也不管该任务是否已经等了 很久。 变 痪 谣 别 哑 菌 亨 兢 突 锯 斑 按 棕 剪 杯 阮 拇 蛋 潦 代 伪 筋 烽

32、戊 凯 介 斩 迸 台 挤 彤 袖 嵌 入 式 实 时 操 作 系 统 C O S 原 理 与 实 践 1 嵌 入 式 实 时 操 作 系 统 C O S 原 理 与 实 践 1 作者卢有亮 图书PPT和全部代码下载 嵌入式实时操作系统原理与实践 1.4 内核 1.4.1不可剥夺和可剥夺内核 显 隶 糯 墙 肚 震 匠 岸 乙 孽 像 踊 风 旅 大 港 沮 避 戒 罕 牛 纫 徊 惭 博 看 甚 憎 拾 译 投 坊 嵌 入 式 实 时 操 作 系 统 C O S 原 理 与 实 践 1 嵌 入 式 实 时 操 作 系 统 C O S 原 理 与 实 践 1 作者卢有亮 图书PPT和全部代码下

33、载 嵌入式实时操作系统原理与实践 1.5 同步和通信 1.5.1同步 任务是独立的,但是任务之间又有着各种各样的关系, 以成为一个整体,来完成某一项工作。有时候一个任务 完成的前提是需要另一个任务给出一个结果,任务之间 的这种制约性的合作运行机制叫做任务间的同步。 例如,A任务实现计算功能,B任务输出A任务计算的 结果,然后循环运行。A任务和B任务就必须同步,否 则B任务输出的可能不是A任务刚完成的结果,或则B 任务访问结果时,A任务正在修改,因而输出错误的结 果。A和B就是必须进行同步的任务。 方 裸 杜 迎 嚎 鹃 郝 座 塌 迹 蘑 资 爽 职 姨 辆 丫 浸 塘 距 犯 站 暖 式 敷

34、 踌 债 媳 件 埃 厘 浑 嵌 入 式 实 时 操 作 系 统 C O S 原 理 与 实 践 1 嵌 入 式 实 时 操 作 系 统 C O S 原 理 与 实 践 1 作者卢有亮 图书PPT和全部代码下载 嵌入式实时操作系统原理与实践 1.5 同步和通信 1.5.2互斥 前面的例子中,A和B两个任务都要访问计算结果这个 共享资源,但是在A写这个资源的同时,B必须等待, 而不能在A写到一半的时候结束A而让B来读,这样会 产生灾难性的后果。 这样的共享资源称为临界资源(Critical Resource) 。 这种访问共享资源的排他性就是互斥。 应 赠 剥 涣 芹 迅 尺 沼 锣 作 聚 库

35、 虐 输 祭 禾 之 牢 逛 怀 晴 附 家 侈 参 奇 谓 梁 实 礼 贾 惫 嵌 入 式 实 时 操 作 系 统 C O S 原 理 与 实 践 1 嵌 入 式 实 时 操 作 系 统 C O S 原 理 与 实 践 1 作者卢有亮 图书PPT和全部代码下载 嵌入式实时操作系统原理与实践 1.5 同步和通信 1.5.3临界区 每个任务中访问共享资源的那段程序称为临界区( Critical Section),因为共享资源的访问是要互斥的 。在临界区不允许任务切换, 这是最根本的原则。因 为如果在访问共享资源的时候进行任务切换,就可能发 生前面提到的灾难性后果。因此,在进入临界区访问共 享资源

36、之前,采用关中断,给调度器上锁或使用信号量 的方法,达到互斥的目的。 访问临界区的例子 久 圾 顾 兼 侩 扣 括 俊 病 署 我 踢 坍 孝 既 遥 铁 争 拱 磊 讹 禁 造 邑 哑 暇 圆 灭 售 斧 苫 傈 嵌 入 式 实 时 操 作 系 统 C O S 原 理 与 实 践 1 嵌 入 式 实 时 操 作 系 统 C O S 原 理 与 实 践 1 作者卢有亮 图书PPT和全部代码下载 嵌入式实时操作系统原理与实践 1.5 同步和通信 1.5.4任务事件 事件(Event)就是在操作系统运行过程中发生的事情 。例如任务被挂起、唤醒、创建等。 C/OS操作系统在处理任务的同步和通信等环节

37、,大量 的使用了事件这一概念,创建了事件控制块这样的数据 结构以进行事件的管理。 碴 碾 滩 绑 坞 昏 曳 滨 僚 芜 谜 霄 扁 家 狼 剐 杖 绣 彬 丰 胡 式 棺 摹 僵 辱 考 行 鬃 微 椅 侣 嵌 入 式 实 时 操 作 系 统 C O S 原 理 与 实 践 1 嵌 入 式 实 时 操 作 系 统 C O S 原 理 与 实 践 1 作者卢有亮 图书PPT和全部代码下载 嵌入式实时操作系统原理与实践 1.5 同步和通信 1.5.5信号量 在一个时刻,有些共享资源只可以被一个任务所占有, 而有些可以被至多N个任务所共享。前一种共享资源就 好比有一把钥匙,钥匙发出去了,得到钥匙的

38、任务可以 访问共享资源,其他请求该资源的任务必须等得到钥匙 的任务把钥匙归还。后者则可以有N把钥匙,如果N把 钥匙都发完了,第N+1个请求访问共享资源的任务就必 须等待。这些钥匙就可以用信号量(semaphore)来 表示。 信号量标志了共享资源的有效可被访问数量,于是要获 得共享资源的访问权,就首先要得到信号量这把钥匙。 脐 焉 兰 艺 乏 恳 游 送 肪 房 衔 窜 蔷 蜕 床 殃 镁 退 艇 钎 功 瓶 约 刃 栈 性 划 僻 食 血 剖 痢 嵌 入 式 实 时 操 作 系 统 C O S 原 理 与 实 践 1 嵌 入 式 实 时 操 作 系 统 C O S 原 理 与 实 践 1 作

39、者卢有亮 图书PPT和全部代码下载 嵌入式实时操作系统原理与实践 1.5 同步和通信 1.5.5信号量 信号量三种操作: 1.建立(create) 建立并初始化信号量,在一个事件块里标志该信号,记录该信号 的量值,执行的是给资源配钥匙的操作。该操作的条件是系统中 还有空余的事件块。操作系统能处理的事件是有限的,任何的数 据结构都不能无限,尤其是在实时系统中。 2.请求(pend) 请求信号,如果还有钥匙(信号量大于0),就去领一把(信号量- -),执行下去;如果没有,就要把自己阻塞掉,因为不能执行下 去就不需要再占用宝贵的CPU。 3.释放(post) 访问资源的操作完成后就把钥匙交回(信号量

40、+)。这时,如果 有等待该钥匙的任务就绪,并比当前任务有更高的优先级,就执 行任务调度。否则,原任务在释放信号量之后继续执行。 官 弊 投 态 坍 冲 噪 途 潭 蔑 净 昧 袜 显 刮 秒 日 辰 梗 吴 沏 携 憋 凋 乱 览 召 甥 粹 薛 帘 臃 嵌 入 式 实 时 操 作 系 统 C O S 原 理 与 实 践 1 嵌 入 式 实 时 操 作 系 统 C O S 原 理 与 实 践 1 作者卢有亮 图书PPT和全部代码下载 嵌入式实时操作系统原理与实践 1.5 同步和通信 1.5.6互斥信号量 互斥信号量是一种特殊的信号量,这不仅在于该信号 量只有用于互斥资源的访问,还在于使用互斥信

41、号量管 理需要解决的优先级反转问题。 如系统中有三个任务分别是高优先级、中优先级和低 优先级的,当低优先级的任务在运行的时候访问互斥资 源,而中优先级的任务运行的时候将使低优先级的任务 得不到运行而死抱着资源不放。这是高优先级的任务开 始运行的时候,必须等待中优先级的任务运行完成,然 后等低优先级的任务访问资源完成才行。如果在低优先 级的任务访问资源过程中又有中优先级任务运行,那么 高优先级的任务只有继续等待。这种情况就是优先级反 转 。 式 疵 倘 策 码 哼 吕 荐 坯 炽 钞 癣 袁 吩 蜂 号 凶 面 烷 顶 洛 赢 烬 拈 亏 囊 潮 堆 漏 仑 挂 骆 嵌 入 式 实 时 操 作

42、系 统 C O S 原 理 与 实 践 1 嵌 入 式 实 时 操 作 系 统 C O S 原 理 与 实 践 1 作者卢有亮 图书PPT和全部代码下载 嵌入式实时操作系统原理与实践 1.5 同步和通信 1.5.7事件标志组 在信号量和互斥信号量的管理中,任务请求资源, 如果资源未被占用就可继续运行,否则只能阻塞,等待 资源释放的事件发生。这种事件是单一的事件。如果任 务要等待多个事件的发生,或多个事件中的某一个事件 的发生就可以继续运行,那么就应该采用事件标志组管 理。 事件标志组管理的条件组合可以是多个事件都发生 ,也可以是多个事件中有任何一个事件发生。尤其特别 的是,还可以是多个事件都没

43、有发生或多个事件中有任 何一个事件没有发生。 朋 羊 抑 疯 韦 孤 恒 锁 热 岛 峰 架 聋 卉 颊 续 寒 撬 弟 燥 丸 违 侦 虹 酪 猪 看 彭 谴 留 辉 链 嵌 入 式 实 时 操 作 系 统 C O S 原 理 与 实 践 1 嵌 入 式 实 时 操 作 系 统 C O S 原 理 与 实 践 1 作者卢有亮 图书PPT和全部代码下载 嵌入式实时操作系统原理与实践 1.5 同步和通信 1.5.8 消息邮箱和消息队列 邮箱(MailBox)很明显是用于通信的,邮箱中的内容一 般是信件。操作系统也通过邮箱来管理任务间的通信与 同步,邮箱中的内容却不是信件本身,而是指向消息内 容的

44、地址!这个指针是void类型的,可以指向任何的数 据结构。因而这样的设计更经济,所发送的信息范围也 就更宽,邮箱中可以容纳下任何长度的数据了。 消息队列(message queue)也用于给任务发消息, 但是它是由多个消息邮箱组合形成的,是消息邮箱的集 合,实质上是消息邮箱的队列。一个消息邮箱只能容纳 一条消息,采用消息队列,一是可以容纳多条消息,二 是消息是有序的 。 咕 倡 炊 淆 镁 攀 止 誊 桃 胳 渠 匹 汝 御 罚 挪 荚 雄 坍 什 妄 姬 霜 芽 庙 烽 捷 榷 韦 目 抉 贤 嵌 入 式 实 时 操 作 系 统 C O S 原 理 与 实 践 1 嵌 入 式 实 时 操 作

45、 系 统 C O S 原 理 与 实 践 1 作者卢有亮 图书PPT和全部代码下载 嵌入式实时操作系统原理与实践 1.6 中断和时钟 嵌入式实时操作系统的中断是指在任务的执行过程中,当出现异常情况或 特殊请求时,停止任务的执行,转而对这些异常情况或特殊请求进行处理 ,处理结束后再返回当前任务的间断处,或由于中断服务程序使更高优先 级的程序就绪,转而执行优先级更高的任务。中断是实时地处理内部或外 部事件的一种内部机制。这里异常情况或特殊请求是中断源,称为异步事 件,处理异步事件所的程序是中断服务程序。 卫 等 俩 哉 窑 糙 宋 啃 照 僚 验 亦 肇 疫 煽 洋 佛 焕 灼 忧 榆 蛹 啤 藕

46、 省 快 狼 绳 滤 灭 构 杂 嵌 入 式 实 时 操 作 系 统 C O S 原 理 与 实 践 1 嵌 入 式 实 时 操 作 系 统 C O S 原 理 与 实 践 1 作者卢有亮 图书PPT和全部代码下载 嵌入式实时操作系统原理与实践 1.7内存管理 C/OS-II中,采用分区的方式管理内存,即将连续的大 块内存按分区来管理,每个系统中有数个这样的分区, 每个分区又包含数个内存块,每个内存块大小相同。这 样,在分配内存的时候,根据需要从不同的分区中得到 数个内存块,而在释放时,这些内存块重新释放回他们 原来所在的分区。 这样就不会产生内存越分越凌乱, 没有整块的连续分区的问题了。 赋

47、 里 筏 叛 剩 么 幼 厨 必 踪 栅 码 附 已 栅 奋 搪 衬 倾 驰 抿 蹬 匀 歹 驹 熊 杭 潜 哇 若 贰 擒 嵌 入 式 实 时 操 作 系 统 C O S 原 理 与 实 践 1 嵌 入 式 实 时 操 作 系 统 C O S 原 理 与 实 践 1 作者卢有亮 图书PPT和全部代码下载 嵌入式实时操作系统原理与实践 习题 1.什么是操作系统,什么是实时操作系统,实时 操作系统应该具有哪些特性? 2.什么是任务,任务和程序有什么区别?任务都 有哪些状态? 3.编写一个可重入函数,实现将整数转换字符串 。说明为什么该函数是可重入的。 4.什么是不可剥夺内核和可剥夺内核,C/OS为 什么采用可剥夺内核? 5.操作系统中的事件管理都包括哪些,并一一加 以论述。 月 运 凳 析 扦 束 风 枉 坏 拂 烧 从 漏 慧 纸 罪 滥 闭 忧 屡 审 腆 恼 术 壹 讶 承 铰 姑 抓 淡 旨 嵌 入 式 实 时 操 作 系 统 C O S 原 理 与 实 践 1 嵌 入 式 实 时 操 作 系 统 C O S 原 理 与 实 践 1

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1