操作系统进程管理2

上传人:博****1 文档编号:569298951 上传时间:2024-07-28 格式:PPT 页数:115 大小:2.48MB
返回 下载 相关 举报
操作系统进程管理2_第1页
第1页 / 共115页
操作系统进程管理2_第2页
第2页 / 共115页
操作系统进程管理2_第3页
第3页 / 共115页
操作系统进程管理2_第4页
第4页 / 共115页
操作系统进程管理2_第5页
第5页 / 共115页
点击查看更多>>
资源描述

《操作系统进程管理2》由会员分享,可在线阅读,更多相关《操作系统进程管理2(115页珍藏版)》请在金锄头文库上搜索。

1、第三章第三章 进程管理进程管理 ProcessManagement1处理机管理是操作系统的基本管理功能之一,它所关心的是处理机的分配问题。也就是说把CPU(中央处理机)的使用权分给某个程序。通常把正准备进入内存的程序称为作业,当这个作业进入内存后我们把它称为进程。处理机管理分为作业管理和进程管理两个阶段去实现处理机的分配,常常又把直接实行处理机时间分配的进程调度工作作为处理机管理的主要内容。 进程管理的主要功能是把处理机分配给进程以及协调各个进程之间的相互关系。它是由进程调度程序和进程控制(控制进程状态转换)程序这两部分内容组成的。 2提提 纲纲经典的同步问题经典的同步问题四四进程的概念进程的

2、概念一一进程的控制进程的控制二二进程的同步进程的同步三三3目录目录进程的基本概念进程控制进程同步经典进程同步问题管程机制进程通信线程4进程的概念1 1 1进程的引入进程的引入2 2 2进程的定义和特征进程的定义和特征3 3 3进程的状态及转换进程的状态及转换4 4 4进程的描述进程的描述51.进程的引入进程的引入1 1前趋图的定义前趋图的定义 1.2 1.2程序顺序执行程序顺序执行 1.3 1.3程序并发执行程序并发执行1 1前趋图的定义前趋图的定义 1 1前趋图的定义前趋图的定义 1 1前趋图的定义前趋图的定义 1.11.1前趋图的定义前趋图的定义 6前趋图前趋图是一个是一个有向无循环图有向

3、无循环图(DAGDAG)。结点表示一条语句、一)。结点表示一条语句、一个程序段或进程。结点间的有向边则表示在两结点间存在的个程序段或进程。结点间的有向边则表示在两结点间存在的偏偏序或前趋关系序或前趋关系。前趋、后继、初始结点、终止结点、重量。前趋、后继、初始结点、终止结点、重量。(注:在前趋图中必不能存在循环)(注:在前趋图中必不能存在循环)1234567Fig2-2 前趋图示例前趋图示例1.1前趋图的定义前趋图的定义7顺序是指程序执行时,仅当前一操作完成后,才顺序是指程序执行时,仅当前一操作完成后,才能执行后继操作。能执行后继操作。n 特点:特点: 顺序性顺序性 封闭性(运行时独占资源,与外

4、封闭性(运行时独占资源,与外 界封闭)界封闭) 可再现性可再现性I1C1P1I2C2P21.2程序的顺序执行程序的顺序执行81. 思想:思想:以输入、计算、打印三个操作为例:对于某以输入、计算、打印三个操作为例:对于某一作业的三个操作必存在顺序关系,但多个作业之一作业的三个操作必存在顺序关系,但多个作业之间并不一定。其前趋图如下:间并不一定。其前趋图如下: 可见,多个此类作业是可以并发执行的。可见,多个此类作业是可以并发执行的。1.3程序并发执行程序并发执行92 2 特征:特征:u 间断性间断性: :因为共享资源,程序在执行时可能会走因为共享资源,程序在执行时可能会走走停停。执行走停停。执行暂

5、停执行暂停执行执行)执行)u 失去封闭性失去封闭性: :多个程序共享系统中的各种资源因多个程序共享系统中的各种资源因而这些程序都可改变系统资源的状态);而这些程序都可改变系统资源的状态);u 不可再现性不可再现性: :程序经过多次执行,即使环境初始程序经过多次执行,即使环境初始条件相同,但结果可能不相同条件相同,但结果可能不相同. .1.3程序并发执行程序并发执行103.例子:例子:例:有程序例:有程序 A A:N=N+1N=N+1 ; ; B: print(N)B: print(N); N=0 N=0 ;设某一时刻设某一时刻N N的的初值为初值为n n,则:,则:若:若:N=N+1N=N+1

6、;PRINT(N)PRINT(N); N=0 N=0 ; 结果为:结果为:n+1 n+1 0n+1 n+1 0若:若:PRINT(N)PRINT(N);N=N+1N=N+1;N=0 N=0 ; 结果为:结果为:n n+1 0n n+1 0若:若:PRINT(N)PRINT(N);N=0N=0;N=N+1 N=N+1 ; 结果为:结果为:n 0 1 n 0 1 1.3程序并发执行程序并发执行112.进程的定义和特征进程的定义和特征 2.1 2.1 引入进程的目的引入进程的目的 2.2 2.2进程的定义进程的定义 2.3 2.3进程的特征进程的特征 2.4 2.4与程序的区别与程序的区别 2.5

7、2.5进程的类别及特性进程的类别及特性 12 “ “任务任务”和和“任务的执行任务的执行”截然不同。前者是任务截然不同。前者是任务的静态描述,后者体现了任务的动态行为。静态描述和的静态描述,后者体现了任务的动态行为。静态描述和动态行为之间不存在一一对应关系。动态行为之间不存在一一对应关系。例:例:同一段正文(同一段正文(2kB2kB),分别加工两批(),分别加工两批(8kB8kB,4kB4kB)不)不同的数据,执行两次。第同的数据,执行两次。第1 1次执行用打印机报告某些出错次执行用打印机报告某些出错信息,占用信息,占用10kB10kB内存;第内存;第2 2次执行中无出错数据,不用打次执行中无

8、出错数据,不用打印机,但至少需要印机,但至少需要6kB6kB主存。主存。2.1引入进程的目的引入进程的目的13进程:进程是进程实体的运行过程,是系统进行资源分配和调度的一个基本单位。u一个任务的一个任务的一次执行一次执行对应对应一个进程一个进程。2.2进程的定义进程的定义14进程特征进程特征1 13 35 54 42 2并发性并发性动态性动态性结构特征独立性独立性异步性异步性2.3进程的特征进程的特征151 1)动态性动态性:进程进程最基本的特征最基本的特征。进程由创建产生;。进程由创建产生; 由调由调度执行;得不到资源而暂停;由撤消而消亡。进程是有一度执行;得不到资源而暂停;由撤消而消亡。进

9、程是有一定生命周期的。程序是指一组有序指令集合,是一个静态定生命周期的。程序是指一组有序指令集合,是一个静态的实体。的实体。 2 2)并发性:并发性:一段时间内,多个进程实体在内存中可同时一段时间内,多个进程实体在内存中可同时运行。引入进程的目的就是为了能并发。程序不能并发。运行。引入进程的目的就是为了能并发。程序不能并发。 3 3)独立性:独立性:进程实体是一个能独立运行、独立获得资源、进程实体是一个能独立运行、独立获得资源、独立调度的基本单位。程序不能做为一个独立单位。独立调度的基本单位。程序不能做为一个独立单位。 4 4)异步性:异步性:进程是按各自独立、不可预知的速度前进,进程是按各自

