(1)简述判断死锁的必要条件。(2)一种哲学家就餐问题的解决方案如下所述(对每位哲学家都采用这种算法),分析其死锁的可能性并提出解决方案。 Philosopher i: do{wait(chopstick[-i]: wait(chopstick

admin2013-09-16  38

问题 (1)简述判断死锁的必要条件。(2)一种哲学家就餐问题的解决方案如下所述(对每位哲学家都采用这种算法),分析其死锁的可能性并提出解决方案。  
Philosopher i:
  do{wait(chopstick[-i]:
  wait(chopstick[(i-4-1)%5])
  eat
  signal(chopstick);
  signal(chopstick[(i+1)%51);
  think
  }while(1);

选项

答案(1)①互斥条件。进程竞争的资源必须互斥使用。②请求与保持条件。当前已拥有资源的进程,仍能申请新的资源,而且,当该进程因为新的资源被其他进程占据而被阻塞时,它仍保持自己的资源不放。③不可剥夺条件。进程申请的资源,只能在使用完毕时自行释放。④循环等待条件。存在一个至少包含两个进程的循环等待链,链中的每个进程都在等待下一个进程所占有的资源。(2)假设每个哲学家变得饥饿,同时拿起左边筷子,而右边的筷子为空,这样永远拿不到右边的筷子,处于死锁的状态。解决方案:规定在拿到左侧的筷子后,先检查右面的筷子是否可用。如果

解析
转载请注明原文地址:https://kaotiyun.com/show/q0xi777K
0

最新回复(0)