实时操作系统考试复习内容

实时操作系统考试复习内容
实时操作系统考试复习内容

第一章嵌入式系统导论

1、RTOS指的是什么?嵌入式系统的定义是什么?P2

RTOS指的是嵌入式实时操作系统(Real Time Operating System)。

嵌入式系统是以应用为中心、以计算机技术为基础、软件硬件可裁剪、适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。

2、按嵌入式软件结构分类,嵌入式系统可分为哪几类?P9

循环轮询系统、前后台系统、单处理器多任务系统、多处理器多任务系统

第三章嵌入式软件系统

1、什么是“零拷贝”(零复制)技术?P71-72

所谓“零拷贝”技术,是指TCP/IP协议栈没有用于各层间数据传递的缓冲区,协议栈各层间传递的都是数据指针,只有当数据最终要被驱动程序发送出去或是被应用程序取走时,才进行真正的数据搬移。

2、(并发,多任务多操作系统)目前操作系统的体系结构有哪些?

单块结构、层次结构、客户/服务器(微内核)结构。

第四章嵌入式实时内核基础

1、中断响应时间、中断延迟时间的概念是什么?什么是响应性?P126、P124、P94

中断响应时间是指从中断发生到开始执行用户中断服务程序的第一条指令之间的时间。

中断延迟时间是指从中断发生到系统获知中断,并且开始执行中断服务程序所需要的最大滞后时间。

响应性是指识别外部事件,并服务该事件。

中断延迟时间=最大关中断时间+中断嵌套时间+硬件开始处理中断到开始执行ISR第一条指令之间

的时间

最大关中断时间=MAX[MAX(内核关中断时间),MAX(应用关中断时间)]

中断响应时间=中断延迟+保存CPU内部寄存器的时间

中断响应时间(抢占式调度)=中断延迟+保存CPU内部寄存器的时间+内核中断服务程序入口函数

的执行时间

2、可抢占内核与抢占式调度的概念分别是什么?P97

可抢占内核:即使正在执行的是内核服务函数,也能响应中断,并且中断服务程序退出时能进行任务重新调度。如果有优先级更高的任务就绪,就立即让高优先级任务运行,不要求回

到被中断的任务,将未完成的系统调用执行完。

抢占式调度:在抢占式调度的情况下,一旦更高优先级的任务就绪,当前任务的CPU使用权就会被尽快剥夺,以使更高优先级的任务能够尽快得到CPU。如果是中断服务程序使一个

高优先级任务就绪,那么在中断完成后,高优先级任务开始运行。

3、资源的有限时间等待方式指什么?(互斥,访问临界资源)P101

在多任务实时应用中,任务没能获得需要的资源就会被阻塞,等待有限时间后,内核可唤醒该任务,确保其余下工作不被耽误。采用资源的有限时间等待方式,可以有效避免死锁。

4、为什么中断服务程序应该尽量简短?P102

①避免中断嵌套带来的延误;②采用中断服务程序和任务配合方式,缩短中断处理时间。

5、影响实时内核可移植性的因素有哪几个方面?具体实现又是如何考虑的?P103

影响实时内核可移植性的因素主要有:编程语言、体系结构、代码实现的技巧。

高级语言实现的代码比用汇编语言实现相应功能的代码具有更好的移植性;将内核设计为三层结构:硬件无关层、硬件抽象层和硬件相关层,内核的移植工作集中在硬件相关层,与其余两层无关,从而

确保其具有良好的可移植性;程序中对不可移植代码的使用转换成对函数和宏定义的使用,在以后的

移植过程中,既有利于迅速地对要修改的代码进行定位,又可以方便地进行修改,从而大大提高移植

的效率。

6、嵌入式操作系统的可剪裁性与可配置性的概念是什么?两者有何区别?P104

可剪裁性:表示系统在增加、卸装功能模块时仅需做少量的修改或者根本不用修改。

取决于模块之间的耦合程度;剪裁是有限的,有规则的。

可配置性:表示用户可针对系统中未被卸装的模块,根据应用的不同需求,决定系统的规模、功能以及内存分配等。

为了减轻用户配置系统的负担,配置项目应提供缺省值。

7、为什么在嵌入式系统中不采用虚拟内存技术?P70

因为虚拟内存机制引起的缺页、调页现象会给系统带来不确定性且需要比较多的资源,因此一般采用固定分区和堆的动态内存分配方式,使系统具有较好的可预测性,开销小。

8、为什么要提供面向行业的接口标准?(提供和定制API有什么好处呢?)P106

