哲学家就餐是进程同步的问题,属于操作系统研究范畴。

解决方案 »

  1.   

    操作系统的书都有是关于 如何解决死锁,和死锁问题的。
      

  2.   

    哲学家问题  
    问题描述:
    有五个哲学家,围坐在一个圆桌前,每个人的左右都只有一只筷子,桌上总共只有五只筷子,而哲学家就餐时需要两只筷子,即其左右的筷子,而一次只能取一只筷子,所以五个哲学家不能同时就餐,设计一个算法模拟哲学家就餐的问题。
    进程:Philosopher[i],fork
    思路:哲学家有三种状态:思考(Thinking)、饥饿(hungry)、进食 
    (Eating)。当饥饿时,通知其左筷子,若其右筷子无人用,并且其左筷子 
    无人准备用时,才可以取得其左筷子。例如:Philosopher[0]先hungry, 
    则fork[0]测试fork[1]是否可用,若无人用则将fork[1].ready_user 
    =true,fork[0].R_user=false,则其可获得fork[0] 和fork[1],而若 
    Philosopher[1] hungry,则其左筷子fork[1]被使用或准备被使用,故 
    Philosopher[1]的调用被挂起在hungry的入口;若Philosopher[4] 
    hungry,由于其右叉子fork[1]被使用,故其在getL()以取得fork[4] 
    时就被挂起等待。 
      

  3.   

    于如何解决死锁,原文是:
    有五个哲学家,围坐在一个圆桌前,每个人的左右都只有一只筷子,桌上总共只有五只筷子,而哲学家就餐时需要两只筷子,即其左右的筷子,而一次只能取一只筷子,所以五个哲学家不能同时就餐,设计一个算法模拟哲学家就餐的问题。
      

  4.   

    操作系统的一个经典问题。正在学习《操作系统》中。
      

  5.   

    典型的PV操作  进程同步的问题