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