《操作系统原理与实践》-柯敏毅-电子教案 第3章 进程管理

上传人:E**** 文档编号:89409182 上传时间:2019-05-24 格式:PPT 页数:115 大小:685.01KB
返回 下载 相关 举报
《操作系统原理与实践》-柯敏毅-电子教案 第3章  进程管理_第1页
第1页 / 共115页
《操作系统原理与实践》-柯敏毅-电子教案 第3章  进程管理_第2页
第2页 / 共115页
《操作系统原理与实践》-柯敏毅-电子教案 第3章  进程管理_第3页
第3页 / 共115页
《操作系统原理与实践》-柯敏毅-电子教案 第3章  进程管理_第4页
第4页 / 共115页
《操作系统原理与实践》-柯敏毅-电子教案 第3章  进程管理_第5页
第5页 / 共115页
点击查看更多>>
资源描述

《《操作系统原理与实践》-柯敏毅-电子教案 第3章 进程管理》由会员分享,可在线阅读,更多相关《《操作系统原理与实践》-柯敏毅-电子教案 第3章 进程管理(115页珍藏版)》请在金锄头文库上搜索。

1、操作系统原理与实践,主编 柯敏毅 李浩 中国水利水电出版社,第3章 进程管理,3.1 进程的概述 3.2 进程的引入和定义 3.3 进程的状态和进程控制块 3.4 进程控制 3.5 线程的基本概念 3.6 进程调度 3.7 进程同步与互斥 3.8 进程通信 3.9 死锁问题,本章学习目标,在多道程序环境下,程序不能独立运行。作为资源分配和独立运行的基本单位是进程。操作系统所有的特征都是基于进程而体现的。所以,本章的主要问题是: 进程的概念 进程的实体、状态及状态的演变 进程的控制与调度 进程之间的关系协调 进程的通信 死锁问题及解决,返回本章首页,3.1 进程的概述,处理机管理是操作系统的基本

2、管理功能之一,它所关心的是处理机的分配问题。也就是说把CPU(中央处理机)的使用权分给某个程序,通常把这个正准备进入内存的程序称为作业,当这个作业进入内存后我们把它称为进程。处理机管理分为作业管理和进程管理两个阶段去实现处理机的分配,常常又把直接实行处理机时间分配的进程调度工作作为处理机管理的主要内容。 进程通常具有三种状态:运行状态(正在使用CPU)、阻塞状态(等待输入/输出)和就绪状态(等待分配CPU)。,返回本章首页,3.2 进程的引入和定义,3.2.1 进程的引入 3.2.2 进程的定义,返回本章首页,3.2.1 进程的引入,1程序的顺序执行及其特性 2资源共享 3程序的并发执行及其特

3、性,1程序的顺序执行及其特性,由于各类软件的出现及日益复杂化,使得程序设计的概念和方法有了很大的发展,在单道程序工作环境中,我们把一个“程序”理解为“一个在时间上按严格次序前后相继的操作序列”。,一切顺序执行的程序都具有下列特性: (1)顺序性。 (2)资源独占。 (3)结果的无关性。,2资源共享,操作系统提供了两种实现资源共享的方法。 (1)由操作系统统一管理和分配。 (2)由进程自行使用。,3程序的并发执行及其特性,无论是操作系统自身的程序还是用户程序,通常总是存在一些相对独立、但又能并发执行的程序段。由于这些程序段可以被多个用户作业调用,因此可在同一时间间隔内发生。这样一来,某个程序段可

4、能对应多个“计算”,于是程序与“计算”已不具有一一对应关系了。这些“并发程序”就构成了一个“并发环境”。,图3.2 并行计算的先后次序,程序的制约方式有如下两种 : (1)间接制约方式。 这是由于竞争相同资源而引起的,得到资源的程序段可以投入运行,而得不到资源的程序段就是暂时等待,直至获得可用资源时再继续运行 。 (2)直接制约方式。 这通常是在那些逻辑上相关的程序段之间发生的。一般是由于各种程序段要求共享信息引起的 。,返回本节目录,3.2.2 进程的定义,进程与程序的区别和相互关系 : (1)动态性和静态性。 (2)从结构上看每个进程的实体都是由程序段和相应的数据段两部分构成的,这一特征与

5、程序的含义相近。 (3)一个进程可以涉及到一个或几个程序的执行;反之一程序可以对应多个进程,即同一程序段可在不同数据集合上运行,可构成不同的进程 。 (4)并发性。 (5)进程具有创建其他进程的功能。 (6)操作系统中的每一个程序都是在一个进程现场中运行的。,返回本节目录,3.3 进程的状态和进程控制块,3.3.1 进程的状态及状态变化图 3.3.2 进程控制块,返回本章首页,3.3.1 进程的状态及状态变化图,(1)运行状态:进程正在处理机上运行的状态,该进程已获得必要的资源,也获得了处理机,用户程序正在处理机上运行。 (2)阻塞状态:进程等待某种事件完成(例如,等待输入/输出操作的完成)而