10、独立、不可预知的速度前进,该特性将导致程序执行的不可再现性。因此该特性将导致程序执行的不可再现性。因此OSOS中必须采取中必须采取某种措施保证协调运行。某种措施保证协调运行。2.3进程的特征进程的特征165 5)结构特征:结构特征:为能正确的执行并发,为每一个进程配置为能正确的执行并发,为每一个进程配置了一个数据结构,称为进程控制块(了一个数据结构,称为进程控制块(PCBPCB)。则一个进程)。则一个进程实体就由数据段、程序段、实体就由数据段、程序段、PCBPCB三部分构成。三部分构成。 进程实体进程实体 = = 数据段数据段+ +程序段程序段+PCB+PCBPCB程程序序段段私有私有数据块数

11、据块进程的结构进程的结构 程序和进程不一定具有一一对应的关系程序和进程不一定具有一一对应的关系。2.3进程的特征进程的特征17如何理解进程概念?进程与程序有何差别?阅读菜谱阅读菜谱准备原料准备原料烹制菜肴烹制菜肴饭菜饭菜阅读洗衣机手册阅读洗衣机手册准备衣服、洗衣粉准备衣服、洗衣粉设定参数,洗衣服设定参数,洗衣服干净衣服干净衣服程序程序输入输入运行运行输出输出程序程序输入输入运行运行输出输出分时切换分时切换洗衣进程洗衣进程洗衣进程洗衣进程做饭进程做饭进程做饭进程做饭进程2.4与程序的区别与程序的区别181 1、程序是指令的集有序集合,是静态的概念。程序是指令的集有序集合,是静态的概念。 进程是程

12、进程是程序在处理机上的一次执行的过程,是动态的概念。程序可序在处理机上的一次执行的过程,是动态的概念。程序可以作为软件资料长期保存。进程是有生命周期的。以作为软件资料长期保存。进程是有生命周期的。2 2、进程是一个独立的运行单位,能与其它进程并行(并发)、进程是一个独立的运行单位,能与其它进程并行(并发)活动。而程序则不是。活动。而程序则不是。3 3、进程是竞争计算机系统有限资源的基本单位,也是进行、进程是竞争计算机系统有限资源的基本单位,也是进行处理机调度的基本单位。处理机调度的基本单位。4 4、一个程序可以作为多个进程的运行程序,一个进程也可、一个程序可以作为多个进程的运行程序,一个进程也

13、可以运行多个程序。以运行多个程序。2.4与程序的区别与程序的区别19进程的类型进程的类型在在系系统统中中同同时时有有多多个个进进程程存存在在,但但归归纳纳起起来来有两大类:有两大类:1 1、系系统统进进程程 执执行行操操作作系系统统核核心心代代码码的的进进程程。系统进程起着资源管理和控制的作用。系统进程起着资源管理和控制的作用。2 2、用户进程、用户进程 执行用户程序的进程。执行用户程序的进程。2.5进程的类型与区别进程的类型与区别20(1)系统进程是操作系统用来管理系统资源并)系统进程是操作系统用来管理系统资源并行活动的并发软件。行活动的并发软件。(2)系统进程之间的关系由操作系统自己负责。

14、)系统进程之间的关系由操作系统自己负责。(3)系统进程直接管理有关的软、硬设备的活)系统进程直接管理有关的软、硬设备的活动。动。(4)在进程调度中,系统进程的优先级高于用)在进程调度中,系统进程的优先级高于用户进程。户进程。2.5进程的类型与区别进程的类型与区别系统进程的特征系统进程的特征21系统进程与用户进程的区别:系统进程与用户进程的区别:1 1、系系统统进进程程被被分分配配一一个个初初始始的的资资源源集集合合,这这些些资资源源可可以以为为它它独独占占,也也能能以以最最高高优优先先权权的的资资格格使使用用。用用户进程通过户进程通过系统服务请求系统服务请求的手段竞争使用系统资源;的手段竞争使

15、用系统资源;2 2、用用户户进进程程不不能能直直接接做做I/OI/O操操作作,而而系系统统进进程程可可以以做显示的、直接的做显示的、直接的I/OI/O操作。操作。3 3、系系统统进进程程在在管管态态下下活活动动,而而用用户户进进程程则则在在用用户户态态(目态)下活动。(目态)下活动。另一种分类:计算进程,另一种分类:计算进程,I/OI/O进程等进程等注意:在注意:在UNIXUNIX系统中没有这样对进程进行分类。系统中没有这样对进程进行分类。2.5进程的类型与区别进程的类型与区别223.进程的状态和转换进程的状态和转换 3.1 3.1 进程的基本状态进程的基本状态 3.2 3.2进程的基本状态转

16、换进程的基本状态转换 3.3 3.3新状态和终止状态新状态和终止状态 231.三种基本状态:三种基本状态:就绪状态就绪状态(Ready):进程已分配到除进程已分配到除CPUCPU外的所有资源。只等外的所有资源。只等CPUCPU便便可运行。可有多个组成就绪队列。可运行。可有多个组成就绪队列。执行状态执行状态(Running):已获得已获得CPUCPU正在运行。在单处理机系统中只能正在运行。在单处理机系统中只能有一个。有一个。阻塞状态阻塞状态(Blocked):因发生某事件(如因发生某事件(如I/OI/O、申请缓冲区等)而暂、申请缓冲区等)而暂停执行。(等待、睡眠)。可有多个此状态进停执行。(等待

17、、睡眠)。可有多个此状态进程组成一个或多个(由阻塞原因划分)阻塞队程组成一个或多个(由阻塞原因划分)阻塞队列。列。3.1进程的基本状态进程的基本状态24进程的基本状态转换运行态运行态阻塞态阻塞态就绪态就绪态进程就绪,进程就绪,进程就绪,进程就绪,可以运行可以运行可以运行可以运行状态转换:状态转换:状态转换:状态转换:进程等待外进程等待外进程等待外进程等待外部事件,阻部事件,阻部事件,阻部事件,阻塞塞塞塞OSOS决定由哪个进决定由哪个进决定由哪个进决定由哪个进程占用程占用程占用程占用CPUCPU,进,进,进,进程调度程调度程调度程调度进程状程状态?中断中断(时间片到时间片到)中断中断中断中断(

18、(时间片到时间片到时间片到时间片到) )3.2基本状态转换基本状态转换25运行态变为就绪态运行态变为就绪态强制终止某进程的运行强制终止某进程的运行(系统原因)(系统原因)运行态变为阻塞态运行态变为阻塞态运行进程等待外部事件发生运行进程等待外部事件发生(自身原因)(自身原因)阻塞态变为就绪态阻塞态变为就绪态外部事件已经发生,可准备运行外部事件已经发生,可准备运行就绪态变为运行态就绪态变为运行态停止其他进程运行后,运行该进程占用停止其他进程运行后,运行该进程占用CPU进程状程状态3.2基本状态转换基本状态转换26问题问题1:为什么不能从阻塞态变为运行态呢?:为什么不能从阻塞态变为运行态呢?问题问题

19、2:为什么不能从就绪态变为阻塞态呢?:为什么不能从就绪态变为阻塞态呢?三种状态的变换体现了三种状态的变换体现了OS的资源管理作用;的资源管理作用;进程的核心思想在于进程的核心思想在于运行运行CPU资源的分资源的分配。配。进程状程状态3.2基本状态转换基本状态转换27注意:注意:进程从执行态到阻塞态是进程从执行态到阻塞态是主动主动的。的。进程发现需要等待某一事件,主动向系进程发现需要等待某一事件,主动向系统申请进入阻塞态。统申请进入阻塞态。进程从阻塞态到就绪态是进程从阻塞态到就绪态是被动被动的。的。当系统(或其它进程)发现阻塞进程阻当系统(或其它进程)发现阻塞进程阻塞的条件已释放,向系统申请将该

