2002年 1月 1
第二章
嵌入式操作系统介绍
Real Time Operating System
嵌入式系统及其应用
?嵌入式操作系统的基本概念
?嵌入式操作系统与通用操作系统的比较
?主要嵌入式操作系统简介
嵌入式操作系统介绍
2
以 应用 为中心,计算机技术为基础,软硬
件可裁剪,适应于特定应用系统,对功能、
可靠性、成本、体积、功耗有严格要求的
专用计算机系统。
嵌入式系统的定义
嵌入式操作系统介绍
3
嵌入式系统的特点
? 硬件上,体积小、重量轻、成本低、可
靠性高等特点、使用专用的嵌入式 CPU。
? 软件上,代码体积小、效率高,要求响
应速度快,能够处理异步并发事件,实
时处理能力。
嵌入式操作系统介绍
4
嵌入式系统的软件
现代信息社会的高效性、协同性客观上
要求软件的编写便于多人 分工合作,编写
的软件具有 可重用性 。软件则 日趋复杂 。
所有这些迫切需要有一个屏蔽底层硬件的、
功能强大的操作系统来支持。
嵌入式软件的核心在于嵌入式实时多任务操作系
统 (RTOS –real time operation system)。
嵌入式操作系统介绍
5
----why RTOS
? 数据采集终端:采集,处理,键盘,
LCD显示,微打
数据采集
处理数据
处理键盘
显示
打印
传统编程
中断
中断
RTOS
数据采集 处理数据
显示 打印
处理键盘 中断
基于 RTOS编程
嵌入式操作系统介绍
6
操作系统的概念
? 操作系统是软硬件资源的控制中心,它
以尽量合理有效的方法组织多个用户共
享计算机的各种资源。
? 目的是提供一台功能强大的虚拟机,给
用户一个方便、有效、安全的工作环境。
嵌入式操作系统介绍
7
实时操作系统的概念
实时系统:系统的正确运行要 同时满足特
定的逻辑和时间关系 。
实时操作系统 RTOS( real time operation
system),是指能支持实时控制系统工作
的操作系统
嵌入式操作系统介绍
8
硬实时 (hard)与软实时 (soft)
? 硬实时:通过系统特定的时序得不到满
足,将会引起灾难性的后果。
? 软实时:通过系统特定的时序得不到满
足,系统的性能会严重下降。
deadline time0
1
Hard System
Soft System
嵌入式操作系统介绍
9
嵌入式操作系统
嵌入式操作系统:支持嵌入式系统的工作的
操作系统。嵌入式系统一般具有实时特点,这
里把嵌入式操作系统和实时操作系统不加区别
对待。
嵌入式操作系统介绍
10
嵌入式操作系统的结构
嵌入式操作系统介绍
11
嵌入式操作系统的几个主要概念
? 任务 Task
? 调度 Scheduler
? 优先级 Priority
? 代码临界区 Critical Section
? 可预测性 predictability
? 上下文切换 Context Switch
嵌入式操作系统介绍
12
任务 Task
? 指拥有所有 CPU资源的简单程序。
? 在进行实时应用设计时通常要把工作分割成多
个任务,每个任务处理一部分问题,并被赋予
一定的优先级、一套自己的 CPU寄存器及堆栈。
? 实时系统中的大部分任务是周期的,体现在编
程上每个任务则是一个典型的无限循环。
? 任务的状态:睡眠,就绪、运行、延迟、等待
嵌入式操作系统介绍
13
任务,example
手持数据采集终端的打印
creatTASK(myprintf,priority)
void myprintf( )
{
for (;;)
{
等待接收队列信息;
往打印机发送打印信息;
}
}
嵌入式操作系统介绍
14
内核 (kernel)
? 多任务系统的一部分,负责管理任务。
? 占先式 (preemptive)与非占先式
? 微内核 (Micro kernel)与单内核
(monolithic kernel)
如 QNX的微内核( 12KB)仅提供四种
服务:进程调度、进程间通信、底层网
络通信和中断。其余 OS服务都实现为协
作的用户进程。
嵌入式操作系统介绍
15
调度 Scheduler
? 内核的主要职责之一, 决定任务运行的次序 。
? 基本的调度算法有先来先服务 FCFS,最短周
期优先 SBF,优先级法 (Priority),轮转法
(Round-Robin),多级队列法 (multi-level
queues), 多 级 反 馈 队 列 (multi-level
feedback queues)等 。
? 调度的基本方式有可占先式和非占先式 。
? 多数实时内核是基于优先级调度的多种方法
的复合 。
嵌入式操作系统介绍
16
优先级( Priority)
? 每个任务按其重要性被赋予一定的优先级 。
? 静态优先级与动态优先级 。
? 基于优先级的系统会出现优先级倒置的问题,
一个好的实时内核应该提供解决倒置的方法 。
? 已开发出多种算法用于实时任务的优先级分配,
基本的有单调执行率调度法 RMS和最早期限优
先法 EDF等 。
嵌入式操作系统介绍
17
优先级倒置
当高优先级任务挂起时,中优先级的任务抢先了正在使
用共享资源的低优先级任务,如果高优先级任务已准备
就绪并等待运行,但中优先级任务此刻正在运行,这时
就出现了优先级倒置问题 。
低优先级任务 L和高优先级任务 H共享了资源,在任务 L
占有资源之后不久,任务 H就绪;但这时任务 H必须等
待任务 L完成对共享资源的操作。在任务 L完成对共享资
源的操作之前,任务 M也已就绪并将抢先任务 L运行。在
任务 M(也许还包括其他的中优先级任务 )运行时,系统
中具有最高优先级的任务 H仍然保持挂起状态。
低优先级任务先运行
嵌入式操作系统介绍
18
优先级倒置
嵌入式操作系统介绍
19
优先级继承
嵌入式操作系统介绍
20
代码临界区 (Critical Section)
? 指一段不可分割的代码, 一旦执行, 不
能被中断 。
? 实现代码临界区的方法有:一是屏蔽中
断, 通常在代码执行前关闭中断, 执行
后打开中断, 只能用于单处理机的情形;
二是通过信号量机制 。
嵌入式操作系统介绍
21
互斥( mutual exclusion)
? 资源的使用必须独占,叫做互斥。
? 解决办法:开关中断,使用硬件指令,
使用信号量
嵌入式操作系统介绍
22
任务间通信 (inter task com)
? 在多任务系统中,任务之间存在相互制
约的关系,或者任务之间需要交换信息,
称为任务间通信。
? 方式:邮箱,队列,事件标记等。
嵌入式操作系统介绍
23
时钟节拍 (Clock tick)
? 一种周期性发生的特殊中断, 该中断可
视为系统心脏的跳动 。
? 中断周期越短, 系统响应速度越快, 但
开销也越大, 程序的执行速度越慢 。
? 典型中断时间在 10-200ms之间, 取
20ms较为合适 。
嵌入式操作系统介绍
24
可预测性 (predictability)
? 指在系统运行的任何时刻, 任何情况
下, 实时操作系统的资源调配策略都能
为争夺资源 (包括 CPU,内存, 网络带宽
等 )的多个实时任务合理地分配资源, 使
各实时任务的实时性要求都能得到满足 。
? 简单说:操作系统的行为是可知的 。
嵌入式操作系统介绍
25
好的实时操作系统需要具备以下功能:
? 任务管理 ( 多任务和基于优先级的任务
调度 )
? 具备消除优先级倒置的机制
? 任务间同步和通信
? 实时时钟服务
? 中断管理服务
? 操作系统的行为是可知的和可预测的
嵌入式操作系统介绍
26
评价实时操作系统几个重要指标
? 系统响应时间 (System response time ):
是指系统发出处理要求到系统给出应答信号的
时间 。
? 任务切换时间 (Context-switching time):
是指任务之间切换使用的时间 。
? 中断延迟 (Interrupt latency ):是指计算机接
收到中断信号到操作系统做出响应, 并完成切
换转入中断服务程序的时间 。
嵌入式操作系统介绍
27
实时操作系统与通用操作系统的区别
? 设计目标:通用操作系统的目标是追求最大的
吞吐率, 使整体性能最佳 ;而实时操作系统设计
的目标是采用各种算法和策略, 始终保证系统
行为的可预测性 。
? 调度原则:通用操作系统为了达到最佳整体性
能, 其调度原则是公平 (Round-Robin或可变优
先级调度 ) ;而实时系统多采用基于固定优先
级的可剥夺的调度策略 ( 或不可剥夺, 如
Nucleus), 优先级是在运行前通过某种优先级
分配策略 。
嵌入式操作系统介绍
28
实时操作系统与通用操作系统的区别( 2)
?内存管理:通用操作系统广泛使用了虚拟内存的技术,为
用户提供一个功能强大的虚拟机,但因虚存机制引起的缺
页调页现象会给系统带来不确定性,因此实时系统很少或
有限的使用虚存技术,一般 采用静态内存划分的方式,为
每个实时任务划分固定的内存区域。这种方式的优点是系
统具有较好的可预测性,缺点是灵活性不够好,任务对存
储器的需求一旦有变化就需要重新对内存进行划分 。
例,Nucleus的内存分配,分区、运行栈
嵌入式操作系统介绍
29
实时操作系统与通用操作系统的区别( 3)
? 中断处理, 在通用操作系统中,大部分外部中断都是开启的,
中断处理一般由设备驱动程序来完成。由于通用操作系统中的
用户进程一般都没有实时性要求,而中断处理程序直接跟硬件
设备交互,可能有实时性要求,因此中断处理程序的优先级被
设定为高于任何用户进程。
实时操作系统中的各用户进程一般都有实时性要求,因此中断
处理程序优先级高于所有用户进程的优先级分配方式是不合适
的。一种较适合实时操作系统的中断处理方式为:除时钟中断
外,屏蔽所有其它中断,中断处理程序变为周期性的轮询操作,
这些操作由核心态的设备驱动程序或由用户态的设备支持库来
完成。采用这种方式的主要好处是充分保证了系统的可预测性
嵌入式操作系统介绍
30
实时操作系统与通用操作系统的区别( 4)
?系统调用以及系统内部操作的时间开销:
进程通过系统调用得到操作系统提供的服务,操作
系统通过内部操作(如上下文切换等)来完成一些
内部管理工作。为保证系统的可预测性,实时操作
系统中的所有系统调用以及系统内部操作的时间开
销都应是有界的,并且该界限是一个具体的量化数
值。而在通用操作系统中对这些时间开销则未做如
此限制。 有些 RTOS的系统服务请求即为函数调用,
不引起切换。
嵌入式操作系统介绍
31
实时操作系统与通用操作系统的区别( 5)
?系统的可重入性:
在通用操作系统中,核心态系统调用往往是不可重入的,当
一低优先级任务调用核心态系统调用时,在该时间段内到达
的高优先级任务必须等到低优先级的系统调用完成才能获得
CPU,这就降低了系统的可预测性。因此,实时操作系统中
的核心态系统调用往往设计为可重入的。
嵌入式操作系统介绍
32
嵌入式操作系统的发展历程
初期阶段 实质是一种实时的监控程序
第二阶段 专用系统 ( 80年代初,
VRTX,pSOS等)
第三阶段 通用系统
嵌入式操作系统介绍
33
嵌入式操作系统的分类
从嵌入式系统的应用来分类,可以分为面向
低端设备的嵌入式操作系统和面向高端设备的
嵌入式操作系统。
低端:各种工业控制系统,计算机外设,民
用消费品的微波炉,洗衣机,冰箱等,ucos
高端:信息化家电,掌上电脑,机顶盒、
WAP手机,路由器, VxWorks,QNX,wince,
linux.
嵌入式操作系统介绍
34
嵌入式操作系统的分类( 2)
从嵌入式系统的商业模式来分类,可以分为
商用型和免费型。
商用型:功能稳定、可靠,有完善的技术支
持和售后服务,价格昂贵。
免费型:价格优势。 linux,uCOS。
嵌入式操作系统介绍
35
嵌入式操作系统的分类( 3)
从实时性的角度来分:
? 具有强实时特点的嵌入式操作系统:其系统响应
时间在毫秒或微秒级(航空 /航天控制装配),
VxWORKS
? 具有弱实时特点的嵌入式操作系统:其系统响应
时间在毫秒-几秒的数量级上,其实时性的要求
比强实时系统要差一些(电子菜谱的查询)。
? 没有实时特点的嵌入式操作系统 。
嵌入式操作系统介绍
36
常见的嵌入式操作系统
?VxWorks,WindRiver,1983,可靠、实时、可裁减,多
种 CPU支持
?Windows CE,NT,XP系列:弱实时
?Palm,3COM公司,主要用于 PDA
?Nucleus
?QNX
?uCOS-II
嵌入式操作系统介绍
37
操作系统的移植
? 硬件抽象层的概念
? BSP(board support packet)
嵌入式应用程序
嵌入式操作系统
硬件环境平台
嵌入式系统结构
嵌入式应用程序
嵌入式操作系统
引入硬件抽象层后嵌入式系统结构
硬件抽象层
硬件环境平台
嵌入式操作系统介绍
38
BSP特点与功能
? BSP主要特点:硬件相关性与操作系统相关性
? 在实现上, BSP是一个介于操作系统和底层硬
件之间的软层次, 包括了系统中大部分与硬件
相关的软件模块 。
? 在功能上包含两部分:系统初始化及与硬件相
关的设备驱动 。
? 系统初始化完成的基本功能有:对 CPU进行低
级初始化, 对主板的硬件进行初始化, 加载操
作系统 。