欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    操作系统的基本概念.ppt

    • 资源ID:6049814       资源大小:2.39MB        全文页数:56页
    • 资源格式: PPT        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    操作系统的基本概念.ppt

    嵌入式操作系统原理,课程结构,第一章:操作系统的基本概念,目标:本章旨在向学员介绍操作系统基本概念,通过本章的学习,学员应该掌握如下知识: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从Linux2.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.6.1 多任务运行时的问题,处理器,?,当有多个任务时,处理器中的运行环境应该怎么办?,寄存器组,程序运行环境,1.6.2 多任务运行时的问题处理,程序,在内存中为每个任务创建一个虚拟的处理器,由操作系统的调度器按某种规则来进行这两个复制工作,寄存器组,寄存器组,也就是说,任务的切换是任务运行环境的切换,1.6.3 虚拟处理器,虚拟处理器应该存储的主要信息:1。程序的断点地址(PC)2。任务堆栈指针(SP)3。程序状态字寄存器(PSW)4。通用寄存器内容5。函数调用信息(已存在于堆栈),另外再用一个数据结构保存任务堆栈指针(SP),这个数据结构叫做任务控制块,它除了保存任务堆栈指针之外还要负责保存任务其他信息。,这些内容通常保存在任务堆栈中,这些内容也常叫做任务的上下文。,任务控制块是由操作系统另行构造的一个数据结构,每个任务都有一个。,任务控制块结构的主要成员typedef struct os_tcb OS_STK*OSTCBStkPtr;/指向任务堆栈栈顶的指针 INT8U OSTCBStat;/任务的当前状态标志 INT8U OSTCBPrio;/任务的优先级别 OS_TCB;,其实,程序切换的关键是把程序的私有堆栈指针赋予处理器的堆栈指针SP,实质上系统是通过SP的切换来实现程序的切换的。,要建立一个概念:具有控制块的程序才是一个可以被系统所运行的任务。程序代码、私有堆栈、任务控制块是任务的三要件。任务控制块提供了运行环境的存储位置。,1.6.4 任务的切换,获得待运行任务的任务控制块,如何获得待运行任务的任务控制块?,1.6.4 关于任务要素的小结,一个完整的任务应该有如下三部分:任务代码(程序)任务的私有堆栈(用以保护运行环境)任务控制块(提供私有堆栈也是虚拟处理器的位置)这些都是任务方应该提供的基本信息。,术语,谢谢,

    注意事项

    本文(操作系统的基本概念.ppt)为本站会员(小飞机)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开