最新Chapter-6-进程同步与互斥应用例子解析教学讲义ppt课件.ppt

最新Chapter-6-进程同步与互斥应用例子解析教学讲义ppt课件.ppt

ID:62259673

大小:1.09 MB

页数:42页

时间:2021-04-24

最新Chapter-6-进程同步与互斥应用例子解析教学讲义ppt课件.ppt_第1页
最新Chapter-6-进程同步与互斥应用例子解析教学讲义ppt课件.ppt_第2页
最新Chapter-6-进程同步与互斥应用例子解析教学讲义ppt课件.ppt_第3页
最新Chapter-6-进程同步与互斥应用例子解析教学讲义ppt课件.ppt_第4页
最新Chapter-6-进程同步与互斥应用例子解析教学讲义ppt课件.ppt_第5页
资源描述:

《最新Chapter-6-进程同步与互斥应用例子解析教学讲义ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、Chapter-6-进程同步与互斥应用例子解析进程互斥进程互斥:并发进程之间相互竞争临界资源的排他性关系。解题步骤:确定临界资源及个数;确定进程的关键工作步(使用临界资源的);确定信号量的初值(临界资源的个数);写出伪代码。使用P(wait)操作和V(signal)操作对进程互斥进行控制。例1:过独木桥。进程的互斥P1P2{{由西向东过独木桥;由东向西过独木桥;}}P1P2有一个阅览室,共有100个座位。读者进入阅览室时必须在入口处进行登记;离开阅览室时必须进行注销。试用PV操作描述读者进入/离开阅览室的同步与互斥关系。Reader进程{登记进入阅览室读书

2、离开阅览室注销}进程的互斥分析:在入口和出口处读者应该互斥进行登记和注销,100个座位,100个互斥资源设置信号量教室内空座位数量,seat,初值100为入口处进行登记设置互斥信号量Sin,初值1,表示当前可用为出口处进行注销设置互斥信号量Sout,初值1,表示当前可用beginSin,Sout,seat:semaphore;seat:=100;Sin:=1;Sout:=1;cobeginprocessReader-i(i=1,2,…,n);beginP(seat);P(Sin);登记;V(Sin);进入阅览室;读书;离开阅览室;P(Sout);注销;V(

3、Sout);V(seat);endcoend;end;问题若有一售票厅只能容纳300人,当少于300人时,可以进入。否则,需在外等候, 若将每一个购票者作为一个进程,请用P、V操作编程。例2:读写数据库。某数据库有一个写进程、多个读进程,它们之间读、写操作的互斥要求是:写进程运行时,其他读、写进程不能对数据库进行操作。读进程之间不互斥,可以同时读数据库。请用信号量及PV操作描述这一组进程的工作过程。(读者-写者问题)进程的互斥数据库写者读者写者读者{{写数据库;读数据库;}}分析:写进程writer、读进程reader因竞争数据库这个资源而成为互斥关系。因

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

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

6、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写入信息同步:R当缓存区2有数据时,才可以从缓冲区2读取信息设置信号量缓存区1无数据,empty1,初值1缓存区1有数据,f

7、ull1,初值0缓存区2无数据,empty2,初值1缓存区2有数据,full2,初值0processP(){while(1){从输入设备上读入信息;P(empty1);将信息放入缓冲区1;V(full1);}}processQ(){while(1){P(full1);从缓冲区1取出信息;V(empty1);P(empty2);将信息放入缓冲区2;V(full2);}}processR(){while(1){P(full2);从缓冲区2取出信息;V(empty2);将信息打印输出;}}进程的同步例2:公共汽车中的司机和售票员。司机P1售票员P2while(t

8、rue)while(true){{启动车辆;关门; 正常运行;售票

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

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

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