6、暂时不能运行的状态,处于该状态的进程不能参加竞争处理机,此时,即使分配给它处理机,它也不能运行。 (3)就绪状态:该进程运行所需的一切条件都得到满足,但因处理机资源个数少于进程个数,所以该进程不能运行,而必须等待分配处理机资源,一旦获得处理机就立即投入运行。,图3.3 典型的进程状态演变图,状态变化 : (1)就绪状态变化到运行状态 。 (2)运行状态变化到就绪状态。 (3)运行状态变化到阻塞状态。 (4)阻塞状态变化到就绪状态。,返回本节目录,3.3.2进程的结构、进程控制块及组织方式,为了刻画进程的动态变化,通常把进程表示为由程序段、私有数据块和进程控制块组成,如图3.4(a)所示。程序部

7、分描述进程本身所要完成的功能,而“私有数据块”是接受程序规定操作的一组存储单元的内容,是操作的对象。进程控制块是在进程创建时产生的,当进程存在于系统时(运行),进程控制块就标识了这个进程。如图3.4(b)所示。,进程控制块是进程存在的标志,当系统或父进程创建一个进程时,实际上就是为其建立一个进程控制块。 进程控制块既能标识进程的存在,又能刻画出进程的动态特征,它是一个进程仅有的被系统真正感知的部分。对操作系统而言,所有进程控制块将构成并发执行控制和维护系统工作的依据。,进程控制块的作用:,返回本节目录,进程控制块PCB的组织方式: 为了进行PCB的有效管理,系统将PCB按照一定的方式组织起来。

8、PCB常用的组织方式有: 1)线性表方式:不论进程的状态如何,将所有的PCB连续地存放在内存的系统区。这种方式适用于系统中进程数目不多的情况。这种方式实现简单,但检索速度慢。 2)索引表方式:该方式是线性表方式的改进,系统按照进程的状态分别建立就绪索引表、阻塞索引表等。 3)链接表方式:系统按照进程的状态将进程的PCB组成队列,从而形成就绪队列、阻塞队列、运行队列等。,3.4 进程控制,3.4.1 原语 3.4.2 进程控制原语,返回本章首页,3.4.1 原语,在操作系统中,某些被进程调用的操作,例如队列操作、对信号灯的操作、检查启动外设操作等,一旦开始执行就不能被中断,否则就会出现操作错误,

9、造成系统混乱。原语就是为实现这些操作而设置的。,图3.5 进程家族示例,返回本节目录,3.4.2 进程控制原语,创建原语 撤消原语 阻塞原语 唤醒原语 挂起原语 激活原语,返回本节目录,3.5 线程的基本概念,3.5.1 线程的引入 3.5.2 线程与进程的关系 3.5.3 线程的类型 3.5.4 线程的特点,返回本章首页,3.5.1 线程的引入,(1)创建进程。系统在创建进程时,必须为之分配其所必需的、除处理机以外的所有资源。如内存空间、I/O设备以及建立相应的PCB结构。 (2)撤消进程。系统在撤消进程时,又必须先对这些资源进行回收操作,然后再撤消PCB结构。 (3)进程切换。在对进程进行

10、切换时,由于要保留当前进程的CPU环境和设置新选中进程的CPU环境,为此需花费不少处理机时间。,返回本节目录,3.5.2 线程与进程的比较,1调度:在传统的操作系统中,拥有资源的基本单位和独立调度、分派的基本单位都是进程。 2并发性:在引入线程的操作系统中,不仅进程之间可以并发执行,而且在一个进程中的多个线程之间亦可并发执行,因而使操作系统具有更好的并发性,从而能更有效地使用系统资源和提高系统吞吐量。 3拥有资源:不论是传统的操作系统,还是设有线程的操作系统,进程都是拥有资源的一个独立单位,它可以拥有自己的资源。 4系统开销:由于在创建或撤消进程时,系统都要为之分配或回收资源,如内存空间、I/

11、O设备等。因此,操作系统所付出的开销将明显地大于在创建或撤消线程时的开销。,返回本节目录,3.5.3 线程的类型,对于线程来说,则可分成两类。 一类是内核支持线程,它们是依赖于内核的。即无论是在用户进程中的线程,还是系统进程中的线程,它们的创建、撤销和切换都由内核实现。在内核中保留了一个线程控制块,内核根据该控制块而感知该线程的存在并对线程进行控制。 另一类是用户级线程。它仅存在于用户级中,对于这种线程的创建、撤销和切换,都不利用系统功能调用来实现,因而这种线程与内核无关。相应地,内核也并不知道有用户级的线程存在。,返回本节目录,比较两种线程的优缺点 : 1线程的调度与切换速度:内核支持线程的

