1.1操作系統概述
操作系統定義
■ 沒有公認的精確定義
■ 操作系統是一個控制程序
一個系統軟件
控制程序執行過程,防止錯誤和計算機的不當使用
執行用戶程序,給用戶程序提供各種服務
方便用戶使用計算機系統
■ 操作系統是一個資源管理器
應用程序與硬件之間的中間層
管理各種計算機軟硬件資源
提供訪問計算機軟硬件資源的高效手段
解決資源訪問沖突,確保資源公平使用
操作系統的地位
操作系統軟件的分類
操作系統軟件的組成
■Shell--命令行接口
通過鍵盤操縱。
方便用戶進行命令輸入
■GUI--圖形用戶接口
WIMP(視窗(Window)、圖標(Icon)、選單(Menu)、指標(Pointer))
直接操作和所見即所得
■Kernel--操作系統的內部
執行各種資源管理等功能
操作系統內核特征
并發:計算機系統中同時存在多個運行的程序,需要OS管理和調度
共享:(1)“同時”訪問(2)互斥共享
共享是指說我們多個應用并發運行的時候宏觀上要體現出它們同時在訪問資源的情況微觀上要實現它們的互斥訪問
虛擬:利用多道程序設計技術,讓每個用戶都覺得有一個計算機專門為他服務
異步:(1)程序的執行不是一貫到底,而是走走停停,向前推進的速度不可預知
(2)只要運行環境相同,OS需要保證程序運行的結果也要相同
1.2操作系統的演變
■ 主要功能:硬件抽象和協調管理
■ 原則:設計隨著各種相關技術的改變而做出一定的改變
■ 在過去二十年底層技術有極大的改變!!
從1981到2012計算機系統的對比
操作系統的演變
■ 單用戶系統(’45-’55)
操作系統=裝載器+通用子程序庫
問題:昂貴組件的低利用率
■ 批處理系統(’55-’65)
前后打印和前面的輸入等I/O操作不用昂貴的計算機來做,用周邊設備來做這種輸入和最后的輸出,中間這一段價錢貴的部分讓它盡可能的快
順序執行與批處理
■ 多道程序(’65-’80)
變成的多道程序的交替執行,但是交替的條件是前一個正在執行的程序主動讓出CPU的使用權
保持多個工作在內存中并且在各工作間復用CPU
■ 分時(在前一個作業沒有結束的時候,后一個作業能夠交替運行)
定時中斷用于工作對CPU的復用
■ 個人計算機:每個用戶一個系統
·個人電腦系統
單用戶
利用率已不再是關注點
重點是用戶界面和多媒體功能
很多老的服務和功能不存在
·演變
最初:操作系統作為一個簡單的服務提供者(簡單庫)
現在:支持協調和溝通的多應用系統
越來越多的安全問題(如,電子商務、醫療記錄)
■ 分布式計算:每個用戶多個系統
·網絡支持成為一個重要的功能
·通常支持分布式服務
跨多系統的數據共享和協調
·可能使用多個處理器
松、緊耦合系統
·高可用性與可靠性的要求
操作系統演變中的計算機系統
1.3操作系統結構
簡單結構
■MS-DOS– 在最小的空間,設計用于提供大部分功能(1981~1994)
沒有拆分為模塊
雖然MS-DOS在接口和功能水平沒有很好地分離,主要用匯編編寫
分層結構
■ 將操作系統分為多層(levels)
每層建立在低層之上
最底層(layer 0),是硬件
最高層(layer N)是用戶界面
■ 每一層僅使用更低一層的功能 ?(操作)和服務。
微內核結構(Microkernel)
■ 盡可能把內核功能移到用戶空間
■ 用戶模塊間的通信使用消息傳遞
■ 好處:靈活/安全…
■ 缺點:性能
外核結構(Exokernel)
■ ?讓內核分配機器的物理資源給多個應用程序,并讓每個程序決定如何處理這些資源.
■ ?程序能鏈接到操作系統庫(libOS)實現了操作系統抽象
■ ?保護與控制分離
VMM(虛擬機管理器)
■ ?虛擬機管理器將單獨的機器接口轉換成很多的虛擬機,每個虛擬機都是一個原始計算機系統的有效副本,并能完成所有的處理器指令。
?;