第1章操作系统的基本概念_第1页
第1章操作系统的基本概念_第2页
第1章操作系统的基本概念_第3页
第1章操作系统的基本概念_第4页
第1章操作系统的基本概念_第5页
已阅读5页,还剩49页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、3 Sept. 2008Confidential嵌入式操作系统原理嵌入式操作系统原理东软IT人才实训中心Copyright 2008 By Neusoft Group. All rights reserved3 Sept. 2008Confidential引言引言嵌入式操作系统(嵌入式操作系统(RTOS)早期情况:)早期情况:只有硬件系统的“裸机”,没有操作系统作为开发平台。RTOS商业软件价格昂贵,而且大部分不提供源码。早期MCU存储资源有限,容不下RTOS本身的开销。随着半导体技术的发展,嵌入式系统的存储容量也逐渐增加,RTOS的使 用也随之越来越普及;而且开源的实时操作系统越来越多。学习

2、操作系统的必要性:学习操作系统的必要性: 软件的系统设计、架构设计必不可少 。学习操作系统对于修正系统相关的疑难Bug必不可少 。学习操作系统对于深入了解计算机知识必不可少 。如何学好本门课程如何学好本门课程:多看源码,多做练习;理论与实践相结合,知行合一。本课程学习目标:本课程学习目标:理解uC/OS-II内核,掌握在uC/OS-II环境下并发程序设计思想。 3 Sept. 2008Confidential课程结构内容内容课时(课时(H H)第一章:操作系统的基本概念第一章:操作系统的基本概念3.03.0第二章:第二章:COS与与COS-II的任务的任务9.09.0第三章:第三章:COS-I

3、I的中断和时钟的中断和时钟3.03.0第四章:任务的同步与通信第四章:任务的同步与通信6.06.0第五章:信号量集第五章:信号量集3.03.0第六章:内存的动态分配第六章:内存的动态分配3.03.0第七章:第七章:uC/OS-II的移植的移植3.03.03 Sept. 2008Confidential第一章:操作系统的基本概念第一章:操作系统的基本概念 目标:本章旨在向学员介绍操作系统基本概念,通过本章的学习,学员应该掌握如下知识: 操作系统概述 常用的操作系统 操作系统常用的数据结构 操作系统基本概念学时:学时:3.03.0学时学时教学方法:讲授教学方法:讲授pptppt点评点评案例分析案例

4、分析3 Sept. 2008Confidential为什么要学习C/OS-II对于初学者,从C/OS-II开始是个明智的选择。 1、提供源代码和详尽的注释; 2、可移植性强:大部分源码采用C语言编写,与微处理 器硬件相关的部分用汇编语言编写; 3、可固化、可裁剪; 4、具有主流嵌入式操作系统的一些通用功能:多任务调 度管理、任务间的通信机制(信号量、事件标志、消 息邮箱等)、内存管理、中断管理等; 5、可以学习实时系统的一些C编程技巧;也是学习数据 结构应用的好例子。3 Sept. 2008Confidential软件与硬件接口应用编程接口 API应用程应用程序序计算机硬件操作系统操作系统图

5、应用软件与操作系统1. 1 1. 1 操作系统概述操作系统概述操作系统是一种为应用程序提供服务的系统软件,管理计算机系统资源,是一个完整计算机系统的有机组成部分。从层次来看,操作系统位于计算机硬件之上,应用软件之下。所以也把它叫做应用软件的运行平台。3 Sept. 2008Confidential1.1.1 操作系统的作用OS在计算机应用程序与计算机硬件系统之间,屏蔽了计算机硬件工作的一些细节,并对系统中的资源进行有效的管理。通过提供对硬件操作的抽象模型,使应用程序员可以相对容易的使用计算机的硬件资源,得以在一个友好的平台上进行应用程序的设计和开发,大大地提高了应用程序的开发效率。 计算机硬件

6、汇编语言编写的硬件抽象层高级语言的接口应用软件操作系统OS从用户的角度来看,它就是一大堆函数(API和系统函数),用户可以调用(普通调用或系统调用)它们来对系统资源进行操作。3 Sept. 2008Confidential1.1.2 操作系统的分类监控程序操作系统实时操作系统分时操作系统多道批处理操作系统 时 间 先 后 适用于多个用户共享系统资源适用于计算中心等较大的计算机系统适用于嵌入式设备和有实时性要求的系统中批处理操作系统服务于一系列作业(job),一个作业是将程序和数据按预先确定的次序结合在一起,并可以提交给系统的一个组织单位。3 Sept. 2008Confidential1.1.

7、2 操作系统的分类(续)监控程序操作系统实时操作系统分时操作系统多道批处理操作系统 时 间 先 后 适用于多个用户共享系统资源适用于计算中心等较大的计算机系统适用于嵌入式设备和有实时性要求的系统中实时操作系统是我们介绍的重点3 Sept. 2008Confidential1. 2 1. 2 实时系统概述实时系统概述实时系统与非实时系统的本质区别就在于实时系统中的任务以及对外部事件的响应都有时间限制。任务的时间限制有两种:一种是启动时间的限制,如按一定周期启动执行,称为周期性任务;而随机启动执行的任务称为非周期性任务。另一种时间限制为执行时间的限制,即要求任务在规定时间内完成处理内容。3 Sep

8、t. 2008Confidential因为总体来说实时系统是事件驱动的,因此对外部事件响应的时间限制指的是:能对来自外界的作用和信号在限定的时间范围内作出响应。从实时系统的应用来看实时操作系统可以分为两种:和。1. 2 1. 2 实时系统概述实时系统概述3 Sept. 2008Confidential1.2.1 实时系统的特点应用于实时处理系统的上位机和实时查询系统等实时性较弱的实时系统,并且提供了开发、调试、应用一致的环境。应用于实时性要求高的实时控制系统,而且应用程序的开发过程是通过一体一体化编程化编程和交叉开发交叉开发来完成的。嵌入式实时操作系统具有规模小(一般在几K-几十K 内)、可固

9、化、实时性强(在毫秒或微秒数量级上)的特点 。3 Sept. 2008Confidential1.2.2 实时系统外部过程分类 按外部过程的要求划分对于软实时系统来说,未能实时完成处理的结果,仅仅是带来了额外的代价,且通常这种代价能够被接受。软实时 系统硬实时 系统对于硬实时系统来说,未能实时完成处理是坚决不允许的,它往往导致致命危害。如刹车系统、制导系统。3 Sept. 2008Confidential1.2.3 实时系统响应时间分类 按系统响应时间划分强实时 系统一般实时系统弱实时系统响应时间在100ms、10ms、ms或ms级以下响应时间在s、10s以下响应时间在10s以上或更长,随负载

10、变化3 Sept. 2008Confidential1.2.4 实时系统软件结构分类 按软件结构划分 轮循 系统initialize()app1_task() if (condition_1) action_1(); if (condition_2) action_2();. if (condition_n) acition_n();CPU开销大,适合较慢速的简单系统Check for InputDo Something事件驱动系统前后台系统多任务系统多处理器系统3 Sept. 2008Confidential1.2.5 前后台系统中断服务程序处理异步事件,这部分可以看成前台行为,前台也叫中断

11、级。时间相关性很强的关键操作一定是靠中断服务程序来保证的。循环中调用相应的函数完成相应的操作,这部分可以看成后台行为,后台也可以叫做任务级。这种系统在处理的及时性上比实际可以做到的要差。 ISRISRISRISR后台前台中断服务程序时间3 Sept. 2008Confidential1.2.6 多任务系统简单地说,就是能用一个处理器并发(注意,不是同时! )地运行多个任务(程序)的计算机管理系统。并发:由同一个处理器轮换地运行多个任务。或者说是由多个任务轮流地占用处理器这个资源。且在占用这个资源期间,并不一定能够把程序运行完毕。并发过程示意图处理器如何进行程序的切换?3 Sept. 2008C

12、onfidential1.2.7 使用实时操作系统的必要性嵌入式实时操作系统在目前的嵌入式应用中用得越来越广泛,尤其在功能复杂、系统庞大的应用中显得愈来愈重要。在嵌入式应用中,只有把CPU嵌入到系统中,同时又把操作系统嵌入进去,才是真正的计算机嵌入式应用。使用实时操作系统主要有以下几个因素:v 嵌入式实时操作系统提高了系统的可靠性。 v 提高了开发效率,缩短了开发周期。 v 嵌入式实时操作系统充分发挥了CPU处理多任 务潜力。 3 Sept. 2008Confidential1.2.8 实时操作系统的优缺点:在嵌入式实时操作系统环境下开发实时应用程序使程序的设计和扩展变得容易,不需要大的改动就

13、可以增加新的功能。通过将应用程序分割成若干独立的任务模块,使应用程序的设计过程大为简化;而且对实时性要求苛刻的事件都得到了快速、可靠的处理。通过有效的系统服务,嵌入式实时操作系统使得系统资源得到更好的利用。:但是,使用嵌入式实时操作系统还需要额外的ROM/RAM开销,25%的CPU额外负荷,以及内核的费用。 3 Sept. 2008Confidential1. 3 1. 3 常见的嵌入式操作系统常见的嵌入式操作系统 - - 嵌入式嵌入式LINUXLINUX uClinux是一个完全符合GNU/GPL公约的操作系统,完全开放代码。uClinux从Linux2.0/2.4内核派生而来,沿袭了主流L

14、inux的绝大部分特性。它是专门针对没有MMU的CPU,并且为嵌入式系统做了许多小型化的工作。适用于没有虚拟内存或内存管理单元(MMU)的处理器,例如ARM7TDMI。它通常用于具有很少内存或Flash的嵌入式系统。它保留了Linux的大部分优点:。 3 Sept. 2008Confidential1. 3 1. 3 常见的嵌入式操作系统常见的嵌入式操作系统 - WINCE- WINCE 是微软开发的一个开放的、可升级的32位嵌入式操作系统,是基于掌上型电脑类的电子设备操作,它是精简的Windows 95。Windows CE的图形用户界面相当出色。Win CE具有模块化、结构化和基于Win3

15、2应用程序接口以及与处理器无关等特点。Win CE不仅继承了传统的Windows图形界面,并且在Win CE平台上可以使用Windows 95/98上的编程工具(如Visual Basic、Visual C+等)、 3 Sept. 2008Confidential1. 3 1. 3 常见的嵌入式操作系统常见的嵌入式操作系统 - - VxWorksVxWorks VxWorks操作系统是美国 公司于1983年设计开发的一种嵌入式实时操作系统(RTOS),是嵌入式开发环境的关键组成部分。良好的持续发展能力、高性能的内核以及友好的用户开发环境,在嵌入式实时操作系统领域占据一席之地。它以其良好的可靠性

16、和卓越的实时性被广泛地应用在通信、军事、航空、航天等高精尖技术及实时性要求极高的领域中,如卫星通讯、军事演习、弹道制导、飞机导航等,甚至在1997年4月登陆火星表面的火星探测器上也使用到了VxWorks。3 Sept. 2008Confidential1. 3 1. 3 常见的嵌入式操作系统常见的嵌入式操作系统 uITRONuITRON TRON是指“实时操作系统内核(The Real-time Operating system Nucleux)”,它是在1984年由东京大学的Sakamura博士提出的,目的是为了建立一个理想的计算机体系结构。通过工业界和大学院校的合作,TRON方案正被逐步用

17、到全新概念的计算机体系结构中。 uITRON是TRON的一个子方案,它具有标准的实时内核,适用于任何小规模的嵌入式系统,日本国内现有很多基于该内核的产品,其中消费电器较多。目前已成为日本事实上的工业标准。 3 Sept. 2008Confidential1. 3 1. 3 常见的嵌入式操作系统常见的嵌入式操作系统 uC/OS-II uC/OS-II C/OS-II是一个源码公开、可移植、可固化、可裁剪、占先式的实时多任务操作系统。其绝大部分源码是用ANSI C写的,使其可以方便的移植并支持大多数类型的处理器。C/OS-II通过了联邦航空局(FAA)商用航行器认证。自1992年问世以来,C/OS

18、-II已经被应用到数以百计的产品中。C/OS-II占用很少的系统资源,并且在高校教学使用是不需要申请许可证。3 Sept. 2008Confidential嵌入式应用程序网络协议文件系统其它部件C/C+支持库KernelPOSIX支持设备驱动调试工具设备I/O接口板级支持包BSP (Board Support Packet)目标机硬件图 嵌入式操作系统组成1. 4 1. 4 操作系统体系结构操作系统体系结构3 Sept. 2008Confidential思考:嵌入式系统任务的典型结构由于嵌入式系统完成的是对一个装置或设备的控制任务,任务的功能相对固定,因此在一般情况下系统支持的典型任务是一个无

19、限循环结构,C语言任务结构如下:void mytask(void *pdata)for(;)用户编写的代码;从任务的代码来看,任务实质上就是一个返回为void的函数,并在函数无限循环中完成用户的工作。3 Sept. 2008Confidential1. 5 1. 5 操作系统常用的数据结构操作系统常用的数据结构 数组数组数组1、同一数据类型数据的集合;2、占用连续内存空间;3、每个元素都有一个唯一编号;4、数组名是个常地址。uchar a10a0a1a2a3a9aa+1使用上的特点:1、分类存放;2、检索速度快且恒定;3、缺点:占用连续空间大a+2a+3a+9应用:记录同类事物的表3 Sept

20、. 2008Confidential位图是数组的一种特殊应用应用:登记表uchar a10 ;(可以记录80个事物的状态)a0a1a2a3a9aa+1a+2a+3a+91/0D7 D6 D5 D4 D3 D2 D1 D01. 5 1. 5 操作系统常用的数据结构操作系统常用的数据结构 位图位图3 Sept. 2008Confidential1. 5 1. 5 操作系统常用的数据结构操作系统常用的数据结构 结构体结构体1。不同数据类型数据的集合;2。占用连续内存空间;struct Student char age; char*name; char sex;使用上的特点:1。用来描述同一事物的不同

21、属性;2。Struct Student stu10检索速度快且恒定;3 Sept. 2008Confidential1. 5 1. 5 操作系统常用的数据结构操作系统常用的数据结构 链表链表next next 两个元素的链表struct Student Student*next char age; char*name; char sex;1。不同数据类型数据的集合;2。对同类代码进行统一管理,不占用连续内存空间。3 Sept. 2008Confidential1. 5 1. 5 操作系统常用的数据结构操作系统常用的数据结构 链表链表next next 两个元素的链表struct Student

22、 Student*next char age; char*name; char sex;使用上的特点:1。空间上不连续(不需要大量的连续存储空间);2。检索耗费的时间不固定;应用:存放大量的较大的表,类似档案柜3 Sept. 2008Confidential1. 5 1. 5 操作系统常用的数据结构操作系统常用的数据结构 队列队列按照先进先出的规则组织的数据结构可以用数组也可以用链表来实现应用:主要用于对象的排队应用:主要用于对象的排队3 Sept. 2008Confidential1. 5 1. 5 操作系统常用的数据结构操作系统常用的数据结构 堆栈堆栈按照先进后出规则组织的数据结构主要用数

23、组来实现主要用于程序模块的嵌套运行3 Sept. 2008Confidential1. 6 1. 6 操作系统的基本概念操作系统的基本概念代码的临界段也称为临界区,指处理时不可分割的代码,运行这些代码不允许被打断。一旦这部分代码开始执行,则不允许任何中断打入。为确保临界区代码的执行,在进入临界区之前要关中断,而临界区代码执行完成以后要立即开中断。 代码的临界段代码的临界段3 Sept. 2008Confidential1. 6 1. 6 操作系统的基本概念(续)操作系统的基本概念(续)共享资源共享资源可以被一个以上任务使用的资源叫做共享资源。为了防止数据被破坏,每个任务在与共享资源打交道时,必

24、须独占该资源,这叫做互斥。任务A共享资源任务B任务C信号量访问共享资源之前申请信号量其它任务访问受阻而不能使用共享资源得到允许后,才能使用共享资源3 Sept. 2008Confidential1. 6 1. 6 操作系统的基本概念(续)操作系统的基本概念(续)任务的优先级任务的优先级 每个任务都有其优先级(priority),分为静态优先级和动态优先级两种。 应用程序执行过程中各任务优先级不变,则称之为静态优先级。在静态优先级系统中,各任务以及它们的时间约束在程序编译时是已知的。 应用程序执行过程中,如果任务的优先级是可变的,则称之为动态优先级。任务执行时的顺序3 Sept. 2008Con

25、fidential1. 6 1. 6 操作系统的基本概念(续)操作系统的基本概念(续)调度调度 调度器就绪任务队列CPU 剥夺或自愿放弃新任务调度就是决定该轮到哪个任务运行了执行3 Sept. 2008Confidential1. 6 1. 6 操作系统的基本概念(续)操作系统的基本概念(续)调度的时机及方式调度的时机及方式1.当一个新的任务被创建时,是执行新任务还是继续执行父任务?2.当一个任务运行完毕时;3.当一个任务由于I/O、信号量或其他的某个原因被阻塞时;4.当一个I/O中断发生时,表明某个I/O操作已经完成,而等待该I/O操作的任务转入就绪状态;5.当一个时钟节拍中断发生时。不可抢

26、占(不可抢占(non-preemptivenon-preemptive)调度方式)调度方式:一个任务若被选中就一直运行下去,直到它被阻塞(I/O,或正在等待其他任务),或主动地交出CPU。可抢占(可抢占(preemptivepreemptive)调度方式:)调度方式:当一个任务在运行时,调度程序可以打断它。另外,在其他一些情形下,如就绪队列中有新任务的优先级高于当前正运行的任务,也可能立即进行调度。3 Sept. 2008Confidential1. 6 1. 6 操作系统的基本概念(续)操作系统的基本概念(续)非占先式非占先式( (不可剥夺型不可剥夺型) )内核内核非占先式(non-pree

27、mptive) 非占先式内核要求每个任务自我放弃CPU的所有权。非占先式调度法也称作合作型多任务,各个任务彼此合作共享一个CPU。异步事件还是由中断服务来处理。中断服务可以使一个高优先级的任务由挂起状态变为就绪状态。但中断服务以后控制权还是回到原来被中断了的那个任务,直到该任务主动放弃CPU的使用权时,那个高优先级的任务才能获得CPU的使用权。3 Sept. 2008Confidential1. 6 1. 6 操作系统的基本概念(续)操作系统的基本概念(续)占先式(可剥夺型)内核占先式(可剥夺型)内核占先式(preemptive)也称为可剥夺型当系统响应时间很重要时,要使用占先式内核。因此绝大

28、多数商业上销售的实时内核都是占先式内核。最高优先级的任务一旦就绪,总能得到CPU的控制权。当一个运行着的任务使一个比它优先级高的任务进入了就绪状态,当前任务的CPU使用权就被剥夺了,或者说被挂起了,那个高优先级的任务立刻得到了CPU的控制权。如果是中断服务子程序使一个高优先级的任务进入就绪态,中断完成时,中断了的任务被挂起,优先级高的那个任务开始运行。3 Sept. 2008Confidential1. 6 1. 6 操作系统的基本概念(续)操作系统的基本概念(续)- -可重入函数可重入函数( (多次调多次调用结果都正确)用结果都正确)一个不可重入型函数的例子int Temp;void swa

29、p (int *x,int*y)Temp=*x;*x=*y;*y=Temp; 一个可重入型函数的例子void swap (int *x,int*y)int Temp;Temp=*x;*x=*y;*y=Temp;可被一个以上的任务可被一个以上的任务调用而不必担心数据调用而不必担心数据被破坏(对于所有调被破坏(对于所有调用该函数的任务来讲,用该函数的任务来讲,结果都正确)。结果都正确)。3 Sept. 2008Confidential1. 6 1. 6 操作系统的基本概念(续)操作系统的基本概念(续)假如假如TempTemp是全局变量,那么是全局变量,那么swapswap函数是可重入函数函数是可重

30、入函数? ? 可以被一个以上的任务调用,而不必担心数据的破坏。可重入型函数任何时候都可以被中断,一段时间以后又可以运行,而相应数据不会丢失。可重入型函数最好只使用局部变量,即变量保存在CPU寄存器中或堆栈中。3 Sept. 2008Confidential1. 6 1. 6 操作系统的基本概念(续)操作系统的基本概念(续)死锁死锁死锁(deadlock)指两个任务无限期地互相等待对方控制着的资源。设任务T1正独享资源R1 ,任务T2正独享资源R2,此时任务T1又要使用资源R2,任务T2也要使用资源R1,于是两个任务都无法继续执行了。防止死锁的方法,让每个任务: 1)先得到全部需要的资源,再做下

