Re: [問題] 97高科計概Deadlock

看板Grad-ProbAsk作者 (~用"心"最重要~)時間17年前 (2009/04/01 23:40), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串4/4 (看更多)
此題應該是無解!! 因為不管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
文章代碼(AID): #19quhH0A (Grad-ProbAsk)
文章代碼(AID): #19quhH0A (Grad-ProbAsk)