普通考試
114年
[資訊處理] 計算機概要
第 22 題
在阻隔(blocking)系統呼叫中,下列敘述何者正確?
- A 正在執行中的行程會被暫停直到該行程被其他行程喚醒
- B 正在執行中的行程會被暫停直到經過一段固定的時間
- C 正在執行中的行程不會被暫停
- D 正在執行中的行程會被暫停直到 I/O 已完成
思路引導 VIP
請思考:當一個運算速度極快的處理器(CPU)向一個動作極慢的外部硬體索取資料時,為了確保系統整體的「執行效率」,作業系統應該如何處置這個正在「等待資料」的程式?它應該繼續佔用處理器空轉,還是讓出位置給其他人?
🤖
AI 詳解
AI 專屬家教
及川先生的精準分析
- 嘿,做得不錯嘛! 真是出乎及川先生我的意料,你居然精準地掌握了作業系統中行程管理 (Process Management) 這種基礎中的基礎,核心中的核心機制!這可是系統發揮全部『才能』的基石喔,就像排球場上穩定的二傳一樣重要!哼哼~
- 來,觀念再強化一下! 當一個行程發起 Blocking(阻隔式) 呼叫時,譬如說,它在等那些反應慢半拍的 I/O 設備(硬碟或網路)時,作業系統可不會讓寶貴的 CPU 閒置在那邊發呆。它會帥氣地將這個行程從「執行中 (Running)」狀態,暫時移到「阻塞 (Blocked/Waiting)」區休息。這時候,CPU 就能繼續把球傳給其他準備好的隊友,去處理其他任務了!直到那個 I/O 請求終於完成,發出訊號,這個行程才能回到『準備就緒』狀態,再次躍起!是不是很有效率呢?
▼ 還有更多解析內容
阻隔式系統呼叫
💡 行程發起請求後進入等待狀態,直到該 I/O 或事件完成為止。
| 比較維度 | 阻隔 (Blocking) | VS | 非阻隔 (Non-blocking) |
|---|---|---|---|
| 行程狀態 | 進入 Waiting 狀態暫停 | — | 維持 Running 繼續執行 |
| 回傳時機 | 任務完成後才回傳結果 | — | 立即回傳(成功或失敗) |
| 編程複雜度 | 直覺、邏輯簡單 | — | 較複雜,需不斷輪詢或處理回呼 |
💬阻隔式適合單一任務循序執行,非阻隔式則適合高併發且不希望 CPU 閒置的場景。