操作系統的發展的推動因素:硬件成本的不斷下降(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等開放式主機操作系統出現。用戶可以獨享一台計算機的功能。硬件成本下降。網絡的出現,觸發了網絡操作系統和分布式操作系統。