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