精简和可移植性的平衡;POSIX过于宽泛,不利于精简;开发人员易于上手。

第五章任务管理与调度

1、任务有何特性?每种特性的含义是什么?P139

任务是一个具有独立功能的无限循环的程序段的一次运行活动,是实时内核调度的单位。

任务的特性:

①动态性:任务状态是不断变化的。一般分为就绪态、运行态和等待态。在多任务系统中,任务的状

态将随着系统的需要不断进行变化。

②并行性:系统中同时存在多个任务,这些任务在宏观上是同时运行的。

③异步独立性:每个任务各自按相互独立的不可预知的速度运行,走走停停。

2、任务的截止时间和计算时间分别指什么?P141

任务的计算时间:任务在特定硬件环境下被完整执行所需要的时间,也被称为是任务的执行时间(execution time)。

任务的截止时间:意味着任务需要在该时间到来之前被执行完成。

3、任务管理所涉及的名词解析:PCP、PHP、TCB、EDF、FIFO。P163、P16

4、P143、P161、

PCP:优先级天花板协议(priority ceiling protocol),

PHP:优先级继承协议(priority inheritance protocol),

TCB:任务控制块(Task Control Block,TCB),任务控制块是包含任务相关信息的数据结构,包含了

任务执行过程中所需要的所有信息。

EDF:最早截止时间优先算法(Earliest Deadline First),也称为截止时间驱动调度算法(DDS),EDF 在调度时,任务的优先级根据任务的截止时间动态分配。截止时间越短,优先级越高。

FIFO:先入先出队列(First Input First Output),这是一种传统的按序执行方法,先进入的指令先完成并引退,跟着才执行第二条指令。

4、任务的挂起和睡眠有何区别?P151-152

任务的挂起:一个任务可以把自己挂起;任务被挂起后,该任务将处于等待状态。

任务的睡眠:使当前任务睡眠一段指定的时间,时间到后,任务又重新回到就绪状态。

任务的挂起的工作:根据指定的ID,获得对应任务的TCB;把任务的状态变为等待状态,并把TCB 放置到等待队列;如果任务自己挂起自己,进行任务调度。

任务的睡眠的工作:修改任务状态,把任务状态变为等待状态;把任务TCB放置到时间等待链;进行任务调度。

5、上下文环境和上下文切换分别指是什么意思?任务(上下文)切换有哪些步骤?P139、P144

上下文环境:包括了实时内核管理任务、以及处理器执行任务所需要的所有信息。如任务优先级、任务的状态等实时内核所需要的信息,以及处理器的各种寄存器的内容。

任务的上下文环境通过任务控制块(Task Control Block,TCB)来体现。

上下文切换:保存当前任务的上下文,并恢复需要执行的任务的上下文的过程。

任务切换的基本步骤:①保存任务上下文环境;

②更新当前运行任务的控制块内容,将其状态改为就绪或等待状态;

③将任务控制块移到相应队列(就绪队列或等待队列);

④选择另一个任务进行执行(调度);

⑤改变需投入运行任务的控制块内容,将其状态变为运行状态;

⑥恢复需投入运行任务的上下文环境。

6、与进程相比,线程作为任务调度执行的单位有什么优势?P138

创建:在一个已有进程中创建一个新线程比创建一个全新的进程所需的时间开销少;

终止:终止一个线程比终止一个进程所花费的时间少;

切换:线程切换比进程切换所花费的时间少;

通信:使同一进程内部不同线程之间的通信效率得到显著提高。在大多数操作系统中,不同进程之间的通信需要内核的干预,而同一进程内部不同线程之间则可直接通信。

7、时间片轮转调度算法的内容是什么?P157

时间片轮转调度(round-robin scheduling)算法是指:当有两个或多个就绪任务具有相同的优先级,且它们是就绪任务中优先级最高的任务时,任务调度程序按照这组任务就绪的先后次序调度第一个任务,让第一个任务运行一段时间,然后又调度第二个任务,让第二个任务又运行一段时间,依次类推,到该组最后一个任务也得以运行一段时间后,接下来又让第一个任务运行。

8、什么是优先级反转?优先级继承协议的基本思想是什么?它是如何产生死锁和阻塞链的?优先级天花板协议的基本思想是什么?P162、P163、P164、P164

优先级反转是指:高优先级任务需要等待低优先级任务释放资源,而低优先级任务又正在等待中等优

先级任务的现象。

优先级继承协议的思想:当一个任务阻塞了一个或多个高优先级任务时,该任务将不使用其原来的优

