天天看點

利用PV操作實作程序的同步的理論意義

程序的同步是由于程序間合作引起的互相制約的問題,要實作程序的同步可用一個信号量與消息聯系起來。當信号量的值為0時表示希望的消息未産生,當信号量的值為非0時表示希望的消息己經存在。假定用信号量S表示某條消息,程序可以通過調用P操作測試消息是否到達,調用V操作發送消息已準備好的通知。

例題

利用PV操作實作程式的同步的理論意義
利用PV操作實作程式的同步的理論意義
利用PV操作實作程式的同步的理論意義
利用PV操作實作程式的同步的理論意義

利用程序同步的意義解題

程序的同步是由于程序間合作引起的互相制約的問題,要實作程序的同步可用一個信号量與消息聯系起來。

程序間的同步就是互相傳遞制約資訊的過程;

使用信号量可以承載制約資訊;

上面前驅圖中展現出來的制約如下:

  • 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操作實作程式的同步的理論意義

下面開始一條一條的應用制約應用制約S1

利用PV操作實作程式的同步的理論意義

應用制約S2

利用PV操作實作程式的同步的理論意義

應用制約S3

利用PV操作實作程式的同步的理論意義

應用制約S4

利用PV操作實作程式的同步的理論意義

繼續閱讀