




已阅读5页,还剩51页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
嵌入式操作系统原理,课程结构,第一章:操作系统的基本概念,目标: 本章旨在向学员介绍操作系统基本概念,通过本章的学习,学员应该掌握如下知识: 1)操作系统概述 2)常用的操作系统 3)操作系统常用的数据结构 4)操作系统基本概念,时间:2.0学时 教学方法:讲授PPT,为什么要学习C/OS-II,一.凡从事嵌入式系统开发工作的人,必须对嵌入式操作系统有足够的了解。 二.对于初学者,从C/OS-II开始是个明智的选择。 1. C/OS-II麻雀虽小,却五脏基本全(它是个微内核) 2.可以学习实时系统的一些编程技巧。 3.可以把在学校中学到的操作系统抽象概念具体化。 4.具有很强的实用性。 5.学习数据结构应用的好例子。,软件与硬件接口,图 应用软件与操作系统,1. 1 操作系统概述,操作系统是一种为应用程序提供服务的系统软件,是一个完整计算机系统的有机组成部分。 从层次来看,操作系统位于计算机硬件之上,应用软件之下。所以也把它叫做应用软件的运行平台。,1.1.1 操作系统的作用,它在计算机应用程序与计算机硬件系统之间,屏蔽了计算机硬件工作的一些细节,并对系统中的资源进行有效的管理。 通过提供函数(应用程序接口(API),从而使应用程序的设计人员得以在一个友好的平台上进行应用程序的设计和开发,大大地提高了应用程序的开发效率。,从用户的角度来看,它就是一大堆函数(API和系统函数),用户可以调用(普通调用或系统调用)它们来对系统资源进行操作。,1.1.1 操作系统的作用(续),时 间 先 后,1.1.1 操作系统的作用(续),监 控 程 序,操 作 系 统,实时操作系统,分时操作系统,多道批处理操作系统,时 间 先 后,实时操作系统是我们介绍的重点,1.1.2 操作系统基本功能,操作系统,处理器的管理,存储管理,网络和通信的管理,总之,需要一大堆表,1. 2 实时系统概述,实时系统与非实时系统的本质区别就在于实时系统中的任务都有时间限制。,时间限制有两种:一种是任务的周期性,按一定周期启动执行的任务称为周期性任务。而随机启动执行的任务称为非周期性任务。另一种时间限制为时限,即要求任务在规定时间内完成。,1.2.1 实时系统的特点,总的来说实时操作系统是事件驱动的,能对来自外界的作用和信号在限定的时间范围内作出响应。,它强调的是实时性、可靠性和灵活性,从实时系统的应用特点来看实时操作系统可以分为两种:一般实时操作系统和嵌入式实时操作系统。,1.2.1 实时系统的特点(续),一般实时操作系统 应用于实时处理系统的上位机和实时查询系统等实时性较弱的实时系统,并且提供了开发、调试、运用一致的环境。,嵌入式实时操作系统 应用于实时性要求高的实时控制系统,而且应用程序的开发过程是通过交叉开发来完成的。嵌入式实时操作系统具有规模小(一般在几K-几十K 内)、可固化使用实时性强(在毫秒或微秒数量级上)的特点 。,即开发环境与运行环境是不一致的。,1.2.2 实时系统属性要求,实时性要求一般有两层含义: 时间上同时发生和过程上同时响应。 要求一:数据识别、数据建立和正确响应必须在规定时间内完成。 要求二:对外部事件处理的实时性,即实时系统必须能进行分布式或并行处理。,1.2.3 实时系统重要参数,系统发出处理要求到系统给出应答信号的时间,数据有效等待时间,任务之间切换而使用的时间,计算机接收到中断信号到操作系统作出响应,并完成转入中断服务程序的时间,在一给定时间内,系统可以处理的事件总数,1.2.4 实时系统分类,按外部过程的要求划分,对于软实时系统来说,未能实时完成处理的结果,仅仅是带来了额外的代价,且通常这种代价能够被接受。,软实时 系统,硬实时 系统,对于硬实时系统来说,未能实时完成处理是坚决不允许的,它往往导致致命危害。如刹车系统、制导系统。,1.2.4 实时系统分类(续),按系统响应时间划分,强实时 系统,一般实时系统,弱实时系统,响应时间在 100ms、 10ms、ms或 ms级以下,响应时间在 s、10s以上,响应时间在 10s以上或更长, 随负载变化,1.2.4 实时系统分类(续),按软件结构划分,轮循 系统,initialize() app1_task() if (condition_1) action_1(); if (condition_2) action_2(); if (condition_n) acition_n(); CPU开销大,适合较慢速的简单系统,Check for Input,Do Something,事件驱动系统,前后台系统,多任务系统,多处理器系统,1.2.5 前后台系统,中断服务程序处理异步事件,这部分可以看成前台行为,前台也叫中断级。时间相关性很强的关键操作一定是靠中断服务程序来保证的。,循环中调用相应的函数完成相应的操作,这部分可以看成后台行为,后台也可以叫做任务级。这种系统在处理的及时性上比实际可以做到的要差。,1.2.6 多任务系统,简单地说,就是能用一个处理器 并发(注意,不是同时! ) 地运行多个程序的计算机管理系统。,并发:由同一个处理器轮换地运行多个程序。或者说是由多个 程序轮班地占用处理器这个资源。 且在占用这个资源期间,并不一定能够把程序运行完毕。,并发过程 示意图,处理器如何进行程序的 切换?,1.2.7 使用实时操作系统的必要性,嵌入式实时操作系统在目前的嵌入式应用中用得越来越广泛,尤其在功能复杂、系统庞大的应用中显得愈来愈重要。在嵌入式应用中,只有把CPU嵌入到系统中,同时又把操作系统嵌入进去,才是真正的计算机嵌入式应用。使用实时操作系统主要有以下几个因素: 嵌入式实时操作系统提高了系统的可靠性。 提高了开发效率,缩短了开发周期。 嵌入式实时操作系统充分发挥了CPU的多任务潜力。,1.2.8 实时操作系统的优缺点,优点:在嵌入式实时操作系统环境下开发实时应用程序使程序的设计和扩展变得容易,不需要大的改动就可以增加新的功能。通过将应用程序分割成若干独立的任务模块,使应用程序的设计过程大为简化;而且对实时性要求苛刻的事件都得到了快速、可靠的处理。通过有效的系统服务,嵌入式实时操作系统使得系统资源得到更好的利用。,缺点:但是,使用嵌入式实时操作系统还需要额外的ROM/RAM开销,25%的CPU额外负荷,以及内核的费用。,1. 3 常见的嵌入式操作系统 - 嵌入式LINUX,uClinux是一个完全符合GNU/GPL公约的操作系统,完全开放代码。uClinux从Linux 2.0/2.4内核派生而来,沿袭了主流Linux的绝大部分特性。它是专门针对没有MMU的CPU,并且为嵌入式系统做了许多小型化的工作。适用于没有虚拟内存或内存管理单元(MMU)的处理器,例如ARM7TDMI。它通常用于具有很少内存或Flash的嵌入式系统。它保留了Linux的大部分优点:稳定、良好的移植性、优秀的网络功能、完备的对各种文件系统的支持、以及标准丰富的API等。,1. 3 常见的嵌入式操作系统 - WINCE,Windows CE是微软开发的一个开放的、可升级的32位嵌入式操作系统,是基于掌上型电脑类的电子设备操作,它是精简的Windows 95。Windows CE的图形用户界面相当出色。Win CE具有模块化、结构化和基于Win32应用程序接口以及与处理器无关等特点。Win CE不仅继承了传统的Windows图形界面,并且在Win CE平台上可以使用Windows 95/98上的编程工具(如Visual Basic、Visual C+等)、使绝大多数的应用软件只需简单的修改和移植就可以在Windows CE平台上继续使用。,1. 3 常见的嵌入式操作系统 - VxWorks,1. 3 常见的嵌入式操作系统 - Nucleus,Nucleus PLUS是为实时嵌入式应用而设计的一个抢先式多任务操作系统内核,其95的代码是用ANSIC写成的,因此非常便于移植并能够支持大多数类型的处理器。 Nucleus PLUS采用了软件组件的方法。每个组件具有单一而明确的目的,通常由几个C及汇编语言模块构成,提供清晰的外部接口,对组件的引用就是通过这些接口完成的。由于采用了软件组件的方法,使Nucleus PLUS 的各个组件非常易于替换和复用。,1. 3 常见的嵌入式操作系统 - eCos,eCos是RedHat公司开发的源代码开放的嵌入式RTOS产品,是一个可配置、可移植的嵌入式实时操作系统,设计的运行环境为RedHat的GNUPro和GNU开发环境。eCOS的所有部分都开放源代码,可以按照需要自由修改和添加。eCOS的关键技术是操作系统可配置性,允许用户组和自己的实时组件和函数以及实现方式,特别允许eCOS的开发则定制自己的面向应用的操作系统,使eCos能有更广泛的应用范围。,1. 3 常见的嵌入式操作系统 uC/OS-II,C/OS-II是一个源码公开、可移植、可固化、可裁剪、占先式的实时多任务操作系统。其绝大部分源码是用ANSI C写的,使其可以方便的移植并支持大多数类型的处理器。C/OS-II通过了联邦航空局(FAA)商用航行器认证。自1992年问世以来,C/OS-II已经被应用到数以百计的产品中。C/OS-II占用很少的系统资源,并且在高校教学使用是不需要申请许可证。,1. 3 常见的嵌入式操作系统 uITRON,TRON是指“实时操作系统内核(The Real-time Operating system Nucleux)”,它是在1984年由东京大学的Sakamura博士提出的,目的是为了建立一个理想的计算机体系结构。通过工业界和大学院校的合作,TRON方案正被逐步用到全新概念的计算机体系结构中。 uITRON是TRON的一个子方案,它具有标准的实时内核,适用于任何小规模的嵌入式系统,日本国内现有很多基于该内核的产品,其中消费电器较多。目前已成为日本事实上的工业标准。,1. 4 操作系统体系结构,图 操作系统体系结构,图 嵌入式操作系统组成,1. 4 操作系统体系结构(续),思考:嵌入式系统任务的典型结构,由于嵌入式系统完成的是对一个装置或设备的控制任务,任务的功能相对固定,因此在一般情况下系统支持的典型任务是一个无限循环结构,C语言任务结构如下: void mytask(void *pdata) for(;) 用户编写的代码; 从任务的代码来看,任务实质上就是一个返回为void的函数,并在函数无限循环中完成用户的工作,那么,用户应用程序如何来响应用户的一些外部异步事件呢?,1. 5 操作系统常用的数据结构 - 数组,数组 1。同一数据类型数据的集合; 2。占用连续内存空间; 3。其中的所有元素名称都相同,但每个元素都有一个编号; 4。元素名去掉编号(下标),得到的是数组名,数组名是个指针。,int a10,a0,a1,a2,a3,a9,a,a+1,使用上的特点: 1。分类存放; 2。检索速度快且恒定; 3。缺点:占用连续空间大,a+2,a+3,a+9,应用:记录同类事物的表,位图是数组的一种特殊应用,a10 (可以记录80个事物的状态),a0,a1,a2,a3,a9,a,a+1,a+2,a+3,a+9,应用:登记表,1/0,D7 D6 D5 D4 D3 D2 D1 D0,1. 5 操作系统常用的数据结构 位图,1. 5 操作系统常用的数据结构 结构,1。不同数据类型数据的集合; 2。占用连续内存空间;,struct Student int age; char*name; char sex; ;,使用上的特点: 1。不分类存放,但用来描述同一事物; 2。检索速度快且恒定;,应用:通讯录中的一条记录、 工具箱、厨房等等,1. 5 操作系统常用的数据结构 链表,struct Student Student*next int age; char*name; char sex; ;,1。同数据类型数据的集合; 2。不占用连续内存空间。,使用上的特点: 1。分类存放,但空间上不连续(不需要大量的连续存储空间); 2。检索速度慢,且耗费的时间不固定;,应用:存放大量的较大 的表,类似档案柜,1. 5 操作系统常用的数据结构 对列,按照先进先出 的规则组织的数据结构 可以用数组也可以用链 表来实现,主要用于对象的排队,1. 5 操作系统常用的数据结构 堆栈,按照先进后出 规则组织的数据结构 主要用数组来实现,主要用于 程序模块的嵌套运行,1. 6 操作系统的基本概念,代码的临界段也称为临界区,指处理时不可分割的代码,运行这些代码不允许被打断。一旦这部分代码开始执行,则不允许任何中断打入。为确保临界区代码的执行,在进入临界区之前要关中断,而临界区代码执行完成以后要立即开中断。,代码的临界段,这不是绝对的,如果中断不调用任何包含临界区的代码,也不访问任何临界区使用的共享资源,这个中断可能可以执行,1. 6 操作系统的基本概念(续),共享资源,可以被一个以上任务使用的资源叫做共享资源。为了防止数据被破坏,每个任务在与共享资源打交道时,必须独占该资源,这叫做互斥。,访问共享资源之前申请信号量,其它任务访问受阻 而不能使用共享资源,得到允许后,才能使用共享资源,1. 6 操作系统的基本概念(续),任务的优先级,每个任务都有其优先级(priority),分为静态优先级和动态优先级两种。 应用程序执行过程中诸任务优先级不变,则称之为静态优先级。在静态优先级系统中,诸任务以及它们的时间约束在程序编译时是已知的。 应用程序执行过程中,如果任务的优先级是可变的,则称之为动态优先级。,任务执行时的顺序,1. 6 操作系统的基本概念(续),调度,新任务,调度就是决定该轮到哪个任务运行了,执行,1. 6 操作系统的基本概念(续),调度的时间及方式,当一个新的任务被创建时,是执行新任务还是继续执行父任务? 当一个任务运行完毕时; 当一个任务由于I/O、信号量或其他的某个原因被阻塞时; 当一个I/O中断发生时,表明某个I/O操作已经完成,而等待该I/O操作的任务转入就绪状态; 在分时系统中,当一个时钟中断发生时。,不可抢占(non-preemptive)调度方式:一个进程若被选中就一直运行下去,直到它被阻塞(I/O,或正在等待其他进程),或主动地交出CPU。 可抢占(preemptive)调度方式:当一个进程在运行时,调度程序可以打断它。另外,在其他一些情形下,如就绪队列中有新进程的优先级高于当前正运行的进程,也可能立即进行调度。,1. 6 操作系统的基本概念(续),非占先式(不可剥夺型),非占先式(non-preemptive) 非占先式内核要求每个任务自我放弃CPU的所有权。非占先式调度法也称作合作型多任务,各个任务彼此合作共享一个CPU。异步事件还是由中断服务来处理。中断服务可以使一个高优先级的任务由挂起状态变为就绪状态。但中断服务以后控制权还是回到原来被中断了的那个任务,直到该任务主动放弃CPU的使用权时,那个高优先级的任务才能获得CPU的使用权。,1. 6 操作系统的基本概念(续),占先式(可剥夺型),占先式(preemptive)也称为可剥夺型 当系统响应时间很重要时,要使用占先式内核。因此绝大多数商业上销售的实时内核都是占先式内核。最高优先级的任务一旦就绪,总能得到CPU的控制权。当一个运行着的任务使一个比它优先级高的任务进入了就绪状态,当前任务的CPU使用权就被剥夺了,或者说被挂起了,那个高优先级的任务立刻得到了CPU的控制权。如果是中断服务子程序使一个高优先级的任务进入就绪态,中断完成时,中断了的任务被挂起,优先级高的那个任务开始运行。,1. 6 操作系统的基本概念(续),可重入函数,可以被一个以上的任务调用,而不必担心数据的破坏。可重入型函数任何时候都可以被中断,一段时间以后又可以运行,而相应数据不会丢失。可重入型函数最好只使用局部变量,即变量保存在CPU寄存器中或堆栈中。,一个不可重入型函数的例子 int Temp; void swap (int *x,int*y) Temp=*x; *X=*Y; *y=Temp; 一个可重入型函数的例子 void swap (int *x,int*y) int Temp; Temp=*x; *X=*Y; *y=Temp; ,1. 6 操作系统的基本概念(续),死锁,死锁(deadlock) 指两个任务无限期地互相等待对方控制着的资源。设任务T1正独享资源R1 ,任务T2正独享资源R2,此时任务T1又要使用资源R2,任务T2也要使用资源R1,于是两个任务都无法继续执行了。,防止死锁的方法 1)先得到全部需要的资源,再做下一步的工作; 2)用同样的顺序申请多个资源; 3)释放资源时,使用相反的顺序; 4)使用等待超时。,1. 6 操作系统的基本概念(续),中断,中断是一种硬件机制,通知CPU有个异步事件发生了。 中断一旦被识别,CPU保存部分或全部现场(context)后跳转到中断服务子程序(ISR) ,ISR结束后可返回到: 在前/后台系统中,返回到后台程序; 对不可剥夺型内核,返回到被中断了的任务; 对可剥夺型内核,返回到就绪状态优先级最高的任务。 中断使得CPU可以在事件发生时才进行处理,而不必让CPU不断地查询是否有事件发生。 通过开/关中断可以让CPU响应或不响应中断。 在实时环境应注意不要使关中断时间过长。,1. 6 操作系统的基本概念(续),时钟节拍,时钟节拍(clock tick)是特定的周期性中断,是实时内核的心脏。 中断之间的时间间隔取决于系统实时性要求,一般为10-200ms。 时钟节拍率越快,系统的额外开销就越大。,1. 7 任务运行的基本要素,任务代码,任务堆栈,内存,处理器,处理器通过两个指针寄存器(PC和SP)来与任务代码和任务堆栈建立联系并运行它,寄存器组,运行环境包括了两部分:处理器
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 森林服装店课件
- 桥梁线描课件
- 初级汽车驾驶员职业技能鉴定理论考核试题及答案
- 2025年数字人造型师中级面试题预测及解析
- 生产安全事故综合应急救援预案演练方案(一)
- 2025年交安B(公路水运)学习资料题库及答案
- 2025年政府部门文秘岗位笔试模拟题及答案集
- 2025年油气储运行业初级考试题库与
- 2025年全科医师转岗培训理论知识题库及参考答案
- 2025年大学入学英语水平测试预测试题集及答案详解
- 会计研究方法论 第4版 课件全套 吴溪 第1-20章 导论- 中国会计学术研究成果的国际发表
- 《水库大坝安全管理条例》知识培训
- 父女关系断绝书
- 2025年华侨港澳台学生联招考试英语试卷试题(含答案详解)
- 《晚期肾癌新视点》课件
- 三年级 人教版 数学 第六单元《两位数乘一位数(不进位)口算》课件
- 民爆信息系统网络服务平台
- 2025年度智慧企业ERP系统集成与运维服务合同模板2篇
- 2024年优居房产全国加盟手册3篇
- 污水处理工程施工工程组织设计
- 氨基酸作为药物靶点
评论
0/150
提交评论