20、进程塞的条件已释放,向系统申请将该进程置为就绪态置为就绪态。3.2基本状态转换基本状态转换28 1)新状态:指进程刚刚建立,还没有送入就绪队列。)新状态:指进程刚刚建立,还没有送入就绪队列。 2)终止状态:指进程已经结束(正常、异常),)终止状态:指进程已经结束(正常、异常),OS已将它从就绪队列中移出,还未撤消。已将它从就绪队列中移出,还未撤消。增加新和终止状态增加新和终止状态 进程状态及其转换进程状态及其转换 新进程新进程终止终止接纳接纳完成完成进程调度进程调度(时间片到时间片到)I/O完完成成等等I/O请请求求等等中断中断执行执行阻塞阻塞就绪就绪3.3新状态和终止状态新状态和终止状态29

21、1.1.什么是挂起状态:什么是挂起状态:将进程置于静止状态将进程置于静止状态正在执行的进程暂停执行正在执行的进程暂停执行就绪的进程暂不接受调度就绪的进程暂不接受调度阻塞的进程即使阻塞事件释放也不能继续执行阻塞的进程即使阻塞事件释放也不能继续执行2.2.引入挂起状态的原因引入挂起状态的原因人为:观察的需要人为:观察的需要系统:检测的需要,调节系统负荷系统:检测的需要,调节系统负荷3.4进程的挂起状态进程的挂起状态303.3.状态的转换:状态的转换:n 引入挂起状态后,引入挂起状态后,原状态称为原状态称为 “ “活动活动”,挂起后称为,挂起后称为“静止静止”。n 两种挂起状态两种挂起状态: :u

22、静止就绪与静止静止就绪与静止阻塞阻塞u一般情况下,挂一般情况下,挂起状态的进程将从起状态的进程将从内存移到外存。内存移到外存。图图 具有挂起状态的进程状态图具有挂起状态的进程状态图 3.4进程的挂起状态进程的挂起状态314.进程的描述进程的描述 4.1 4.1 进程控制块的概念进程控制块的概念 4.2 4.2进程控制块的信息进程控制块的信息 4.3 4.3进程控制块的组织进程控制块的组织 321.进程控制块定义进程控制块定义(Process Control Block,PCB)PCB是纪录是纪录进程动态特性,运行控制进程动态特性,运行控制等信息的数等信息的数据结构。据结构。PCB的作用的作用:

23、使一个在多道程序环境下不能独:使一个在多道程序环境下不能独立运行的程序,成一个能独立运行的基本单位,立运行的程序,成一个能独立运行的基本单位,一个能与其它进程并发执行的进程。一个能与其它进程并发执行的进程。PCBPCB是进程存在的唯一标识是进程存在的唯一标识。当系统或父进程创当系统或父进程创建一个进程时,实际上就是为其建立一个进程控建一个进程时,实际上就是为其建立一个进程控制块。制块。4.1进程控制块的概念进程控制块的概念33进程标识符进程标识符进程标识符进程标识符进程状态进程状态进程状态进程状态CPUCPU现场现场现场现场( (程序状态字、寄存器内容等程序状态字、寄存器内容等程序状态字、寄存

24、器内容等程序状态字、寄存器内容等) )资源清单资源清单资源清单资源清单优先级优先级优先级优先级队列指针、家族关系队列指针、家族关系队列指针、家族关系队列指针、家族关系通信机制(信箱或消息队列)通信机制(信箱或消息队列)通信机制(信箱或消息队列)通信机制(信箱或消息队列)同步机制(信号量)同步机制(信号量)同步机制(信号量)同步机制(信号量)存储位置存储位置存储位置存储位置动态特性动态特性运行控制运行控制4.1进程控制块的概念进程控制块的概念2.2.进程控制块的内容进程控制块的内容34暂停(断点的处暂停(断点的处理机环境保存)理机环境保存)调度(查调度(查PCB的优的优先级及现场状态)先级及现场

25、状态)执行(查执行(查PCB中处理机的中处理机的状态信息,恢复现场)状态信息,恢复现场)执行中查数据、程序的地执行中查数据、程序的地址及与其他进程合作址及与其他进程合作 PCBPCB应常驻内存。应常驻内存。应常驻内存。应常驻内存。4.1进程控制块的概念进程控制块的概念3.3.进程控制块的作用进程控制块的作用35为了有效的管理进程和资源,操作系统必须掌握每为了有效的管理进程和资源,操作系统必须掌握每一个进程和资源的当前状态。操作系统通常是一个进程和资源的当前状态。操作系统通常是通过通过构造一组表构造一组表来管理和维护进程和每一类资源的信息。来管理和维护进程和每一类资源的信息。操作系统的控制表分为

26、四类:操作系统的控制表分为四类:进程控制表进程控制表存储控制表存储控制表I/O控制表控制表文件控制表文件控制表4.1进程控制块的概念进程控制块的概念3.3.进程控制块的作用进程控制块的作用364.1进程控制块的概念进程控制块的概念3.3.进程控制块的作用进程控制块的作用37进程控制表进程控制表用来管理进程及其相关信息。用来管理进程及其相关信息。存储控制表存储控制表用来管理一级(主)存储器和二用来管理一级(主)存储器和二级(辅)存储器。级(辅)存储器。I/O控制表控制表用来管理计算机系统的用来管理计算机系统的I/O设备设备和通道。和通道。文件控制表文件控制表用来管理文件。用来管理文件。4.1进程

27、控制块的概念进程控制块的概念3.3.进程控制块的作用进程控制块的作用38当一个程序进入计算机的主存储器进行计算就构成当一个程序进入计算机的主存储器进行计算就构成了进程了进程,主存储器中的进程到底是如何组成的?主存储器中的进程到底是如何组成的?操作系统中把进程物理实体和支持进程运行的环境操作系统中把进程物理实体和支持进程运行的环境合称为合称为进程上下文进程上下文(process context)。)。当系统调度新进程占有处理器时,新老进程随之发当系统调度新进程占有处理器时,新老进程随之发生上下文切换,因此,生上下文切换,因此,进程的运行被认为是在进程进程的运行被认为是在进程的上下文中执行的的上下

28、文中执行的。4.1进程控制块的概念进程控制块的概念4.4.进程映像进程映像395.5.进程上下文组成进程上下文组成 用户级上下文:由用户程序块、用户数据块和用户堆栈组成的进程地址空间。 系统级上下文:包括进程的标识信息、现场信息和控制信息,进程环境块,及系统堆栈等组成的进程地址空间。 寄存器上下文:由PSW寄存器和各类控制寄存器、地址寄存器、通用寄存器组成。4.1进程控制块的概念进程控制块的概念406.6.进程有四个要素组成进程有四个要素组成 进程程序块 进程数据块 系统堆栈 用户堆栈4.1进程控制块的概念进程控制块的概念417.7.用户进程在虚拟内存中的组织用户进程在虚拟内存中的组织 进程标

