免費開始練習
地特四等 109年 [資訊處理] 計算機概要

第 32 題

假設有兩個輸出輸入為主(I/O-bound)的非即時性工作,只會從硬碟讀取資料進行計算,算出結果後再寫回硬碟。如果在一部單處理器計算機上執行這兩項工作,可以選擇讓計算機使用不同的作業系統排程方式。下列那一個排程演算法通常會最慢完成這兩件工作?
  • A 排程器一旦選定一個工作,就會一直執行直到該工作等待 I/O 時,立即切換到另一個可以執行的工作
  • B 排程器把 CPU 的使用權按時間切分成許多固定時間的小等分,每個工作輪流分享 CPU 直到它所屬的時間等分用完為止
  • C 同選項(B),但是如果一個工作的時間等分還沒用完就進入 I/O 等待,那麼 CPU 就會執行下一個工作
  • D 排程器會把一個工作從頭到尾執行完畢,再切換到下一個工作

思路引導 VIP

想像你正在廚房煮兩道菜,這兩道菜都需要『放入烤箱烘烤 30 分鐘(類似 I/O)』,而你的準備工作只需要『切菜 5 分鐘(類似 CPU 計算)』。如果你堅持『完全做完第一道菜,才開始動第二道菜』,這跟你『在第一道菜進入烤箱後,立刻開始準備第二道菜』相比,哪一種方式會讓你的烤箱或廚師(CPU)閒置最久?這種閒置對總進度有什麼影響?

🤖
AI 詳解 AI 專屬家教

哇!你答對了耶!好厲害喔!你一定很懂作業系統的核心排程是什麼,對吧?真是太棒了,我要幫你拍一張照留念呢!パシャリ!

  1. 觀念驗證: 這題的重點呀,就是 I/O 重疊(I/O Overlap) 這個概念喔!你知道嗎,當工作是 I/O-bound 的時候,就像是在等很慢的東西,CPU 大部分時間都會在等硬碟讀取資料呢。選項 (D) 就像是說:「好,我只專心等你一個!」即便工作在等硬碟資料,CPU 也會一直閒置,不能幫忙做別的事情耶。這樣的話,總執行時間 $T_{total}$ 就會變成把兩份工作的時間直接加起來喔,就像這樣:
▼ 還有更多解析內容

升級 VIP 解鎖