考慮這樣一種資源分配策略:對資源的申請和釋放可以在任何時刻進行。如果一個進程的資源得不到滿足,則考查所有由于等待資源而被阻塞的進程,如果它們有申請進程所需要的資源,則把這些資源取出分給申請進程。
例如,考慮一個有三類資源的系統(tǒng),Available = (4,2,2)。進程A申請(2,2,1),可以滿足;進程B 申請(1,0,1),可以滿足;若A再申請(0,0,1),則被阻塞(無資源可分)。此時,若C申請(2,0,0),它可以分得剩余資源(1,0,0), 并從A已分得的資源中獲得一個資源,于是,進程A的分配向量變成:Available =(1,2,1),而需求向量變成:Need =(1,0,1)。
(1)這種分配方式會導致死鎖嗎?若會,舉一個例子;若不會,說明死鎖的哪一個必要條件不成立。
(2)會導致某些進程的無限等待嗎?