玟希 asked in 電腦與網際網路軟體 · 2 decades ago

說明一個系統能偵測其中的某些行程發生飢餓的做法?

說明一個系統能偵測其中的某些行程發生飢餓的做法?

1 Answer

Rating
  • 2 decades ago
    Favorite Answer

    通常不是針對starvation進行detection吧...

    而是針對deadlock進行detection與recovery,當然有些avoidance與prevention的方式。

    嗯嗯,關於偵測,我不知道有沒有實際的演算法或是程式函式。我只知道兩個很高階的方式。

    一個是resource graph,另一個是state transition。

    Resource graph是一種圖示,首先畫出所有參與競爭的process與目前系統上所存有的資源。然後畫出Request Line,一個資源只能被一個process所佔有,其他有相同的process就只能等待。

    當這張圖剛完成時,一定有許多的衝突。試著去話簡,把不相干的process去除,如果graph沒有辦法完全化簡的話,表示deadlock存在

    State Transition有點類似FSM,process對於資源有三種動作:request、acquisition與release,假設每一種動作都會產生一個新的state,則兩個process同時對於兩個resource進行索取,其進程會逐步推進,當兩方都無法滿足需求且無法繼續推進時,就是deadlock。而作業系統就是要預防真實情況發展到6這個境地。

    這是網路上以FSM來說明電腦系統的進程....看個大概就好....

    http://www.win.tue.nl/~fvham/fsm/

Still have questions? Get your answers by asking now.