第六章嵌入式操作系统概述

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

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

1 / 39
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功