普考-資訊處理計算機概要108 年第 33 題單選題
在一個單 CPU 的分時多工作業系統下,時間片斷(time slice)是設成 10 毫秒(milliseconds)。假設上下文交換(context switch)需時 1 毫秒,而且所有的執行緒都是純粹進行計算,沒有任何的 I/O 或共享資源的衝突,那麼該系統每秒最多可以執行多少個執行緒?
D正確答案
每個 thread 用時 10ms 計算 + 1ms context switch = 11ms,1000ms ÷ 11ms ≈ 90。
為什麼答案是 D
每個 thread 佔用 CPU 10ms 計算 + 1ms 切換 = 11ms,1 秒 = 1000ms,1000÷11 ≈ 90.9,取整為 90 個 thread。
載入中…
完整詳解
Pro · 無限重點 每個 thread 用時 10ms 計算 + 1ms context switch = 11ms,1000ms ÷ 11ms ≈ 90。
公式:1000 ÷ (time slice + context switch) = 1000 ÷ 11 ≈ 90.9 → 取整數 90。
逐選項分析
A✕ 陷阱
105 是忽略 context switch 並加料的陷阱數字,實際每個 thread 需 11ms,不可能超過 100 個。
B✕ 陷阱
100 是只算 time slice(1000÷10)的結果,忽略了每次切換還要耗 1ms 的 context switch 成本。
C✕
95 介於中間但無計算依據,不符合 1000÷11 的實際結果。
D✓ 正確
每個 thread 佔用 CPU 10ms 計算 + 1ms 切換 = 11ms,1 秒 = 1000ms,1000÷11 ≈ 90.9,取整為 90 個 thread。
分時系統 thread 數計算
| 項目 | 時間 | 說明 | 備註 |
|---|
| Time slice | 10 ms | 每個 thread 分到的 CPU 時間 | 純計算不浪費 |
| Context switch | 1 ms | 切換 thread 的 overhead | 不可忽略 |
| 單次循環 | 11 ms | 10 + 1 | 每個 thread 真實佔用 |
| 每秒數量 | ≈ 90 | 1000 ÷ 11 | 取整 |
最常見的誤答是 B (100),因為考生直覺用 1000÷10,忘了 context switch 也要吃 CPU 時間。分時系統效能計算的關鍵就是「切換成本不可忽略」,每跑完一個 time slice 都要付出 overhead。