跳轉至

建立 2026-11-12 更新 2026-11-12 SL HL

A1.3 作業系統與控制系統

作業系統(Operating System, OS)是管理硬體資源、讓應用程式能正常執行的系統軟體;控制系統(control system)則是用感測器與致動器自動調整環境的系統。本頁說明作業系統的主要功能、排程與記憶體管理、輪詢與中斷,以及控制系統的回饋迴路,並標出 HL 加深的多工與記憶體管理內容。

作業系統負責哪些工作?

功能 說明
行程管理(process management) 建立、排程與結束執行中的程式(行程)
記憶體管理(memory management) 分配與回收 RAM,避免程式互相覆寫
檔案管理(file system management) 組織檔案與資料夾、控制存取權限
裝置管理(device management) 透過驅動程式(driver)與硬體溝通
安全性(security) 使用者帳號、權限、驗證
使用者介面(user interface) 提供 GUI 或命令列(CLI)

作業系統是一種 抽象化(abstraction):應用程式只要呼叫「開檔」,不需要知道硬碟的磁區怎麼排列。

作業系統如何排程?

單一 CPU 核心一次只能執行一個行程,作業系統用 排程演算法(scheduling algorithm) 決定誰先用 CPU:

演算法 規則 優缺點
先到先服務(First-Come First-Served, FCFS) 依抵達順序執行完 簡單;長工作會拖住後面的短工作
最短工作優先(Shortest Job First, SJF) 先執行需時最短者 平均等待時間短;長工作可能一直等不到(starvation)
輪轉法(Round Robin) 每個行程輪流用一小段時間(time slice) 公平、反應快;切換太頻繁會浪費時間
優先權排程(Priority) 依優先權高低執行 重要工作先做;低優先權可能飢餓

輪詢和中斷有什麼不同?

CPU 有兩種方式知道外部裝置需要處理:

  • 輪詢(polling):CPU 定期主動檢查裝置狀態。實作簡單,但沒事時也在檢查,浪費 CPU 時間。適合事件頻繁、時間可預測的情境。
  • 中斷(interrupt):裝置有事時送訊號給 CPU,CPU 暫停目前工作、儲存狀態,執行 中斷服務程式(Interrupt Service Routine, ISR) 後再回來。反應快、效率高,適合不定時發生的事件,例如鍵盤輸入、網路封包抵達。

多工與記憶體管理

HL 延伸:本節僅 HL 需要

SL 學生可略過本節。

什麼是多工處理?

多工處理(multitasking)讓多個行程看起來同時執行。作業系統快速在行程間切換(context switch:儲存目前行程的暫存器狀態,載入下一個行程的狀態),每個行程只拿到很短的 CPU 時間。多核心 CPU 則能真正同時執行多個行程。

多工會帶來 死結(deadlock) 風險:行程 A 持有資源 1 等資源 2,行程 B 持有資源 2 等資源 1,兩者永遠互等。

分頁與分段有什麼差別?

  • 分頁(paging):把程式與實體記憶體切成固定大小的頁(page)與頁框(frame),用分頁表對應。不會產生外部碎片,是現代 OS 的主流做法。
  • 分段(segmentation):依程式的邏輯單位(程式碼段、資料段、堆疊段)切成大小不一的段。符合程式結構,但容易產生外部碎片。
  • 虛擬記憶體(virtual memory):RAM 不夠時,把暫時不用的頁換到硬碟上的置換空間(swap)。讓程式能使用超過 RAM 的空間,但若頻繁換頁會造成 thrashing,效能大幅下降。

控制系統如何運作?

控制系統透過 回饋迴路(feedback loop) 自動維持目標狀態:

  1. 感測器(sensor) 測量環境,例如溫度。
  2. 控制器(controller,通常是微處理器) 比較測量值與設定值(setpoint)。
  3. 致動器(actuator) 依控制器指令動作,例如開啟暖氣。
  4. 環境改變後,感測器再次測量,形成迴圈。
flowchart LR
    S["感測器<br/>測量溫度"] --> C["控制器<br/>比較設定值"]
    C --> A["致動器<br/>開關暖氣"]
    A --> E["環境<br/>室溫改變"]
    E --> S
  • 開迴路(open-loop):不看結果,照固定流程執行,例如定時烤麵包機。
  • 閉迴路(closed-loop):依回饋調整,例如恆溫器、汽車定速巡航。

常見應用:自動門、電梯、交通號誌、溫室灌溉、工業機器手臂。

推薦影音

作業系統

簡述:從批次處理講到多工、虛擬記憶體與記憶體保護,對應本頁的 OS 功能、多工與記憶體管理。

虛擬記憶體與分頁

簡述:BitLemon 用動畫說明為什麼程式不直接存取實體記憶體、分頁表如何把虛擬位址轉成實體位址,適合 HL 學生理解分頁。

檔案與檔案系統

簡述:說明檔案格式、目錄結構與檔案系統如何在磁碟上配置資料,對應作業系統的檔案管理功能。

練習題

練習 1:輪詢或中斷

溫室每 10 分鐘讀一次濕度,以及使用者隨時可能按下的緊急停止按鈕,各適合用輪詢還是中斷?

參考答案

濕度讀取時間固定且可預測,用 輪詢 即可;緊急停止按鈕不定時發生且必須立刻處理,應用 中斷。

練習 2:排程計算

三個行程依序抵達:P1 需 8 ms、P2 需 2 ms、P3 需 4 ms。分別計算 FCFS 與 SJF 的平均等待時間。

參考答案

FCFS:等待時間 P1 = 0、P2 = 8、P3 = 10,平均 = 18/3 = 6 ms。SJF(P2 → P3 → P1):P2 = 0、P3 = 2、P1 = 6,平均 = 8/3 ≈ 2.67 ms。

練習 3:設計控制系統

描述一個自動澆水系統的感測器、控制器與致動器,並說明它是開迴路還是閉迴路。

參考答案

感測器:土壤濕度感測器;控制器:微控制器比較濕度與設定值;致動器:電磁閥或水泵。因為依測量的濕度決定是否澆水,屬於 閉迴路。

HL 練習:分頁與 thrashing

說明為什麼同時開太多大型程式時,電腦會變得非常慢,甚至硬碟燈一直亮。

參考答案

RAM 不足時,OS 把頁換到硬碟上的虛擬記憶體。行程不斷需要已被換出的頁,OS 就不停在 RAM 與硬碟間搬移頁(thrashing),大部分時間花在 I/O 而不是執行程式,所以效能大幅下降、硬碟持續存取。