Chapter-6-进程同步与互斥应用例子解析.ppt
《Chapter-6-进程同步与互斥应用例子解析.ppt》由会员分享,可在线阅读,更多相关《Chapter-6-进程同步与互斥应用例子解析.ppt(30页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、进程互斥进程互斥进程互斥:并发进程之间相互竞争临界资源的排他性关系。并发进程之间相互竞争临界资源的排他性关系。解题步骤解题步骤:n 确定临界资源及确定临界资源及个数个数;n 确定进程的确定进程的关键工作步关键工作步(使用临界资源的);(使用临界资源的);n 确定信号量的初值确定信号量的初值(临界资源的个数临界资源的个数);n 写出写出伪代码伪代码。使用使用P(wait)操作和操作和V(signal)操作对进程互斥进操作对进程互斥进行控制。行控制。例例1:过独木桥。:过独木桥。进程的互斥进程的互斥P1 P2 由西向东过独木桥;由西向东过独木桥; 由东向西过独木桥;由东向西过独木桥; P1P2分析
2、分析:进程:进程P1、P2因竞争独木桥这个资源而成为互斥关系。因竞争独木桥这个资源而成为互斥关系。设设:信号量:信号量m表示独木桥资源,初值为表示独木桥资源,初值为1表示资源可用。表示资源可用。 int m=1; cobegin p1() / p2() coend进程的互斥进程的互斥练习练习:过十字路口(单道)。:过十字路口(单道)。进程的互斥进程的互斥P1 P2 P3 P4 通过路口;通过路口; 通过路口;通过路口; 通过路口;通过路口; 通过路口;通过路口; P2P3P4P1分析分析:进程:进程P1、P2、P3、P4因竞争十字路口这个资源而成因竞争十字路口这个资源而成为互斥关系。为互斥关系
3、。设设:信号量:信号量m表示十字路口资源,初值为表示十字路口资源,初值为1表示资源可用。表示资源可用。 int m=1; cobegin p1() / p2() /p3() / p4() coend进程的互斥进程的互斥 有一个阅览室,共有有一个阅览室,共有100100个座位。读者进入阅览室个座位。读者进入阅览室时必须在入口处进行登记;离开阅览室时必须进时必须在入口处进行登记;离开阅览室时必须进行注销。试用行注销。试用PVPV操作描述读者进入操作描述读者进入/ /离开阅览室的离开阅览室的同步与互斥关系同步与互斥关系。ReaderReader进程进程 登记登记进入阅览室进入阅览室读书读书离开阅览室
4、离开阅览室注销注销 进程的互斥进程的互斥 分析:分析:在入口和出口处读者应该在入口和出口处读者应该互斥互斥进行登记和注销,进行登记和注销, 100100个座位,个座位,100100个个互斥互斥资源资源 设置信号量设置信号量教室内空座位数量,教室内空座位数量,seatseat,初值,初值100100为入口处进行登记设置互斥信号量为入口处进行登记设置互斥信号量SinSin,初值,初值 1 1,表示,表示当前可用当前可用为出口处进行注销设置互斥信号量为出口处进行注销设置互斥信号量SoutSout,初值,初值 1 1,表,表示当前可用示当前可用begin Sin, Sout, seat:semapho
5、re; seat :=100; Sin := 1; Sout := 1;cobeginprocess Reader-i ( i = 1,2,n );beginP(seat);P(Sin);登记登记;V(Sin);进入阅览室进入阅览室;读书读书;离开阅览室离开阅览室;P(Sout);注销注销;V(Sout);V(seat);endcoend;end;问题 若有一售票厅只能容纳300人,当少于300人时,可以进入。否则,需在外等候,若将每一个购票者作为一个进程,请用P、V操作编程。例例2:读写数据库:读写数据库。某数据库有一个写进程、多个读进程,它们之间某数据库有一个写进程、多个读进程,它们之间读
6、、写操作的互斥要求是:写进程运行时,其他读、写进程不能对数读、写操作的互斥要求是:写进程运行时,其他读、写进程不能对数据库进行操作。读进程之间不互斥,可以同时读数据库。请用信号量据库进行操作。读进程之间不互斥,可以同时读数据库。请用信号量及及PV操作描述这一组进程的工作过程。(操作描述这一组进程的工作过程。(读者读者-写者问题写者问题) 进程的互斥进程的互斥数据库数据库写写者者读读者者写者写者 读者读者 写数据库;写数据库; 读数据库;读数据库; 分析分析:写进程写进程writer、读进程、读进程reader因竞争数据库这个资源因竞争数据库这个资源而成为互斥关系。因为写进程执行时,不能执行其他
7、读写而成为互斥关系。因为写进程执行时,不能执行其他读写进程,所以还必须设置一个计数器统计读进程的个数。如进程,所以还必须设置一个计数器统计读进程的个数。如果是第一个读进程,就与写进程竞争数据库。如果是最后果是第一个读进程,就与写进程竞争数据库。如果是最后一个读进程,就释放数据库。因计数器是一个临界资源,一个读进程,就释放数据库。因计数器是一个临界资源,所以多个读进程对计数器的操作又是互斥操作。所以多个读进程对计数器的操作又是互斥操作。 设设:信号量信号量rmutex表示数据库资源,初值为表示数据库资源,初值为1表示资源可用;表示资源可用;wmutex表示计数器表示计数器count资源,初值为资
8、源,初值为1表示可用。表示可用。 int rmutex=1,wmutex=1; cobegin reader() / writer() coend进程的互斥进程的互斥小结小结n 进程互斥:进程之间要竞争临界资源。进程互斥:进程之间要竞争临界资源。n 信号量表示临界资源是否可用,或临界资源信号量表示临界资源是否可用,或临界资源的数量。的数量。n 信号量的个数与临界资源的个数一致。信号量的个数与临界资源的个数一致。n 对同一个信号量的对同一个信号量的PV操作要在同一个进程中操作要在同一个进程中完成。完成。P操作:进入临界区前操作:进入临界区前1. V操作:离开临界区后操作:离开临界区后进程的互斥进
9、程的互斥进程同步进程同步进程同步:并发进程之间相互合作,完成一项工作,它们之并发进程之间相互合作,完成一项工作,它们之间有一定的时序关系。间有一定的时序关系。解题步骤解题步骤:n确定进程的确定进程的个数个数及每个进程的及每个进程的工作工作;n确定确定关键工作步关键工作步(需要控制的);(需要控制的);n确定信号量表示的确定信号量表示的含义,含义,当信号量的值为当信号量的值为0时,表时,表示期望的消息尚未产生;当信号量的值非示期望的消息尚未产生;当信号量的值非0时,表时,表示期望的消息已经存在。示期望的消息已经存在。 1.写出写出伪代码伪代码。在同步关系的控制中,同一信号量。在同步关系的控制中,
10、同一信号量的的P(wait)、V(signal)操作成对出现,但它们分别操作成对出现,但它们分别在不同的进程代码中。在不同的进程代码中。 例例1:假设有三个并发进程假设有三个并发进程P,Q,R,其中,其中P负责从输入设负责从输入设备上读入信息并传送给备上读入信息并传送给Q,Q将信息加工后传送给将信息加工后传送给R,R则负则负责将信息打印输出。进程责将信息打印输出。进程P、Q共享一个缓冲区,进程共享一个缓冲区,进程Q、R共享另一个缓冲区。共享另一个缓冲区。 进程的同步进程的同步3个进程P、Q、RP进程:从输入设备上读入信息将信息放入缓冲区1Q进程:从缓冲区1取出信息将信息放入缓冲区2中R进程:从
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Chapter 进程 同步 应用 例子 解析
限制150内