《《进程及进程》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《进程及进程》PPT课件.ppt(124页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第第4章章进程及进程管理进程及进程管理进程及进程管理进程及进程管理进程及进程管理进程及进程管理进程的引入进程的引入进程的引入进程的引入进程概念进程概念进程概念进程概念进程控制进程控制进程控制进程控制进程的相互制约关系进程的相互制约关系进程的相互制约关系进程的相互制约关系进程同步机构进程同步机构进程同步机构进程同步机构进程互斥与同步的实现进程互斥与同步的实现进程互斥与同步的实现进程互斥与同步的实现1进程及进程管理进程及进程管理进程及进程管理进程及进程管理主要内容主要内容主要内容主要内容进程引入进程引入进程及进程管理进程及进程管理进程及进程管理进程及进程管理进程的引入进程的引入进程的引入进程的引入
2、21.顺序程序及特点顺序程序及特点 (1)(1)计算计算计算计算 程序的一次执行过程称为一个计算,它由许多简单操作程序的一次执行过程称为一个计算,它由许多简单操作程序的一次执行过程称为一个计算,它由许多简单操作程序的一次执行过程称为一个计算,它由许多简单操作 所组成。所组成。所组成。所组成。(2)(2)程序的顺序执行程序的顺序执行程序的顺序执行程序的顺序执行 一个计算的若干操作必须按照严格的先后次序顺序地执一个计算的若干操作必须按照严格的先后次序顺序地执一个计算的若干操作必须按照严格的先后次序顺序地执一个计算的若干操作必须按照严格的先后次序顺序地执 行,这类计算过程就是程序的顺序执行过程。行,
3、这类计算过程就是程序的顺序执行过程。行,这类计算过程就是程序的顺序执行过程。行,这类计算过程就是程序的顺序执行过程。进程及进程管理进程及进程管理进程及进程管理进程及进程管理进程的引入进程的引入进程的引入进程的引入3 (3)(3)顺序程序的特点顺序程序的特点顺序程序的特点顺序程序的特点 单道系统的工作情况单道系统的工作情况单道系统的工作情况单道系统的工作情况 对用户作业的处理对用户作业的处理对用户作业的处理对用户作业的处理 首先输入用户的程序和数据;然后进行计算;最后打印计首先输入用户的程序和数据;然后进行计算;最后打印计 算结果,即有三个顺序执行的操作。算结果,即有三个顺序执行的操作。I I:
4、输入操作:输入操作 C C:计算操作:计算操作 P P:输出操作:输出操作 P2 C2 I2 P1 C1 I1作业作业1作业作业2单用户系统中操作的先后次序图进程及进程管理进程及进程管理进程及进程管理进程及进程管理进程的引入进程的引入进程的引入进程的引入4 顺序程序的特点顺序程序的特点顺序程序的特点顺序程序的特点顺序性顺序性顺序性顺序性 处理机的操作严格按照程序所规定的处理机的操作严格按照程序所规定的顺序执行。顺序执行。封闭性封闭性封闭性封闭性 程序一旦开始执行,其计算结果不受程序一旦开始执行,其计算结果不受外界因素的影响。外界因素的影响。可再现性可再现性可再现性可再现性 程序执行的结果与它的
5、执行速度无程序执行的结果与它的执行速度无关关(即与时间无关即与时间无关),而只与初始条件有关。,而只与初始条件有关。进程及进程管理进程及进程管理进程及进程管理进程及进程管理进程的引入进程的引入进程的引入进程的引入52.并发程序并发程序 (1)(1)多道系统的工作情况多道系统的工作情况多道系统的工作情况多道系统的工作情况 I1 I2 I3 I4C1C3C2P1P2 哪些程序段的执行必须是顺 序的?为什么?哪些程序段的执行是并行 的?为什么?多用户系统中操作的先后次序图对对对对n n个用户作业的处理个用户作业的处理个用户作业的处理个用户作业的处理 作业作业1 1:I I1 1 C C1 1 P P
6、1 1 作业作业2 2:I I2 2 C C2 2 P P2 2 作业作业n n:I In n C Cn n P Pn n进程及进程管理进程及进程管理进程及进程管理进程及进程管理进程的引入进程的引入进程的引入进程的引入6(2)(2)什么是程序的并发执行什么是程序的并发执行什么是程序的并发执行什么是程序的并发执行 定义定义定义定义 若干个程序段同时在系统中运行,这些程序段的执行在时间上是重叠若干个程序段同时在系统中运行,这些程序段的执行在时间上是重叠 的,一个程序段的执行尚未结束,另一个程序段的执行已经开始,即的,一个程序段的执行尚未结束,另一个程序段的执行已经开始,即 使这种重叠是很小的一部分
7、,也称这几个程序段是并发执行的。使这种重叠是很小的一部分,也称这几个程序段是并发执行的。三个并发执行的程序段三个并发执行的程序段三个并发执行的程序段三个并发执行的程序段 并行语句记号并行语句记号并行语句记号并行语句记号 cobegin cobegin S S1 1;S S2 2;S Sn n;coend coendPQR三个并发进程进程及进程管理进程及进程管理进程及进程管理进程及进程管理进程的引入进程的引入进程的引入进程的引入7(3)(3)并发程序的特点并发程序的特点并发程序的特点并发程序的特点 失去程序的封闭性和可再现性失去程序的封闭性和可再现性失去程序的封闭性和可再现性失去程序的封闭性和可
8、再现性 若一个程序的执行可以改变另一个程序的变量,那么,后若一个程序的执行可以改变另一个程序的变量,那么,后 者的输出就可能有赖于各程序执行的相对速度,即失去了者的输出就可能有赖于各程序执行的相对速度,即失去了 程序的封闭性特点。程序的封闭性特点。例:例:例:例:讨论共享公共变量的两个程讨论共享公共变量的两个程 序,执行时可能产生的不同序,执行时可能产生的不同 结果。程序结果。程序A A执行时对执行时对n n做加做加 1 1的操作;程序的操作;程序B B打印出打印出n n值,值,并将它重新置为零。并将它重新置为零。程序程序A n:=n+1;程序程序B print(n);n:=0;共享变量的两个
9、程序进程及进程管理进程及进程管理进程及进程管理进程及进程管理进程的引入进程的引入进程的引入进程的引入8 失去程序的封闭性和可再现性的讨论失去程序的封闭性和可再现性的讨论失去程序的封闭性和可再现性的讨论失去程序的封闭性和可再现性的讨论程序程序A的的n:=n+1与与程序程序B的两个语句的两个语句的关系的关系 n的赋值的赋值 打印的结果打印的结果 n的最终赋值的最终赋值 之前之前 10 11 0 之后之后 10 10 1 之间之间 10 10 0 程序程序A n:=n+1;程序程序B print(n);n:=0;共享变量的两个程序进程及进程管理进程及进程管理进程及进程管理进程及进程管理进程的引入进程
10、的引入进程的引入进程的引入9 程序与计算不再一一对应程序与计算不再一一对应程序与计算不再一一对应程序与计算不再一一对应一个程序可以对应多个计算。一个程序可以对应多个计算。例例1:I1 输入程序段输入程序段 I2 In例例2:编译编译1C编译程序编译程序 编译编译2 编译编译n 程序并发执行的相互制约程序并发执行的相互制约程序并发执行的相互制约程序并发执行的相互制约间接的相互制约关系间接的相互制约关系间接的相互制约关系间接的相互制约关系 资源共享资源共享资源共享资源共享直接的相互制约关系直接的相互制约关系直接的相互制约关系直接的相互制约关系 公共变量公共变量公共变量公共变量一个程序对应多个计算的
11、例子进程及进程管理进程及进程管理进程及进程管理进程及进程管理进程的引入进程的引入进程的引入进程的引入103.什么是与时间有关的错误什么是与时间有关的错误 程序并发执行时,若共享了公共变量,其执行结果与各并发程序并发执行时,若共享了公共变量,其执行结果与各并发 程序的相对速度有关,即给定相同的初始条件,若不加以控程序的相对速度有关,即给定相同的初始条件,若不加以控 制,也可能得到不同的结果,此为与时间有关的错误。制,也可能得到不同的结果,此为与时间有关的错误。进程及进程管理进程及进程管理进程及进程管理进程及进程管理进程的引入进程的引入进程的引入进程的引入进程概念进程概念进程及进程管理进程及进程管
12、理进程及进程管理进程及进程管理进程概念进程概念进程概念进程概念11 1.进程定义进程定义 运行运行运行运行 暂停暂停暂停暂停 运行运行运行运行进程及进程管理进程及进程管理进程及进程管理进程及进程管理进程概念进程概念进程概念进程概念 (1)(1)什么是进程什么是进程什么是进程什么是进程 所谓进程,就是一个程序在给定活动空间和初始环境下,所谓进程,就是一个程序在给定活动空间和初始环境下,在一个处理机上的执行过程。在一个处理机上的执行过程。(2)(2)进程与程序的区别进程与程序的区别进程与程序的区别进程与程序的区别 程序是静态的概念,进程是动态的概念;程序是静态的概念,进程是动态的概念;程序是静态的
13、概念,进程是动态的概念;程序是静态的概念,进程是动态的概念;进程是一个独立运行的活动单位;进程是一个独立运行的活动单位;进程是一个独立运行的活动单位;进程是一个独立运行的活动单位;进程是竞争系统资源的基本单位;进程是竞争系统资源的基本单位;进程是竞争系统资源的基本单位;进程是竞争系统资源的基本单位;一个程序可以对应多个进程,一个进程至少包含一个程序。一个程序可以对应多个进程,一个进程至少包含一个程序。一个程序可以对应多个进程,一个进程至少包含一个程序。一个程序可以对应多个进程,一个进程至少包含一个程序。122.进程的状态进程的状态 等待状态等待状态等待状态等待状态(wait)(wait)进程正
14、等待着某一事件的发生而暂时停止执行。这时,进程正等待着某一事件的发生而暂时停止执行。这时,即使给它即使给它CPUCPU控制权,它也无法执行。控制权,它也无法执行。就绪状态就绪状态就绪状态就绪状态(ready)(ready)进程已获得除进程已获得除CPUCPU之外的运行所必需的资源,一旦得到之外的运行所必需的资源,一旦得到 CPU CPU控制权,立即可以运行。控制权,立即可以运行。(1)(1)进程的基本状态进程的基本状态进程的基本状态进程的基本状态 运行状态运行状态运行状态运行状态(running)(running)该进程已获得运行所必需的资源,它的程序正在处理机上该进程已获得运行所必需的资源,
15、它的程序正在处理机上 执行。执行。进程及进程管理进程及进程管理进程及进程管理进程及进程管理进程概念进程概念进程概念进程概念13(2)(2)进程状态的变迁进程状态的变迁进程状态的变迁进程状态的变迁 进程状态可能的变迁进程状态可能的变迁进程状态可能的变迁进程状态可能的变迁 运运 行行服务请求服务请求(请求请求I/O等等)服务完成服务完成/事件来到事件来到进程调度进程调度时间片到时间片到 等等 待待 就就 绪绪个别系统提供个别系统提供进程状态变迁图进程及进程管理进程及进程管理进程及进程管理进程及进程管理进程概念进程概念进程概念进程概念14 具有进程基本状态的变迁图具有进程基本状态的变迁图具有进程基本
16、状态的变迁图具有进程基本状态的变迁图 运运 行行服务请求服务请求(请求请求I/O等等)服务完成服务完成/事件来到事件来到进程调度进程调度 等等 待待 就就 绪绪进程状态变迁图进程及进程管理进程及进程管理进程及进程管理进程及进程管理进程概念进程概念进程概念进程概念15 讨论进程状态的变迁讨论进程状态的变迁讨论进程状态的变迁讨论进程状态的变迁 运运 行行1234 等等 待待 就就 绪绪变迁变迁1 变迁变迁3,是否会发生?需要什么条件?,是否会发生?需要什么条件?变迁变迁4 变迁变迁3,是否会发生?需要什么条件?是否会发生?需要什么条件?进程状态变迁的讨论进程及进程管理进程及进程管理进程及进程管理进
17、程及进程管理进程概念进程概念进程概念进程概念16 例例例例1 1:讨论:讨论:讨论:讨论3 3个排序程序在不同的操作系统环境中执行结果个排序程序在不同的操作系统环境中执行结果个排序程序在不同的操作系统环境中执行结果个排序程序在不同的操作系统环境中执行结果 程序程序程序程序A A:冒泡排序算法,在屏幕的左冒泡排序算法,在屏幕的左1/31/3处开设窗口显示其处开设窗口显示其 排序过程;排序过程;程序程序程序程序B B:堆排序算法,在屏幕的中堆排序算法,在屏幕的中1/31/3处开设窗口显示其排处开设窗口显示其排 序过程;序过程;程序程序程序程序C C:快速排序算法,在屏幕的右快速排序算法,在屏幕的右
18、1/31/3处开设窗口显示其处开设窗口显示其 排序过程。排序过程。讨论讨论讨论讨论在不支持多进程的操作系统下运行和在支持多进程的在不支持多进程的操作系统下运行和在支持多进程的在不支持多进程的操作系统下运行和在支持多进程的在不支持多进程的操作系统下运行和在支持多进程的 操作系统下运行的情况操作系统下运行的情况操作系统下运行的情况操作系统下运行的情况 (3)(3)讨论在多进程操作系统环境下程序的执行讨论在多进程操作系统环境下程序的执行讨论在多进程操作系统环境下程序的执行讨论在多进程操作系统环境下程序的执行进程及进程管理进程及进程管理进程及进程管理进程及进程管理进程概念进程概念进程概念进程概念17
19、在不支持多进程的操作系统下运行在不支持多进程的操作系统下运行在不支持多进程的操作系统下运行在不支持多进程的操作系统下运行 依次运行程序依次运行程序A A、程序、程序B B、程序、程序C C。在支持多进程的操作系统下运行在支持多进程的操作系统下运行在支持多进程的操作系统下运行在支持多进程的操作系统下运行建立进程建立进程A A、B B、C C;对应的程序分别是程序;对应的程序分别是程序A A、B B、C C;若系统采用时间片轮转的调度策略,则在屏幕上有若系统采用时间片轮转的调度策略,则在屏幕上有3 3个个窗口,同时显示窗口,同时显示3 3个排序过程。个排序过程。实际上这实际上这3 3个程序在轮流地
20、占用个程序在轮流地占用CPUCPU时间,由于时间,由于CPUCPU的高速度,使我们看到的是这的高速度,使我们看到的是这3 3个程序在同时执行。个程序在同时执行。进程及进程管理进程及进程管理进程及进程管理进程及进程管理进程概念进程概念进程概念进程概念18 例例例例2 2:讨论:讨论:讨论:讨论2 2个程序在不同的操作系统环境中执行结果个程序在不同的操作系统环境中执行结果个程序在不同的操作系统环境中执行结果个程序在不同的操作系统环境中执行结果 程序程序C C:打印工资报表的程序;:打印工资报表的程序;程序程序D D:计算:计算10001000以内所有素数并显示最后结果。以内所有素数并显示最后结果。
21、讨论在不支持多进程的操作系统下运行和在支持多进程讨论在不支持多进程的操作系统下运行和在支持多进程讨论在不支持多进程的操作系统下运行和在支持多进程讨论在不支持多进程的操作系统下运行和在支持多进程 的操作系统下运行。的操作系统下运行。的操作系统下运行。的操作系统下运行。进程及进程管理进程及进程管理进程及进程管理进程及进程管理进程概念进程概念进程概念进程概念19 在不支持多进程的操作系统下运行在不支持多进程的操作系统下运行在不支持多进程的操作系统下运行在不支持多进程的操作系统下运行 依次运行程序依次运行程序C C、程序、程序D D,可以看到,先是打印机不停,可以看到,先是打印机不停 地打印工资报表,
22、打完后,接着运行程序地打印工资报表,打完后,接着运行程序C C,不停地计,不停地计 算,最后显示所计算的结果。算,最后显示所计算的结果。在支持多进程的操作系统下运行在支持多进程的操作系统下运行在支持多进程的操作系统下运行在支持多进程的操作系统下运行建立进程建立进程C C、D D;对应的程序分别是程序;对应的程序分别是程序C C、D D;由于进程由于进程C C是是I/OI/O量较大的进程,而进程量较大的进程,而进程D D是计算量较是计算量较大的进程,故在系统进程调度的控制下,两个进程并大的进程,故在系统进程调度的控制下,两个进程并发执行。可以看到打印机不断打印工资报表;而处理发执行。可以看到打印
23、机不断打印工资报表;而处理机不停地计算,最后屏幕显示计算的结果。机不停地计算,最后屏幕显示计算的结果。进程及进程管理进程及进程管理进程及进程管理进程及进程管理进程概念进程概念进程概念进程概念203.进程描述进程描述 (1)(1)什么是进程控制块什么是进程控制块什么是进程控制块什么是进程控制块 描述进程与其他进程、系统资源的关系以及进程在各个不描述进程与其他进程、系统资源的关系以及进程在各个不 同时期所处的状态的数据结构,称为进程控制块同时期所处的状态的数据结构,称为进程控制块 PCB(process control block)PCB(process control block)。(2)(2)
24、进程的组成进程的组成进程的组成进程的组成进程进程控制块控制块PCB程序程序与与数据数据 程序与数据程序与数据程序与数据程序与数据 描述进程本身所应完成的功能描述进程本身所应完成的功能 PCBPCB 进程的动态特征,该进程与其他进进程的动态特征,该进程与其他进程和系统资源的关系。程和系统资源的关系。进程组成的示意图进程及进程管理进程及进程管理进程及进程管理进程及进程管理进程概念进程概念进程概念进程概念(3)(3)进程控制块的主要内容进程控制块的主要内容进程控制块的主要内容进程控制块的主要内容 进程标识符进程标识符进程标识符进程标识符 进程符号名或内部进程符号名或内部 id id号号 进程当前状态
25、进程当前状态进程当前状态进程当前状态 本进程目前处于何种状态本进程目前处于何种状态大量的进程如何组织?大量的进程如何组织?大量的进程如何组织?大量的进程如何组织?21wait_lpt_q_startPCB3PCB7 next打印机等待队列结构打印机等待队列结构runningPCB4 next运行指针运行指针ready_q_start PCB1PCB2PCB9就绪队列结构就绪队列结构next进程队列结构示例进程及进程管理进程及进程管理进程及进程管理进程及进程管理进程概念进程概念进程概念进程概念22 当前队列指针当前队列指针当前队列指针当前队列指针nextnext 该项登记了处于同一状态的下一个进
26、程的该项登记了处于同一状态的下一个进程的 PCB PCB地址。地址。进程优先级进程优先级进程优先级进程优先级 反映了进程要求反映了进程要求CPUCPU的紧迫程度。的紧迫程度。CPUCPU现场保护区现场保护区现场保护区现场保护区 当进程由于某种原因释放处理机时,当进程由于某种原因释放处理机时,CPUCPU现场信息被保存现场信息被保存 在在PCBPCB的该区域中。的该区域中。通信信息通信信息通信信息通信信息 进程间进行通信时所记录的有关信息。进程间进行通信时所记录的有关信息。家族联系家族联系家族联系家族联系 指明本进程与家族的联系指明本进程与家族的联系 占有资源清单占有资源清单占有资源清单占有资源
27、清单 进程及进程管理进程及进程管理进程及进程管理进程及进程管理进程概念进程概念进程概念进程概念进程控制进程控制进程及进程管理进程及进程管理进程及进程管理进程及进程管理进程控制进程控制进程控制进程控制231.进程控制的概念进程控制的概念 (1)(1)进程控制的职责进程控制的职责进程控制的职责进程控制的职责 对系统中的进程实施有效的管理,负责进程状态的改变。对系统中的进程实施有效的管理,负责进程状态的改变。进程状态变化进程状态变化进程状态变化进程状态变化进程及进程管理进程及进程管理进程及进程管理进程及进程管理进程控制进程控制进程控制进程控制创建撤销无无有有消亡消亡等待运行运行等待等待唤醒就绪就绪等
28、待等待 常用的进程控制原语常用的进程控制原语常用的进程控制原语常用的进程控制原语 创建原语、撤消原语、阻塞原语、唤醒原语创建原语、撤消原语、阻塞原语、唤醒原语创建原语、撤消原语、阻塞原语、唤醒原语创建原语、撤消原语、阻塞原语、唤醒原语24(2)(2)进程创建进程创建进程创建进程创建 进程创建原语的形式进程创建原语的形式进程创建原语的形式进程创建原语的形式 create(namecreate(name,priority)priority)namename为被创建进程的标识符为被创建进程的标识符prioritypriority为进程优先级为进程优先级 进程创建原语的功能进程创建原语的功能进程创建原
29、语的功能进程创建原语的功能 创建一个具有指定标识符的进程,建立进程的创建一个具有指定标识符的进程,建立进程的PCBPCB结构。结构。进程及进程管理进程及进程管理进程及进程管理进程及进程管理进程控制进程控制进程控制进程控制25PCBPCB池池池池 进程创建原语的实现进程创建原语的实现进程创建原语的实现进程创建原语的实现 ab 1 进程创建原语的实现框图进程创建原语的实现框图进程创建原语的实现框图进程创建原语的实现框图入口入口 查查PCB总链总链有同名有同名?向向系系统统申申请请一一个个空的空的PCB 结构结构有空有空PCB?将入口信息填入将入口信息填入PCB相应项相应项 将将PCB入就绪队列入就
30、绪队列 将将PCB入总链队列入总链队列返回进返回进程程pid出错出错YN出错出错PCB池示意图进程创建原语流程图进程及进程管理进程及进程管理进程及进程管理进程及进程管理进程控制进程控制进程控制进程控制26(3)(3)进程撤销进程撤销进程撤销进程撤销 进程撤销原语的形式进程撤销原语的形式进程撤销原语的形式进程撤销原语的形式 当进程完成任务后希望终止自己时使用进程撤消原语。当进程完成任务后希望终止自己时使用进程撤消原语。Kill(Kill(或或exit)exit)进程撤销原语的功能进程撤销原语的功能进程撤销原语的功能进程撤销原语的功能 撤消当前运行的进程。将该进程的撤消当前运行的进程。将该进程的P
31、CBPCB结构归还到结构归还到PCBPCB资资 源池,所占用的资源归还给父进程,从总链队列中摘除源池,所占用的资源归还给父进程,从总链队列中摘除 它,然后转进程调度程序。它,然后转进程调度程序。进程及进程管理进程及进程管理进程及进程管理进程及进程管理进程控制进程控制进程控制进程控制27 进程撤销原语的实现进程撤销原语的实现进程撤销原语的实现进程撤销原语的实现 入口入口由运行指针得当前进程的由运行指针得当前进程的pid释放本进程所占用的资源给父进程释放本进程所占用的资源给父进程该进程从总链队列中摘下该进程从总链队列中摘下释放释放PCB结构结构转进程调度转进程调度进程撤销原语流程图进程及进程管理进
32、程及进程管理进程及进程管理进程及进程管理进程控制进程控制进程控制进程控制28(4)(4)进程等待进程等待进程等待进程等待 进程等待原语的形式进程等待原语的形式进程等待原语的形式进程等待原语的形式 当进程需要等待某一事件完成时,它可以调用等待原语挂当进程需要等待某一事件完成时,它可以调用等待原语挂 起自己。起自己。susp(chan)susp(chan)入口参数入口参数chanchan:进程等待的原因:进程等待的原因 进程等待原语的功能进程等待原语的功能进程等待原语的功能进程等待原语的功能 中止调用进程的执行,并加入到等待中止调用进程的执行,并加入到等待chanchan的等待队列中;的等待队列中
33、;最后使控制转向进程调度。最后使控制转向进程调度。进程及进程管理进程及进程管理进程及进程管理进程及进程管理进程控制进程控制进程控制进程控制29 进程等待原语的实现进程等待原语的实现进程等待原语的实现进程等待原语的实现 入口入口保护进程的保护进程的CPU现场到现场到PCB结构中结构中置该进程为置该进程为”等待等待”状态状态将该进程将该进程PCB结构插入到等待结构插入到等待队列中队列中转进程调度转进程调度进程等待原语流程图进程及进程管理进程及进程管理进程及进程管理进程及进程管理进程控制进程控制进程控制进程控制30(5)(5)进程唤醒进程唤醒进程唤醒进程唤醒 进程唤醒原语的形式进程唤醒原语的形式进程
34、唤醒原语的形式进程唤醒原语的形式 当处于等待状态的进程所期待的事件来到时,由发现者进当处于等待状态的进程所期待的事件来到时,由发现者进 程使用唤醒原语叫唤醒它。程使用唤醒原语叫唤醒它。wakeup(chan)wakeup(chan)入口参数入口参数chanchan:进程等待的原因。:进程等待的原因。进程唤醒原语的功能进程唤醒原语的功能进程唤醒原语的功能进程唤醒原语的功能 当进程等待的事件发生时,唤醒等待该事件的进程。当进程等待的事件发生时,唤醒等待该事件的进程。进程及进程管理进程及进程管理进程及进程管理进程及进程管理进程控制进程控制进程控制进程控制31 进程唤醒原语的实现进程唤醒原语的实现进程
35、唤醒原语的实现进程唤醒原语的实现 入口入口找到该等待队列找到该等待队列将队列首进程移出此等待队列将队列首进程移出此等待队列将该进程置将该进程置为为”就绪就绪”状态,状态,并将并将PCB结构插入到就绪结构插入到就绪队列中队列中返回返回进程唤醒原语流程图进程及进程管理进程及进程管理进程及进程管理进程及进程管理进程控制进程控制进程控制进程控制进程之间的相互制约关系进程之间的相互制约关系进程及进程管理进程及进程管理进程及进程管理进程及进程管理进程之间的相互制约关系进程之间的相互制约关系进程之间的相互制约关系进程之间的相互制约关系321.进程互斥的概念进程互斥的概念 (1)(1)临界资源临界资源临界资源
36、临界资源 例例例例1 1:两个进程两个进程两个进程两个进程A A、B B共享一台打印机共享一台打印机共享一台打印机共享一台打印机 设:设:x x代表某航班机座号,代表某航班机座号,p p1 1和和p p2 2两个售票进程,售票工两个售票进程,售票工 作是对变量作是对变量x x加加1 1。这两个进程在一个处理机。这两个进程在一个处理机C C上并发执上并发执 行,分别具有内部寄存器行,分别具有内部寄存器r r1 1和和r r2 2。进程及进程管理进程及进程管理进程及进程管理进程及进程管理进程之间的相互制约关系进程之间的相互制约关系进程之间的相互制约关系进程之间的相互制约关系33 例例例例2 2:两
37、个进程共享一个变量:两个进程共享一个变量:两个进程共享一个变量:两个进程共享一个变量x x 两个进程共享一个变量两个进程共享一个变量两个进程共享一个变量两个进程共享一个变量x x时,两种可能的执行次序:时,两种可能的执行次序:时,两种可能的执行次序:时,两种可能的执行次序:A A:p p1 1:r r1 1:=x:=x;r r1 1:=r:=r1 1+1+1;x:=r x:=r1 1 ;p p2 2:r r2 2:=x:=x;r r2 2:=r:=r2 2+1+1;x:=r x:=r2 2 ;设设设设x x的初值为的初值为的初值为的初值为1010,两种情况下的执行结果:,两种情况下的执行结果:
38、,两种情况下的执行结果:,两种情况下的执行结果:情况情况情况情况A A:x=10+2 x=10+2 情况情况情况情况B B:x=10+1 x=10+1 B B:p p1 1:r r1 1:=x:=x;r r1 1:=r:=r1 1+1+1;x:=r x:=r1 1 ;p p2 2:r r2 2:=x:=x;r r2 2:=r:=r2 2+1+1;x:=r x:=r2 2 ;进程及进程管理进程及进程管理进程及进程管理进程及进程管理进程之间的相互制约关系进程之间的相互制约关系进程之间的相互制约关系进程之间的相互制约关系34 临界区是进程中对公共变量临界区是进程中对公共变量(或存储区或存储区)进行审
39、查与修改进行审查与修改的的 程序段,称为相对于该公共变量的临界区。程序段,称为相对于该公共变量的临界区。临界资源的定义临界资源的定义临界资源的定义临界资源的定义 一次仅允许一个进程使用的资源称为临界资源。一次仅允许一个进程使用的资源称为临界资源。一次仅允许一个进程使用的资源称为临界资源。一次仅允许一个进程使用的资源称为临界资源。硬件:如输入机、打印机、磁带机等硬件:如输入机、打印机、磁带机等 软件:如公用变量、数据、表格、队列等软件:如公用变量、数据、表格、队列等(2)(2)临界区临界区临界区临界区 x:=x+1;csa 进程进程A进程进程B x:=x+1;csb 进程临界区示意图进程及进程管
40、理进程及进程管理进程及进程管理进程及进程管理进程之间的相互制约关系进程之间的相互制约关系进程之间的相互制约关系进程之间的相互制约关系35(3)(3)互斥互斥互斥互斥 在操作系统中,当某一进程正在访问某一存储区域时,就在操作系统中,当某一进程正在访问某一存储区域时,就 不允许其他进程来读出或者修改存储区的内容,否则,就不允许其他进程来读出或者修改存储区的内容,否则,就 会发生后果无法估计的错误。进程间的这种相互制约关系会发生后果无法估计的错误。进程间的这种相互制约关系 称为互斥。称为互斥。x:=x+1;csa 进程进程A进程进程B x:=x+1;csb 进程临界区示意图进程及进程管理进程及进程管
41、理进程及进程管理进程及进程管理进程之间的相互制约关系进程之间的相互制约关系进程之间的相互制约关系进程之间的相互制约关系362.进程同步的概念进程同步的概念 (1)(1)什么是进程同步什么是进程同步什么是进程同步什么是进程同步 并发进程在一些关键点上可能需要互相等待与互通消息,并发进程在一些关键点上可能需要互相等待与互通消息,这种相互制约的等待与互通消息称为进程同步。这种相互制约的等待与互通消息称为进程同步。(2)(2)进程同步的例进程同步的例进程同步的例进程同步的例 病员就诊病员就诊病员就诊病员就诊 看病活动:看病活动:要病人去要病人去化验;化验;等等化验结果;化验结果;继续诊病;继续诊病;化
42、验活动:化验活动:需要进行化验需要进行化验?进行进行化验;化验;开出化验结果;开出化验结果;进程同步活动示意图进程及进程管理进程及进程管理进程及进程管理进程及进程管理进程之间的相互制约关系进程之间的相互制约关系进程之间的相互制约关系进程之间的相互制约关系37 共享缓冲区的计算进程与打印进程的同步共享缓冲区的计算进程与打印进程的同步共享缓冲区的计算进程与打印进程的同步共享缓冲区的计算进程与打印进程的同步 计算进程计算进程 cp cp和打印进程和打印进程 iop iop公用一个单缓冲公用一个单缓冲 缓冲区缓冲区bufiop cpABCDABCD两个进程共享一个缓冲区示意图进程及进程管理进程及进程管
43、理进程及进程管理进程及进程管理进程之间的相互制约关系进程之间的相互制约关系进程之间的相互制约关系进程之间的相互制约关系进程同步机构进程同步机构进程及进程管理进程及进程管理进程及进程管理进程及进程管理进程同步机构进程同步机构进程同步机构进程同步机构381.锁和上锁、开锁操作锁和上锁、开锁操作 (1)(1)什么是锁什么是锁什么是锁什么是锁 用变量用变量w w代表某种资源的状态,代表某种资源的状态,w w称为称为“锁锁”。(2)(2)上锁操作和开锁操作上锁操作和开锁操作上锁操作和开锁操作上锁操作和开锁操作 进程及进程管理进程及进程管理进程及进程管理进程及进程管理进程同步机构进程同步机构进程同步机构进
44、程同步机构检测检测w w的值的值(是是0 0还是还是1)1);如果如果w w的值为的值为1 1,继续检测;,继续检测;如果如果w w的值为的值为0 0,将锁位置,将锁位置1(1(表示占用资源表示占用资源),进入临,进入临界区执行。界区执行。(此为上锁操作此为上锁操作此为上锁操作此为上锁操作)临界资源使用完毕,将锁位置临界资源使用完毕,将锁位置0 0。(此为开锁操作此为开锁操作此为开锁操作此为开锁操作)39(3)(3)进程使用临界资源的操作进程使用临界资源的操作进程使用临界资源的操作进程使用临界资源的操作 1W 进入临界区进入临界区csa 0W进程进程AW=0?=0 1W 进入临界区进入临界区c
45、sb 0W进程进程BW=0?=0两个进程使用临界资源的操作进程及进程管理进程及进程管理进程及进程管理进程及进程管理进程同步机构进程同步机构进程同步机构进程同步机构40(4)(4)上锁原语和开锁原语上锁原语和开锁原语上锁原语和开锁原语上锁原语和开锁原语 上锁原语上锁原语上锁原语上锁原语算法算法 lock lock 输入:锁变量输入:锁变量w w 输出:无输出:无 testtest:if(w if(w为为1)1)goto test goto test;*测试锁位的值测试锁位的值*else w=1 else w=1;*上锁上锁*开锁原语开锁原语开锁原语开锁原语算法算法 unlock unlock 输
46、入:锁变量输入:锁变量w w 输出:无输出:无 w=0 w=0;*开锁开锁*进程及进程管理进程及进程管理进程及进程管理进程及进程管理进程同步机构进程同步机构进程同步机构进程同步机构412.信号灯和信号灯和P、V操作操作 (1)(1)什么是信号灯什么是信号灯什么是信号灯什么是信号灯 信号灯是一个确定的二元组信号灯是一个确定的二元组(s(s,q)q),s s是一个具有非负初是一个具有非负初值值 的整型变量,的整型变量,q q是一个初始状态为空的队列。操作系统利是一个初始状态为空的队列。操作系统利 用信号灯的状态对并发进程和共享资源进行控制和管理。用信号灯的状态对并发进程和共享资源进行控制和管理。信
47、号灯是整型变量。信号灯是整型变量。信号灯是整型变量。信号灯是整型变量。变量值变量值变量值变量值 0 0 时,表示绿灯,进程执行;时,表示绿灯,进程执行;时,表示绿灯,进程执行;时,表示绿灯,进程执行;变量值变量值变量值变量值 0 0 时,表示红灯,进程停止执行。时,表示红灯,进程停止执行。时,表示红灯,进程停止执行。时,表示红灯,进程停止执行。注意:创建信号灯时,应准确说明信号灯注意:创建信号灯时,应准确说明信号灯注意:创建信号灯时,应准确说明信号灯注意:创建信号灯时,应准确说明信号灯 s s 的意义和初值的意义和初值的意义和初值的意义和初值 (这个初值绝不能为负值这个初值绝不能为负值这个初值
48、绝不能为负值这个初值绝不能为负值)。进程及进程管理进程及进程管理进程及进程管理进程及进程管理进程同步机构进程同步机构进程同步机构进程同步机构42(2)P(2)P 操作操作操作操作 P P 操作的定义操作的定义操作的定义操作的定义 对信号灯对信号灯s s的的 p p操作记为操作记为 p(s)p(s)。p(s)p(s)是一个不可分割的原语操作,即取是一个不可分割的原语操作,即取 信号灯值减信号灯值减1 1,若相减结果为负,则调用,若相减结果为负,则调用p(s)p(s)的进程被阻,并插入到的进程被阻,并插入到 该信号灯的等待队列中,否则可以继续执行。该信号灯的等待队列中,否则可以继续执行。P P 操
49、作的实现操作的实现操作的实现操作的实现 入入 口口 S-1 S S0?转进程调度转进程调度返回返回 入信号灯等待队列入信号灯等待队列 置置“等待状态等待状态”00 0 0P 操作原语流程图进程及进程管理进程及进程管理进程及进程管理进程及进程管理进程同步机构进程同步机构进程同步机构进程同步机构43(3)V(3)V 操作操作操作操作 V V 操作的定义操作的定义操作的定义操作的定义 对信号灯对信号灯s s的的 v v操作记为操作记为 v(s)v(s)。v(s)v(s)是一个不可分割的原语操作,即取是一个不可分割的原语操作,即取 信号灯值加信号灯值加1 1,若相加结果大于零,进程继续执行,否则,要帮
50、助唤,若相加结果大于零,进程继续执行,否则,要帮助唤 醒在信号灯等待队列上的一个进程。醒在信号灯等待队列上的一个进程。V V 操作的实现操作的实现操作的实现操作的实现 入入 口口 S+1 S 从信号灯的等待队列中取出首元素从信号灯的等待队列中取出首元素 入就绪队列入就绪队列 置置“就就绪绪状状态态”返回返回 S0?0 0V 操作原语流程图进程及进程管理进程及进程管理进程及进程管理进程及进程管理进程同步机构进程同步机构进程同步机构进程同步机构进程互斥与同步的实现进程互斥与同步的实现进程及进程管理进程及进程管理进程及进程管理进程及进程管理进程互斥与同步的实现进程互斥与同步的实现进程互斥与同步的实现