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

十三 真經之少林寺問題

2013-11-15 15:58:32  來源: 操作系統 

十三 真經之少林寺問題

  

問題描述

某寺廟有小和尚老和尚若干廟內有一水缸由小和尚提水入缸供老和尚飲用水缸可容納桶水每次入水取水僅為不可同時進行水取自同一井中水井徑窄每次只能容納一個水桶取水設水桶個數為試用信號燈和PV操作給出老和尚和小和尚的活動

  

問題分析

從井中取水並放入水缸是一個連續的動作可以視為一個進程從缸中取水為另一個進程

設水井和水缸為臨界資源引入mutexmutex三個水桶無論從井中取水還是放入水缸中都一次一個應該給他們一個信號量count搶不到水桶的進程只好為等待水缸滿了時不可以再放水了empty控制入水量水缸空了時不可取水設full

  

The PV code Using Pascal

  

var mutexmutexemptyfullcount:semaphore;

mutex:=mutex:=;

empty:=;

full:=;

count:=;

cobegin

 Procedure Fetch_Water     Procedure Drink_Water

  begin                               begin

    while true                         while true

    p(empty);                         p(full);

    P(count);                          p(count);

      P(mutex);                        p(mutex);

      Get Water;                        Get water and

      v(mutex);                        Drink water;

        P(mutex);                         p(mutex);

        pure water into the jar;        v(empty);

     v(mutex);                         v(count);

     v(count);                        end

     v(full);

   end

 coend

 

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


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