熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> 操作系統 >> 正文

二 真經之生產消費問題擴展[2]

2013-11-15 15:54:14  來源: 操作系統 

思考

pp每次執行時需要進行一些額外的操作對於p來說它首先必須在自己的緩沖區buf中寫入至少m個數據此後pp的同步可簡單通過兩個信號量來控制題目的一個變形是要求m(buf數據個數-buf數據個數)n那麼信號量的初值就變成mn若只有pbuf放入數據而p不放入數據到bufp最多可放m因此設置信號量s初值為m此外每當p放入一個數據到buf中時則使信號量s增1p增加一次放入數據到buf的機會反之若只有pbuf放入數據而p不放入數據到bufp最多可放n因此設置信號量s初值為n此外每當p放入一個數據到buf中時則使信號量s增1p增加一次放入數據到buf的機會

  

The PV code Using Pascal

 

begin

var mutex=mutex=s=ms=n:semaphore;

 cobegin

 process p

   begin

   repeat;

   get data;

  p(s);

  p(mutex);

  寫數據到buf;

  v(mutex);

  v(s);  //p每放入一個數據到buf同時使s增加1

  end

 process p

  begin

  repeat;

  get data;

  p(s);

  p(mutex);

  寫數據到buf;

  v(mutex);

  v(s);  //p每放入一個數據到buf同時使s增加1

  end

 coend

end

 

 

返回《操作系統之PV金典》

[]  []  


From:http://tw.wingwit.com/Article/program/czxt/201311/24173.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.