作業系統(一)作業系統歷史:從標準函數庫到雲計算
作業系統的發展的推動因素:硬體成本的不斷下降(CPU、記憶體等)、電腦功能和複雜性的不斷變化(批處理、多道程式設計、分時、網路等)、作業系統需要維護自身安全(和攻擊者”黑客”之間的博弈)
本篇導航
早期的作業系統原型就是一些獨立的庫函數
狀態機作業系統
第一階段: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等開放式主機作業系統出現。用戶可以獨享一台電腦的功能。硬體成本下降。
網路的出現,觸發了網路作業系統和分散式作業系統。
作業系統未來的發展趨勢
普適計算、雲計算、移動計算、大數據計算等。