进程的同步是由于进程间合作引起的相互制约的问题,要实现进程的同步可用一个信号量与消息联系起来。当信号量的值为0时表示希望的消息未产生,当信号量的值为非0时表示希望的消息己经存在。假定用信号量S表示某条消息,进程可以通过调用P操作测试消息是否到达,调用V操作发送消息已准备好的通知。
例题
利用进程同步的意义解题
进程的同步是由于进程间合作引起的相互制约的问题,要实现进程的同步可用一个信号量与消息联系起来。
进程间的同步就是互相传递制约信息的过程;
使用信号量可以承载制约信息;
上面前驱图中展现出来的制约如下:
- P1执行完P3开始执行
- P1P3执行完P2开始执行
- P2P3执行完P4开始执行
进一步展开成全是两个进程的制约如下:
- P1 执行完后执行 P2;(S1)
- P1 执行完后执行 P3;(S2)
- P3 执行完后执行 P2;(S3)
- P2 执行完后执行 P4;(S4)
- P3 执行完后执行 P4;(S5)
每个制约用一个信号量来表示;一共五个制约,那么就用5个信号量来表示这五个制约,P操作用于测试消息是否到达;V操作发送消息已经准备好的通知;
一共四个进程,每个进程有自己的业务逻辑
下面开始一条一条的应用制约应用制约S1
应用制约S2
应用制约S3
应用制约S4
应用制约S5