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

五 真經之理發師問題擴展(電子科技大學2000)[1]

2013-11-15 15:57:50  來源: 操作系統 

五 真經之理發師問題擴展(電子科技大學

 

  有一個理發師一把理發椅和n把供等候理發的顧客坐的椅子若沒有顧客則理發師睡覺當一個顧客到來時必須喚醒理發師進行理發若理發師正在理發又有顧客到來則若有空椅子可坐就坐下來等若沒有空椅子就離開

  

  問題分析

  需要設置一個信號量barber初值為用於控制理發師和顧客之間的同步關系還需要設置一個信號量customer初值為用於離開顧客與等候顧客之間的同步控制為了記錄等候的顧客數應該設置一個計數器count初值為當一個顧客到達時需要在count上做加操作並根據count值的不同分別采取不同的動作當顧客離開時要對count上做減操作並根據count值的不同分別采取不同的動作由於count是共享變量因此要互斥使用為此設置一個互斥信號量mutex

  

  The PV code Using Pascal

 

  begin

  var barber=customer=count=mutex=:semaphore;

  cobegin

    process barber

    begin

      repeat;

      p(customer);

      p(mutex);

      count=count;

      v(barber);

      v(mutex);

      理發;

      until false

    end

 

 

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

[]  []  []  


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