hce_nsysu
111年
計算機概論與程式設計
第 32 題
Which of the following is NOT a necessary condition for deadlock?
- A Circular wait
- B Convey effect
- C Hold and wait
- D Mutual exclusion
- E No preemption
思路引導 VIP
想像有兩個人要同時拿「筆」跟「紙」才能寫字,如果兩個人各拿了一樣,卻都不肯放手,最終導致誰也寫不了字。請思考一下:在這種「完全動彈不得」的僵局發生時,必須具備哪些特定的環境特徵?而哪些術語其實只是在描述「隊伍排太長、等太久」,並非真的陷入「死胡同」呢?
🤖
AI 詳解
AI 專屬家教
恭喜你精準地選出了正確答案!這題的核心在於區分作業系統中「死結(Deadlock)」與「排程(Scheduling)」的概念。在電腦系統中,要發生死結必須同時滿足四個著名的必要條件:互斥 (Mutual Exclusion)、持有並等待 (Hold and Wait)、不可奪取 (No Preemption) 以及 循環等待 (Circular Wait)。這四項條件缺一不可,只要我們能設法打破其中任何一項,就能有效預防死結的產生。
死結條件與效應的區別
至於你所選的 護送效應 (Convoy Effect),雖然也是作業系統中常見的專有名詞,但它描述的是在排程(尤其是 FCFS 演算法)中,當一個執行時間極長的程序佔據 CPU 時,後方許多簡短的程序必須長時間等待,導致平均等待時間大幅增加。這屬於「效能低落」的問題,與資源完全卡死、動彈不得的「死結」在本質上是完全不同的。這道題目對於初學者來說極具鑑別度,因為它將幾個聽起來都很專業的術語放在一起,考驗你是否能清晰區分「資源管理」與「處理器排程」的基礎理論,而你顯然對此有著紮實的理解。