《操作系統之哲學原理》(鄒恆明 著)
基礎原理篇
Chapter2 os歷史
“操作系統的演變就是對計算機硬件進行粉飾的過程。”——《操作系統之哲學原理》
歷史發展的因素驅動:
- 硬件成本不斷下降,硬件質量、數量提升;
- 計算機功能和複雜性不斷變化;
- os攻擊者的破壞。
一、狀態機os(1940年以前)
- 一種簡單的狀態轉換程序,功能簡單,計算僅加減法。
- 不支持交互命令輸入及自動程序設計,無存儲程序概念。
- 此時自動機的一切動作由人操控。
二、單一操作員單一控制端os(1940s)
【Single Operator,Single Console,SOSC】
- 代表機型:ENIAC計算機,是第一臺電子計算機。
- 提供一些標準命令供用戶使用,滿足基本功能。
- 不支持併發和多道程序運行,不自我運行,需等待操作員輸入命令再運行,故從機器角度,資源利用率低。
三、批處理os(1950s)
- 起因:提高SOSC效率,改進其機器需等待人慢動作操作纔可運行的缺點。
- 代表機型:第二代通用計算機IBM:1401和7094等。
解決方案:通過減少人機交互時間而達到CPU和輸入輸出利用率改善。 - 過程:程序手工編寫到卡片或紙帶上,交給計算機管理員。管理員按批次給IBM1401讀入並寫到磁帶上。每盤磁帶包含多個用戶程序,再將每盤磁帶加載到IBM7094。運行結果寫在另一磁盤上後,鐮刀IBM1401打印結果。
- 構成:批處理監視器(batch monitor)+原os庫函數。其中,批處理監視器控制程序的開始和結束。
批處理監視器:控制程序運行。OS庫函數:支持程序運行。
- 優點:此時代開始出現文件概念。
因磁帶上多個用戶程序必須以某種方式隔離,因此抽象出文件概念。此外,os還能管理讀卡機、磁帶、打印機等,
- 缺點:只能在同一時間執行一個程序。
四、多道批處理os(1960s)
- 起因:批處理os的CPU和I/O設備的運行穿行,CPU需不斷探尋I/O是否完成而不能執行其他程序。
- 解決方案:多個程序同時加載到計算機內存。
- 功能:管理工作,管理內存,管理CPU調度。
- 代表:IBM的OS/360(M)。
五之一:分時os(1970s)
- 起因:用戶無法即時獲知程序運行結果,響應時間過長,越來越多的資源管理。
- 解決方案:多人同時連在計算機上,每個人看作另一I/O終端;每用戶擁有一終端顯示器,經過RS232穿行線纜與計算機連接,只能接收和發送文本命令和信息。計算機在所有連接的終端用戶間分時,時間到了,就換一個程序。
- 優點:資源公平管理【區別於多道批處理】。任意時間可運行多個程序,用戶直接與計算機交互,當場調試程序【特點:人等機器,區別於SOSC】。
- 缺點:增加應對競爭、通信、死鎖、保護等問題。
- 衍生物:UNIX,CTSS(Compatible Time Sharing System),VMS。
- 此os通常運行在第三代計算機PDP、VAX、CRAY上。
五之二:實時os
- 起因:如核反應堆狀態監視系統、化學反應堆監視系統、航空飛行控制系統、導彈防衛系統等,要求計算機需在規定時間內做出響應。【此類系統稱爲臨界系統或應用。】
- 條件:需滿足時序可預測(timing pre-dictability)。
注意:實時系統並不是指反應迅速的系統,而是反應具有時序可預測性的系統。不過實際中,其反應確實很迅速。
- 解決方案:需精確、合理、及時的進程或工作調度。合理的資源管理。具備高的可用性和可靠性。
- 分類:軟實時系統,硬實時系統。
軟:可接受部分無法及時響應,如流水線裝配線。
硬:都要及時響應。如導彈防衛系統。
- 商用代表:VxWorks,EMS的DART系統。
六、現代OS(1980-至今)
- 代表:DOS、Windows、UNIX、Linux,各種主機操作系統,如VM、MVS等。
開放式系統os:DOS、Windows、UNIX、Linux,分別運行在PC機、VAX、Workstation上。
- 特徵:網絡促進網絡os和分佈式os的出現 。
網絡os:將多個計算機虛擬成一個計算機。
傳統的網絡os:現有os基礎上增加網絡功能。
分佈式os:外加提供計算機協作功能。
七、未來發展趨勢
- 最新SOLARIS將os劃分爲核心內核、可裝入模塊。
核心內核:系統調用、調度、內存管理、進程管理、VFS框架、內核鎖定、始終和計時器、中斷管理、引導和啓動、陷阱管理、CPU管理。
可裝入模塊:調度類、文件系統、可加載系統調用、可執行文件格式、流模塊、設備和總線驅動程序等。
- 最新Windows將os劃分爲內核(kernel)+執行體(executive)+視窗+圖形驅動+可裝入模塊。
執行體劃分爲:I/O管理、文件系統緩存、對象管理、熱插拔管理器、能源管理器、安全監視器、虛擬內存、進程與線程、配置管理器、本地過程調用等。
- 虛擬化技術——將傳統os提供的一個虛擬機變成多個虛擬機。
優點:利用閒置計算資源。 - 雲os——分佈式os的擴展,是分佈式範圍和從同源到異源的擴展。
優點:對分散的計算資源進行整合、同化。
八、思考題
- 人云:沒有os的計算機是一對廢鐵,無法運轉。但在計算機剛誕生的時候,誰也不知道os這回事。那個時候的計算機爲什麼在沒有os的情況下能夠運轉呢?它們又是如何運轉呢?
- os根據其運行的計算機硬件結構不同而分爲主機os、服務器os和個人機os。簡要論述這3種os的關鍵不同點。
- MACH所提倡的微內核os因運行效率低下而沒有獲得廣泛的商業應用,其效率低下原因何在?