嵌入式操作系统中的基本概念.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
嵌入式操作系统中的基本概念.ppt

嵌入式实时操作系统μC/OS-II ——基本概念 嵌入式操作系统中的基本概念 嵌入式操作系统中的基本概念 嵌入式操作系统中的基本概念 嵌入式操作系统中的基本概念 嵌入式操作系统中的基本概念 嵌入式操作系统中的基本概念 嵌入式操作系统中的基本概念 使用RTOS的得失 得:更方便开发复杂系统(通过将复杂任务分解为简单子任务,且每个任务的开发相对独立,逻辑关系简单);提供更好的实时性,更强大的功能。 失:运行操作系统本身需要占用一定的RAM,操作系统代码也要占用一定程序ROM(flash); 此外,运行内核也会需要一定的CPU时间。 * 优先级(Priority) 每个任务按其重要性被赋予一定的优先级。 注:μC/OS-II任务的优先级是任务的唯一标识。 静态优先级与动态优先级。 基于优先级的系统会出现优先级反转(倒置)的问题,一个好的实时内核应该提供解决倒置的方法。 * 优先级反转 优先级列表 任务1 任务2 任务3 高 低 共享资源 假设任务1和任务3共享一个资源,任务2为优先级介于任务1和任务3之间的一个与该共享资源无关任务,分析优先级反转问题。 任务2优先级高于任务3而进入运行状态 任务1申请共享资源而处于等待状态 此时,虽然任务1比任务2优先级更高,但却在任务2之后运行,这种现象就是优先级反转。 任务3得到共享资源而处于运行状态 * 优先级反转问题的解决——优先级继承 优先级继承(Priority inheritance): 为防止发生优先级反转,内核能自动变换任务的优先级。 将占用共享资源的低优先级任务的优先级提升到略高于等待共享资源的高优先级任务的优先级。这个略高于高优先级任务的优先级称为:优先级继承优先级(Priority Inheritance Priority,PIP) 优先级列表 优先级继承 任务1 任务2 任务3 高 低 共享资源 任务3 共享资源 假设任务1和任务3共享一个资源,定义优先级继承优先级,任务2为优先级介于任务1和任务3之间的一个与该共享资源无关任务。 任务2优先级不够高无法获得CPU 任务1申请共享资源而处于等待状态 任务3 此时,任务2无法在任务1之前得到运行,不发生优先级反转 共享资源 任务1 任务3获得CPU,且优先级升到优先级继承优先级 任务1获得CPU 前后台系统 调度 临界区 进程与线程 任务与多任务 任务切换 死锁 不可剥夺型内核 可剥夺型内核 可重入性 优先级反转 事件 互斥 同步 对存储器要求 * 事件 一个任务或者中断服务子程序可以通过内核服务来向另外的任务发信号,这里所有的信号被看作事件(Event)。包括 信号量、消息邮箱、消息队列。 * 事件——信号量 信号量是一种程序间的约定机制,这种约定决定哪个程序(任务)可以执行。 信号量类型:二值信号量;计数式信号量 信号量像是通行证,且通行证的数目是有限的。任务要运行下去,要先拿到通行证。如果信号量已被别的任务占用,则该任务只得被挂起,直到信号量被当前使用者释放掉。 我们知道酒店的桌子数是固定的,因此可以这样理解其最大桌子数就是计数器的初值,假设一人占用一张桌子,因此每进去一人,计数器就会自动减1,而只有出去一人时计数器才会自动加1。即就是说,如果计数器大于0,就可以进去吃饭,否则只好等待有人出来才能进去,这种计数信号就是信号量。 酒店 人 计数器 (能容纳的人数) 3 2 1 0 人 人 人 禁止其它客人进入 人 没有空位,不能再容纳客人 有空位,能再容纳1位客人 * 事件——信号量 一般地说,对信号量只能实施三种操作:初始化,也可称做建立;等信号,也可称做挂起;给信号或发信号。信号量初始化时要给信号量赋初值,等待信号量的任务表应清为空。 * 事件——消息邮箱 通过内核服务可以给任务发送消息。用一个指针型变量,通过内核服务,一个任务或一个中断服务程序可以把一则消息(即一个指针)放到邮箱里去。同样,一个或多个任务可以通过内核服务接收这则消息。 用来传递消息缓冲区指针的数据结构叫做消息邮箱。 消息是任务之间的一种通信手段,当同步过程需要传输具体内容时就不能使用信号量,此时可以选择消息邮箱,即通过内核服务可以给任务发送带具体内容的消息。 通过上述图解可知,用来传递消息缓冲区指针的数据结构就是消息邮箱。 消息 缓存区 消息邮箱 PC PC 一个邮箱只能存放一个消息指针 * 事件——消息队列 消息队列用于给任务发消息。通过内核提供的服务,任务或中断服务子程序可以将一条消息放入消息队列。

文档评论(0)

docinpfd + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:5212202040000002

1亿VIP精品文档

相关文档