29、识信息进程现场信息进程控制信息用户堆栈用户私有地址空间(代码、数据)进程控制块共享地址空间4.1进程控制块的概念进程控制块的概念421)进程标识信息:)进程标识信息:用于唯一地标识一个进程。用于唯一地标识一个进程。u外部标识符外部标识符:用户,用字母、数字构成,:用户,用字母、数字构成,便于记忆。便于记忆。u内部标识符内部标识符:系统,唯一整数,通常就是:系统,唯一整数,通常就是进程的序号。进程的序号。u家族联系:家族联系:还还可根据需要设置父进程、子进可根据需要设置父进程、子进程、用户标识符。程、用户标识符。2)处理机状态信息:)处理机状态信息:存储处理机中各种寄存器的存储处理机中各种寄存器

30、的内容。被中断时存储,再次运行时用于恢复现场。内容。被中断时存储,再次运行时用于恢复现场。也称为进程上下文可有通用寄存器、指令计数器、也称为进程上下文可有通用寄存器、指令计数器、程序状态字程序状态字PSW、用户栈指针。、用户栈指针。4.2进程控制块的信息进程控制块的信息433)进程调度信息:)进程调度信息:与进程调度和进程对换有关的内与进程调度和进程对换有关的内容。进程状态、进程优先级、事件、与调度算法有容。进程状态、进程优先级、事件、与调度算法有关的其他信息。一般常包括进程已等待的时间和已关的其他信息。一般常包括进程已等待的时间和已使用的处理器时间等使用的处理器时间等 。 4)进程控制信息:

31、)进程控制信息:程序数据的地址、进程同步和程序数据的地址、进程同步和通信机制(消息队列和信号量)、资源清单(除通信机制(消息队列和信号量)、资源清单(除CPUCPU外进程所需的全部资源及已分配的资源)、链接指外进程所需的全部资源及已分配的资源)、链接指针(本进程所在队列的下一个进程的针(本进程所在队列的下一个进程的PCBPCB首址)。首址)。4.2进程控制块的信息进程控制块的信息44 在一个系统中,常常含有固定数目的在一个系统中,常常含有固定数目的PCBPCB。对它们。对它们要进行有效的组织与管理。要进行有效的组织与管理。 1 1)链接方式:)链接方式:)链接方式:)链接方式:相同状态的相同状

32、态的PCBPCB链接成一个队列。链接成一个队列。12410152 2)索引方式)索引方式)索引方式)索引方式4.3进程控制块的组织方式进程控制块的组织方式454.3进程控制块的组织方式进程控制块的组织方式46索引表索引表就绪队列就绪队列等待队列等待队列 1等待队列等待队列 2PCB 1PCB 2PCB 3PCB 4PCB 5PCB 6PCB 7PCB n PCB表表4.3进程控制块的组织方式进程控制块的组织方式47二、进程控制二、进程控制1 1 1进程的控制概念进程的控制概念2 2 2进程创建与撤销进程创建与撤销3 3 3进程的阻塞与唤醒进程的阻塞与唤醒4 4 4进程的挂起与激活进程的挂起与激

33、活481.进程控制概念进程控制概念 1.1 1.1 进程控制作用进程控制作用 1.2 1.2进程控制机制进程控制机制 1.3 1.3进程控制与原语进程控制与原语491.1进程控制的作用进程控制的作用进程是有生命周期的,产生、运行、暂停、终止。进程是有生命周期的,产生、运行、暂停、终止。对对进程的这些操作叫进程控制进程的这些操作叫进程控制。进程控制的职责是对系统中全部进程实施有效的管进程控制的职责是对系统中全部进程实施有效的管理,它是处理机管理,它是处理机管理的部分(理的部分(另一部分是进程调度)另一部分是进程调度),当系统允许多进程并发执行时,为了实现共享、,当系统允许多进程并发执行时,为了实

34、现共享、协调并发进程的关系,处理机管理必须提供对进程协调并发进程的关系,处理机管理必须提供对进程实行有效管理。实行有效管理。50进程控制内容包括进程控制内容包括: 进程创建进程创建、进程撤销进程撤销、进程阻塞进程阻塞、进程唤醒、进程唤醒、进进程挂起程挂起、进程激活进程激活。进程控制实现机制进程控制实现机制 这些操作都要对应地执行一个特殊的程序段(操这些操作都要对应地执行一个特殊的程序段(操作系统核心程序),同时系统也通过系统调用给用作系统核心程序),同时系统也通过系统调用给用户提供进程控制的功能。教材上叫原语(一种特殊户提供进程控制的功能。教材上叫原语(一种特殊的系统调用)。的系统调用)。1.

35、2进程控制的机制进程控制的机制511.2进程控制的机制进程控制的机制52所谓原语,是机器指令的延伸,由若干条机器指所谓原语,是机器指令的延伸,由若干条机器指令组成,是一种特殊的系统调用命令,它可以完成一令组成,是一种特殊的系统调用命令,它可以完成一个特定的功能一段系统程序。又称为原语操作。个特定的功能一段系统程序。又称为原语操作。为保证操作的正确性,在许多机器中规定,执行为保证操作的正确性,在许多机器中规定,执行原语操作时,要屏蔽中断,以保证其操作的不可分割原语操作时,要屏蔽中断,以保证其操作的不可分割性。性。它的功能由系统通过一段不可分割的操作指令来它的功能由系统通过一段不可分割的操作指令来

36、完成。即一个操作中的所有动作要么全做,要么全不完成。即一个操作中的所有动作要么全做,要么全不做,原语操作具有原子性,它是不可再分的。做,原语操作具有原子性,它是不可再分的。 原语在系统态下完成,在操作系统内核中。原语在系统态下完成,在操作系统内核中。常驻内存,在操作系统中原语作为一个基本的单位出常驻内存,在操作系统中原语作为一个基本的单位出现现1.3进程控制的原语进程控制的原语53常用的原语常用的原语进程控制原语进程控制原语进程通信原语进程通信原语资源管理原语资源管理原语其他原语其他原语常用的进程控制原语有:常用的进程控制原语有:创建原语创建原语撤消原语撤消原语阻塞原语阻塞原语唤醒原语等唤醒原

37、语等1.3进程控制的原语进程控制的原语542.进程的创建与撤销进程的创建与撤销 2.1 2.1 进程创建进程创建 2.2 2.2进程撤销进程撤销 55进程图子进程可以继承父进程所拥有的资源,但子进子进程可以继承父进程所拥有的资源,但子进程被撤消时,必须归还。程被撤消时,必须归还。 撤消父进程时,须先撤消其所有的子进程。撤消父进程时,须先撤消其所有的子进程。 PCBPCB中有家族关系表项,以标识自己的父、子中有家族关系表项,以标识自己的父、子进程。进程。. . 是用于描述进程家族关系是用于描述进程家族关系(创建关系)的有向树。(创建关系)的有向树。结点结点代表进程,代表进程,边边代表父子关系。代

