基礎:作業系統是什麼

批次系統與互動式系統

作業系統在「使用者(或另一個程式)如何把工作交給它,以及多快期待得到回覆」這點上有所不同,而兩種經典風格是批次與互動式。在批次系統(batch system)裡,你事先準備好一整份工作、送出,然後就走人;系統把它執行到完成,你稍後再來收結果,中間沒有來回對話。在互動式系統(interactive system)裡,你坐在機器前與它對話——打一個命令、看一個回應、再打下一個——期待在片刻之內得到回覆。想像寄出一張長長的訂購單、下週收到包裹(批次),相對於與一位當場回答每個問題的店員聊天(互動式)。

在歷史上,批次先出現,因為早期電腦稀少而珍貴:工作(往往在打孔卡上)被收集成一批,一個接一個餵進去,好讓昂貴的機器滿載運轉,沒有人坐在控制台前空等。設計目標是產出率——每小時盡可能完成越多工作越好。互動式(分時)系統較晚出現,為的是另一個目標進行最佳化:回復時間,也就是系統對每個小請求反應有多快,因為此時有個人在等,而閒等就是浪費人的時間。這兩個目標確實往不同方向拉扯:一個為塞進長批次工作而調校的排程器,打起字來會覺得遲鈍;而一個為俐落互動而調校的排程器,完成大型工作時可能效率較低。

兩種風格至今仍然存在且重要。互動式是你每天在手機或筆電上體驗到的。批次則在任何「大量工作在無人介入下被處理」的地方依然活躍:每晚的薪資計算、科學模擬、逐格算繪一部電影,以及雲端運算裡龐大的資料處理工作,本質上都是批次。許多真實系統把兩者融合——你的筆電在前景跑你的互動式應用程式,同時在背景默默批次處理備份與建立索引。有用的問題不是「哪個比較好」,而是對某個特定的工作負載而言,是產出率還是反應靈敏這個目標佔上風。

氣象局把一個龐大的模擬當作批次工作送出,整夜無人看管地跑六小時;到了早上,預報就準備好了。同時,一位氣象學家使用互動式地圖程式,期待每一次縮放與點擊都即時回應。同一份資料,兩種非常不同的作業系統目標。

批次為產出率最佳化;互動式為回復時間最佳化。

批次並未過時——它驅動薪資計算、算繪與大型雲端資料工作。這個區別關乎目標(產出率對反應靈敏)與「是否有人在等」,而非新舊技術之分。

又称
batch processing vs interactive computing批次處理與互動式運算