进程的同步是由于进程间合作引起的相互制约的问题,要实现进程的同步可用一个信号量与消息联系起来。当信号量的值为0时表示希望的消息未产生,当信号量的值为非0时表示希望的消息己经存在。假定用信号量S表示某条消息,进程可以通过调用P操作测试消息是否到达,调用V操作发送消息已准备好的通知。

例题

利用PV操作实现进程的同步的理论意义_发送消息


利用PV操作实现进程的同步的理论意义_信号量_02


利用PV操作实现进程的同步的理论意义_运维_03


利用PV操作实现进程的同步的理论意义_perl_04

利用进程同步的意义解题

进程的同步是由于进程间合作引起的相互制约的问题,要实现进程的同步可用一个信号量与消息联系起来。

进程间的同步就是互相传递制约信息的过程;
使用信号量可以承载制约信息;

上面前驱图中展现出来的制约如下:

  • P1执行完P3开始执行
  • P1P3执行完P2开始执行
  • P2P3执行完P4开始执行

进一步展开成全是两个进程的制约如下:

  • P1 执行完后执行 P2;(S1)
  • P1 执行完后执行 P3;(S2)
  • P3 执行完后执行 P2;(S3)
  • P2 执行完后执行 P4;(S4)
  • P3 执行完后执行 P4;(S5)

每个制约用一个信号量来表示;一共五个制约,那么就用5个信号量来表示这五个制约,P操作用于测试消息是否到达;V操作发送消息已经准备好的通知;

一共四个进程,每个进程有自己的业务逻辑

利用PV操作实现进程的同步的理论意义_运维_05


下面开始一条一条的应用制约应用制约S1

利用PV操作实现进程的同步的理论意义_运维_06


应用制约S2

利用PV操作实现进程的同步的理论意义_发送消息_07


应用制约S3

利用PV操作实现进程的同步的理论意义_perl_08


应用制约S4

利用PV操作实现进程的同步的理论意义_运维_09


应用制约S5

利用PV操作实现进程的同步的理论意义_信号量_10