概念描述: 進(jìn)程轉(zhuǎn)換狀態(tài)圖
阻塞及掛起的理解 掛起是一種主動(dòng)行為,是把一個(gè)進(jìn)程從內(nèi)存轉(zhuǎn)到外存,而阻塞則是一種被動(dòng)行為(并不絕對(duì),看個(gè)人理解),是在等待事件或資源時(shí)任務(wù)的表現(xiàn)。對(duì)于掛起,其進(jìn)程所有資源都轉(zhuǎn)入外存;而阻塞,其進(jìn)程所有資源依然保存在內(nèi)存中。對(duì)應(yīng)掛起的行為是激活,即當(dāng)沒有活動(dòng)就緒進(jìn)程時(shí)或靜止就緒隊(duì)列里面有進(jìn)程優(yōu)先級(jí)高于活動(dòng)就緒里面所有進(jìn)程,還有就是當(dāng)一個(gè)進(jìn)程釋放足夠內(nèi)存時(shí),系統(tǒng)會(huì)把一個(gè)高優(yōu)先級(jí)阻塞激活。而阻塞卻沒有對(duì)應(yīng)的主動(dòng)行為來解除,需要其他進(jìn)程或系統(tǒng)喚醒。一個(gè)比喻:只有一個(gè)鍋,當(dāng)食材已經(jīng)準(zhǔn)備充分的菜就可以下鍋,這就是執(zhí)行態(tài);而其他準(zhǔn)備好的菜就順序放在一旁,等待下鍋,這就是就緒態(tài);還有的菜準(zhǔn)備還不是很充分,例如該切片的菜還沒有切片,還有一些佐料還沒有從冰箱里拿出,這就是I/O操作等待,類似阻塞態(tài);而還有一種情況就是廚房的面積太小了,桌子上放不下那么多的準(zhǔn)備下鍋的菜,于是先將那些還沒有準(zhǔn)備好的菜放入冰箱,如果還是放不了那么多菜,就把那些已經(jīng)準(zhǔn)備好的但沒有下鍋的菜放入冰箱,以免變質(zhì),這就是掛起態(tài);當(dāng)桌子上有位置了,就把菜從冰箱拿出來,這便是激活操作。做好的菜就可以端出廚房,這便是退出態(tài)。(PS:這里我假設(shè)冰箱空間很大,也存在那種炒到一半的菜放到一邊的情況,即從執(zhí)行態(tài)到就緒態(tài)或阻塞態(tài)的情況,這種情況可以類似川菜中先將肉處理一下(去腥等等),然后又從鍋里撈出來,用豆瓣和其他佐料來進(jìn)行腌制(這里如果佐料沒有在桌子上就類似進(jìn)入阻塞態(tài),而如果有就相當(dāng)于進(jìn)入就緒態(tài),但是鍋里已經(jīng)被占用了,需要等待一會(huì)兒)至于優(yōu)先級(jí)的高低,也可類比有些菜是為了其他菜做鋪墊(舉個(gè)例子:在川菜里面,回鍋肉和炒白菜,一般家庭會(huì)優(yōu)先做回鍋肉,因?yàn)楫?dāng)做回鍋肉時(shí),會(huì)炒出許多豬油,而這些有可以用來炒白菜,這樣的炒白菜不僅好吃,而且也節(jié)約了許多油。))
本文來自互聯(lián)網(wǎng)用戶投稿,文章觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處。 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊
target="_blank" rel="nofollow">【內(nèi)容舉報(bào)】進(jìn)行投訴反饋!