38、表父子关系。父进程、子进程、祖父进程、父进程、子进程、祖父进程、祖先。祖先。2.1进程创建进程创建1.1.进程图进程图562. 2. 引起创建进程的事件:引起创建进程的事件:用户登录(如分时系统中,合法用户进入,则用户登录(如分时系统中,合法用户进入,则系统为之创建进程);系统为之创建进程);作业调度(如批处理系统中);作业调度(如批处理系统中);提供服务(运行中的用户程序提出某种请求,提供服务(运行中的用户程序提出某种请求,则系统创建进程以完成请求,则系统创建进程以完成请求,如:打印文件如:打印文件););应用请求(应用进程根据需要,为自己创建进应用请求(应用进程根据需要,为自己创建进程)程

39、)2.1进程创建进程创建573.3.创建过程创建过程申请空白PCB分配资源初始化PCB插入就绪队列查空查空查空查空PCBPCB表表表表有空有空有空有空PCBPCB创建失败创建失败创建失败创建失败取空表取空表取空表取空表PCB i PCB i 将参数填入将参数填入将参数填入将参数填入PCB i PCB i 将将将将PCB i PCB i 插入就绪队列插入就绪队列插入就绪队列插入就绪队列N NY Y进程创建实质上进程创建实质上进程创建实质上进程创建实质上是生成一个是生成一个是生成一个是生成一个PCBPCB2.1进程创建进程创建58 procedure Createprocedure Create(

40、n n,S S。,。,k k。,。,M M。,。,R R。,。,accacc) begin begin i i:GetNewInternalNameGetNewInternalName(n n);调用查找进程名过程);调用查找进程名过程 Id Id(i i):):n n; 将将n n登记到第登记到第i i个个PCBPCB的相应表目中的相应表目中 Priority Priority(i i):):k k。;。; 向向PCBPCB中登记优先数中登记优先数 Cpustate Cpustate(i i):):S S。;。; 登记现场状态初始值登记现场状态初始值S S。 MainStore MainSt

41、ore(i i):):M M。;记入主存和资源的初始占有情况。;记入主存和资源的初始占有情况 Resources Resources(i i):):R R。;。; Status Status(i i):):ReadysReadys; 进程初始状态置为进程初始状态置为“就绪就绪” Parent Parent(i i):):* *;调用本过程的父进程之内部标识号,;调用本过程的父进程之内部标识号,将它记入子进程将它记入子进程PCBPCB的父进程名这一栏的父进程名这一栏 Set Accounting Data Set Accounting Data; 在在PCBPCB中建立记账信息中建立记账信息 I

42、nsert Insert(RLRL,i i);); 调用调用InsertInsert,把,把i i插入到就绪队列插入到就绪队列参参数数:进进程程外部名外部名2.1进程创建进程创建3.3.创建函数创建函数591 1 引发事件引发事件: 正常结束(有一条表示进程结束的指令)正常结束(有一条表示进程结束的指令) 异常结束(运行中出现错误或故障,如异常结束(运行中出现错误或故障,如 越界错越界错误、保护错、特权指令错、算术运算错、误、保护错、特权指令错、算术运算错、I/OI/O故障)故障) 外界干预(应外界的请求而终止)外界干预(应外界的请求而终止)2 2 终止过程终止过程:由进程终止原语:由进程终止

43、原语DestroyDestroy()()完成。完成。 功能:撤销指定进程的功能:撤销指定进程的PCBPCB,收回该进程拥有的全收回该进程拥有的全部资源。部资源。 2.2进程撤销进程撤销603.3.进程撤销的过程进程撤销的过程查找进程n查找该进程的PCB中止执行终止子进程归还资源将PCB从所在队列移出释放PCB查查查查PCBPCB表和进程家族表和进程家族表和进程家族表和进程家族有此有此有此有此PCBPCB?N N 出错处理出错处理出错处理出错处理Y Y释放进程所占资源释放进程所占资源释放进程所占资源释放进程所占资源释放该释放该释放该释放该PCBPCB结构结构结构结构该该该该PCBPCB有子进程?

44、有子进程?有子进程?有子进程?Y YN N2.2进程撤销进程撤销613.进程的阻塞与唤醒进程的阻塞与唤醒 3.1 3.1 引发事件引发事件 3.2 3.2进程阻塞过程进程阻塞过程 3.3 3.3进程唤醒过程进程唤醒过程 3.4 3.4两过程的关系两过程的关系 62 1 1)请求系统服务未满足,则阻塞;当资源可以满)请求系统服务未满足,则阻塞;当资源可以满足时,由释放该资源的进程将阻塞进程唤醒;足时,由释放该资源的进程将阻塞进程唤醒; 2 2)启动某种操作,等待其完成。)启动某种操作,等待其完成。 3 3)新数据未到达。多进程合作时,本进程要用)新数据未到达。多进程合作时,本进程要用的其它进程的

45、结果尚未到来。的其它进程的结果尚未到来。 4 4)无新工作可做。某些系统进程,等待工作的)无新工作可做。某些系统进程,等待工作的到达。到达。3.1引发事件引发事件63 由阻塞原语由阻塞原语BlockBlock()()实现。正在执行的进程本身调实现。正在执行的进程本身调用用BlockBlock,是一个,是一个主动主动的行为。的行为。 1 1)停止)停止 2 2)改状态)改状态“执行执行”为为“阻塞阻塞”,插入相应阻塞队,插入相应阻塞队列列 3 3)重新调度(进行切换,即保留现场,重设现场)重新调度(进行切换,即保留现场,重设现场) BLOCK() 输入参数:无输入参数:无 返回:转进程调度返回:

46、转进程调度功能:将现行进程的功能:将现行进程的PCB置成置成“阻塞阻塞”状态后列入阻塞队列状态后列入阻塞队列3.2进程阻塞过程及函数进程阻塞过程及函数64进程唤醒过程:进程唤醒过程:由唤醒原语由唤醒原语WakeupWakeup()()实现。由和阻实现。由和阻塞原因相关的进程执行唤醒。塞原因相关的进程执行唤醒。 1 1)从阻塞队列中移出)从阻塞队列中移出 2 2)改)改“阻塞阻塞”为为“就绪就绪” 3 3)插入就绪队列)插入就绪队列WAKEUP()输入参数:进程号输入参数:进程号返回:成功或失败标记返回:成功或失败标记功能:把指定进程的功能:把指定进程的PCB从阻从阻塞队列摘下,该状态为就绪后,

47、塞队列摘下,该状态为就绪后,列入就绪队列列入就绪队列3.3进程唤醒过程及函数进程唤醒过程及函数65 注:注:BlockBlock和和WakeupWakeup是一对是一对作用相反作用相反的的 原语,两者应在原语,两者应在不同的进程不同的进程中中成对成对出现。出现。 即在某进程中用到了阻塞,在与之相关即在某进程中用到了阻塞,在与之相关 的另一进程中一定要有唤醒。的另一进程中一定要有唤醒。3.4进程过程关系进程过程关系661 1 挂起过程:挂起过程:由挂起原语由挂起原语SuspendSuspend()()实现。实现。 1 1)检查、修改状态。)检查、修改状态。“执行执行”、“活动就绪活动就绪”“”“

48、静止就绪静止就绪”;“活动阻塞活动阻塞” “” “静止阻塞静止阻塞”; 2 2)若原状态为)若原状态为“执行执行”,则设调度标志为,则设调度标志为.T.T. 3 3)复制)复制PCBPCB到内存某区域(该进程可能会调至外存)到内存某区域(该进程可能会调至外存) 4 4)检测调度标志,若为)检测调度标志,若为.T.T.,则重新调度,则重新调度2 2 激活过程激活过程:由激活原语:由激活原语ActiveActive()()实现。实现。 1 1)将进程调入内存,改状态。)将进程调入内存,改状态。“静止静止” “” “活动活动” 2 2)若新状态为)若新状态为“活动就绪活动就绪”则根据情况,看是否需则

