第2章 实时操作系统概念
2.0 前/后台系统
1. 后台也可以叫做任务级,前台也叫做中断级。
2. 处理信息的及时性,称作任务级的相应时间。
3. 最坏情况下的任务级相应时间取决于整个循环的执行时间
2.01 代码的临界段
1. 代码的临界段也成为临界区,指处理时不可分割的代码。一旦这部分代码开始执行,则不允许任何中断打入。
2. 为确保临界段代码的执行不被中断,在进入临界段之前须关中断,而临界段代码执行完后,要立即开中断。
2.02 资源
1. 任何为任务所占用的实体都可称为资源。可以是输入/输出设备,也可以使一个变量、一个结构体或一个数组等
2.03 共享资源
1. 可以被一个以上任务使用的资源叫做共享资源。
2. 为了防止数据被破坏,每个任务在于共享资源打交道时,必须独占该资源。这叫做互斥。
2.04 多任务
1. 多任务运行的实现实际上是靠CPU在许多任务之间转换和调度
2. 在实时应用中,多任务的最大特点是,开发人员可以将很复杂的应用程序层次化。使用多任务,应用程序 将更容易
设计
领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计
与维护
2.05 任务
1. 一个任务,也称做一个线程,是一个简单的程序,该程序可以认为CPU完全只属于该程序自己。
2. 实时应用程序的设计过程包括如何把问题分割成多个任务。每个任务都是整个应用的一部分,都被赋予一定的优先级,有自己的一套CPU寄存器和栈空间。
3. 典型的是每个任务都是一个无限的循环,都可能处在以下5种状态之一——休眠态、就绪态、运行态、挂起态(等待某一事件发生)和被中断态
4. 五种状态
a) 休眠态相当于任务驻留在内存中,但并不被多任务内核所调度;
b) 就绪态意味着任务已经准备好,可以运行,但由于该任务的优先级比正在运行的任务的优先级低,还暂时不能运行;
c) 运行态是指任务掌握了CPU的使用权,正在运行中;
d) 挂起态也可以叫做等待事件态,指任务在等待,等待某一事件的发生;
e) 发生中断时,CPU提供相应的中断服务,原来正在运行的任务暂不能运行,就进入了中断状态。
2.06 任务切换
1. 当多任务内核决定运行另外的任务时,它保存正在运行任务的当前状态(context),即CPU寄存器中的全部内容。这些内容保存在任务的栈区之中。入栈工作完成以后,就把下一个将要运行的任务的当前状况从该任务的栈中重新装入CPU的寄存器,并开始下一个任务的运行,这一过程叫任务切换。
2. 任务切换过程增加了应用程序的额外负荷,CPU的内部寄存器越多,额外的负荷就越重。
3. 任务切换所需要的时间取决于CPU有多少寄存器要入栈
2.07 内核
1. 多任务系统中,内核负责管理各个任务,或者说为每个任务分配CPU时间,并且负责任务间的通信。
2. 内核提供的基本服务是任务切换,使用实时内核可以大大简化应用系统的设计,因为实时内核允许将应用分成若干个任务,由实时内核来管理它们。
3. 内核本身也增加了应用程序的额外负荷,因为内核提供的服务需要一定的执行时间。额外负荷量取决于用户多久调用一次这类服务
4. 设计得较好的应用系统中,内核占用2%~5%的CPU负荷。因为内核是加在用户应用程序中的软件,会增加ROM(代码空间)的用量,内核本身的数据结构增加了RAM(数据空间)的用量。更主要的是,每个任务要有自己的栈空间,这部分占用内存相当多。
2.8 调度
1. 调度(schedulers/dispatcher)是内核的主要
职责
岗位职责下载项目部各岗位职责下载项目部各岗位职责下载建筑公司岗位职责下载社工督导职责.docx
之一,就是觉得该轮到哪个任务运行了。
2. 多数实时内核是基于优先级调度法的,每个任务根据其重要程度的不同,被赋予一定的优先级。
3. 基于优先级的调度法是指,CPU总是让处于就绪态的、优先级最高的任务先运行。然而,何时高优先级任务掌握CPU的使用权,由使用的内核类型决定
4. 基于优先级的内核有2种类型:不可剥夺和可剥夺型。