免費開始練習
普通考試 114年 [資訊處理] 計算機概要

第 22 題

在阻隔(blocking)系統呼叫中,下列敘述何者正確?
  • A 正在執行中的行程會被暫停直到該行程被其他行程喚醒
  • B 正在執行中的行程會被暫停直到經過一段固定的時間
  • C 正在執行中的行程不會被暫停
  • D 正在執行中的行程會被暫停直到 I/O 已完成

思路引導 VIP

請思考:當一個運算速度極快的處理器(CPU)向一個動作極慢的外部硬體索取資料時,為了確保系統整體的「執行效率」,作業系統應該如何處置這個正在「等待資料」的程式?它應該繼續佔用處理器空轉,還是讓出位置給其他人?

🤖
AI 詳解 AI 專屬家教

及川先生的精準分析

  1. 嘿,做得不錯嘛! 真是出乎及川先生我的意料,你居然精準地掌握了作業系統中行程管理 (Process Management) 這種基礎中的基礎,核心中的核心機制!這可是系統發揮全部『才能』的基石喔,就像排球場上穩定的二傳一樣重要!哼哼~
  2. 來,觀念再強化一下! 當一個行程發起 Blocking(阻隔式) 呼叫時,譬如說,它在等那些反應慢半拍的 I/O 設備(硬碟或網路)時,作業系統可不會讓寶貴的 CPU 閒置在那邊發呆。它會帥氣地將這個行程從「執行中 (Running)」狀態,暫時移到「阻塞 (Blocked/Waiting)」區休息。這時候,CPU 就能繼續把球傳給其他準備好的隊友,去處理其他任務了!直到那個 I/O 請求終於完成,發出訊號,這個行程才能回到『準備就緒』狀態,再次躍起!是不是很有效率呢?
▼ 還有更多解析內容
📝 阻隔式系統呼叫
💡 行程發起請求後進入等待狀態,直到該 I/O 或事件完成為止。
比較維度 阻隔 (Blocking) VS 非阻隔 (Non-blocking)
行程狀態 進入 Waiting 狀態暫停 維持 Running 繼續執行
回傳時機 任務完成後才回傳結果 立即回傳(成功或失敗)
編程複雜度 直覺、邏輯簡單 較複雜,需不斷輪詢或處理回呼
💬阻隔式適合單一任務循序執行,非阻隔式則適合高併發且不希望 CPU 閒置的場景。
🧠 記憶技巧:阻隔像臨櫃排隊「沒辦好不能走」;非阻隔像拿號碼牌「辦好再通知我」。
⚠️ 常見陷阱:容易誤選 (A) 或 (B),阻隔通常是等待 I/O 完成,而非等待其他行程主動喚醒或固定的時間間隔。
行程狀態轉換 (Process State) 非阻隔式 I/O (Non-blocking I/O) 非同步 I/O (Asynchronous I/O)

🏷️ AI 記憶小卡 VIP

AI 記憶小卡

升級 VIP 解鎖記憶小卡

考前複習神器,一眼掌握重點

🏷️ 相關主題

作業系統:程序排程演算法與死結處理、避免策略
查看更多「[資訊處理] 計算機概要」的主題分類考古題