15 在作業系統中,下列哪一種I/O方式會使程式在輸入/輸出作業完成前,暫時停下來 等待?
(A) 同步I/O
(B) 非同步I/O
(C) 循序I/O
(D) 緩衝I/O
統計: A(4), B(1), C(0), D(3), E(0) #3399862
詳解 (共 2 筆)
【第一步:找關鍵字】
關鍵字:
-
暫時停下來等待(關鍵!)
-
I/O 作業完成前
-
I/O 方式比較
? 看到「等待」這兩個字
? 直接聯想到:同步(blocking)
【第二步:白話翻譯】
這題在問:
? 「哪一種 I/O 會讓程式卡住,一定要等資料處理完才能繼續?」
【第三步:解題思路】
這題在考什麼觀念?
? 同步 vs 非同步 I/O 的核心差異(是否等待)
解題步驟
-
判斷題目重點:
→ 會不會等待? -
對照概念:
-
同步 → 會等
-
非同步 → 不會等
-
-
選出符合「會停下來等待」的選項
原理與規則(生活比喻)
想像你去買飲料:
-
同步 I/O:
點完 → 一直站在櫃檯等
? 不能做別的事 -
非同步 I/O:
點完 → 去滑手機
? 飲料好了再叫你
? 題目問的是「站在那邊等」的情況
【第四步:選項分析】
(A) 為什麼對?
✔ 正確(本題答案)
? 同步 I/O(Synchronous I/O)
-
發出 I/O 請求後
-
必須等待完成才能繼續
? 程式會「暫停」
(B) 為什麼錯?
✘ 錯
? 非同步 I/O:
-
不需要等待
-
可以先做其他事情
? 完全相反
(C) 為什麼錯?
✘ 錯
? 循序 I/O(Sequential I/O):
-
指資料讀寫順序
-
跟「是否等待」無關
(D) 為什麼錯?
✘ 錯
? 緩衝 I/O:
-
是「有沒有 buffer」
-
跟「會不會停下來」不是同一件事
【觀念補充與延伸】
核心觀念定位
? 作業系統 / I/O 模型
? 高頻考點(幾乎必考)
法條或定義
-
同步 I/O(Synchronous I/O):
發出 I/O 請求後,程式必須等待完成才能繼續執行
同步 vs 非同步整理
| 類型 | 是否等待 |
|---|---|
| 同步 I/O | 會等待 |
| 非同步 I/O | 不等待 |
觸類旁通(舉一反三)
對比概念
-
Blocking vs Non-blocking
? Blocking ≈ 同步
? Non-blocking ≈ 非同步
變化題型
-
問:哪種 I/O 效能較高?
? 非同步 I/O(因為不等待)
【記憶口訣】
? 「同步一定等,非同步不用等」
【常見陷阱】
學生最容易搞混的地方
把「同步」跟「順序(循序)」搞混
心理盲點
看到 I/O 就亂選,不看「是否等待」
避坑指南
? 題目只要出現:
-
等待
-
暫停
-
卡住
? 直接選:同步 I/O