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

3.哲學家進餐問題[1]

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

哲學家進餐問題(The Dining Philosophers Problem)

 

  問題描述

  (Dijkstra首先提出並解決)個哲學家圍繞一張圓桌而坐桌子上放著支筷子每兩個哲學家之間放一支哲學家的動作包括思考和進餐進餐時需要同時拿起他左邊和右邊的兩支筷子思考時則同時將兩支筷子放回原處如何保證哲學家們的動作有序進行?如不出現相鄰者同時要求進餐不出現有人永遠拿不到筷子

 

  The PV code Using Pascal

 

  解法一

  semaphore Fork[i]:=(i=)

  begin

    Thiking;

    Being hangery;

    P(Fork[i mod ]);

    p(Fork[(i+)mod ]);

    Eating;

    v(Fork[i mod ]);

    v(Fork[(i+)mod ]);

  end

 

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

[]  []  


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