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