作者chenyimin (~用"心"最重要~)
看板Grad-ProbAsk
标题Re: [问题] 97高科计概Deadlock
时间Wed Apr 1 23:40:00 2009
此题应该是无解!!
因为不管X多大,P3与P4永远无法完工!!
假设X=100,则Available=(1,100,1,2)
Step1:
Need[P1]=(0,1,1,2)<Available=(1,100,1,2),故P1可完工
Available=Available+Allocation[P1]=(2,102,2,2)
Step2:
Need[P2]=(2,6,0,0)<Available=(2,102,2,2),故P2可完工,
Available=Available+Allocation[P2]=(7,103,5,2)
Step3:
Need[P5]=(4,0,1,1)<Available=(7,103,5,2),故P5可完工,
Available=Available+Allocation[P5]=(8,107,7,2)
Step4:
此时Need[P3]与Need[P4]皆大於Available,故P3与P4皆无法完工
Step5:
找不到一组safe sequence可让所有工作完工,故系统处於unsafe状态!!
有错请指教!!
※ 引述《peterpan126 (亚兹别)》之铭言:
: ※ 引述《hateexam (迷恋就是青春)》之铭言:
: : REQUEST
: : A B C D
: : P1 0 1 1 2
: : P2 2 6 0 0
: : P3 1 5 2 4
: : P4 0 2 6 3
: : P5 4 0 0 3
: : 当X=1时 由P1先执行释放 2 3 2 4 很明显无法满足任何接续程序
: : 当X=2时 由P4先执行释放 6 5 1 4 再来可挑选P1或P5...,可满足安全状态
: : 故X最小为2
: 发现我题目打错,MAX的P5打错,正确如下:
: Allocation Max Available
: A B C D A B C D A B C D
: P1 1 2 1 0 1 3 2 2 1 X 1 2
: P2 5 1 3 0 7 7 3 0
: P3 2 1 4 2 3 6 6 6
: P4 5 3 0 2 5 5 6 5
: P5 1 4 2 0 5 4 3 1
: 照你的作法,是否就是使用"死结侦测演算法去RUN"呢?
: 得到Request为
: A B C D
: P1 0 1 1 2
: P2 2 6 0 0
: P3 1 5 2 4
: P4 0 2 6 3
: P5 4 0 1 1
: 假设X=2时,available=1 2 1 2
: Request 4 = 0 2 6 3 !< available(1 2 1 2)
: Request 4并没有小於available,怎麽P4可以先执行?
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 163.18.96.164