操作系统 第2章教学课件.pptx
《操作系统 第2章教学课件.pptx》由会员分享,可在线阅读,更多相关《操作系统 第2章教学课件.pptx(49页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、操作系统 第2章教学课件第第2 2章章 进程与线程进程与线程目录目录C C O O N N T T E E N N T T S S2.32.32.42.42.52.52.62.6进程的状态与转换进程的状态与转换进程控制进程控制进程的组织进程的组织线程线程2.12.12.22.2进程的引入进程的引入进程的定义及描述进程的定义及描述进程的引入2.1进程的释义进程的释义进程进程是计算机操作系统中最基本的概念之一。操作系统的基本任务是通过进程对资源进行管理。操作系统必须有效控制进程执行,给进程分配资源,允许进程之间共享和交换信息,保护每个进程在运行期间免受其他进程干扰,控制进程的互斥、同步和通信。进程
2、进程是资源分配的基本单位,往往也是独立运行的基本单位。本章主要介绍进程的引入、进程的定义、进程的状态及转换、进程控制及线程等内容。2.1.1 2.1.1 前趋图前趋图在在描描述述一一个个程程序序的的各各部部分分(程程序序段段或或语语句句)间间的的依依赖赖关关系系,或者一个大的计算任务的各个子任务间的因果关系时,常常采用前趋图的方式。前趋图是一个有向无循环图,用于描述程序、程序段或语句执行的先后次序,图中的每个节点可以表示一条语句、一个程序段或一个进程,节点间的有向边表示两个节点之间存在的前趋关系“”。=(Pi,Pj)Pi必须在Pj开始执行之前完成如果(Pi,Pj),可以写成PiPj,则称Pi是
3、Pj的直接前驱,Pj是Pi的直接后继。若存在一个序列PiPjPk,则称Pi是Pk的前驱。在前趋图中,没有前驱的节点称为初始节点,没有后继的节点称为终止节点。图2-1给出了一个具有5个节点的前趋图示例,图中所描述的语句执行次序为:S1首先启动执行,当S1执行完成后才能启动S2及S3执行,S2及S3执行完成后才能启动S4执行,S2及S4执行完成后才能启动S5执行。2.1.2 2.1.2 程序的顺序执行程序的顺序执行人们利用计算机解题时,总要使用“程序”这一概念。程序的基本特性是它的顺序性,即一个程序通常由若干操作组成,这些操作必须按照某种先后次序执行,仅当前一个操作执行完成后才能执行后继操作,这类
4、计算过程就是程序的顺序执行过程。例如,系统中有n个作业,在执行每个作业时总是先输入程序和数据,然后进行计算,最后将所得的结果打印输出。若用Ii、Ci和Pi分别表示作业i的输入、计算及输出操作,则在顺序执行模式下这些操作的执行次序如图2-2所示。2.1.2 2.1.2 程序的顺序执行程序的顺序执行程序的顺序执行程序顺序执行时具有以下特征程序的顺序执行程序顺序执行时具有以下特征:顺序性顺序性。处理机的操作严格按照程序所规定的顺序执行,只有当上一个操作完成后,下一个操作才能开始执行。除了人为的干预造成机器暂时停顿外,前一个动作的结束就意味着后一个动作的开始。封闭性封闭性。程序一旦开始运行,其执行结果
5、就不受外界因素影响。因为程序在运行时独占系统的全部资源,除初始状态外,这些资源的状态只能由本程序改变,并不受任何外界因素的影响。可再现性可再现性。只要程序执行时的初始条件和执行环境相同,则当程序重复执行时,都将获得相同的结果(程序的执行结果与时间无关)。2.1.3 2.1.3 程序的并发执行程序的并发执行如果在计算机系统中任何时刻都只能运行一道作业,则系统的处理能力无法提高,系统资源利用率低下。为了提高计算机系统的处理能力和资源利用率,现代计算机系统中普遍采用了多道程序设计技术,这样使得系统内的多道程序可以并发执行。在图2-2中,虽然同一作业的输入、计算和打印操作必须顺序执行,但对n个作业而言
6、,有些操作是可以并发执行的,如作业1的输入操作完成后即可进行该作业的计算操作;与此同时可以进行作业2的输入操作,即作业1的计算操作和作业2的输入操作可以并发执行。图2-3给出了一批作业并发执行时的情况。在图2-3中,I1先于C1和I2,C1先于P1和C2,P1先于P2;而I2与C1,I3、C2和P1则可以并发执行。程序的并发执行提高了资源利用率,从而提高了系统效率。2.1.3 2.1.3 程序的并发执行程序的并发执行程序在并发执行时,由于它们共享资源或为完成同一项任务而相互合作,致使并发程序之间形成了相互制约关系。这种相互制约的关系导致并发执行程序具有“执行暂停执行执行”这种间断性的活动规律。
7、程序在并发执行时,多个程序共享系统中的各种资源,因而这些资源的状态将由多个程序来改变,致使程序的运行失去封闭性。这样一个程序在执行时,必然会受到其他程序的影响。例如,当处理机被某程序占用时,其他程序必须等待。程序并发执行时,由于失去了封闭性,也将导致失去其运行结果的可再现性。例如,有两个程序A和B,它们共享一个变量N。程序A对变量N执行N=N+1的操作;程序B对变量N执行print(N)的操作。由于程序A和程序B都以各自独立的执行速度向前推进,故程序A的N=N+1操作既可以发生在程序B的print(N)操作之前,也可以发生在print(N)操作之后。程序的并发执行虽然提高了系统的处理能力和资源
8、利用率,但也带来了一些新问题,产生了一程序的并发执行虽然提高了系统的处理能力和资源利用率,但也带来了一些新问题,产生了一些与顺序执行时不同的特征。些与顺序执行时不同的特征。间断性间断性失去封闭性失去封闭性不可再现性不可再现性程序并发执行时具有结果不可再现的特征,这并不是用户希望看到的结果。为此,要求程序在并发执行时必须保持封闭性和可再现性,这是正确性的要求。于是我们需要寻找程序并发执行时具有可再现性的条件。1966年,Bernstein首先给出了程序并发执行的条件。为了描述方便起见,先定义一些表示方法。R(Pi)=a1,a2,am:表示程序段Pi在执行期间所需引用的所有变量的集合,称为读集。W
9、(Pi)=b1,b2,bn:表示程序段Pi在执行期间要改变的所有变量的集合,称为写集。若两个程序段P1和P2能满足下述3个条件,则它们就能并发执行并且其结果具有可再现性。因该条件由Bernstein提出,故又称Bernstein条件。(1)R(P1)W(P2)=。(2)R(P2)W(P1)=。(3)W(P1)W(P2)=。并发执行可再现性条件2.1.4 2.1.4 程序并发执行的条件程序并发执行的条件进程的定义及描述2.22.2.1 2.2.1 进程的定义进程的定义进程的概念是在20世纪60年代初期,首先由麻省理工学院的MULTICS系统和IBM公司的TSS/360系统引入的。自那之后,有许多
10、人对进程下过各式各样的定义,但迄今为止进程还没有统一的定义和名称,麻省理工学院称进程(process),IBM公司称任务(task),在本书中我们采用进程这一名称。下面给出几种比较容易理解又能反映进程实质的定义定义。进程是程序在处理机上的一次执行过程。进程是可以和其他计算并行执行的计算。进程是程序在一个数据集合上的运行过程,是系统进行资源分配和调度的一个独立单位。进程是一个具有一定功能的程序关于某个数据集合的一次运行活动。动态性动态性。进程是程序在处理机上的一次执行过程,因而是动态的。动态性还表现在它因创建而产生,由调度而执行,因得不到资源而暂停执行,最后由撤销而消亡。并发性并发性。多个进程实
11、体同时存在于内存中,在一段时间内都得到运行。引入进程的目的就是使程序能与其他程序并发执行,以提高资源利用率。独立性独立性。进程是能独立运行的基本单位,也是系统进行资源分配和调度的独立单位。异步性异步性。系统中的各进程以独立、不可预知的速度向前推进。结构性结构性。为了描述和记录进程的运动变化过程,并使之能正确运行,应为每个进程配置一个进程控制块。这样,从结构上看,每个进程都由程序段、数据段和一个进程控制块组成。2.2.2 2.2.2 进程的特征进程的特征在多道程序系统中,多个进程并发执行使得进程具有以下几个基本特征。在多道程序系统中,多个进程并发执行使得进程具有以下几个基本特征。进程进程是动态的
12、,程序是静态的。进程是程序的一次执行过程,程序是一组代码的集合。进程进程是暂时的,程序是永久的。进程是一个状态变化的过程,程序可以长久保存。进程进程与程序的组成不同。进程的组成包括程序、数据和进程控制块。进程进程与程序是密切相关的。通过多次执行,一个程序可以对应多个进程;通过调用关系,一个进程可以包括多个程序。进程进程可创建其他进程,而程序并不能形成新的程序。代码集合程序2.2.3 2.2.3 进程和程序的关系进程和程序的关系进程和程序是两个密切相关但又不同的概念,它们在以下几个方面存在区别和联系。进程和程序是两个密切相关但又不同的概念,它们在以下几个方面存在区别和联系。2.2.4 2.2.4
13、 进程控制块进程控制块进进程程控控制制块块(process control block,PCB)是进程实体的一部分,是进程存在的唯一标志。为了准确地描述每个进程,并对进程进行有效的控制与管理,系统为每个进程创建了一个进程控制块。系统通过进程控制块感知进程的存在,通过进程控制块中各项变量的变化了解进程的运行状况,根据进程控制块中各项信息对进程进行调度、控制和管理。因此,当进程创建时,系统为它建立一个PCB:当进程在运行过程中状态发生变化时,系统将其运行信息记录在PCB中;当进程执行完毕时,系统回收其PCB。所以PCB是进程在其生命期间的管理档案。进程标识符进程标识符。它是唯一标识进程的一个标识符
14、或整数,以使该进程区别于系统内部的其他进程。在进程创建时,由系统为进程分配唯一的进程标识符。进程当前状态进程当前状态。说明进程的当前状态,以作为进程调度程序分配处理机的依据。进程队列指针进程队列指针。用于记录PCB队列中下一个PCB的地址。系统中的PCB可能组织成多个队列,如就绪队列、阻塞队列等。程序和数据地址程序和数据地址。指出进程的程序和数据在内存或外存中的存放地址。进程优先级进程优先级。反映进程获得CPU的优先级别,优先级高的进程可以优先获得处理机。CPUCPU现场保护区现场保护区。当进程因某种原因释放处理机时,CPU现场信息被保存在PCB的CPU现场保护中,以便在进程重新获得处理机后能
15、恢复执行。通常被保护的信息有通用寄存器、程序计数器、程序状态字等内容。通信信息通信信息。记录进程在执行过程中与其他进程所发生的信息交换情况。家族关系家族关系。有的系统允许进程创建子进程,从而形成一个进程家族树。在PCB中必须指明本进程与家族的关系,如它的子进程与父进程的标识。资源清单资源清单。列出进程所需资源及当前已分配资源。2.2.4 2.2.4 进程控制块进程控制块虽然不同操作系统中进程控制块的结构不同,但通常都包括以下内容。虽然不同操作系统中进程控制块的结构不同,但通常都包括以下内容。进程的状态与转换2.32.3.1 2.3.1 进程的基本状态进程的基本状态进程已获得了除处理机以外的所有
16、资源,一旦获得处理机就可以立即执行,此时进程所处的状态为就绪状态。处于就绪状态的进程已经具备了运行条件,但由于其他进程正占用处理机,它暂时不能运行而处于等待分配处理机的状态。在操作系统中处于就绪状态的进程可以有多个。执行状态又称运行状态。当一个进程获得必要的资源并正在处理机上执行时,该进程所处的状态为执行状态。处于执行状态的进程数目不能大于处理机数目,在单处理机系统中处于执行状态的进程最多只有一个。阻塞状态又称等待状态、睡眠状态。正在执行的进程,由于发生某事件而暂时无法执行下去(如等待输入/输出完成)时,进程所处的状态为阻塞状态。处于阻塞状态的进程尚不具备运行条件,这时即使处理机空闲,它也无法
17、使用。系统中处于这种状态的进程可以有多个。就绪状态就绪状态执行状态执行状态阻塞状态阻塞状态从图从图2 2-4 4中可以看出中可以看出,处于就绪状态的进程,当进程调度程序为之分配了处理机后,该进程便由就绪状态转变为执行状态;正在执行的进程因等待某事件发生时,如进程提出输入/输出请求并等待输入/输出操作完成,则进程由执行状态变为阻塞状态;处于阻塞状态的进程,当其等待的事件已经发生时,如输入/输出操作完成,则进程由阻塞状态转变为就绪状态;正在执行的进程,如果因时间片用完而暂停执行,则该进程便由执行状态转变为就绪状态。2.3.1 2.3.1 进程的基本状态进程的基本状态2.3.2 2.3.2 进程的创
18、建状态和退出状态进程的创建状态和退出状态在不少系统中,除了上述3种基本状态之外,又增加了两种状态,即创建状态和退出状态,如图2-5所示。创建状态创建状态。进程刚被创建,尚未被放入就绪队列,此时进程处于创建状态。退出状态退出状态。进程已结束运行,释放了除进程控制块之外的其他资源,此时进程退出状态。从图2-5中可以看出,当系统有足够的资源能够接纳新进程时,将处于创建状态的进程移入就绪队列;当一个进程执行完成或因失败而终止时,进入退出状态。对于任何一个进程来说,它只能处于创建状态和退出状态一次,但可以在执行状态、就绪状态和阻塞状态之间多次转换。2.3.3 2.3.3 进程的挂起状态进程的挂起状态系统
19、出故障或某些功能受到破坏时,就需要暂时将系统中的进程挂起,以便系统故障消除后,再将这些进程恢复到原来的状态。系统中有时负荷过重(进程数过多),资源数相对不足,从而造成系统效率下降。此时需要挂起一部分进程以调整系统负荷,等系统中负荷减轻后再恢复被挂起进程的运行。用户检查自己作业的中间执行情况和中间结果时,因与预期想法不符而产生怀疑,这时用户要求挂起其进程,以便进行某些检查和改正。在操作系统中引入了虚拟存储管理技术后,需要区分进程是驻留在内存还是外存时,可以用挂起表示驻留在外存。图图2 2-6 6给出了具有挂起状态的进程状态转换图给出了具有挂起状态的进程状态转换图。与图2-4相比,图26对就绪状态
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 操作系统 第2章教学课件 教学 课件
限制150内