2011年计算机软件水平考试嵌入式系统设计师辅导笔记(6)
基本思想:把当前任务的运行上下文保存起来,并恢复新任务的上下文。 任务切换通常有下面的基本步骤:
A、将处理器的运行上下文保存在当前任务的TCB 中。
B、更新当前任务的状态,从运行状态变为就绪状态或阻塞状态。 C、按照一定的策略,从所有处于就绪状态的任务中选择一个去运行。 D、修改新任务的状态,从就绪状态变成运行状态。
E、根据新任务的TCB 的内容,恢复它的运行上下文环境。 在一个多任务的操作系统中,采用任务队列的方式来组织它的所有任务。由操作系统来维护一组队列,用来表示系统当中所有任务的当前状态,不同的状态用不同的队列来标志。 (8)任务的调度
调度器可以看作CPU 的资源管理者。
- 13 -
任务调度的首要问题是:何时进行调度,即调度发生的时机。一般有下面几种情形: A、一个新任务被创建时,需要决定运行新任务还是继续执行父任务。 B、一个任务运行结束时,需要从就绪队列中选择某个任务去运行。 C、一个任务运行阻塞时,需要选择另一个任务去运行。
D、一个I/O 操作完成,任务阻塞结束,立即执行新就绪任务还是继续执行被中断任务。 E、一个时钟节拍结束时,需要对就绪任务重新调度。
任务调度的第二个问题是:如何调度,即调度方式。主要有两种方式: A、不可抢占调度方式:例如时间片轮转。 B、可抢占调度方式:例如优先级调度。 实时操作系统大都采用可抢占调度方式。 任务调度的第三个问题是:调度算法。
A、先来先服务算法:按照任务到达的先后次序进行调度,是不可抢占的调度方式。
B、短作业优先算法:各个任务开始执行之前,事先预计好它的执行时间,从中选择用时较短的任务优先执行。
C、时间片轮转算法:所有的就绪任务按照先来先服务的原则排成一个队列。在每次调度的时候,把处理器分派给队列当中的第一个任务,让它去执行一小段时间。在这个时间段里任务被阻塞或由于其他原因暂停,或者任务的时间片用完了,它会被送到就绪队列的末尾,然后调度器再执行当前队列的第一个任务。这种算法的优点是各个就绪任务都平均地分配使用CPU 的时间,每个就绪任务都能一直保持着活动性。时间片轮转法有一个默认前提,即位于就绪队列中的各个任务是同等重要的。
D、优先级算法:给每个任务都设置一个优先级。然后在任务调度的时候,在所有处于就绪状态的任务中选择优先级最高的那个任务去运行。采用优先级调度算法的一个问题是可能会发生优先级反转(教程P285),出现任务“饥饿”现象。 (9)实时系统调度
对于RTOS 调度器来说,任务之间的公平性并不是最重要的,它追求的是实时性。
A、单调速率调度算法(RMS):任务的优先级与它的周期表现为单调函数的关系,任务的周期越短,优先级越高,任务的周期越长,优先级越低。RMS 假定任务是相同独立的、周期性的、任务在能够在任何位置被抢占,而实际中的系统,任务之间需要进行通信和同步,这是一种理想的调度方法,实际中并不一定存在。 B、最早期限优先法(EDF):根据任务的截止时间来确定其优先级,对于时间限期最近的任务,分配最高的优先级。当有一个新的任务处于就绪状态时,各个任务的优先级就有可能要进行调整,选择截止时间最近的任务去运行。 (10)任务互斥
A、任务之间的关系:相互独立、任务互斥、任务同步、任务通信。
B、任务间的互斥:当前已经有一个任务正在访问临界区共享数据,那么其他任务暂时不能访问。
C、提出互斥访问的四个条件:
a、在任何时候最多只能有一个任务位于它的临界区中。 b、不能事先假定CPU 的个数和系统的运行速度。
c、没有任务位于它的临界区中,它不妨碍其他任务去访问临界区资源。
d、任何一个任务进入临界区的请求必须在有限的时间内得到满足,不能无限期。 D、任务互斥的解决方案: a、关闭中断法 b、繁忙等待法
- 14 -
c、信号量处理 (11)信号量
信号量记录当前可用资源的数量。
信号量由操作系统维护,任务不能直接去修改它的值,只能通过初始化和两个标准原语(PV 原语)来对它进行访问。 注:关于原语。
原语通常由若干条语句组成,用来实现某个特点的操作,并通过一段不可分割或不可中断的程序来实现其功能。原语时操作系统内核的一个组成部分,必须在内核态下执行。原语的不可中断性是通过在其执行过程中关闭中断来实现的。关键要理解PV 原语的实现: P(semaphores S) {
--S.count; //申请一个资源
if(S.count < 0) //没有空闲资源 {
将当前任务阻塞起来,加到阻塞队列末尾,调度新的任务运行。 } }
V(semaphores S) {
++S.count; //释放一个资源
if(S.count <= 0) //有任务被阻塞 {
从阻塞队列中取出一个任务,把该任务改为就绪状态,插入就绪队列。 } }
利用操作系统提供的信号量机制,可以方便、有效地实现对临界资源的互斥访问,优 点有两个:
A、可以设置信号量的计数值,从而允许多个任务同时进入临界区。
B、当一个任务暂时无法进入临界区时,它会被阻塞起来,将CPU 让给其他任务。 (12)任务同步
任务之间的同步可以使用信号量机制,通过引入PV 操作来设定两个任务在运行时的先后顺序。例如,可以把信号量视为某个共享资源的当前个数,然后由一个任务负责生成这种资源,而另一个任务则负责消费这种资源,这样可以构成两个任务之间的先后顺序。在具体实现上,一般把信号量的初始值设为N,N 大于或等于0。然后在一个任务内使用V 原语,把信号量加1,而在另外一个任务内部使用P 原语,将信号量减1,从而实现这两个任务之间的同步关系。 (13)死锁
在一组任务中,每个任务都占用着若干资源,同时又在等待其他任务占用的资源,从而造成所有任务都无法进展下去的现象,这称为死锁现象。 除了资源的竞争之外,PV 操作使用不当也会引起死锁。 编辑推荐: (14)信号
所谓信号,是系统给任务的一个指示,表明某个异步事件已经发生了。 该事件可能来自外部,也可能来自内部。
- 15 -
…… 此处隐藏:991字,全部文档内容请下载后查看。喜欢就下载吧 ……相关推荐:
- [学前教育]MC9S12XS256RMV1 xs128芯片手册4
- [学前教育]安东尼语录经典语录
- [学前教育]e级gps控制测量技术设计书
- [学前教育]苏教版2022-2022学年八年级下学期期末
- [学前教育]装修公司推广 营销
- [学前教育]家政服务合同(完整版)
- [学前教育]湖北省2016届高三联考语文试题
- [学前教育]爱立信无涯学习系统LTE题库1-LTE基础知
- [学前教育]揭秘大众柴油车作弊软件原理
- [学前教育]人才流失原因及对策分析
- [学前教育]房屋建筑施工工程劳务分包合同
- [学前教育]国际贸易实务试卷A卷09.6
- [学前教育]校园废品回收活动计划方案书范文格
- [学前教育]电大成本会计试题及答案
- [学前教育]大学物理实验 华南理工出版社 绪论答案
- [学前教育]爱丁堡产后抑郁量表
- [学前教育]液压冲击的危害、产生原因与防止方法(
- [学前教育]学生工作总结高一学生期中考试总结_020
- [学前教育]人民医院医疗废物管理规章制度大全
- [学前教育]阳光维生素的巨大抗癌潜能阅读题答案.d
- 马云在云锋基金江苏论坛闭幕式的发言
- 试论小学体育教育中的心理健康教育-教
- 语文A版一年级下册《语文乐园一》教学
- 2021四川大学物理化学考研真题经验参考
- [人教A版]2015-2016学年高中数学 第二
- 终端网点销售返利协议书
- 江苏省2015年眼科学主治医师青光眼考试
- 2017年部编人教版八年级语文上册教案
- 十一中学七年级英语上册Unit7Howmuchar
- 以赛促教的创新性实验教学机制建设实践
- 平凉市崆峒区2015七年级下生物期末试题
- 琶洲(地块五)A、B塔楼1、2#塔吊基础
- 一级医院工作制度与人员岗位职责
- 2018北京西城区高三二模理科数学试题及
- 炒股密码线技术 - 图文
- 职高学生生涯发展辅导教案
- 语文人教版四年级上册8 世界地图引出的
- 最新最新人教版二年级上册全册数学教案
- 2017高考英语全国2卷精彩试题(有问题
- 普通心理学笔记




