第3章 进程管理_计算机操作系统教程

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第3章进程管理第3章进程管理3.1引言3.2进程的引入和定义3.3进程的状态和进程控制块3.4进程控制3.5线程的基本概念3.6进程调度3.7进程通信3.8死锁问题开始第3章进程管理本章学习目标在多道程序环境下,程序不能独立运行。作为资源分配和独立运行的基本单位是进程。操作系统所有的特征都是基于进程而体现的。所以,本章的主要问题是:进程的概念进程的实体、状态及状态的演变进程的控制与调度进程之间的关系协调进程的通信死锁问题及解决返回本章首页第3章进程管理3.1引言处理机管理是操作系统的基本管理功能之一,它所关心的是处理机的分配问题。也就是说把CPU(中央处理机)的使用权分给某个程序,通常把这个正准备进入内存的程序称为作业,当这个作业进入内存后我们把它称为进程。处理机管理分为作业管理和进程管理两个阶段去实现处理机的分配,常常又把直接实行处理机时间分配的进程调度工作作为处理机管理的主要内容。进程通常具有三种状态:运行状态(正在使用CPU)、阻塞状态(等待输入/输出)和就绪状态(等待分配CPU)。返回本章首页第3章进程管理3.2进程的引入和定义3.2.1进程的引入3.2.2进程的定义返回本章首页第3章进程管理3.2.1进程的引入1.程序的顺序执行及其特性2.资源共享3.程序的并发执行及其特性下一页第3章进程管理1.程序的顺序执行及其特性由于各类软件的出现及日益复杂化,使得程序设计的概念和方法有了很大的发展,在单道程序工作环境中,我们把一个“程序”理解为“一个在时间上按严格次序前后相继的操作序列”。下一页第3章进程管理一切顺序执行的程序都具有下列特性:(1)顺序性。(2)资源独占。(3)结果的无关性。下一页第3章进程管理2.资源共享操作系统提供了两种实现资源共享的方法。(1)由操作系统统一管理和分配。(2)由进程自行使用。下一页第3章进程管理3.程序的并发执行及其特性无论是操作系统自身的程序还是用户程序,通常总是存在一些相对独立、但又能并发执行的程序段。由于这些程序段可以被多个用户作业调用,因此可在同一时间间隔内发生。这样一来,某个程序段可能对应多个“计算”,于是程序与“计算”已不具有一一对应关系了。这些“并发程序”就构成了一个“并发环境”。下一页第3章进程管理图3.2并行计算的先后次序下一页第3章进程管理程序的制约方式有如下两种:(1)间接制约方式。这是由于竞争相同资源而引起的,得到资源的程序段可以投入运行,而得不到资源的程序段就是暂时等待,直至获得可用资源时再继续运行。(2)直接制约方式。这通常是在那些逻辑上相关的程序段之间发生的。一般是由于各种程序段要求共享信息引起的。返回本节目录第3章进程管理3.2.2进程的定义进程与程序的区别和相互关系:(1)动态性和静态性。(2)从结构上看每个进程的实体都是由程序段和相应的数据段两部分构成的,这一特征与程序的含义相近。(3)一个进程可以涉及到一个或几个程序的执行;反之一程序可以对应多个进程,即同一程序段可在不同数据集合上运行,可构成不同的进程。(4)并发性。(5)进程具有创建其他进程的功能。(6)操作系统中的每一个程序都是在一个进程现场中运行的。返回本节目录第3章进程管理3.3进程的状态和进程控制块3.3.1进程的状态及状态变化图3.3.2进程控制块返回本章首页第3章进程管理3.3.1进程的状态及状态变化图(1)运行状态:进程正在处理机上运行的状态,该进程已获得必要的资源,也获得了处理机,用户程序正在处理机上运行。(2)阻塞状态:进程等待某种事件完成(例如,等待输入/输出操作的完成)而暂时不能运行的状态,处于该状态的进程不能参加竞争处理机,此时,即使分配给它处理机,它也不能运行。(3)就绪状态:该进程运行所需的一切条件都得到满足,但因处理机资源个数少于进程个数,所以该进程不能运行,而必须等待分配处理机资源,一旦获得处理机就立即投入运行。下一页第3章进程管理图3.3典型的进程状态演变图下一页第3章进程管理状态变化:(1)就绪状态变化到运行状态。(2)运行状态变化到就绪状态。(3)运行状态变化到阻塞状态。(4)阻塞状态变化到就绪状态。返回本节目录第3章进程管理3.3.2进程控制块为了刻画进程的动态变化,通常把进程表示为由程序段、私有数据块和进程控制块组成,如图3.4(a)所示。程序部分描述进程本身所要完成的功能,而“私有数据块”是接受程序规定操作的一组存储单元的内容,是操作的对象。进程控制块是在进程创建时产生的,当进程存在于系统时(运行),进程控制块就标识了这个进程。如图3.4(b)所示。下一页第3章进程管理下一页第3章进程管理进程控制块是进程存在的标志,当系统或父进程创建一个进程时,实际上就是为其建立一个进程控制块。进程控制块既能标识进程的存在,又能刻画出进程的动态特征,它是一个进程仅有的被系统真正感知的部分。对操作系统而言,所有进程控制块将构成并发执行控制和维护系统工作的依据。进程控制块的作用:返回本节目录第3章进程管理3.4进程控制3.4.1原语3.4.2进程控制原语返回本章首页第3章进程管理3.4.1原语在操作系统中,某些被进程调用的操作,例如队列操作、对信号灯的操作、检查启动外设操作等,一旦开始执行就不能被中断,否则就会出现操作错误,造成系统混乱。原语就是为实现这些操作而设置的。下一页第3章进程管理图3.5进程家族示例返回本节目录第3章进程管理3.4.2进程控制原语1.创建原语2.撤消原语3.阻塞原语4.唤醒原语返回本节目录第3章进程管理3.5线程的基本概念3.5.1线程的引入3.5.2线程与进程的比较3.5.3用户级线程和内核支持线程返回本章首页第3章进程管理3.5.1线程的引入(1)创建进程。系统在创建进程时,必须为之分配其所必需的、除处理机以外的所有资源。如内存空间、I/O设备以及建立相应的PCB结构。(2)撤消进程。系统在撤消进程时,又必须先对这些资源进行回收操作,然后再撤消PCB结构。(3)进程切换。在对进程进行切换时,由于要保留当前进程的CPU环境和设置新选中进程的CPU环境,为此需花费不少处理机时间。返回本节目录第3章进程管理3.5.2线程与进程的比较1.调度:在传统的操作系统中,拥有资源的基本单位和独立调度、分派的基本单位都是进程。2.并发性:在引入线程的操作系统中,不仅进程之间可以并发执行,而且在一个进程中的多个线程之间亦可并发执行,因而使操作系统具有更好的并发性,从而能更有效地使用系统资源和提高系统吞吐量。3.拥有资源:不论是传统的操作系统,还是设有线程的操作系统,进程都是拥有资源的一个独立单位,它可以拥有自己的资源。4.系统开销:由于在创建或撤消进程时,系统都要为之分配或回收资源,如内存空间、I/O设备等。因此,操作系统所付出的开销将明显地大于在创建或撤消线程时的开销。返回本节目录第3章进程管理3.5.3用户级线程和内核支持线程比较两种线程的优缺点:1.线程的调度与切换速度:内核支持线程的调度和切换与进程的调度和切换十分相似。2.系统功能调用:当传统的用户进程调用一个系统功能调用时,要由用户态进入核心态,用户进程将被阻塞。当内核完成系统调用而返回时,才将该进程唤醒,继续执行。3.线程执行时间:对于只设置了用户级线程的系统,调度是以进程为单位进行的。在采用轮转调度算法时,各个进程轮流执行一个时间片,这对诸进程而言似乎是公平的。返回本节目录第3章进程管理3.6进程调度3.6.1进程调度的职能3.6.2进程调度算法3.6.3调度用的进程状态切换图返回本章首页第3章进程管理3.6.1进程调度的职能(1)记录系统中所有进程的有关情况。(2)确定分配处理机的原则。(3)分配处理机给进程。(4)从进程收回处理机。返回本节目录第3章进程管理3.6.2进程调度算法1.先来先服务2.轮转调度3.分级轮转法4.优先数法下一页第3章进程管理1.先来先服务这种调度算法按照进程进入就绪队列的先后顺序来调度进程,到达得越早,其优先数越高。获得处理机的进程,未遇到其他情况时,一直运行下去,系统只需具备一个先进先出的队列,在管理优先数的就绪队列时,这种方法是一种最常见策略,并且在没有其他信息时,也是一种最合理的策略。下一页第3章进程管理2.轮转调度先来先服务的一个重要变形,就是轮转规则。轮转调度算法是系统把所有就绪进程按先后次序排队,处理机总是优先分配给就绪队列中的第一个就绪进程,并分配它一个固定的时间片(如100毫秒)。当该运行进程用完规定的时间片时,被迫释放处理机给下一个处于就绪队列中的第一个进程,分给这个进程相同的时间片,每个运行完时间片的进程,当未遇到任何阻塞时,就回到就绪队列的尾部,并等待下次转到它时再投入运行。于是,只要是处于就绪队列中的进程,按此种算法迟早总可以分得处理机投入运行。下一页第3章进程管理3.分级轮转法所谓分级轮转法就是将先前的一个就绪队列。根据进程的优先数不同划分两个或两个以上的就绪队列,并赋给每个队列不同的优先数。以两个就绪队列为例,一个具有较高优先数,另一个具有较低优先数,前者称为前台队列,后者称为后台队列。下一页第3章进程管理4.优先数法根据已占有处理机的进程是否可被剥夺而分为优先占有法和优先剥夺法两种。优先占有法的原理是:一旦某个最高优先数的就绪进程分得处理机之后,只要不是其自身的原因被阻塞(如要求I/O操作)而不能继续运行时,就一直运行下去,直至运行结束。优先剥夺法的原理是:当一个正在运行的进程即使其时间片未用完,无论什么时候,只要就绪队列中有一个比它的优先数高的进程,优先数高的进程就可以取代以前正在运行的进程,投入运行。下一页第3章进程管理确定进程的优先数通常应考虑如下几个因素:(1)进程类型。(2)运行时间。(3)作业的优先数。(4)动态优先数。返回本节目录第3章进程管理3.6.3调度用的进程状态切换图图3.6调度用的进程状态切换图返回本节目录第3章进程管理3.7进程通信3.7.1临界资源和临界区3.7.2进程的通信方式之一——同步与互斥3.7.3两个经典的同步/互斥问题3.7.4结构化的同步/互斥机制——管程3.7.5进程的通信方式之二——消息缓冲返回本章首页第3章进程管理3.7.1临界资源和临界区在计算机中有许多资源只允许一个进程使用,如果有多个进程同时去使用这类资源就会产生严重的错误。几个进程若共享同一临界资源,它们必须以互斥的方式使用这个临界资源,即当一个进程正在使用临界资源且尚未使用完毕时,则其他进程必须推迟对该资源的进一步操作,在当前进程的使用完成之前,不能从中插进去使用这个临界资源,否则将会造成信息混乱和操作出错。系统中同时存在有许多进程,它们共享各种资源,然而有些资源每次只能让一个进程所使用。返回本节目录第3章进程管理3.7.2进程的通信方式之一——同步与互斥同步:我们把进程间的这种必须互相合作的协同工作关系,称为进程同步。互斥:两个并行的进程A、B,如果当A进行某个操作时,B不能做这一操作,进程间的这种限制条件称为进程互斥,这是引起资源不可共享的原因。第3章进程管理lock和unlock大部分同步方案均采用某个物理实体(如锁、信号灯等)实现通信,进程通信原语中关锁(lock)和开锁(unlock)是最简单的原语。在这两个原语中设置一个公共变量x代表某个临界资源的状态。如:x=0,表示资源可用,x=1,表示资源正在使用。关锁原语1ock(x):L:ifx=1thengotoLelsex:=1;开锁原语unlock(x):x:=0;第3章进程管理图3.7开锁和关锁程序流程图返回本节目录第3章进程管理3.7.3两个经典的同步/互斥问题1.生产者与消费者问题2.读者与写者问题第3章进程管理1.生产者与消费者问题Dijkstra把广义同步问题抽象成一种“生产者与消费者问题”(Producer-consumer-relationship)的抽象模型。事实上,计算机系统中的许多问题都可归结为生产者与消费者问题,生产者与消费者可以通过一个环形缓冲池(见图3.8)联系起来,环形缓冲池由几个大小相等的缓冲块组成,每个缓冲块容纳一个产品。每个

1 / 83
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功