《操作系统ppt课件进程同步.ppt》由会员分享,可在线阅读,更多相关《操作系统ppt课件进程同步.ppt(30页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第三章第三章 进程的同步与通信进程的同步与通信3.1 3.1 进程的同步进程的同步3.2 3.2 进程通信进程通信3.1 3.1 进程的同步进程的同步3.1.1 3.1.1 临界区临界区3.1.2 3.1.2 利用硬件的方法利用硬件的方法解决进程互解决进程互 斥问题斥问题互互斥的加锁实现斥的加锁实现3.1.3 3.1.3 信号量机制信号量机制 进程同步的主要任务:使并发执行的诸进进程同步的主要任务:使并发执行的诸进进程同步的主要任务:使并发执行的诸进进程同步的主要任务:使并发执行的诸进程之间能有效地共享资源和相互合作,从而使程之间能有效地共享资源和相互合作,从而使程之间能有效地共享资源和相互合
2、作,从而使程之间能有效地共享资源和相互合作,从而使程序的并发执行具有可再现性。程序的并发执行具有可再现性。程序的并发执行具有可再现性。程序的并发执行具有可再现性。3.1.1 3.1.1 临界区临界区一、临界区一、临界区 1.1.1.1.临界资源:临界资源:临界资源:临界资源:2.2.2.2.临界区:临界区:临界区:临界区:3.1 3.1 进进程程的的同同步步一次仅允许一个进程访问的资源一次仅允许一个进程访问的资源一次仅允许一个进程访问的资源一次仅允许一个进程访问的资源例例:进程:进程:进程:进程PAPAPAPA、PBPBPBPB共享内存共享内存共享内存共享内存MSMSMSMS。其中其中其中其中
3、MSMSMSMS分为三个分为三个分为三个分为三个领域,即系统区、进程工作区和数据区。数据领域,即系统区、进程工作区和数据区。数据领域,即系统区、进程工作区和数据区。数据领域,即系统区、进程工作区和数据区。数据区被划分为大小相等的块,每个块中既可能被区被划分为大小相等的块,每个块中既可能被区被划分为大小相等的块,每个块中既可能被区被划分为大小相等的块,每个块中既可能被放有数据,也可能未放有数据。系统区中主要放有数据,也可能未放有数据。系统区中主要放有数据,也可能未放有数据。系统区中主要放有数据,也可能未放有数据。系统区中主要是堆栈是堆栈是堆栈是堆栈S S S S,其中存放那些空数据块的地址。分其
4、中存放那些空数据块的地址。分其中存放那些空数据块的地址。分其中存放那些空数据块的地址。分析其中的临界资源、临界区。析其中的临界资源、临界区。析其中的临界资源、临界区。析其中的临界资源、临界区。访问临界资源的代码段,不允许多个访问临界资源的代码段,不允许多个访问临界资源的代码段,不允许多个访问临界资源的代码段,不允许多个并发进程交叉执行的一段程序并发进程交叉执行的一段程序并发进程交叉执行的一段程序并发进程交叉执行的一段程序二、进程间的制约关系二、进程间的制约关系 1.1.1.1.间接制约关系间接制约关系间接制约关系间接制约关系(互斥互斥互斥互斥):2.2.2.2.直接制约关系直接制约关系直接制约
5、关系直接制约关系(同步同步同步同步):3.1.1 3.1.1 临界区临界区由于共享资源引起由于共享资源引起由于共享资源引起由于共享资源引起由于相互合作引起由于相互合作引起由于相互合作引起由于相互合作引起3.1 3.1 进进程程的的同同步步受受受受间接间接间接间接制约的各进程在制约的各进程在制约的各进程在制约的各进程在执行顺序上是任意的执行顺序上是任意的执行顺序上是任意的执行顺序上是任意的;一组在异步环境下的并发进程一组在异步环境下的并发进程一组在异步环境下的并发进程一组在异步环境下的并发进程,各自的执行结各自的执行结各自的执行结各自的执行结果互为对方的执行条件果互为对方的执行条件果互为对方的执
6、行条件果互为对方的执行条件,从而限制各进程的执行速从而限制各进程的执行速从而限制各进程的执行速从而限制各进程的执行速度的过程度的过程度的过程度的过程,称为并发进程间的直接制约。称为并发进程间的直接制约。称为并发进程间的直接制约。称为并发进程间的直接制约。三、临界区的进入:三、临界区的进入:3.1.1 3.1.1 临界区临界区临界区必须临界区必须临界区必须临界区必须互斥互斥互斥互斥访问访问访问访问2.2.同步机制应遵循的准则同步机制应遵循的准则1.1.访问过程访问过程3.1 3.1 进进程程的的同同步步临界区临界区临界区临界区(1)(1)(1)(1)检查临界资源是否被访问,检查临界资源是否被访问
7、,检查临界资源是否被访问,检查临界资源是否被访问,未被访问,转未被访问,转未被访问,转未被访问,转(2)(2)(2)(2),否则转,否则转,否则转,否则转(1)(1)(1)(1)。(2)(2)(2)(2)进入临界区,并设访问标志进入临界区,并设访问标志进入临界区,并设访问标志进入临界区,并设访问标志恢复访问标志,允许其它进程进入恢复访问标志,允许其它进程进入恢复访问标志,允许其它进程进入恢复访问标志,允许其它进程进入空闲让进空闲让进忙则等待忙则等待有限等待有限等待让权等待让权等待进入区进入区进入区进入区退出区退出区退出区退出区3.1.2 3.1.2 利用硬件的方法利用硬件的方法解决进程互斥问题
8、解决进程互斥问题互互斥的加锁实现斥的加锁实现 可以利用某些硬件指令其读写操作由一条可以利用某些硬件指令其读写操作由一条指令完成,因而保证读操作与写操作不被打断;这指令完成,因而保证读操作与写操作不被打断;这些指令允许对一个字的内容进行检测和修正,或交些指令允许对一个字的内容进行检测和修正,或交换两个字的内容。换两个字的内容。一、利用一、利用Test-and-SetTest-and-Set指令实现互斥指令实现互斥二、利用二、利用SwapSwap指令实现进程互斥指令实现进程互斥3.1 3.1 进进程程的的同同步步3.1.2 3.1.2 利用硬件的方法利用硬件的方法解决进程互斥问题解决进程互斥问题互
9、互斥的加锁实现斥的加锁实现一、利用一、利用Test-and-SetTest-and-Set指令实现互斥指令实现互斥1.1.Test-and-SetTest-and-Set指令指令该指令读出标志后设置为该指令读出标志后设置为TRUETRUEbooleanboolean TS(TS(booleanboolean*lock)*lock)boolean boolean old;old;old=*lock;*lock=TRUE;old=*lock;*lock=TRUE;return old;return old;locklock表示资源的两种状态:表示资源的两种状态:TRUETRUE表示临界区正被表示临
10、界区正被占用(忙),占用(忙),FALSEFALSE表示空闲。表示空闲。3.1 3.1 进进程程的的同同步步3.1.2 3.1.2 利用硬件的方法利用硬件的方法解决进程互斥问题解决进程互斥问题互互斥的加锁实现斥的加锁实现一、利用一、利用Test-and-SetTest-and-Set指令实现互斥指令实现互斥2.2.利用利用TSTS指令实现进程互斥指令实现进程互斥n利用利用TSTS实现进程互斥:每个临界资源设置一个公实现进程互斥:每个临界资源设置一个公共布尔变量共布尔变量locklock,初值为初值为FALSEFALSEn在在“进入区进入区”利用利用TSTS进行检查:若有进程在临界进行检查:若有
11、进程在临界区时,重复检查;直到其它进程退出时,检查通区时,重复检查;直到其它进程退出时,检查通过;过;3.1 3.1 进进程程的的同同步步3.1.2 3.1.2 利用硬件的方法利用硬件的方法解决进程互斥问题解决进程互斥问题互互斥的加锁实现斥的加锁实现二、利用二、利用SwapSwap指令实现进程互斥指令实现进程互斥1.1.SwapSwap指令指令交换两个字(字节)的内容交换两个字(字节)的内容void SWAP(void SWAP(intint*a,*a,int int*b)*b)int int temp;temp;temp=*a;*a=*b;*b=temp;temp=*a;*a=*b;*b=t
12、emp;3.1 3.1 进进程程的的同同步步3.1.2 3.1.2 利用硬件的方法利用硬件的方法解决进程互斥问题解决进程互斥问题互互斥的加锁实现斥的加锁实现二、利用二、利用SwapSwap指令实现进程互斥指令实现进程互斥2.2.利用利用SwapSwap实现进程互斥实现进程互斥 每个临界资源设置一个公共布尔变量每个临界资源设置一个公共布尔变量locklock,初值为初值为FALSEFALSE。每个进程设置一个私有布尔变量每个进程设置一个私有布尔变量keykey3.1 3.1 进进程程的的同同步步3.1.2 3.1.2 利用硬件的方法利用硬件的方法解决进程互斥问题解决进程互斥问题互互斥的加锁实现斥
13、的加锁实现3.1 3.1 进进程程的的同同步步n硬件方法的优点硬件方法的优点n适用于任意数目的进程,在单处理器或多处理器上适用于任意数目的进程,在单处理器或多处理器上n简单,容易验证其正确性简单,容易验证其正确性n可以支持进程内存在多个临界区,只需为每个临界可以支持进程内存在多个临界区,只需为每个临界区设立一个布尔变量区设立一个布尔变量n硬件方法的缺点硬件方法的缺点n循环测试锁状态循环测试锁状态,损耗损耗CPUCPU时间。时间。n可能可能“饥饿饥饿”:从等待进程中随机选择一个进入临:从等待进程中随机选择一个进入临界区,有的进程可能一直选不上界区,有的进程可能一直选不上(不公平现象不公平现象)3
14、.1 3.1 进进程程的的同同步步3.1.3 3.1.3 信号量机制信号量机制一、信号量一、信号量 是对系统中资源及其组织情况的抽象。它由一是对系统中资源及其组织情况的抽象。它由一个记录型数据表示。包含两个数据项个记录型数据表示。包含两个数据项:type semaphore=recordtype semaphore=record value:integer;value:integer;L:list of L:list of process;process;end end 其中其中:valuevalue的值的值表示可用资源的数目表示可用资源的数目;L:L:为等待此类资源的进程为等待此类资源的进程
15、PCBPCB表链。表链。3.1 3.1 进进程程的的同同步步3.1.3 3.1.3 信号量机制信号量机制二、二、PVPV操操作作1.1.P P操作:操作:wait(s)wait(s)功能:功能:请求系统分配请求系统分配一个一个单位的资源单位的资源参数:参数:信号量信号量S S流程:流程:3.1 3.1 进进程程的的同同步步3.1.3 3.1.3 信号量机制信号量机制二、二、PVPV操操作作2.2.V V操操作:作:signal(s)signal(s)功能:功能:释放释放一个一个单位的资源单位的资源参数:参数:信号量信号量S S流程:流程:3.1 3.1 进进程程的的同同步步3.1.3 3.1.
16、3 信号量机制信号量机制三、信号量的应用三、信号量的应用1.1.实现进程互斥实现进程互斥 进程间由于共享资源而引起的间接制约关系进程间由于共享资源而引起的间接制约关系进程间由于共享资源而引起的间接制约关系进程间由于共享资源而引起的间接制约关系 例如:例如:例如:例如:PAPAPAPA、PBPBPBPB共享一临界资源共享一临界资源共享一临界资源共享一临界资源设互斥信号量设互斥信号量设互斥信号量设互斥信号量S S S S,初值为初值为初值为初值为1 1 1 1,表示,表示,表示,表示没有并发进程使用临界区没有并发进程使用临界区没有并发进程使用临界区没有并发进程使用临界区 设信号量赋初值:设信号量赋
17、初值:设信号量赋初值:设信号量赋初值:实现:实现:实现:实现:3.1 3.1 进进程程的的同同步步3.1.3 3.1.3 信号量机制信号量机制三、信号量的应用三、信号量的应用1.1.实现进程互斥实现进程互斥n为临界资源设置一个为临界资源设置一个互斥信号量互斥信号量S S S S ,其其初值为初值为1 1;在每个进程中将临界区代码置于在每个进程中将临界区代码置于P(S)P(S)和和V(S)V(S)原语之原语之间间n必须必须成对使用成对使用P P和和V V原语:遗漏原语:遗漏P P原语则不能保证互原语则不能保证互斥访问,遗漏斥访问,遗漏V V原语则不能在使用临界资源之后将原语则不能在使用临界资源之
18、后将其释放(给其他等待的进程);其释放(给其他等待的进程);P P、V V原语原语不能次序不能次序错误、重复或遗漏错误、重复或遗漏3.1 3.1 进进程程的的同同步步3.1.3 3.1.3 信号量机制信号量机制三、信号量的应用三、信号量的应用1.1.实现进程互斥实现进程互斥 问问问问(1)(1)(1)(1)该例中该例中该例中该例中S.valueS.valueS.valueS.value的取值范围的取值范围的取值范围的取值范围(2)(2)(2)(2)PAPAPAPA在在在在临界区访问临界区访问临界区访问临界区访问,PBPBPBPB等待等待等待等待,某时刻某时刻某时刻某时刻PAPAPAPA执行完临
19、界区代码执行完临界区代码执行完临界区代码执行完临界区代码,执行执行执行执行V(S)V(S)V(S)V(S)后后后后,问问问问PBPBPBPB的的的的状态变化状态变化状态变化状态变化?(3)(3)(3)(3)若有若有若有若有n n n n个个个个进程共享一临界资源,则信进程共享一临界资源,则信进程共享一临界资源,则信进程共享一临界资源,则信号量的取值范围号量的取值范围号量的取值范围号量的取值范围?3.1 3.1 进进程程的的同同步步3.1.3 3.1.3 信号量机制信号量机制三、信号量的应用三、信号量的应用2.2.实现进程同步实现进程同步 进程间由于进程间由于进程间由于进程间由于相互合作而引起的
20、直接制约关系相互合作而引起的直接制约关系相互合作而引起的直接制约关系相互合作而引起的直接制约关系 例如:计算进程和打印进程共享一缓冲区例如:计算进程和打印进程共享一缓冲区例如:计算进程和打印进程共享一缓冲区例如:计算进程和打印进程共享一缓冲区,缓冲区缓冲区缓冲区缓冲区最多放一个数最多放一个数最多放一个数最多放一个数,计算进程反复把每次计计算进程反复把每次计计算进程反复把每次计计算进程反复把每次计算结果放入缓冲区中算结果放入缓冲区中算结果放入缓冲区中算结果放入缓冲区中,而打印进程则把计算进而打印进程则把计算进而打印进程则把计算进而打印进程则把计算进程每次放入缓冲区中的数据通过打印机打印程每次放入
21、缓冲区中的数据通过打印机打印程每次放入缓冲区中的数据通过打印机打印程每次放入缓冲区中的数据通过打印机打印输出。输出。输出。输出。设信号量赋初值:设信号量赋初值:设信号量赋初值:设信号量赋初值:分析:分析:分析:分析:实现:实现:实现:实现:3.1 3.1 进进程程的的同同步步3.1.3 3.1.3 信号量机制信号量机制三、信号量的应用三、信号量的应用 问问问问(1)(1)(1)(1)在该问题中需要考虑互斥吗在该问题中需要考虑互斥吗在该问题中需要考虑互斥吗在该问题中需要考虑互斥吗?为什么为什么为什么为什么?(2)(2)(2)(2)若为缓冲池若为缓冲池若为缓冲池若为缓冲池,池中有多个缓冲块池中有多
22、个缓冲块池中有多个缓冲块池中有多个缓冲块,可放可放可放可放多个产品(数),考虑互斥吗多个产品(数),考虑互斥吗多个产品(数),考虑互斥吗多个产品(数),考虑互斥吗?为什么为什么为什么为什么?-?-?-?-生产者、消费者问题生产者、消费者问题生产者、消费者问题生产者、消费者问题2.2.实现进程同步实现进程同步结论:结论:结论:结论:若临界区有一个可用资源单位,同步便若临界区有一个可用资源单位,同步便若临界区有一个可用资源单位,同步便若临界区有一个可用资源单位,同步便实现了互斥。若临界区有多个可用资源,必须实现了互斥。若临界区有多个可用资源,必须实现了互斥。若临界区有多个可用资源,必须实现了互斥。
23、若临界区有多个可用资源,必须考虑互斥。考虑互斥。考虑互斥。考虑互斥。3.1 3.1 进进程程的的同同步步3.1.3 3.1.3 信号量机制信号量机制三、信号量的应用三、信号量的应用2.2.实现进程同步实现进程同步例如:设在公共汽车上,司机和售票员的活动分别是:例如:设在公共汽车上,司机和售票员的活动分别是:司机:司机:售票员:售票员:启动车辆启动车辆 上乘客上乘客 正常行车正常行车 关车门关车门 到站停车到站停车 售票售票 开车门开车门 下乘客下乘客 一一方方面面只只有有售售票票员员关关好好车车门门后后司司机机才才能能启启动动车车辆辆,另另一一方方面面只只有有司司机机到到站站停停车车后后售售票
24、票员员才才能能开开车车门门。请请分分析析司司机机和和售售票票员员之之间间的的同同步步关关系系,并并用用信信号号量量的的P P、V V操操作作来实现。来实现。3.1 3.1 进进程程的的同同步步3.1.3 3.1.3 信号量机制信号量机制三、信号量的应用三、信号量的应用2.2.实现进程同步实现进程同步答:两个同步:关车门答:两个同步:关车门-启动车辆启动车辆 run=0;run=0;到站停车到站停车-开车门开车门 stop=0;stop=0;司机:司机:售票员:售票员:上乘客上乘客 p(run)p(run)关车门关车门 启动车辆启动车辆 v(run)v(run)正常行车正常行车 售票售票 到站停
25、车到站停车 p(stop)p(stop)v(stop)v(stop)开车门开车门 下乘客下乘客3.3.描述前趋图描述前趋图 本题是典型的同步问本题是典型的同步问本题是典型的同步问本题是典型的同步问题。即进程题。即进程题。即进程题。即进程A A A A执行完后才执行完后才执行完后才执行完后才可执行进程可执行进程可执行进程可执行进程B B B B,只需在两只需在两只需在两只需在两进程间设置信号量,当进进程间设置信号量,当进进程间设置信号量,当进进程间设置信号量,当进程程程程A A A A执行结束后执行执行结束后执行执行结束后执行执行结束后执行V V V V操作,操作,操作,操作,通知进程通知进程通
26、知进程通知进程B B B B可以开始,而可以开始,而可以开始,而可以开始,而进程进程进程进程B B B B在开始之前先执行在开始之前先执行在开始之前先执行在开始之前先执行P P P P操作,直到得到进程操作,直到得到进程操作,直到得到进程操作,直到得到进程A A A A的的的的消息。消息。消息。消息。信信号号量量机机制制三、信号量的应用三、信号量的应用同步关系如下:同步关系如下:同步关系如下:同步关系如下:beginbeginbeginbegins s s s12121212=0;s=0;s=0;s=0;s13131313=0;s=0;s=0;s=0;s24242424=0;s=0;s=0;s
27、=0;s36363636=0;s=0;s=0;s=0;s46464646=0;s=0;s=0;s=0;s45454545=0;s=0;s=0;s=0;s57575757=0;s=0;s=0;s=0;s67676767=0=0=0=0ParbeginParbeginParbeginParbeginbegin sbegin sbegin sbegin s1 1 1 1;v(s;v(s;v(s;v(s12121212);v(s);v(s);v(s);v(s13131313);end;);end;);end;);end;begin p(sbegin p(sbegin p(sbegin p(s12121
28、212);s);s);s);s2 2 2 2;v(s;v(s;v(s;v(s24242424);end;);end;);end;);end;begin p(sbegin p(sbegin p(sbegin p(s13131313);s);s);s);s3 3 3 3;v(s;v(s;v(s;v(s36363636););););end;end;end;end;begin p(sbegin p(sbegin p(sbegin p(s24242424);s);s);s);s4 4 4 4;v(s;v(s;v(s;v(s45454545);v(s);v(s);v(s);v(s46464646);en
29、d;);end;);end;);end;begin p(sbegin p(sbegin p(sbegin p(s45454545);s);s);s);s5 5 5 5;v(s;v(s;v(s;v(s57575757););););end;end;end;end;begin p(sbegin p(sbegin p(sbegin p(s46464646);p(s);p(s);p(s);p(s36363636);s);s);s);s6 6 6 6;v(s;v(s;v(s;v(s67676767);end;);end;);end;);end;begin p(sbegin p(sbegin p(sbeg
30、in p(s57575757);p(s);p(s);p(s);p(s67676767);s);s);s);s7 7 7 7;end;end;end;end;parendparendparendparend;endendendend信信号号量量机机制制三、信号量的应用三、信号量的应用3.3.描述前趋图描述前趋图4.4.解决生产者解决生产者消费者问题消费者问题问问题题描描述述:有有一一群群生生产产者者进进程程在在生生产产产产品品,并并将将这这些些产产品品提提供供给给消消费费者者进进程程去去消消费费。为为使使生生产产者者进进程程与与消消费费者者进进程程能能并并发发执执行行,在在两两者者之之间间设设置
31、置了了一一个个具具有有n n个个缓缓冲冲区区的的缓缓冲冲池池,生生产产者者进进程程将将它它所所生生产产的的产产品品放放入入一一个个缓缓冲冲区区中中;消消费费者者进进程程可可从从一一个个缓缓冲冲区区中中取取走走产产品品去去消消费费。尽尽管管所所有有的的生生产产者者进进程程和和消消费费者者进进程程都都是是以以异异步步方方式式运运行行的的,但但它它们们之之间间必必须须保保持持同同步步,即即不不允允许许消消费费者者进进程程到到一一个个空空缓缓冲冲区区去去取取产产品品;也也不不允允许许生生产产者者进进程程向向一一个个已装满产品且已装满产品且尚未被取走的缓冲区中投放产品。尚未被取走的缓冲区中投放产品。三、
32、信号量的应用三、信号量的应用信信号号量量机机制制信信号号量量机机制制三、信号量的应用三、信号量的应用4.4.解决生产者解决生产者消费者问题消费者问题设信号量赋初值:设信号量赋初值:设信号量赋初值:设信号量赋初值:分析:分析:分析:分析:实现:实现:实现:实现:注意:注意:注意:注意:在每个程序中的多个在每个程序中的多个p p p p操作顺序不能颠操作顺序不能颠倒。应先执行对资源信号量的倒。应先执行对资源信号量的p p p p操作,然后再操作,然后再执行对互斥信号量的执行对互斥信号量的p p p p操作,否则可能引起进操作,否则可能引起进程死锁程死锁。三、信号量的应用三、信号量的应用 三个进程三
33、个进程P0P0、P1P1、P2P2和三个缓冲区和三个缓冲区B0B0、B1B1、B2B2。进程间借助于相邻缓冲区传递消息:进程间借助于相邻缓冲区传递消息:PiPi每次每次从从BiBi中取一条消息,经加工送入中取一条消息,经加工送入B B(i+1i+1)mod 3mod 3中,中,B0B0、B1B1、B2B2分别可存放分别可存放3 3、2 2、2 2个消息。初个消息。初始时,仅始时,仅B0B0有一个消息。有一个消息。1 1分析三个进程间的同步、互斥关系。分析三个进程间的同步、互斥关系。2 2用用P P、V V操作写出操作写出P0P0、P1P1、P2P2的同步及互斥的同步及互斥流程。流程。例例1:1
34、:信信号号量量机机制制三、信号量的应用三、信号量的应用 三个进程三个进程P0P0、P1P1、P2P2和三个缓冲区和三个缓冲区B0B0、B1B1、B2B2。进程间借助于相邻缓冲区传递消息:进程间借助于相邻缓冲区传递消息:PiPi每次每次从从BiBi中取一条消息,经加工送入中取一条消息,经加工送入B B(i+1i+1)mod 3mod 3中,中,B0B0、B1B1、B2B2分别可存放分别可存放3 3、2 2、1 1个消息。初个消息。初始时,仅始时,仅B0B0有一个消息。有一个消息。1 1分析三个进程间的同步、互斥关系。分析三个进程间的同步、互斥关系。2 2用用P P、V V操作写出操作写出P0P0
35、、P1P1、P2P2的同步及互斥的同步及互斥流程。流程。例例2:2:信信号号量量机机制制三、信号量的应用三、信号量的应用 一一组组生生产产者者进进程程和和一一组组消消费费者者进进程程共共享享1010个个缓缓冲冲区区,每每个个缓缓冲冲区区可可以以存存放放一一个个整整数数;生生产产者者进进程程每每次次一一次次性性向向3 3个个缓缓冲冲区区中中写写入入数数据,消费者进程每次从缓冲区取出据,消费者进程每次从缓冲区取出一个一个整数。整数。1 1分析进程间的同步、互斥关系。分析进程间的同步、互斥关系。2 2用用P P、V V操作写出进程间的同步及互斥流程。操作写出进程间的同步及互斥流程。例例3:3:信信号号量量机机制制信信号号量量机机制制三、信号量的应用三、信号量的应用5.5.解决读者解决读者写者问题写者问题问题描述问题描述问题描述问题描述:读者间可同时访问共享资源。读者间可同时访问共享资源。任一写者必须与其它写者或读者互斥访问共享资源任一写者必须与其它写者或读者互斥访问共享资源 设信号量赋初值:设信号量赋初值:设信号量赋初值:设信号量赋初值:分析:分析:分析:分析:实现:实现:实现:实现:3.1 3.1 进进程程的的同同步步3.1.4 3.1.4 信号量集机制信号量集机制一、一、ANDAND型信号量集机制型信号量集机制 1.1.1.1.引入:引入:引入:引入:执行时执行时执行时执行时
限制150内