书签 分享 收藏 举报 版权申诉 / 93

类型《嵌入式实时操作系统uC OS-2教程》课件第2章.ppt

  • 文档编号:2336499
  • 上传时间:2024-09-02
  • 格式:PPT
  • 页数:93
  • 大小:1,008.50KB
  • 配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    嵌入式实时操作系统uC OS-2教程 嵌入式实时操作系统uC OS-2教程课件第2章 嵌入式 实时 操作系统 uC OS 教程 课件
    资源描述:

    1、第2章 嵌入式操作系统中的基本概念第2章 嵌入式操作系统中的基本概念2.1 前后台系统前后台系统2.2 调度调度 2.3 临界区临界区 2.4 进程与线程进程与线程2.5 任务与多任务任务与多任务 2.6 任务切换任务切换 2.7 死锁死锁 2.8 不可剥夺型内核不可剥夺型内核 2.9 可剥夺型内核可剥夺型内核 2.10 可重入性可重入性 2.11 优先级反转优先级反转 2.12 事件事件 2.13 互斥互斥 2.14 同步同步 2.15 通信通信 2.16 对存储器的要求对存储器的要求 习题习题 第2章 嵌入式操作系统中的基本概念2.1 前前后后台台系系统统如图2.1所示,前后台系统一般由前

    2、台(Foreground)和后台(Background)两部分程序组成。后台是一个无限循环的应用程序,循环中调用相应的任务函数完成相应的操作,各个任务依次运行,没有调度,运行的次序不能改变。前台是中断服务程序,处理异步事件。后台一般也叫任务级,前台也叫中断级。时间相关性要求很强的关键操作一定要靠中断服务来保证,但是中断服务提供的信息并不能马上得到处理,必须要一直等到后台程序运行到相应的处理任务时才能处理,这种系统对处理信息的及时性比较差,最坏情况取决于整个循环的执行时间。这个指标称做任务级响应时间。第2章 嵌入式操作系统中的基本概念由于循环的执行时间不是常数,因此程序经过某一特定部分的准确时间

    3、也是不能确定的。如果程序修改了,循环的时序也会受到影响。第2章 嵌入式操作系统中的基本概念图2.1 前后台系统 第2章 嵌入式操作系统中的基本概念前后台系统也称为超循环系统。一般不复杂且实时性要求不高的小系统很适合采用前后台系统,例如微波炉、电话机、玩具等。在另外一些基于省电的应用中,由于平时微处理器处在停机状态,所有的事都靠中断服务来完成,因此也常常采用前后台系统模式。第2章 嵌入式操作系统中的基本概念2.2 调调 度度调度是内核的主要职责之一,它为任务分配资源和时间,决定任务运行的次序,从而使系统满足特定的性能要求。基本的调度算法有先来先服务(FCFS)、最短周期优先(SBF)、优先级法(

    4、Priority)、轮转法(Round-Robin)等。调度的基本方式有可剥夺型(占先式)和不可剥夺型(非占先式)。多数实时内核是基于优先级调度的多种方法的复合。第2章 嵌入式操作系统中的基本概念2.3 临临 界界 区区嵌入式系统中的资源是指为任务所占用的任何实体,它可以是硬件设备,如打印机、键盘、显示器、I/O端口、RAM、ROM、中断源和时钟等,也可以是软件,如变量、结构和数组等。共享资源是指被两个或者更多任务所使用的资源。第2章 嵌入式操作系统中的基本概念任何时候都只允许一个任务访问的资源称为临界资源,用于访问临界资源的代码段称为临界区或临界段。这部分代码不允许多个并发任务交叉执行,否则

    5、会产生严重后果,比如进入中断后的现场保护代码等。为确保临界区代码的安全执行,在进入临界区之前要关中断,而临界区代码执行完以后要立即开中断。第2章 嵌入式操作系统中的基本概念2.4 进进程程与与线线程程22.4.1 进程的概念进程的概念在现代计算机系统中,为了充分利用系统资源,提高CPU效率,通常采用多道程序设计技术,使CPU不再为某一程序独占使用。多道程序设计即指允许多个程序同时驻留计算机内存并运行。在多道程序环境下,程序的并发运行代替了原来程序的顺序运行,使得程序与计算不再一一对应,各个程序之间由于需要使用共享系统资源,往往存在相互制约的关系,程序的活动也不再处于一个封闭的系统内,而是出现了

    6、许多新的特征,即独立性、并发性、动态性和相互制约性。第2章 嵌入式操作系统中的基本概念在这种情况下,程序这个静态概念已经不能准确地描述程序活动的内涵了。因此,20世纪60年代中期的MULTICS系统的设计者和以E.W.Dijkstra为首的T.H.E系统的设计者广泛地使用“进程”(Process)这一术语来描述系统和用户的程序活动,而IBM公司的CTSS/360系统使用了另一术语“任务”(Task),两者意义相同。第2章 嵌入式操作系统中的基本概念进程是操作系统中最基本、最重要的概念,但目前还没有出现一个十分确切、令人满意的统一定义。如下是几种常见的定义:(1)E.W.Dijkstra定义:行

    7、为的一个规则叫做程序,程序在处理器上执行时所发生的活动叫做进程。(2)Madnick和Donovan定义:进程是可以与其它进程并发执行的计算部分。(3)J.H.Saltzer定义:一个进程是由伪处理机执行的一个程序。第2章 嵌入式操作系统中的基本概念进程是操作系统中可以独立运行的单位,通常由三部分组成,即程序、数据集合和进程控制块。进程具有两种属性:一是可拥有资源的独立单位;二是可以独立调度和分配的基本单位。正是因为同时具备这两个基本属性,进程才成为能够独立运行的基本单位,从而构成进程并发执行的基础。第2章 嵌入式操作系统中的基本概念2.4.2 线程的概念线程的概念为了提高计算效率,提出了进程

    8、的概念,但随着计算机技术的飞速发展,人们逐步发现进程拥有较多的资源,在创建、撤销和切换的过程中,系统为之付出的开销还是很大,进程这一概念已经不能满足高效率地使用系统资源的需求了。在最大限度地减小系统开销的前提下,如何使多个程序更好地并发执行,已经成为操作系统所追求的重要目标。于是,人们想到将进程的两个属性分离开来,由操作系统分别处理,使具有调度和分配属性的基本单元不再拥有独立的资源,使之轻装运行,而拥有独立资源的基本单位,又不频繁地进行切换。第2章 嵌入式操作系统中的基本概念在这种思想的指导下,于20世纪80年代中期提出了比进程更小的独立运行单位线程的概念。近年来,线程的概念已广为应用,不仅在

    9、大量操作系统中被引用,而且在部分数据库和应用软件中,也引入了这一概念以期改善系统性能。线程是进程中的一个实体,是CPU调度和分配的基本单位,它基本上不拥有资源,只拥有维持运行的最少资源(如寄存器、堆栈、程序计数器等)。进程可以独立运行,同一进程可以拥有多个线程,每个线程都可以共享同一进程中的所有资源,线程可以在进程中并发执行,但不能脱离进程独立运行。线程具有许多进程所具有的特征,所以又称为轻量级进程(Light-Weight Process)或进程元。第2章 嵌入式操作系统中的基本概念2.5 任务与多任务任务与多任务任务在不同的应用领域具有不同的意义,它既可以是一个独立装载的程序,也可以是全部

    10、程序中的一段。在实时操作系统中,有时会用线程或者进程来替代任务。进程是一个完全独立的程序,有自己的地址空间;线程一般定义为具有特定目的的半独立程序段,是进程中的一个子程序,所有线程共用相同进程地址空间,合并起来构成一个完整的应用程序。线程管理的开销是很小的。大多数嵌入式系统不具备担负面向进程操作系统的内存开销,小的微处理器也不具备支持面向进程操作系统的硬件结构。基于上述原因,绝大多数嵌入式实时操作系统的任务都采用了线程模式。第2章 嵌入式操作系统中的基本概念多任务是指用户可以在同一时间内运行多个应用程序,每个应用程序就是一个任务。对于单CPU系统来说,由于CPU不能在同一时刻运行多个程序,因此

    11、多任务只是在宏观上看起来像是并发运行,而在微观上各个任务还是串联执行的。第2章 嵌入式操作系统中的基本概念多任务的并发执行通常依赖于一个多任务操作系统,多任务操作系统的核心是系统调度器,它使用任务控制块(Task Control Block,TCB)来管理任务调度功能。如图2.2所示,TCB用来保存任务的当前状态、优先级、要等待的事件或资源、任务程序代码的起始地址、初始堆栈指针等信息。一旦任务建立,TCB就被赋值,当任务的CPU使用权被剥夺时,TCB用来保存该任务的状态;当任务重新得到CPU使用权时,该任务的信息将从它的TCB中取出,放入各个寄存器中,TCB能确保任务从当时被中断的那一点丝毫不

    12、差地继续执行。TCB全部驻留在内存中。第2章 嵌入式操作系统中的基本概念图2.2 多任务第2章 嵌入式操作系统中的基本概念实时应用程序设计的关键就是确定如何把问题分割成多个任务,以及如何确定每个任务的优先级和任务之间的通信。典型地,每个任务都是一个无限的循环,每个任务都处在休眠态、就绪态、运行态、挂起态(等待某一事件发生)和被中断态等五种状态之一。休眠态是指任务驻留在内存中,还没有交给内核管理,不被多任务内核所调度。第2章 嵌入式操作系统中的基本概念就绪态是指任务已经做好了运行的准备,可以运行,但由于有更高优先级的任务正控制着CPU的使用权,因此该任务暂时还不能运行。运行态是指任务控制了CPU

    13、的使用权,正在运行中。挂起态也叫做等待事件态,指任务在等待某一事件的发生,例如等待某外设的I/O操作,等待某共享资源的释放,等待定时脉冲的到来,或等待超时信号的到来以结束目前的等待状态,等等。被中断态是指发生中断时,CPU转入相应的中断服务,原来正在运行的任务暂时放弃CPU的使用权,就进入了被中断状态。第2章 嵌入式操作系统中的基本概念2.6 任任 务务 切切 换换所谓任务切换(Context Switch或者Task Switch),实际上是模拟一次中断过程,从而实现CPU使用权的转移。每个任务都有自己独立的堆栈,称之为任务栈,用于保存任务的当前状态和所有寄存器内容。当内核决定运行另一个任务

    14、时,首先入栈,将当前任务用到的所有寄存器内容以及当前状态保存到自己的任务栈中去,然后像中断返回一样,将下一个将要运行的任务的所有寄存器内容和状态从该任务的任务栈中弹出,重新装入CPU的寄存器,任务即恢复到挂起前的状态,并开始执行。这个过程就是任务切换。第2章 嵌入式操作系统中的基本概念任务切换所需要的时间叫任务切换时间,它取决于CPU有多少寄存器要进出堆栈。任务切换过程增加了CPU的额外负荷,CPU的内部寄存器越多,额外负荷就越重。实时内核的性能不应该以每秒钟能做多少次任务切换来评价。第2章 嵌入式操作系统中的基本概念2.7 死死 锁锁死锁又称抱死,是指两个或者更多的任务相互等待对方占有的资源

    15、而无限期地僵持下去的局面。例如:任务A正独享资源R1,任务B正在独享资源R2,而此时任务A又要独享资源R2,任务B也要独享资源R1,于是哪个任务都无法继续执行了,死锁就发生了。产生死锁的根本原因在于:系统资源不足,任务运行推进的顺序不合理,资源分配不恰当等。第2章 嵌入式操作系统中的基本概念死锁产生有四个必要的条件:互斥条件,系统中某些资源只能独占使用;非抢占条件,系统中某些资源仅能被它的占有者所释放,而不能被别的任务强行抢占;占有并等待条件,系统中的某些任务已占有了分给它的资源,但仍然等待其它资源;循环等待条件,系统中由若干任务形成的环形请求链,每个任务均占有若干种资源中的某一种,同时还要求

    16、(链上)下一个任务所占有的资源。必要的条件具备后,当任务推进顺序不合理时,死锁就发生了。死锁预防的基本思想:打破产生死锁的四个必要条件中的一个或几个。第2章 嵌入式操作系统中的基本概念预防死锁的策略:资源预先分配策略、资源有序分配策略。(1)资源预先分配策略:打破占有且申请条件,任务在运行前一次性地向系统申请它所需要的全部资源,如果所请求的全部资源得不到满足,则不分配任何资源,此任务暂不运行。(2)资源有序分配策略:打破循环等待条件,把资源事先分类编号,按序分配,使任务在申请、占用资源时不会形成环路。第2章 嵌入式操作系统中的基本概念一旦发生死锁,可用资源剥夺或任务撤消等方法解除死锁。大多数内核提供了等待超时功能,以此化解死锁。死锁一般发生在大型多任务系统中,在嵌入式系统中不易出现。第2章 嵌入式操作系统中的基本概念2.8 不可剥夺型内核不可剥夺型内核不可剥夺型内核(Non-Preemptive Kernel)的特点是运行的任务占有CPU的绝对使用权,若不自我放弃,准备就绪的高优先级任务不能抢占CPU的使用权。不可剥夺型调度法也称做合作型多任务,各个任务彼此合作共享一个CPU。正在运行

    展开阅读全文
    提示  兔兜文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:《嵌入式实时操作系统uC OS-2教程》课件第2章.ppt
    链接地址:https://www.tudouwenku.com/doc/2336499.html

    若发现您的权益受到侵害,请立即联系客服,我们会尽快为您处理!

    copyright@2008-2024 兔兜文库 版权所有

    鲁公网安备37072502000182号  ICP备案号:鲁ICP备2021021588号-1  百度保障

    兔兜文库
    收起
    展开