31、一步的工作; 2)用同样的顺序申请多个资源,释放时使用相反顺序;另外内核允许用户定义等待超时,以化解死锁。死锁一般发生在大型多任务系统中,嵌入式系统中不易出现。3 Sept. 2008Confidential1. 6 1. 6 操作系统的基本概念(续)操作系统的基本概念(续)中断中断 中断是一种硬件机制,通知CPU有个异步事件发生了。 中断一旦被识别,CPU保存部分或全部现场(context)后跳转到中断服务子程序(ISR) ,ISR结束后可返回到: 对不可剥夺型内核,返回到被中断了的任务; 对可剥夺型内核,返回到就绪状态优先级最高的任务。 中断使得CPU可以在事件发生时才进行处理,而不必让C

32、PU不断地查询是否有事件发生。 通过开/关中断可以让CPU响应或不响应中断。 在实时环境应注意不要使关中断时间过长。3 Sept. 2008Confidential1. 6 1. 6 操作系统的基本概念(续)操作系统的基本概念(续)时钟节拍时钟节拍 时钟节拍(clock tick)是特定的周期性中断,是实时内核的心脏。 周期性中断之间的时间间隔取决于系统实时性要求,一般为10-100ms。 时钟节拍率越快,系统的额外开销就越大。3 Sept. 2008Confidential1. 7 1. 7 任务运行的基本要素任务运行的基本要素任务代码任务堆栈内存处理器PCSP处理器通过两个指针寄存器(PC

33、和SP)来与任务代码和任务堆栈建立联系并运行它寄存器组程序运行环境运行环境包括了两部分:处理器中的运行环境和内存中的运行环境3 Sept. 2008Confidential1.7.1 多任务运行时的问题任务代码任务堆栈内存处理器PCSP任务代码任务堆栈内存任务代码任务堆栈内存?当有多个任务时,处理器中的运行环境应该怎么办?寄存器组程序运行环境3 Sept. 2008Confidential1.7.2 多任务运行时的问题处理程序 虚拟处理器PCSP 虚拟处理器PCSP 虚拟处理器PCSP 虚拟处理器PC调度器程序处理器PCSP1.在内存中为每个任务创建一个虚拟的处理器由操作系统的调度器按某种规则来进行这两个复制工作复制2.当需要中止当前任务时,则把任务对应的实际处理器复制到虚拟处理器(内

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论