




已阅读5页,还剩51页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 嵌入式操作系统原理 2 课程结构 内容课时(H) 第一章:操作系统的基本概念2.0 第二章:COS与COS-II的任务7.0 第三章:COS-II的中断和时钟2.0 第四章:任务的同步与通信6.0 第五章:信号量集2.0 第六章:内存的动态分配2.0 第七章:uC/OS-II的移植7.0 3 第一章:操作系统的基本概念 目标: 本章旨在向学员介绍操作系统基 本概念,通过本章的学习,学员 应该掌握如下知识: 1)操作系统概述 2)常用的操作系统 3)操作系统常用的数据结构 4)操作系统基本概念 时间:2.0学时 教学方法:讲授PPT 4 为什么要学习C/OS-II 一.凡从事嵌入式系统开发工作的人,必须对嵌入式操作系 统有足够的了解。 二.对于初学者,从C/OS-II开始是个明智的选择。 1. C/OS-II麻雀虽小,却五脏基本全(它是个微内核 ) 2.可以学习实时系统的一些编程技巧。 3.可以把在学校中学到的操作系统抽象概念具体化。 4.具有很强的实用性。 5.学习数据结构应用的好例子。 5 软软件与硬件接口 应用编程接口 API 应用程 序 计算机硬 件 操作系 统 图 应用软件与操作系统 1. 1 操作系统概述 操作系统是一种为应用 程序提供服务的系统软 件,是一个完整计算机 系统的有机组成部分。 从层次来看,操作系统 位于计算机硬件之上, 应用软件之下。所以也 把它叫做应用软件的运 行平台。 6 1.1.1 操作系统的作用 它在计算机应用程序与计算 机硬件系统之间,屏蔽了计 算机硬件工作的一些细节, 并对系统中的资源进行有效 的管理。 通过提供函数(应用程序接 口(API),从而使应用程 序的设计人员得以在一个友 好的平台上进行应用程序的 设计和开发,大大地提高了 应用程序的开发效率。 从用户的角度来看 ,它就是一大堆函 数(API和系统函 数),用户可以调 用(普通调用或系 统调用)它们来对 系统资源进行操作 。 计算机硬件 用汇编语言编写 的 硬件抽象层 高级语言的接口 应用软件 操作系统 7 1.1.1 操作系统的作用(续) 监 控 程 序 操 作 系 统 实时操作系统 分时操作系统 多道批处理操作系统 时 间 先 后 适用于多个用户共享系统资源 适用于计算中心等较大的计算机系统 适用于嵌入式设备和有实时性要求的 系统中 8 1.1.1 操作系统的作用(续) 监 控 程 序 操 作 系 统 实时操作系统 分时操作系统 多道批处理操作系统 时 间 先 后 适用于多个用户共享系统资源 适用于计算中心等较大的计算机系统 适用于嵌入式设备和有实时性要求的系统 中 实时操作系统是我们介绍的重点 9 1.1.2 操作系统基本功能 操作系统 处理器的管理 存储管理 网络和通信 的管理 I/O设备管理 文件管理 任务管理 任务表 存储 分配表 文件 目录 设备表 总之,需要一大堆表 10 1. 2 实时系统概述 实时系统与非实时系统的本质 区别就在于实时系统中的任务 都有时间限制。 时间限制有两种:一种是任务的周期性,按一定周 期启动执行的任务称为周期性任务。而随机启动执 行的任务称为非周期性任务。另一种时间限制为时 限,即要求任务在规定时间内完成。 11 1.2.1 实时系统的特点 总的来说实时操作系统是事件驱动的,能 对来自外界的作用和信号在限定的时间范 围内作出响应。 它强调的是实 时性、可靠性 和灵活性 从实时系统的应用特点来看实时操作系统可以分 为两种:一般实时操作系统一般实时操作系统和嵌入式实时操作系嵌入式实时操作系 统统。 12 1.2.1 实时系统的特点(续) 一般实时操作系统一般实时操作系统 应用于实时处理系 统的上位机和实时 查询系统等实时性 较弱的实时系统, 并且提供了开发、 调试、运用一致的 环境。 嵌入式实时操作系统嵌入式实时操作系统 应用于实时性要求高 的实时控制系统,而 且应用程序的开发过 程是通过交叉开发来 完成的。嵌入式实时 操作系统具有规模小( 一般在几K-几十K 内) 、可固化使用实时性 强(在毫秒或微秒数量 级上)的特点 。 即开发环境与运行 环境是不一致的。 13 1.2.2 实时系统属性要求 实时性要求一般有两层含义: 时间上同时发生和过程上同时响应。 要求一:数据识别、数据建立和正确响应必须在规 定时间内完成。 要求二:对外部事件处理的实时性,即实时系统必 须能进行分布式或并行处理。 14 1.2.3 实时系统重要参数 系统 响应 时间 系统发出处理要 求到系统给出应 答信号的时间 生存 时间 数据有效等 待时间 任务 切换 时间 任务之间切换 而使用的时间 中断 延迟 时间 计算机接收到中断 信号到操作系统作 出响应,并完成转 入中断服务程序的 时间 吞吐量 在一给定时间内 ,系统可以处理 的事件总数 15 1.2.4 实时系统分类 按外部过程的要求划分 对于软实时系统来 说,未能实时完成 处理的结果,仅仅 是带来了额外的代 价,且通常这种代 价能够被接受。 软实时 系统 硬实时 系统 对于硬实时系统来 说,未能实时完成 处理是坚决不允许 的,它往往导致致 命危害。如刹车系 统、制导系统。 16 1.2.4 实时系统分类(续) 按系统响应时间划分 强实时 系统 一般实 时系统 弱实时 系统 响应时间在 100ms、 10ms、ms或 ms级以下 响应时间在 s、10s以上 响应时间在 10s以上或更长, 随负载变化 17 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 事件驱 动系统 前后台系统 多任务系统 多处理器系统 18 1.2.5 前后台系统 中断服务程序 处理异步事件 ,这部分可以 看成前台行为 ,前台也叫中 断级。时间相 关性很强的关 键操作一定是 靠中断服务程 序来保证的。 循环中调用相 应的函数完成 相应的操作, 这部分可以看 成后台行为, 后台也可以叫 做任务级。这 种系统在处理 的及时性上比 实际可以做到 的要差。 ISR ISR ISR ISR 后台前台 中断服务程序 时 间 19 1.2.6 多任务系统 简单地说,就是能用一个处理器 并发(注意,不是同时! ) 地运行多个程序的计算机管理系统。 并发:由同一个处理 器轮换地运行多个程 序。或者说是由多个 程序轮班地占用处理 器这个资源。 且在占用这个资源期 间,并不一定能够把 程序运行完毕。 并发过程 示意图 处理器如何进行程序的 切换? 20 1.2.7 使用实时操作系统的必要性 嵌入式实时操作系统在目前的嵌入式应用中用 得越来越广泛,尤其在功能复杂、系统庞大的应用 中显得愈来愈重要。在嵌入式应用中,只有把CPU嵌 入到系统中,同时又把操作系统嵌入进去,才是真 正的计算机嵌入式应用。使用实时操作系统主要有 以下几个因素: v 嵌入式实时操作系统提高了系统的可靠性。 v 提高了开发效率,缩短了开发周期。 v 嵌入式实时操作系统充分发挥了CPU的多任务潜 力。 21 1.2.8 实时操作系统的优缺点 优点优点:在嵌入式实时操作系统环境下开发实时应 用程序使程序的设计和扩展变得容易,不需要大 的改动就可以增加新的功能。通过将应用程序分 割成若干独立的任务模块,使应用程序的设计过 程大为简化;而且对实时性要求苛刻的事件都得 到了快速、可靠的处理。通过有效的系统服务, 嵌入式实时操作系统使得系统资源得到更好的利 用。 缺点缺点:但是,使用嵌入式实时操作系统还需要额 外的ROM/RAM开销,25%的CPU额外负荷,以及内 核的费用。 22 1. 3 常见的嵌入式操作系统 - 嵌入式LINUX uClinux是一个完全符合GNU/GPL公约的操作系统, 完全开放代码。uClinux从Linux 2.0/2.4内核派生而来 ,沿袭了主流Linux的绝大部分特性。它是专门针对没有 MMU的CPU,并且为嵌入式系统做了许多小型化的工作。 适用于没有虚拟内存或内存管理单元(MMU)的处理器,例 如ARM7TDMI。它通常用于具有很少内存或Flash的嵌入式 系统。它保留了Linux的大部分优点:稳定、良好的移植稳定、良好的移植 性、优秀的网络功能、完备的对各种文件系统的支持、性、优秀的网络功能、完备的对各种文件系统的支持、 以及标准丰富的以及标准丰富的APIAPI等等。 23 1. 3 常见的嵌入式操作系统 - WINCE Windows CEWindows CE是微软开发的一个开放的、可升级的32 位嵌入式操作系统,是基于掌上型电脑类的电子设备操 作,它是精简的Windows 95。Windows CE的图形用户界 面相当出色。Win CE具有模块化、结构化和基于Win32应 用程序接口以及与处理器无关等特点。Win CE不仅继承 了传统的Windows图形界面,并且在Win CE平台上可以使 用Windows 95/98上的编程工具(如Visual Basic、 Visual C+等)、使绝大多数的应用软件只需简单的修使绝大多数的应用软件只需简单的修 改和移植就可以在改和移植就可以在Windows CEWindows CE平台上继续使用。平台上继续使用。 24 1. 3 常见的嵌入式操作系统 - VxWorks VxWorks操作系统是美国 公司于1983年设计开发的一种嵌入式实时操作系统( RTOS),是嵌入式开发环境的关键组成部分。良好的 持续发展能力、高性能的内核以及友好的用户开发环 境,在嵌入式实时操作系统领域占据一席之地。它以 其良好的可靠性和卓越的实时性被广泛地应用在通信 、军事、航空、航天等高精尖技术及实时性要求极高 的领域中,如卫星通讯、军事演习、弹道制导、飞机 导航等,甚至在1997年4月登陆火星表面的火星探测器 上也使用到了VxWorks。 25 1. 3 常见的嵌入式操作系统 - Nucleus Nucleus PLUSNucleus PLUS是为实时嵌入式应用而设计的一个抢 先式多任务操作系统内核,其95的代码是用ANSIC写成 的,因此非常便于移植并能够支持大多数类型的处理器 。 Nucleus PLUSNucleus PLUS采用了软件组件的方法。每个组件具 有单一而明确的目的,通常由几个C及汇编语言模块构成 ,提供清晰的外部接口,对组件的引用就是通过这些接 口完成的。由于采用了软件组件的方法,使Nucleus PLUS 的各个组件非常易于替换和复用。 26 1. 3 常见的嵌入式操作系统 - eCos eCoseCos是RedHat公司开发的源代码开放的嵌入式 RTOS产品,是一个可配置、可移植的嵌入式实时操作 系统,设计的运行环境为RedHat的GNUPro和GNU开发环 境。eCOS的所有部分都开放源代码,可以按照需要自 由修改和添加。eCOS的关键技术是操作系统可配置性 ,允许用户组和自己的实时组件和函数以及实现方式 ,特别允许eCOS的开发则定制自己的面向应用的操作 系统,使eCos能有更广泛的应用范围。 27 1. 3 常见的嵌入式操作系统 uC/OS-II C/OS-II是一个源码公开、可移植、可固化、可 裁剪、占先式的实时多任务操作系统。其绝大部分源 码是用ANSI C写的,使其可以方便的移植并支持大多 数类型的处理器。C/OS-II通过了联邦航空局(FAA )商用航行器认证。自1992年问世以来,C/OS-II已 经被应用到数以百计的产品中。C/OS-II占用很少的 系统资源,并且在高校教学使用是不需要申请许可证 。 28 1. 3 常见的嵌入式操作系统 uITRON TRON是指“实时操作系统内核(The Real-time Operating system Nucleux)”,它是在1984年由东京大 学的Sakamura博士提出的,目的是为了建立一个理想的 计算机体系结构。通过工业界和大学院校的合作,TRON 方案正被逐步用到全新概念的计算机体系结构中。 uITRON是TRON的一个子方案,它具有标准的实时内 核,适用于任何小规模的嵌入式系统,日本国内现有很 多基于该内核的产品,其中消费电器较多。目前已成为 日本事实上的工业标准。 29 1. 4 操作系统体系结构 图 操作系统体系结构 30 嵌入式应用程序 网络协议文件系统其它部件 C/C+ 支持库Kernel POSIX 支持 设备驱动调试工具设备I/O接口 板级支持包BSP (Board Support Packet) 目标机硬件 图 嵌入式操作系统组成 1. 4 操作系统体系结构(续) 31 思考:嵌入式系统任务的典型结构 由于嵌入式系统完成的是对一个装置或设备的控制任务,任务的功能相对固 定,因此在一般情况下系统支持的典型任务是一个无限循环结构,C语言任 务结构如下: void mytask(void *pdata) for(;) 用户编写的代码; 从任务的代码来看,任务实质上就是一个返回为void的函数,并在函数无限 循环中完成用户的工作,那么,用户应用程序如何来响应用户的一些外部异 步事件呢? 32 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 应用:记录同类事物的表 33 位图是数组的一种 特殊应用 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 操作系统常用的数据结构 位图 34 1. 5 操作系统常用的数据结构 结构 1。不同 数据类型 数据的集 合; 2。占用 连续内存 空间; struct Student int age; char*name; char sex; ; 使用上的特点 : 1。不分类存 放,但用来描 述同一事物; 2。检索速度 快且恒定; 应用:通讯录中的一条记录、 工具箱、厨房等等 35 1. 5 操作系统常用的数据结构 链表 next next 两个元素的链表 struct Student Student*next int age; char*name; char sex; ; 1。同数据类型数据的集合; 2。不占用连续内存空间。 使用上的特点: 1。分类存放,但空间上不连续(不 需要大量的连续存储空间); 2。检索速度慢,且耗费的时间不固 定; 应用:存放大量的较大 的表,类似档案柜 36 1. 5 操作系统常用的数据结构 对列 按照先进先出 的规则组织的数据结构 可以用数组也可以用链 表来实现 主要用于对象的排队 37 1. 5 操作系统常用的数据结构 堆栈 按照先进后出 规则组织的数据结构 主要用数组来实现 主要用于 程序模块的嵌套运行 38 1. 6 操作系统的基本概念 代码的临界段也称为临界区,指处理时不可分 割的代码,运行这些代码不允许被打断。一旦 这部分代码开始执行,则不允许任何中断打入 。为确保临界区代码的执行,在进入临界区之 前要关中断,而临界区代码执行完成以后要立 即开中断。 代码的临界段 这不是绝对的,如果中断不 调用任何包含临界区的代码 ,也不访问任何临界区使用 的共享资源,这个中断可能 可以执行 39 1. 6 操作系统的基本概念(续) 共享资源 可以被一个以上任务使用的资源叫做共享资源。为了防止 数据被破坏,每个任务在与共享资源打交道时,必须独占该资 源,这叫做互斥。 任务A 共享资源 任务B 任务C 信号量 访问共享资源之前申 请信号量 其它任务访问受阻 而不能使用共享资源 得到允许后,才能使 用共享资源 40 1. 6 操作系统的基本概念(续) 任务的优先级 每个任务都有其优先级(priority),分为 静态优先级和动态优先级两种。 应用程序执行过程中诸任务优先级不变,则 称之为静态优先级。在静态优先级系统中, 诸任务以及它们的时间约束在程序编译时是 已知的。 应用程序执行过程中,如果任务的优先级是 可变的,则称之为动态优先级。 任务执行 时的顺序 41 1. 6 操作系统的基本概念(续) 调度 调度器 就绪任 务队列 CP U 剥夺或自愿放弃 资源管 理器 中断 请求 新任务 调度就是决定 该轮到哪个任 务运行了 执行 42 1. 6 操作系统的基本概念(续) 调度的时间及方式 1. 当一个新的任务被创建时,是执 行新任务还是继续执行父任务? 2. 当一个任务运行完毕时; 3. 当一个任务由于I/O、信号量或其 他的某个原因被阻塞时; 4. 当一个I/O中断发生时,表明某个 I/O操作已经完成,而等待该I/O 操作的任务转入就绪状态; 5. 在分时系统中,当一个时钟中断 发生时。 不可抢占(non-preemptive)调度方式:一个进程 若被选中就一直运行下去,直到它被阻塞(I/O,或 正在等待其他进程),或主动地交出CPU。 可抢占(preemptive)调度方式:当一个进程在运 行时,调度程序可以打断它。另外,在其他一些情 形下,如就绪队列中有新进程的优先级高于当前正 运行的进程,也可能立即进行调度。 43 1. 6 操作系统的基本概念(续) 非占先式(不可剥夺型) 非占先式(non-preemptive) 非占先式内核要求每个任务自我放弃CPU的所 有权。非占先式调度法也称作合作型多任务,各 个任务彼此合作共享一个CPU。异步事件还是由 中断服务来处理。中断服务可以使一个高优先级 的任务由挂起状态变为就绪状态。但中断服务以 后控制权还是回到原来被中断了的那个任务,直 到该任务主动放弃CPU的使用权时,那个高优先 级的任务才能获得CPU的使用权。 44 1. 6 操作系统的基本概念(续) 占先式(可剥夺型) 占先式(preemptive)也称为可剥夺型 当系统响应时间很重要时,要使用占先式内核。因此 绝大多数商业上销售的实时内核都是占先式内核。最高 优先级的任务一旦就绪,总能得到CPU的控制权。当一 个运行着的任务使一个比它优先级高的任务进入了就绪 状态,当前任务的CPU使用权就被剥夺了,或者说被挂 起了,那个高优先级的任务立刻得到了CPU的控制权。 如果是中断服务子程序使一个高优先级的任务进入就绪 态,中断完成时,中断了的任务被挂起,优先级高的那 个任务开始运行。 45 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; 46 1. 6 操作系统的基本概念(续) 死锁 死锁(deadlock) 指两个任务无限期地互相等待对方控制着的资 源。设任务T1正独享资源R1 ,任务T2正独享资 源R2,此时任务T1又要使用资源R2,任务T2也 要使用资源R1,于是两个任务都无法继续执行 了。 防止死锁的方法 1)先得到全部需要的资源,再做下一 步的工作; 2)用同样的顺序申请多个资源; 3)释放资源时,使用相反的顺序; 4)使用等待超时。 47 1. 6 操作系统的基本概念(续) 中断 中断是一种硬件机制,通知CPU有个异步事件发生了。 中断一旦被识别,CPU保存部分或全部现场(context)后 跳转到中断服务子程序(ISR) ,ISR结束后可返回到: 在前/后台系统中,返回到后台程序; 对不可剥夺型内核,返回到被中断了的任务; 对可剥夺型内核,返回到就绪状态优先级最高的 任务。 中断使得CPU可以在事件发生时才进行处理,而不必让 CPU不断地查询是否有事件发生。 通过开/关中断可以让CPU响应或不响应中断。 在实时环境应注意不要使关中断时间过长。 前后台系统 ISR 任务 ISR 非占先操作系统 任务 A 任务 B 任务 C ISR 占先操作系统 任务 A 任务 B 任务 C 48 1. 6 操作系统的基本概念(续) 时钟节拍 时钟节拍(clock tick)是特定的周期性中断,是实时内核 的心脏。 中断之间的时间间隔取决于系统实时性要求,一般为10- -200ms。 时钟节拍率越快,系统的额外开销就越大。 49 1. 7 任务运行的基本要素 任务代码 任务堆栈 内存 处理器 PC SP 处理器通过两个指针寄 存器(PC和SP)来与任 务代码和任务堆栈建立 联系并运行它 寄存器组 程序运行环境 运行环境包括了两部分 :处理器中的运行环境 和内存中的运行环境 50 1.6.1 多任务运行时的问题 任务代码 任务堆栈 内存 处理器 PC SP 任务代码 任务堆栈 内存 任务代码 任务堆栈 内存 ? 当有多个任务时,处理 器中的运行环境应该怎 么办? 寄存器组 程序运行环境 51 1.6.2 多任务运行时的问题处理 程序 虚拟 处理器 PC SP 虚拟 处理器 PC SP 虚拟 处理器 PC SP 虚拟 处理器 PC SP 调度器 程序 处理器 PC SP 在内存中为每个任 务创建一个虚拟的 处理器 由操作系统的调度 器按某种规则来进
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2030中国化妆品行业市场细分趋势与渠道变革战略分析报告
- 标准化设计劳务合同5篇
- 2025年智能制造技术的商业价值
- 2025年安徽机电职业技术学院高层次人才引进15人考前自测高频考点模拟试题及参考答案详解一套
- 2025年海洋能发电海岛能源互联网建设策略报告
- 2025年合肥某国企面向社会招聘初级审核员5人模拟试卷完整参考答案详解
- 2025年东宁市法院系统招聘真题
- 2024年广西柳州市柳江区社会福利院聘用人员招聘真题
- 2025江苏苏州张家港市国有资本投资集团有限公司专业化青年人才定岗特选(岗位代码098)人员考前自测高频考点模拟试题及参考答案详解
- 2025年度福建省血液中心招聘6人考前自测高频考点模拟试题附答案详解(黄金题型)
- API SPEC 7-1-2023 旋转钻柱构件规范
- 2025年自考《艺术概论》考试复习题库(含答案)
- 人工智能深度学习概念与应用测试卷
- 小学道德与法治理论培训
- GB/T 12643-2025机器人词汇
- 《酒店服务礼仪培训》课件
- 挤出机生产线安全操作规程
- 药品采购与供应链管理
- 函数与基本初等函数 章节总结(解析版)-2025年高考数学一轮复习(新高考专用)
- 麻醉科2025年发展计划
- 分包商安全管理规定(4篇)
评论
0/150
提交评论