基礎:作業系統是什麼

分時系統(多工)

分時系統(time-sharing)是把多元程式規劃再往前推一個決定性的步伐:作業系統不再只在程式剛好需要等待時才切換 CPU,而是迅速且刻意地切換,以快速輪流的方式給每個程式一小片 CPU 時間。其效果是製造出一種錯覺,彷彿許多程式——在共享機器上則是許多使用者——全都同時在執行,且各自都得到即時的照料。想像一位棋王同時對弈二十位對手,沿著一排棋盤走動,在每盤各下一步:每位對手都覺得受到關注,因為棋王繞回來得夠快。

相對於單純多元程式規劃,關鍵的新增物是計時器中斷。作業系統設定一個硬體計時器,在一小段間隔(一個時間配量,常為幾毫秒)後觸發。當計時器響起,控制權便跳進作業系統,即使正在跑的程式並不想停,排程器也可能切換到另一個程式——這就是先佔。每個程式跑完它的配量,狀態被保存後暫停,換另一個跑;輪流的循環快到(每秒數十次)讓人類覺得一切同時發生且靈敏回應。這正是讓單一電腦感覺像在同時跑你的編輯器、瀏覽器與音樂的原因。「多工」一詞就是同一想法的日常稱呼。

分時系統正是現代運算感覺起來是互動式、而非「送出一份工作然後乾等」的原因。但有個誠實的代價:在程式之間切換需要真實的工作(保存與恢復狀態,也就是一次環境切換),所以時間片不能無限縮小——太小的話,機器花在切換上的時間會比運算還多。而且分時系統製造的是同時的錯覺,這與真正的平行不同:在單一 CPU 核心上,任一瞬間只有一個程式在跑;它們只是輪得非常快而已。真正同時的執行需要多個核心,那是另一個概念(平行)。

在一台單核心機器上,你的編輯器、瀏覽器與音樂播放器看似一起在跑。實際上作業系統輪流給每個幾毫秒的配量——你按一個鍵,編輯器得到一片;該播一個音樂畫格了,播放器得到一片——循環得如此之快,感覺起來就像同時進行。

在單一核心上快速輪流,製造出「全部同時在跑」的錯覺。

分時系統給的是同時的錯覺,而非真正的平行——在單一核心上,程式是交錯進行,而非在同一瞬間執行。時間片也不能無限縮小:太小的話,切換的額外負擔就會喧賓奪主。

又稱
multitaskinginteractive computing多工處理分時