先级,而使用被该任务所阻塞的所有任务的最高优先级作为其执行临界区的

优先级。当该任务退出临界区时,又恢复到其最初的优先级。

如何产生死锁:假定在时刻t1,任务T2获得信号量S2,进入临界区。在时刻t3,任务T2又试图获得信号量S1,但一个高优先级任务T1在这个时候就绪,抢占任务T2并获得信号量S1,

接下来任务T1又试图获得信号量S2。这样就出现了死锁现象。

这种死锁可以通过规定按顺序访问信号量的方式得到解决。

如何产生阻塞链:假定任务T1需要顺序获得信号量S1和S2;任务T3在S1控制的临界区中被T2抢占,然后T2进入S2控制的临界区。这个时候,任务T1被激活而获得CPU资源,发现信

号量S1和S2都分别被低优先级任务T2和T3加锁,使得T1将被阻塞两个临界区,

需要先等待任务T3释放信号量S1,然后等待任务T2释放信号量S2,这样就形成了

关于任务T1的阻塞链。

优先级天花板协议的思想:在优先级天花板协议中,如果任务获得信号量,则在任务执行临界区的过

程中,任务的优先级将被抬升到所获得信号量的优先级天花板;任务执行

完临界区,释放信号量后,其优先级恢复到其最初的优先级;如果任务不

能获得所申请的信号量,任务将被阻塞。

使用优先级天花板协议目的在于解决优先级继承协议中存在死锁和阻塞链问题。

9、任务的状态有哪几个?每个状态以什么形式变现出来?各状态之间如何转换的(画图)?P142

任务的基本状态:等待(waiting):任务在等待某个事件的发生;

就绪(ready):任务等待获得处理器资源;

执行(running):任务获得处理器资源,所包含的代码内容正在被执行。

在单处理器系统中:任何时候都只有一个任务在CPU中执行:

如果没有任何事情可做,就运行空闲任务执行空操作。

任何一个可以执行的任务都必须处于就绪状态:

调度程序从任务的就绪队列中选择下一个需要执行的任务。处于就绪状

态的任务拥有除CPU以外的其他所有需要的资源。

任务还可能处于等待状态:

如果任务在需要等待I/O设备或其他任务提供的数据,而数据又还没有

到达该任务的情况下,就处于等待状态

任务状态变迁图:

10、嵌入式实时系统采用多任务处理方式有什么优势?P137

①相对于前后台软件结构而言,多任务软件结构的每个任务规模较小,每个任务更容易编码和调试,其质量也更容易得到保证。

②应用本身就是由多个任务构成的,采用多任务处理方式是应用问题的一个非常自然的解决方式。

③任务之间具有较高的独立性,耦合性小,通过增加新的任务就能方便地扩充系统功能。

④实时性强,保证紧急事件得到优先处理成为可能。

第六章同步、互斥与通信

1、同步、互斥、通信分别是什么含义?P176

同步:协调彼此运行的步调,保证协同运行的各个任务具有正确的执行次序。

互斥:竞争除CPU外的其他共享资源。

通信:彼此间传递数据或信息,以协同完成某项工作。

2、通信所涉及的系统开销是什么?P177

如果两个任务之间需要进行大量的通信,则耦合程度较高,相应的系统开销较大;

如果两个任务之间不存在通信需求,其间的同步关系很弱甚至不需要同步或互斥,则耦合程度较低,系统开销较小。

3、信号量有哪几种?各自有什么用途?P178

信号量一般分为三种:

①互斥信号量:用于解决共享资源互斥访问问题。它比较特殊,可能会引起优先级反转问题。

②二值信号量:用于解决同步问题

③计数信号量:用于解决资源计数问题

第七章中断和时间管理

1、中断所涉及的名词解释:ISR、IRQ。P212

ISR:中断服务程序(Interrupt Service Routine),用来存放中断服务程序的入口地址或是中断服务程序的第一条指令。

IRQ:中断请求(Interrupt Request),

2、实时内核的中断管理中的中断接管程序是什么?干什么的?包含哪些内容?

中断前导和中断后续通常由内核的中断接管程序来实现。硬件中断发生后,中断接管程序获得控制权,先由中断接管程序进行处理,然后才将控制权交给相应的用户中断服务程序。用户中断服务程序执行完成后,又回到中断接管程序。

中断接管程序负责中断处理的前导和后续部分的内容。

中断处理前导:保存必要的寄存器,并根据情况在中断栈或是任务栈中设置堆栈的起始位置,然后调用用户中断服务程序。

