作業系統(一)作業系統歷史:從標準函數庫到雲計算

作業系統的發展的推動因素:硬體成本的不斷下降(CPU、記憶體等)、電腦功能和複雜性的不斷變化(批處理、多道程式設計、分時、網路等)、作業系統需要維護自身安全(和攻擊者”黑客”之間的博弈)

本篇導航

狀態機作業系統

第一階段:SOSC——單一操作員單一控制終端

第二階段:批處理作業系統

第三階段:多道批處理作業系統

第四階段:分時作業系統

第五階段:現代作業系統

作業系統未來的發展趨勢

早期的作業系統原型就是一些獨立的庫函數

狀態機作業系統

第一階段:SOSC——單一操作員單一控制終端

這一階段被稱為單一操作員單一控制終端(SOSC,single operator single console)的作業系統,作業系統本身只由一組標準庫函數組成。

用戶輸入命令,作業系統執行對應庫函數,”撥一下動一下”,作業系統「等」人輸入命令。

作業系統:庫函數集合

特點:只提供基本功能,滿足人機交互。不支援並發和多道程式運行。

缺點:電腦等人,人的動作太慢

第二階段:紙帶編程——批處理作業系統

批處理:.bak的批處理命令

用戶將要執行的命令列印在紙帶上,由工作人員交給電腦一批一批的處理。並由作業系統的「批處理監視器」控制程式的開始和結束。

作業系統:庫函數集合(支援程式執行) + 批處理監視器(控制程式執行)

特點:紙帶上的命令們被載入到磁帶中,作業系統根據順序「挨個」調用函數執行,將結果寫在另一個磁帶上,由印表機列印到紙帶。

文件概念的產生:為了區分載入到磁帶上的多個用戶程式,採用文件這個抽象概念進行隔離。

第三階段:多道批處理作業系統

批處理OS中CPU和IO是串列的,用戶指令從磁帶讀入的時候,IO工作,CPU需要等待IO完成,造成了CPU的浪費。

作業系統:記憶體管理(進程空間隔離和保護)、IO管理(CPU和磁碟操作並發)、CPU調度(多進程並發)、程式執行(庫函數+監控)

特點:將多個程式同時載入到記憶體中執行,CPU和IO並行。

這一階段同時產生了記憶體分段管理技術

第四階段:分時作業系統 & 實時作業系統

分時作業系統

前期作業系統都有一個弊端:用戶程式編寫在紙帶上交給管理員運行,運行結果再由管理員用紙帶返回給用戶——用戶等待周期長,無法及時獲知程式執行結果。

特點:多台IO終端同時連在電腦上,電腦在所有連接的終端用戶間進行分時。時間到了,就切換到下一個進程。

需要公平的管理CPU時間。

池化、互斥、進程通訊等機制相繼出現。

分時+多道程式設計,出現了競爭、通訊、死鎖、保護等新功能,作業系統越來越複雜。

註:多道批處理作業系統的並發主要體現在CPU和IO並發上,分時作業系統的並發就是 CPU和IO並發+多進程並發(分時)

實時作業系統

實時作業系統:系統反應具有時序可預測性的系統。

時序可預測性:所有任務在規定時間內完成。

註:區分「反應快」和「反應可預測」,滿足前者的不一定是實時作業系統,但實時作業系統通常具有「反應快」這個特點。即「反應快通常是系統具有時序可預測性的結果」。

軟實時系統和硬實時系統:前者系統在規定時間內未響應的結果可承受,比如流水裝配線,後者不行,比如導彈防衛系統。

第五階段:現代作業系統

個人機作業系統,DOS、Windows、UNIX、Linux等開放式主機作業系統出現。用戶可以獨享一台電腦的功能。硬體成本下降。

網路的出現,觸發了網路作業系統和分散式作業系統。

作業系統未來的發展趨勢

普適計算、雲計算、移動計算、大數據計算等。