第2章嵌入式操作系统中的基本概念讲述.ppt
文本预览下载声明
第2章 嵌入式操作系统中的基本概念 前后台系统 内核 调度 可重入性 临界区 优先级反转 进程与线程 事件 任务与多任务 互斥 任务切换 同步 可剥夺与不可剥夺 通信 对存储器的要求 2.1 前后台系统 2.2 调度 一、调度的概念 调度是内核的主要职责之一,为任务分配资源和时间,决定任务运行的次序,从而使系统满足特定的性能要求。 二、基本的调度算法 先来先服务FCFS 最短周期优先SBF 优先级法Priority 轮转法(Round-Robin)等。 三、调度的基本方式 可剥夺型(占先式) 不可剥夺型(非占先式) 多数实时内核是基于优先级调度的多种方法的复合。 2.3 临界段 一、资源 嵌入式系统中的资源是指为任务所占用的任何实体,它可以是 硬件设备:如打印机、键盘、显示器、I/O端口、RAM、ROM、中断源和时钟等 也可以是软件:如变量、结构和数组等。 二、共享资源 是指被两个或者更多任务所使用的资源。 三、临界资源 任何时候都只允许一个任务访问的资源称为临界资源 四、临界段代码 用于访问临界资源的代码段称为临界区或临界段 不允许多个并发任务交叉执行,否则会产生严重后果,比如进入中断后的现场保护代码等。 为确保临界区代码的安全执行,在进入临界区之前要关中断,而临界区代码执行完以后要立即开中断。 2.4 进程与线程 一、提出的背景 在现代计算机系统中,为了提高CPU、内存和IO等设备的利用率,增加系统的吞吐率,充分发挥计算机部件的并行性,通常采用多道程序设计技术。 多道程序设计技术是指允许多个程序同时驻留计算机内存并进行计算的方法。 在多道程序环境下,CPU不再被某个程序独占使用,并发运行替代了原来的顺序运行,程序与计算之间也不再呈现一一对应的规律。各道程序之间由于需要共享系统资源,往往存在相互制约的关系,程序的活动也不再处于一个封闭的系统内,而是出现了许多新的特征:独立性、并发性、动态性和相互制约性。 在这种情况下,程序这个静态概念已经不能准确地描述程序活动的内涵了。 (1) E.W.Dijkstra定义为:行为的一个规则叫做程序,程序在处理器上执行时所发生的活动叫做进程; (2) Madnick和Donovan定义为:进程是可以与其它进程并发执行的计算部分; (3) J.H.Saltzer定义为:一个进程是由伪处理机执行的一个程序。 2.4.2 线程的基本概念 (1) 使具有调度和分配属性的基本单元不再拥有独立的资源,使之轻装运行。 (2) 使拥有独立资源的基本单位,又不频繁地进行切换。 三、概念 (1) 定义 线程是进程中的一个实体,是CPU调度和分配的基本单位,它基本上不拥有资源,只拥有维持运行的最少资源(如寄存器、堆栈、程序计数器等)。 (2) 特点 进程可以独立运行,同一进程可以拥有多个线程,每个线程都可以共享同一进程中的所有资源,线程可以在进程中并发执行,但不能脱离进程独立运行。线程具有许多进程所具有的特征,所以又称为轻量级进程(Light-Weight Process)或进程元。 2.5 任务与多任务 任务在不同的应用领域具有不尽相同的意义,它即可以是一个独立装载的程序,也可以是全部程序中的一段。 在实时操作系统中,有时会用线程或者进程来替代任务。 进程是一个完全独立的程序,有自己的地址空间; 线程一般定义为具有特定目的的半独立程序段,是进程中的一个子程序,所有线程共用相同进程地址空间,合并起来构成一个完整的应用程序。 线程管理的开销是很小的。大多数嵌入式系统不具备担负面向进程操作系统的内存开销,小的微处理器也不具备支持面向进程操作系统的硬件结构。 基于上述原因,绝大多数嵌入式实时操作系统的任务都采用了线程模式。 多任务是指用户可以在同一时间内运行多个应用程序,每个应用程序就是一个任务。 对于单CPU系统来说,由于CPU不能在同一时刻运行多个程序,所以多任务只是在宏观上看起来像是并发运行,而在微观上各个任务还是串联执行的。 2.5 任务与多任务 多任务的并发执行通常依赖于一个多任务操作系统,多任务操作系统的核心是系统调度器,它使用任务控制块(Task Control Block,TCB)来管理任务调度功能。 如图2.2所示,TCB用来保存任务的当前状态、优先级、要等待的事件或资源、任务程序码的起始地址、初始堆栈指针等信息。 一旦任务建立,TCB就被赋值,当任务的CPU使用权被剥夺时,TCB用来保存该任务的状态;当任务重新得到CPU使用权时,该任务的信息将从它的TCB中取出,放入各个寄存器中,TCB能确保任务从当时被中断的那一点丝毫不差地继续执行。TCB全部驻留在内存中。 优点:多任务运行使CPU的利用率得到最大的发挥,并使应用
显示全部