12、调度和切换与进程的调度和切换十分相似。 2系统功能调用:当传统的用户进程调用一个系统功能调用时,要由用户态进入核心态,用户进程将被阻塞。当内核完成系统调用而返回时,才将该进程唤醒,继续执行。 3线程执行时间 :对于只设置了用户级线程的系统,调度是以进程为单位进行的。在采用轮转调度算法时,各个进程轮流执行一个时间片,这对诸进程而言似乎是公平的。,3.5.4 线程的特点,操作系统为每个被创建的进程分配需要的资源,一个进程内的各个线程共享进程的资源。多线程技术有以下明显的优越性: (1)创建线程无需另外分配资源,因而创建线程的速度比创建进程的速度快,且系统开销小。 (2)线程间的互操作在同一地址空间

13、中进行,故在交换信息中不需要其他的通信机制,信息传递的速度更快。 (3)线程能独立执行,能充分利用和发挥处理器和外围设备并行工作的能力。,3.6 进程调度,3.6.1 进程调度的职能 3.6.2 进程调度所用的主要数据结构 3.6.3 进程调度的方式 3.6.4 进程调度算法 3.6.5 综合的调度策略调度用的进程状态切换图,返回本章首页,3.6.1 进程调度的职能,(1)记录系统中所有进程的有关情况。 (2)确定分配处理机的原则。 (3)分配处理机给进程。 (4)从进程收回处理机。,返回本节目录,3.6.2 进程调度所用的主要数据结构,通过3.3.2节的学习我们知道操作系统对进程的管理具体体

14、现在对进程的PCB的管理。同时我们也了解到PCB的几种组织方式:线性表方式、索引表方式和链接表方式。一般情况下,PCB的组织方式采用的是链接表方式。因此,在进程调度中所用的主要数据结构是队列(PCB的链接方式在这里就不详细介绍了,若需要了解请参见3.3.2节)。,3.6.3 进程调度的方式,进程调度的方式可分为非剥夺式和剥夺式。 剥夺式调度是指当系统按照某种原则发现一个比现运行进程更合适、更应该占用CPU的进程时,系统将强迫处于运行状态的进程将CPU的使用权交给这个更适合的进程。常见的剥夺原则有优先权原则、短进程优先原则和时间片原则。采用剥夺式调度的系统能够及时处理紧急事件,它反映出了进程的优

15、先级特征,但这势必会带来较大的系统开销,调度算法也会相对复杂一些。 非剥夺式调度是指一旦某个进程占用了CPU,除非是由于它自身原因自动放弃CPU,否则它将一直运行下去直到完成。这种调度方式算法简单,系统开销也较小,但它不能反映出进程的优先级特征。,3.6.4 进程调度算法,1先来先服务 2轮转调度 3分级轮转法 4优先数法 5多级反馈队列调度算法,1先来先服务 这种调度算法按照进程进入就绪队列的先后顺序来调度进程,到达得越早,其优先数越高。获得处理机的进程,未遇到其他情况时,一直运行下去,系统只需具备一个先进先出的队列,在管理优先数的就绪队列时,这种方法是一种最常见策略,并且在没有其他信息时,

16、也是一种最合理的策略。,2轮转调度 先来先服务的一个重要变形,就是轮转规则。轮转调度算法是系统把所有就绪进程按先后次序排队,处理机总是优先分配给就绪队列中的第一个就绪进程,并分配它一个固定的时间片(如100毫秒)。当该运行进程用完规定的时间片时,被迫释放处理机给下一个处于就绪队列中的第一个进程,分给这个进程相同的时间片,每个运行完时间片的进程,当未遇到任何阻塞时,就回到就绪队列的尾部,并等待下次转到它时再投入运行。于是,只要是处于就绪队列中的进程,按此种算法迟早总可以分得处理机投入运行。,3分级轮转法 所谓分级轮转法就是将先前的一个就绪队列。根据进程的优先数不同划分两个或两个以上的就绪队列,并赋给每个队列不同的优先数。以两个就绪队列为例,一个具有较高优先数,另一个具有较低优先数,前者称为前台队列,后者称为后台队列。,4优先数法 根据已占有处理 机的进程是否可被剥夺而分为优先占有法和优先剥夺法两种 。 优先占有法的原理是:一旦某个最高优先数的就绪进程分得处理机之后,只要不是其自身的原因被阻塞(如要求I/O操作)而不能继续运行

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号