中断处理后续:实现中断返回前需要处理的工作,主要包括恢复寄存器和堆栈,并从中断服务程序返回到被中断的程序。

3、RTC指的是什么?时基指的是什么?系统时钟又指什么?P219、P221、P221

RTC:实时时钟(real time clock),一般靠电池供电,即使系统断电,也可以维持日期和时间。实时时钟独立于操作系统,所以也被称为硬件时钟,为整个系统提供一个计时标准

时基:输出脉冲的周期叫做一个“时钟滴答”,也称为时标、tick。tick为系统的相对时间单位,也被称为系统的时基,来源于定时器的周期性中断,一次中断表示一个tick。

系统时钟:由定时/计数器产生的输出脉冲触发中断而产生的。

4、定时器与计数器之间有什么区别?P220

从硬件的角度来看,定时器(timer)和计数器(counter)的概念是可以互换的,其差别主要体现在硬件在特定应用中的使用情况。

5、时间差分链的基本思想是什么?如何在时间差分链中插入一个新的表项?P222

时间等待链用来存放需要延迟处理的对象,产生tick后,需要对时间等待链中的对象的剩余等待时间值进行处理。对于时间等待的对象,通常都被组织为差分链表的方式进行管理,以有效降低时间等待对象的管理开销。在时间差分链中,每个表项所包含的计时值并非当前时刻到表项激活时刻的绝对计数,而是该表项和先于它的所有表项的计数值之和。

第八章内存管理和I/O管理

1、嵌入式实时操作系统在内存管理方面要考虑哪些因素?针对这些因素有何对策?P225

①快速而确定的内存管理:不使用内存管理(针对任务少,数量固定的);通常的操作系统都至少具有

基本的内存管理方法:提供内存分配与释放的系统调用。

②不使用虚拟存储技术:在嵌入式实时操作系统中一般不使用虚拟存储技术,以避免页面置换所带来

的开销。一般采用固定分区和堆的动态内存分配方式,使系统具有较好的可

预测性,开销小。

③内存保护:平面内存模式(适合于应用程序简单、代码量小、实时性要求高的领域);在应用程序比

较复杂、程序量比较大的情况下,为了保证整个系统的可靠性,就需要对内存进行保护,

防止应用程序破坏操作系统或是其他应用程序的代码和数据。

2、什么是内存碎片?嵌入式内存中的分区指什么?P226

内存碎片:内存被逐渐划分为位于已被使用区域之间的越来越小的空闲区域。

分区:在固定大小存储区管理中,可供使用的一段连续的内存空间被称为是一个分区;分区由大小固定的内存块构成,且分区的大小是内存块大小的整数倍数。

3、内存保护涉及哪两个方面的内容?怎样考虑的?P225

①防止地址越界:每个应用程序都有自己独立的地址空间,当应用程序要访问某个内存单元时,由硬

件检查该地址是否在限定的地址空间之内,只有在限定地址空间之内的内存单元访

问才是合法的,否则需要进行地址越界处理;

②防止操作越权:对于允许多个应用程序共享的存储区域,每个应用程序都有自己的访问权限,如果

一个应用程序对共享区域的访问违反了权限规定,则进行操作越权处理。

4、什么是MMU?MMU对内存保护是怎样起作用的?P230

MMU:内存管理单元(Memory Management Unit)

防止地址越界:通过限长寄存器检查逻辑地址,确保应用程序只能访问逻辑地址空间所对应的、限定的物理地址空间,MMU将在逻辑地址超越限长寄存器所限定的范围时产生异常;

防止操作越权:根据内存页面的特权信息控制应用程序对内存页面的访问,如果对内存页面的访问违背了内存页面的特权信息,MMU将产生异常。

5、I/O管理采用层次结构思想,从下往上分别是什么?每一层的功能分别是什么?P235-236

①硬件抽象层:是硬件功能模块的集合,是对硬设备功能的第一层抽象,实现基本的IO操作。

②驱动逻辑层:存放系统中的所有驱动程序。实现设备的管理逻辑,通过硬件抽象层来管理设备。

③设备管理层:管理系统中的设备,并向上提高统一的接口。设备管理层不直接操作设备,它只能通

过驱动程序来间接操作设备。

④API层:用于对设备管理层提供的驱动结构进行进一步的包装,以方便应用程序使用。

6、紧急情况下,可以跨层直接操作。如:从API层直接到硬件抽象层

相关主题
相关文档
最新文档