进程同步与互斥应用例子

进程同步与互斥应用例子

ID:19817258

大小:326.00 KB

页数:29页

时间:2018-10-06

进程同步与互斥应用例子_第1页
进程同步与互斥应用例子_第2页
进程同步与互斥应用例子_第3页
进程同步与互斥应用例子_第4页
进程同步与互斥应用例子_第5页
资源描述:

《进程同步与互斥应用例子》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、进程同步与互斥例题进程互斥进程互斥:并发进程之间相互竞争临界资源的排他性关系。解题步骤:确定临界资源及个数;确定进程的关键工作步(使用临界资源的);确定信号量的初值(临界资源的个数);写出伪代码。使用P(wait)操作和V(signal)操作对进程互斥进行控制。例1:过独木桥。进程的互斥P1P2{{由西向东过独木桥;由东向西过独木桥;}}P1P2分析:进程P1、P2因竞争独木桥这个资源而成为互斥关系。设:信号量m表示独木桥资源,初值为1表示资源可用。intm=1;cobeginp1()//p2()coend进程的互斥p1(){P(m);通过独木桥;V(m);}p2(){P(m)

2、;通过独木桥;V(m);}练习:过十字路口(单道)。进程的互斥P1P2P3P4{{{{通过路口;通过路口;通过路口;通过路口;}}}}P2P3P4P1分析:进程P1、P2、P3、P4因竞争十字路口这个资源而成为互斥关系。设:信号量m表示十字路口资源,初值为1表示资源可用。intm=1;cobeginp1()//p2()//p3()//p4()coend进程的互斥p1(){P(m);通过路口;V(m);}p2(){P(m);通过路口;V(m);}p3(){P(m);通过路口;V(m);}p4(){P(m);通过路口;V(m);}有一个阅览室,共有100个座位。读者进入阅览室时必须

3、在入口处进行登记;离开阅览室时必须进行注销。试用PV操作描述读者进入/离开阅览室的同步与互斥关系。Reader进程{登记进入阅览室读书离开阅览室注销}进程的互斥分析:在入口和出口处读者应该互斥进行登记和注销,100个座位,100个互斥资源设置信号量教室内空座位数量,seat,初值100为入口处进行登记设置互斥信号量Sin,初值1,表示当前可用为出口处进行注销设置互斥信号量Sout,初值1,表示当前可用beginSin,Sout,seat:semaphore;seat:=100;Sin:=1;Sout:=1;cobeginprocessReader-i(i=1,2,…,n);be

4、ginP(seat);P(Sin);登记;V(Sin);进入阅览室;读书;离开阅览室;P(Sout);注销;V(Sout);V(seat);endcoend;end;问题若有一售票厅只能容纳300人,当少于300人时,可以进入。否则,需在外等候, 若将每一个购票者作为一个进程,请用P、V操作编程。例2:读写数据库。某数据库有一个写进程、多个读进程,它们之间读、写操作的互斥要求是:写进程运行时,其他读、写进程不能对数据库进行操作。读进程之间不互斥,可以同时读数据库。请用信号量及PV操作描述这一组进程的工作过程。(读者-写者问题)进程的互斥数据库写者读者写者读者{{写数据库;读数据

5、库;}}分析:写进程writer、读进程reader因竞争数据库这个资源而成为互斥关系。因为写进程执行时,不能执行其他读写进程,所以还必须设置一个计数器统计读进程的个数。如果是第一个读进程,就与写进程竞争数据库。如果是最后一个读进程,就释放数据库。因计数器是一个临界资源,所以多个读进程对计数器的操作又是互斥操作。设:信号量rmutex表示数据库资源,初值为1表示资源可用;wmutex表示计数器count资源,初值为1表示可用。intrmutex=1,wmutex=1;cobeginreader()//writer()coend进程的互斥小结进程互斥:进程之间要竞争临界资源。信号

6、量表示临界资源是否可用,或临界资源的数量。信号量的个数与临界资源的个数一致。对同一个信号量的PV操作要在同一个进程中完成。P操作:进入临界区前V操作:离开临界区后进程的互斥进程同步进程同步:并发进程之间相互合作,完成一项工作,它们之间有一定的时序关系。解题步骤:确定进程的个数及每个进程的工作;确定关键工作步(需要控制的);确定信号量表示的含义,当信号量的值为0时,表示期望的消息尚未产生;当信号量的值非0时,表示期望的消息已经存在。写出伪代码。在同步关系的控制中,同一信号量的P(wait)、V(signal)操作成对出现,但它们分别在不同的进程代码中。例1:假设有三个并发进程P,

7、Q,R,其中P负责从输入设备上读入信息并传送给Q,Q将信息加工后传送给R,R则负责将信息打印输出。进程P、Q共享一个缓冲区,进程Q、R共享另一个缓冲区。进程的同步3个进程P、Q、RP进程:从输入设备上读入信息将信息放入缓冲区1Q进程:从缓冲区1取出信息将信息放入缓冲区2中R进程:从缓冲区2取出信息将信息打印输出确定进程的同步、互斥关系同步:P当缓存区1无数据时,才可以向缓冲区1写入信息同步:Q当缓存区1有数据时,才可以从缓冲区1读取信息同步:Q当缓存区2无数据时,才可以向缓冲区2写入信息同步

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。