作者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