49、根据情况,看是否需重新调度(抢占调度策略)。重新调度(抢占调度策略)。4.进程的挂起与激活进程的挂起与激活67本节自学知识本节自学知识 1. 1.操作系统内核操作系统内核 2. 2.处理机状态处理机状态 3. 3.特权指令与非特权指令特权指令与非特权指令 68 操作系统的内核:操作系统的内核:通常将通常将OS中一些中一些与硬件紧密与硬件紧密相关的模块相关的模块(如中断处理程序、常用设备的驱动程(如中断处理程序、常用设备的驱动程序等)、序等)、运行频率较高的模块运行频率较高的模块(如时钟管理、进程(如时钟管理、进程调度、公共操作等)安排在紧靠硬件的软件层次中,调度、公共操作等)安排在紧靠硬件的软

50、件层次中,使它们使它们常驻内存常驻内存,以提高,以提高OS的运行效率并对它们加的运行效率并对它们加以特殊的保护。通常把这部分称为以特殊的保护。通常把这部分称为OS的内核的内核。 处理机的执行状态可分为处理机的执行状态可分为系统态系统态和和用户态用户态两种。两种。通常用户程序运行在用户态,通常用户程序运行在用户态,OS内核运行在系统态。内核运行在系统态。1.操作系统内核(Kernel)69n 系统态系统态(system mode)n又称又称核心态核心态(kernel mode)、管态、管态(supervisor mode) ,操作系统运行时所处的状态,它具有较,操作系统运行时所处的状态,它具有较

51、高的权限,能执行一切指令,访问所有寄存器和存高的权限,能执行一切指令,访问所有寄存器和存储区。储区。n 用户态用户态(user mode)又称又称目态目态(object mode),),是一般用户程序运行是一般用户程序运行时所处的状态,是具有较低特权的执行状态,它只时所处的状态,是具有较低特权的执行状态,它只能执行非特权指令,访问指定的寄存器和存储区。能执行非特权指令,访问指定的寄存器和存储区。目的:目的:保护核心代码不受用户程序有意和无意的攻击。保护核心代码不受用户程序有意和无意的攻击。2.处理机状态703.特权指令与非特权指令特权指令与非特权指令现代计算机的指令系统由特权指令和非特权指令现

52、代计算机的指令系统由特权指令和非特权指令两部分组成。两部分组成。特权指令特权指令:只能在管态下才能执行的指令。如开:只能在管态下才能执行的指令。如开关中断、修改地址映射寄存器、置程序状态字、关中断、修改地址映射寄存器、置程序状态字、停机等。停机等。非特权指令非特权指令:在管态和目态下均可执行的指令。:在管态和目态下均可执行的指令。这些指令的执行只和运行程序本身有关,不会影这些指令的执行只和运行程序本身有关,不会影响其它程序和操作系统。如数据传送指令、算术响其它程序和操作系统。如数据传送指令、算术运算指令等。运算指令等。713.5 进程同步 进程同步的主要任务是使并发执行的诸进进程同步的主要任务

53、是使并发执行的诸进程之间能有效地共享资源和相互合作,从而程之间能有效地共享资源和相互合作,从而使程序的执行具有可再现性。使程序的执行具有可再现性。72三、进程互斥与同步三、进程互斥与同步1 1 1进程的同步与互斥概念进程的同步与互斥概念2 2 2进程互斥与同步机制进程互斥与同步机制3 3 3进程互斥与同步实现方法进程互斥与同步实现方法731.进程互斥和同步概念进程互斥和同步概念 1.1 1.1 进程间两种关系进程间两种关系 1.2 1.2互斥的概念互斥的概念 1.3 1.3同步的概念同步的概念 1.4 1.4 同步与互斥的关系 741)资源共享关系(间接相互制约)资源共享关系(间接相互制约)因

54、多进程共享某资源而产生。此时进程同步要因多进程共享某资源而产生。此时进程同步要保证进程能互斥地访问临界资源。为此资源要保证进程能互斥地访问临界资源。为此资源要由系统统一分配。由系统统一分配。2)相互合作关系(直接相互制约)相互合作关系(直接相互制约)因多进程内容上的联系而产生。此时进程同步因多进程内容上的联系而产生。此时进程同步要保证进程在执行次序上的协调。要保证进程在执行次序上的协调。例:输入进程例:输入进程A和计算进程和计算进程B。A单缓冲单缓冲B。应保证应保证A、B交替执行。交替执行。1.1进程间可能存在两种关系进程间可能存在两种关系75 两个并行的进程两个并行的进程A、B,如果当,如果

55、当A进行某个操作进行某个操作时,时,B不能做这一操作,进程间的这种限制条件不能做这一操作,进程间的这种限制条件称为进程互斥。称为进程互斥。关系体现关系体现:进程资源进程。:进程资源进程。竞争到某一物理资源时不允许其它进程工作。竞争到某一物理资源时不允许其它进程工作。相互之间不一定清楚其它进程情况。相互之间不一定清楚其它进程情况。往往指多个进程之间的通信制约。往往指多个进程之间的通信制约。1.2进程互斥进程互斥76临界资源临界区互斥准则(1)(2)(3)进程互斥77(1)(1)临界资源临界资源 一段时间内只允许一个进程访问的资源。一段时间内只允许一个进程访问的资源。 若多进程共享某临界资源,则应

56、对其进行同步控若多进程共享某临界资源,则应对其进行同步控制,以实现对临界资源的互斥访问。制,以实现对临界资源的互斥访问。 临界资源可有临界资源可有硬、软资源硬、软资源。v 硬件资源:如打印机等。硬件资源:如打印机等。诸进程要互斥使用这些资诸进程要互斥使用这些资源。源。v 软件资源:如共享变量等。软件资源:如共享变量等。对共享变量应作为临界对共享变量应作为临界资源处理。即要对它进行互斥访问。资源处理。即要对它进行互斥访问。1.2进程互斥进程互斥78例例1 1: 进程进程A A:生产一个数据。用:生产一个数据。用countcount计数计数, , count=count+1 count=count

57、+1 进程进程B B:消费一个数据。则:消费一个数据。则count=count-1count=count-1 为提高资源利用率,设为提高资源利用率,设A A、B B并发执行。且并发执行。且对对countcount的操作可细化为以下步骤:的操作可细化为以下步骤:(R R表示寄存器,设表示寄存器,设countcount初值为初值为1 1):):1.2进程互斥进程互斥79若执行次序为:A(1) A(2) A(3) B(1) B(2) B(3) 则count=1若执行次序为:A(1) B(1) A(2) A(3) B(2) B(3) 则count=0若执行次序为:A(1) B(1) B(2) B(3)

58、 A(2) A(3) 则count=2A:R1=count R1=R1+1 count=R1B:R2=count R2=R2-1 count=R2因此,对共享变量应作为临界资源处理。即要对它进因此,对共享变量应作为临界资源处理。即要对它进因此,对共享变量应作为临界资源处理。即要对它进因此,对共享变量应作为临界资源处理。即要对它进行互斥访问。行互斥访问。行互斥访问。行互斥访问。1.2进程互斥进程互斥80进入区进入区临界区临界区退出区退出区剩余区剩余区(2)临界区临界区把每个进程把每个进程访问临界资源访问临界资源的那段的那段代码代码称称为为临界区临界区(CS)(CS)。对临界资源的互斥访问即为多进

59、程对临界资源的互斥访问即为多进程互斥进入各自的临界区操作。为保互斥进入各自的临界区操作。为保证互斥访问,在进入前必需先检测证互斥访问,在进入前必需先检测临界资源的状态。临界资源的状态。进入区:进入区:进程中在临界区前用于检查临进程中在临界区前用于检查临界资源是否正被访问的代码。界资源是否正被访问的代码。退出区:退出区:进程中在临界区后的一段代码,进程中在临界区后的一段代码,用于标记该临界资源已被释放。用于标记该临界资源已被释放。1.2进程互斥进程互斥81(3)(3)互斥准则互斥准则- -同步机制应遵循的原则同步机制应遵循的原则OSOS提供提供互斥工具互斥工具才能保证进程互斥的进入临界区,互斥工

