第四章%20%20嵌入式实时操作系统(2).pdf
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《第四章%20%20嵌入式实时操作系统(2).pdf》由会员分享,可在线阅读,更多相关《第四章%20%20嵌入式实时操作系统(2).pdf(42页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、任务同步和任务间通信?多任务操作系统中,多个任务总是协同工作,在确定的时间里执行各自的操作,由此产生同步问题?对于单个任务而言,所谓同步就是这个任务可以在指定的时间获得执行?一般意义上的任务同步是指两个或者两个以上的任务需要协调执行的情况?任务之间还需要彼此交换数据,中断服务程序和任务之间也需要进行通信,这种信息传递被统称为任务间通信互斥和代码临界区?在访问共享资源过程中,各个任务以及中断服务程序必须保证对共享资源进行访问的过程是独占的,这种特性被称为互斥(mutual exclusion)?必须互斥地存取数据的程序代码段被称为代码临界区(critical section)实现互斥和临界区保护
2、的方法?关中断/开中断?测试并设置?禁止/使能任务切换?信号量?事件?信号?消息邮箱?消息队列信号量?信号量是20世纪60年代中期Edgser Dijkstra首先提出的一个设想,大部分多任务操作系统的内核支持这种机制。信号量适用于以下情况:?控制共享资源的访问,保证满足互斥条件?标志某个事件的发生?任务同步?信号量分为两种类型?计数信号量?二进制信号量计数信号量?计数信号量也被称为PV信号量。信号量本身是内核变量,系统为它分配一个任务等待队列,有两个系统服务用于信号量操作:WAIT和SIGNAL操作?WAIT操作,也称psema操作,简称P操作,执行过程:如果信号量的数值大于0,则这个数值减
3、1;否则将当前运行的任务挂起,系统将这个任务放入信号量所对应的任务等待队列?SIGNAL操作,也称vsema操作,简称V操作,执行过程:如果信号量对应的任务等待队列非空,就从此队列中取出一个适当的任务,转为就绪状态;否则将信号量数值加1?P/V操作是量子化操作,操作在进行的过程中是不能被中断的二进制信号量?二进制信号量只有“锁定”和“解锁”两种状态,分别对应数值1和0,系统同样为它分配一个任务等待队列,LOCK和UNLOCK两个操作适用于二进制信号量?LOCK执行的操作是:测试信号量的数值,如果为0,则将其值置为1;如果为1,系统将当前任务挂起,将它放入信号量对应的任务等待队列?UNLOCK执
4、行的操作是:当信号量用完后,将信号量的数值复位为0,如果信号量对应的任务等待队列非空,就从此队列中取出一个适当的任务,转为就绪状态?操作系统通常使用“测试并设置”指令实现二进制信号量的操作?使用二进制信号量有可能导致优先级反转问题优先级反转问题?优先级反转(Priority Inversion)是一种在使用共享资源,采用占先调度内核的多任务系统中常见的问题,出现这种情况任务执行会被无限推迟?当高优先级任务请求访问某个共享资源,而此资源当前被分配给一个低优先级任务时会发生优先级反转现象?在低优先级任务释放共享资源之前,高优先级任务一直处于阻塞状态,如果在这两个优先级之间的任务阻止低优先级任务的执
5、行,因为低优先级任务不能执行,它无法访问和释放共享资源,高优先级任务甚至有可能永远无法继续执行?这种情况等价于更低优先级的任务阻止高优先级任务的执行优先级反转问题的解决方法?优先级继承机制(优先级继承机制(优先级继承机制(优先级继承机制(Priority InheritancePriority Inheritance):):):):如果一个低优先级任务持有某个共享资源,当有更高优先级任务请求访问这个共享资源时,系统就将低优先级任务的优先级提高到所有这些任务中的最高优先级。任何任务请求获取此资源而被挂起时,系统都应检查持有资源的任务的优先级,在必要情况下提升其优先级?优先级顶置机制(优先级顶置机
6、制(优先级顶置机制(优先级顶置机制(Priority CeilingPriority Ceiling):):):):任何任务一旦持有某个共享资源,系统就将它的优先级提高到所有可能请求访问此资源的任务中的最高优先级。事实上,所谓最高优先级,是在创建同步对象时进行设置的两种机制的比较?使用这两种机制,都需要改变任务的运行优先级?使用优先级继承机制,持有共享资源的任务在释放资源之前有可能多次改变其优先级;使用优先级顶置机制,任务在获得共享资源的过程中,最多只可能改变一次优先级?使用优先级继承机制,无需事先确定可以访问共享资源的最高优先级任务;使用优先级顶置机制必须事先确定可以访问共享资源的最高优先级
7、任务中断管理?实时内核必须提供对外部中断快速响应的机制,满足系统的时间限制?中断级(Interrupt Level)和不可屏蔽中断?中断服务程序?中断服务线程?嵌入式系统一般要求操作系统提供应用程序对中断请求直接进行处理的机制中断服务程序?中断服务程序一般是用汇编语言编写的,在其中可以调用应用程序提供的用高级语言编写的函数?汇编语言处理中断服务的种种细节,在高级语言函数中不必考虑这些细节,约束较少?中断服务程序中通常要对任务调度进行处理?中断管理需要解决任务和中断服务程序之间数据共享的问题?中断服务程序与任务的通信是单向的?任务经常采用关中断的方法保证数据的独占访问中断系统性能的评价标准?中断
8、延迟时间:中断延迟时间:中断延迟时间:中断延迟时间:系统发出中断请求到操作系统做出响应,并完成切换转入中断服务程序所需的时间?中断响应时间:中断响应时间:中断响应时间:中断响应时间:系统发出中断请求到开始执行用户的中断服务子程序代码所需的时间?中断恢复时间:中断恢复时间:中断恢复时间:中断恢复时间:微处理器返回到被中断的程序代码所需的时间中断服务线程?中断服务线程是内核的组成部分?使用中断服务线程可以很好地解决中断服务程序所面对的数据一致性问题?中断服务程序只负责保护现场和调度中断服务线程,其他操作都移到中断服务线程中进行?中断服务线程体现了微内核思想时钟节拍?时钟节拍(clock tick)
9、是特定的周期性中断,可视为系统的心跳?在每个时钟节拍操作系统获得系统的控制权,更新相应的时间、定时数据结构,进行必要的任务调度?中断周期越短,系统响应速度越快,但开销也越大,程序的执行速度越慢?典型节拍周期在10ms至200ms的范围内,取20ms较为合适TOD和定时器?内核在时钟节拍的基础上为应用程序提供时间日期(time of day,TOD)服务?定时器服务需要系统时钟节拍的支持?定时器的精度依赖于系统时钟节拍的频率?只有使用定时器才能实现任务休眠以及一些同步超时操作?实时系统对操作系统的定时器功能要求很高,除了普通定时器外,实时操作系统往往还要提供高精度的报时支持功能存储器模型和保护机
10、制?平板模型?分段式存储器模型?分页式存储器模型?段页式模型?虚拟存储器系统存储器分配方法?固定分区(Fixed Partitioning)?动态分区(Dynamic Partitioning)?伙伴系统(Buddy System)?厚板分配器(Slab Allocator)动态分区分配算法板级支持包?板级支持包(Board Support Packet,BSP)是用户提供的各种支持功能组成的程序集合?介于操作系统和底层硬件之间,包括了系统中大部分与硬件相关的软件模块?在功能上包含两部分:系统初始化及设备驱动程序?系统初始化主要完成:?对CPU进行低级初始化?对主板的硬件进行初始化?加载操作系
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第四 20 嵌入式 实时 操作系统
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内