60、才能保证进程互斥的进入临界区,互斥工具应能保证如下几点:具应能保证如下几点:1 1)空闲让进空闲让进:若临界资源空闲,则应允许一个请求的进程:若临界资源空闲,则应允许一个请求的进程进入自己的临界区。进入自己的临界区。2 2)忙则等待忙则等待:若临界资源正被使用,则其它申请该资源的:若临界资源正被使用,则其它申请该资源的进程应该等待。进程应该等待。3 3)有限等待有限等待:保证进程可在有限的时间内进入自己的临界:保证进程可在有限的时间内进入自己的临界区,防止区,防止“死等死等”。4 4)让权等待让权等待:当进程应临界资源不能满足而等待时,应释:当进程应临界资源不能满足而等待时,应释放放CPUCP

61、U,防止,防止“忙等忙等” ” v对要进入临界区的进程加以对要进入临界区的进程加以管理,管理的方法有两种:管理,管理的方法有两种:同同步步和和互斥互斥;同步反映了进程间;同步反映了进程间的协作关系,而互斥则反映了的协作关系,而互斥则反映了进程之间的竞争。进程之间的竞争。1.3进程互斥进程互斥82合作完成同一个任务的多个进程,在执行速度合作完成同一个任务的多个进程,在执行速度或顺序上必须相互协调的合作关系。或顺序上必须相互协调的合作关系。关系体现关系体现:进程进程。:进程进程。相互清楚对方的存在及其作用,交换信息。相互清楚对方的存在及其作用,交换信息。如生产者消费者关系,发送者接收者关系如生产者

62、消费者关系,发送者接收者关系等。等。1.3进程同步进程同步83进程互斥是进程同步的特例进程互斥是进程同步的特例?互斥:共享临界资源互斥:共享临界资源间接制约间接制约无固定的必然无固定的必然关系关系依据临界资源使用否。依据临界资源使用否。同步:执行顺序和速度同步:执行顺序和速度直接制约直接制约必然的依必然的依赖关系赖关系依据同步信息有否依据同步信息有否1.4进程同步与互斥关系进程同步与互斥关系841.进程互斥和同步概念进程互斥和同步概念 1.1 1.1 进程间两种关系进程间两种关系 1.2 1.2互斥的概念互斥的概念 1.3 1.3同步的概念同步的概念 1.4 1.4 同步与互斥的关系 852.

63、进程互斥和同步机制进程互斥和同步机制 2.1 2.1 进程互斥与同步机制进程互斥与同步机制 2.22.2整型信号量机制整型信号量机制 2.3 2.3记录型信号量机制记录型信号量机制 2.42.4 信号量集机制 86互斥与同步机制主要有信号量机制和管程机制互斥与同步机制主要有信号量机制和管程机制信号量机制是一种有效的进程同步机制。信号量机制是一种有效的进程同步机制。信号量机制有特殊变量(信号量)和信号量机制有特殊变量(信号量)和PV原语(原语(P操操作和作和V操作)组成操作)组成信号量类型有信号量类型有 整型信号量 记录型信号量 AND型信号量 信号量集2.1进程互斥和同步机制概述进程互斥和同步

64、机制概述87用一个变量描述资源,实现多进程对资源的用一个变量描述资源,实现多进程对资源的互斥访问互斥访问。1)1)整型信号量:一个整型数。除初始化外,仅能通过两整型信号量:一个整型数。除初始化外,仅能通过两个标准的原子操作个标准的原子操作wait(s)wait(s)和和signal(s)signal(s)访问。即访问。即P P和和V V操操作。作。 wait(s)wait(s): while s=0 do no_op; while s=0 do no_op; s:=s-1; s:=s-1; signal(s):signal(s): s:=s+1; s:=s+1;u 信号量信号量s s代表临界资

65、源,代表临界资源,数量为数量为1 1。u Wait(sWait(s) ):先测试临界资先测试临界资源是否可用,若源是否可用,若s=0s=0不可用,不可用,循环测试;否则,进入临界循环测试;否则,进入临界区。区。u Signal(sSignal(s) ):用完临界资用完临界资源后释放。源后释放。s:=s+1s:=s+1,返回。返回。整型信号量机制定义整型信号量机制定义2.2整型信号量机制整型信号量机制88n整型信号量的缺点整型信号量的缺点: 未遵循未遵循“让权等待让权等待”,出现,出现“忙等忙等”。为此引入另一种信号量机制为此引入另一种信号量机制记录型信号量记录型信号量。即:放弃处理机进行等待,

66、即:放弃处理机进行等待,“让权等待让权等待”。问题:其他进程可获得处理机,会出现多个进程等待问题:其他进程可获得处理机,会出现多个进程等待访问同一临界资源。访问同一临界资源。2.2整型信号量机制整型信号量机制89为解决忙等和多个进程共享资源的情况,引入了一种记为解决忙等和多个进程共享资源的情况,引入了一种记录型的信号量。所含内容录型的信号量。所含内容: :(1 1)代表资源数目的整型量代表资源数目的整型量(2 2)进程链表,接纳所有等待进程。进程链表,接纳所有等待进程。1 1)信号量类型定义)信号量类型定义 : struct struct semaphoresemaphore int int

67、valuevalue;/;/信号量的值信号量的值 ProcessQueue * ProcessQueue *WQrWQr; /r; /r资源的等待队列指针资源的等待队列指针 2.3记录型信号量机制记录型信号量机制902 ) wait()2 ) wait()操作操作void wait (semaphore s) -s.value; if ( s.value0) then block(s.WQr);1 1)s.values.value的的初值初值表示系统中表示系统中某类资源的数目某类资源的数目。s s又又叫叫资源信号量资源信号量。s.WQrs.WQr表示该资源的阻塞队列。表示该资源的阻塞队列。2

68、2)wait()wait()表示请求一个单位的资源。表示请求一个单位的资源。 u s.value-1s.value-1表示该资源数减表示该资源数减1 1。u 若若s.value0s.value=0=0,则进程继续运行。,则进程继续运行。2.3记录型信号量机制记录型信号量机制91procedure signal(semaphore s) +s.value; if s.value=0 then wakeup(s.WQr) 1)1)signal()signal()表示释放一个单位的资源。表示释放一个单位的资源。 u+s.values.value表示该资源数加表示该资源数加1 1。u若若s.value

69、=0s.value0 ,0 ,则进程则进程继续运行。继续运行。2 2)若)若s.values.value初值为初值为1 1,则等同于互斥信号量,则等同于互斥信号量3) signal()3) signal()操作操作2.3记录型信号量机制记录型信号量机制92(1)s.value0: (1)s.value0: 代表一类可用资源的数量。绿灯代表一类可用资源的数量。绿灯(2) s.value0:(2) s.value1S1时,可看作一般的记录型信号量。当时,可看作一般的记录型信号量。当S=1S=1时,即为互时,即为互斥信号量。斥信号量。3 3)Swait(S,1,0) Swait(S,1,0) 下限为

70、下限为1 1,每次分配,每次分配0 0个资源。这是个资源。这是一种特殊的可作为开关的信号量。当一种特殊的可作为开关的信号量。当S1S1时,允许多时,允许多个进程进入。当个进程进入。当S1S1(S=0S=0)时,阻止任何进程进入。)时,阻止任何进程进入。2.4信号量集机制信号量集机制1003.进程互斥和同步实现方法进程互斥和同步实现方法 3.1 3.1 利用信号量实现互斥利用信号量实现互斥 3.2 3.2利用信号量描述前趋关系利用信号量描述前趋关系 3.3 3.3利用信号量实现同步利用信号量实现同步 101 为临界资源设一信号量为临界资源设一信号量mutexmutex,称为互斥信号量。称为互斥信

71、号量。初值为初值为1 1。信号量。信号量mutexmutex是一公用信号量,其取值是一公用信号量,其取值范围与共享临界资源的并发进程的个数范围与共享临界资源的并发进程的个数n n有关,有关,为为1 1-(n-1)-(n-1) P(mutex)-wait(mutexP(mutex)-wait(mutex) )作为进入区作为进入区 V(mutex)-signal(mutexV(mutex)-signal(mutex) )作为退出区作为退出区3.1利用信号量实现互斥利用信号量实现互斥102P(mutex)V(mutex)P(mutex)P(mutex)V(mutex)V(mutex)3.1信号量利用

72、信号量实现互斥信号量利用信号量实现互斥103var mutex:semaphore:=1 parbegin process1: wait(mutex) CS signal(mutex) process2: wait(mutex) CS signal(mutex) parend注:注:1 1、信号量、信号量初值的初值的设定设定非常重要,它表明非常重要,它表明了在初始情况下系统拥了在初始情况下系统拥有或可提供的此类资源有或可提供的此类资源的数量。的数量。2 2、wait(mutex)wait(mutex)和和signal(mutex)signal(mutex)必须成必须成对出现,并应分别紧靠对出现

73、,并应分别紧靠临界段的头尾部。临界段的头尾部。考虑考虑:缺少:缺少waitwait,则,则 缺少缺少signalsignal则则.3.1利用信号量实现互斥利用信号量实现互斥104信号量及信号量及P、V操作讨论操作讨论 对于两个并发进程,互斥信号量的值仅取对于两个并发进程,互斥信号量的值仅取1 1、0 0和和-1-1三个值三个值 若若mutexmutex1 1表示没有进程进入临界区表示没有进程进入临界区若若mutex mutex 0 0表示有一个进程进入临界区表示有一个进程进入临界区若若mutex mutex -1-1表示一个进程进入临界区,另一表示一个进程进入临界区,另一个进程等待进入。个进程

74、等待进入。 对对于于N N个个并并发发进进程程,信信号号量量的的取取值值范围是什么,有什么含义。范围是什么,有什么含义。? ?思考思考3.1利用信号量实现互斥利用信号量实现互斥105设设P1P1、P2P2为两个并发执行的进程。且为两个并发执行的进程。且P1P1中有语句中有语句S1S1,P2P2中有语句中有语句S2S2。有。有S1S2S1S2可设置信号量可设置信号量S S,并设初值为,并设初值为0 0,使得:,使得: P1 P1中:中:S1S1;signal(s)signal(s) P2 P2中:中:wait(s)wait(s);S2S2 则可限制其前趋关系。则可限制其前趋关系。3.2利用信号量

75、描述前趋关系利用信号量描述前趋关系106例如:例如:S1S2S3S4S5S6var a,b,c,d,e,f,g:semaphore:=0,0,0,0,0,0,0begin3.2利用信号量描述前趋关系利用信号量描述前趋关系107parbegin begin S1;signal(a);signal(b);end; begin wait(a);S2;signal(c);signal(d);end; begin wait(b);S3;signal(e);end; begin wait(c);S4;signal(f);end; begin wait(d);S5;signal(g);end; begin

76、wait(e);wait(f);wait(g);S6;end;parendend3.2利用信号量描述前趋关系利用信号量描述前趋关系108(1 1)与进程互斥的区别:)与进程互斥的区别:u 进程互斥进程互斥时它们的执行顺序是可以任意的,通时它们的执行顺序是可以任意的,通过共享资源实现相互制约过共享资源实现相互制约( (间接制约间接制约) )。u 在异步环境下的并发进程,若各自执行结果互在异步环境下的并发进程,若各自执行结果互为对方的执行条件,从而限制各进程执行速度,为对方的执行条件,从而限制各进程执行速度,则为并发进程间的则为并发进程间的直接制约直接制约。(2 2)解决方法)解决方法:直接制约的

77、进程直接制约的进程互给对方进程发送互给对方进程发送执行条件已经具备的信号执行条件已经具备的信号,一旦收到制约进程发来的,一旦收到制约进程发来的信号即由等待开始执行信号即由等待开始执行, ,通过通过PVPV操作实现。操作实现。 3.3利用信号量实现同步利用信号量实现同步109 假设有两个同步进程:计算进程假设有两个同步进程:计算进程C和打印进程和打印进程P,且只有一个,且只有一个缓冲区。其中计算进程的功能是进行计算而后将结果送入此缓冲区。其中计算进程的功能是进行计算而后将结果送入此缓冲区中,而打印进程的动作是从缓冲区中将结果取出,而缓冲区中,而打印进程的动作是从缓冲区中将结果取出,而后交给打印机

78、进行打印。后交给打印机进行打印。 问题分析:问题分析: 两进程应满足如下条件:两进程应满足如下条件:当当C进进程程把把计计算算结结果果送送入入缓缓冲冲区区时时,P进进程程才才能能从缓冲区中取出结果去打印从缓冲区中取出结果去打印;当当P进进程程把把缓缓冲冲区区中中的的数数据据取取出出打打印印后后,C进进程程才能把下一个计算结果送入缓冲区才能把下一个计算结果送入缓冲区共享缓冲区的合作进程的同步共享缓冲区的合作进程的同步 3.3利用信号量实现同步利用信号量实现同步110进程同步的实现:进程同步的实现: 设置两个信号量:设置两个信号量:S SC C 和和 S SP P S SC C:供进程:供进程C

79、C使用,用于判断使用,用于判断BufferBuffer是否是否为空。若空则为为空。若空则为1 1,否则为,否则为0 0。 S SP P:供进程:供进程P P使用,用于判断使用,用于判断BufferBuffer中是中是否有数据,有数据为否有数据,有数据为1 1,无数据为,无数据为0 0。 初始条件初始条件: S SC C1 1, S SP P 0 0计算进程计算进程C打印进程打印进程P缓冲区缓冲区3.3利用信号量实现同步利用信号量实现同步111计算进程计算进程C打印进程打印进程P计计 算算P(SC)送缓冲区送缓冲区V(SP)从从Buffer中取数中取数P(SP)打印打印V(SC)两进程的同步关系

80、如下:112 通常信号量可分为两类:通常信号量可分为两类:公用信号量:公用信号量:又称又称资源信号量资源信号量( (互斥互斥信号量信号量) ),往往往往用于互斥的情况,通常初值为用于互斥的情况,通常初值为1 1,一组并发进程既,一组并发进程既可以在其上执行可以在其上执行P P操作也可以执行操作也可以执行V V操作。操作。私有信号量:私有信号量:把各进程之间发送的消息作为信号量把各进程之间发送的消息作为信号量看待(只与制约进程及被制约进程有关);看待(只与制约进程及被制约进程有关);该信号的该信号的拥有者可执行拥有者可执行P P操作,而其它的进程只能对该信号操作,而其它的进程只能对该信号量实施量实施V V操作。操作。补充:补充:113Q & A114115

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 施工组织

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