目錄電腦系統的層次結構操作系統的定義操作系統的功能和目標作為系統資源的管理者向上層提供方便易用的服務作為最接近硬體的層次操作系統的四個特征併發共用虛擬非同步操作系統的發展與分類操作系統的運行機制中斷和異常中斷的作用中斷類型中斷機制的基本原理系統調用系統調用的分類系統調用過程操作系統的內核巨集內核和微內 ...
目錄
電腦系統的層次結構
操作系統的定義
操作系統(Operating System, OS)是指控制和管理整個電腦系統的硬體和軟體資源,併合理地組織調度電腦的工作和資源的分配;以提供給用戶和其他軟體方便的介面和環境;它是電腦系統中最基本的系統軟體
- 操作系統是系統資源(硬體和軟體)的管理者
- 向上層提供方便易用的服務
- 是最接近硬體的一層軟體
操作系統的功能和目標
作為系統資源的管理者
-
提供的功能:
- CPU(處理機)管理
- 記憶體(存儲器)管理
- 文件管理
- 設備管理
-
目標:安全、高效
向上層提供方便易用的服務
封裝思想:操作系統把一些硬體功能封裝成簡單易用的服務,使用戶能更方便地使用電腦,用戶無需關心底層硬體的原理,只需要對操作系統發出命令即可
-
直接給用戶使用的
- GUI
- 命令介面:聯機命令介面、離線命令介面
-
給軟體/給程式員使用
- 程式介面:可以在程式中進行系統調用來使用程式介面。普通用戶不能直接使用程式介面,只能通過程式代碼間接使用
作為最接近硬體的層次
- 需要實現對硬體機器的拓展:操作系統將 CPU、記憶體、磁碟、顯示器、鍵盤等硬體合理地組織起來,讓各種硬體能夠相互協調配合,實現更多更複雜的功能,普通用戶無需關心這些硬體在底層是怎麼組織起來工作的,只需直接使用操作系統提供的介面即可
操作系統的四個特征
併發和共用是兩個最基本的特征(沒有併發和共用,就談不上虛擬和非同步),二者互為存在條件
併發
- 併發指兩個或多個事件在同一時間間隔內發生。這些事件巨集觀上是同時發生的,但微觀上是交替發生的。
並行:指兩個或多個事件在同一時刻同時發生
- 操作系統的併發性指電腦系統中“同時”運行著多個程式,這些程式巨集觀上看是同時運行著的,而微觀上看是交替運行的。操作系統就是伴隨著“多道程式技術”而出現的。因此,操作系統和程式併發是一起誕生的
- 單核 CPU 同一時刻只能執行一個程式,各個程式只能併發地執行
- 多核 CPU 同一時刻可以同時執行多個程式,多個程式可以並行地執行
共用
-
共用即資源共用,是指系統中的資源可供記憶體中多個併發執行的進程共同使用。
-
兩種資源共用方式
- 互斥共用方式:系統中的某些資源,雖然可以提供給多個進程使用,但一個時間段內只允許一個進程訪問該資源
- 同時共用方式:系統中的某些資源,允許一個時間段內由多個進程“同時”(巨集觀上)對它們進行訪問
虛擬
- 虛擬是指把一個物理上的實體變為若幹個邏輯上的對應物。物理實體(前者)是實際存在的,而邏輯上對應物(後者)是用戶感受到的。
- 空分復用技術(如虛擬存儲技術)
- 時分復用技術(如虛擬 CPU 技術)
顯然,如果失去了併發性,則一個時間段內系統中只需運行一道程式,那麼就失去了實現虛擬性的意義了。因此,沒有併發性,就談不上虛擬性
非同步
- 非同步是指,在多道程式環境下,允許多個程式併發執行,但由於資源有限,進程的執行不是一貫到底的,而是走走停停,以不可預知的速度向前推進,這就是進程的非同步性。
如果失去了併發性,即系統只能串列地運行各個程式,那麼每個程式的執行會一貫到底。只有系統擁有併發性,才有可能導致非同步性。
操作系統的發展與分類
-
手工操作階段:紙帶機
-
批處理階段——單道批處理系統:引入離線輸入/輸出技術(用外圍機 + 磁帶完成),並由監督程式負責控製作業的輸入、輸出
- 主要優點:緩解了一定程度的人機速度矛盾,資源利用率有所提升
- 主要缺點:記憶體中僅能有一道程式運行,只有該程式運行結束之後才能調入下一道程式。CPU 有大量的時間是在空閑等待 I/O 完成,資源利用率依然很低
-
批處理階段——多道批處理系統:每次往記憶體中讀入多道程式,操作系統正式誕生,用於支持多道程式併發運行
- 主要優點:多道程式併發執行,共用電腦資源。資源利用率大幅提升,CPU 和其他資源更能保持“忙碌”狀態,系統吞吐量增大。
- 主要缺點:用戶響應時間長,沒有人機交互功能(用戶提交自己的作業之後就只能等待電腦處理完成,中間不能控制自己的作業執行。eg:無法調試程式/無法在程式運行過程中輸入一些參數)
-
分時操作系統:電腦以時間片為單位輪流為各個用戶/作業服務,各個用戶可通過終端與電腦進行交互。
- 主要優點:用戶請求可以被即時響應,解決了人機交互問題。允許多個用戶同時使用一臺電腦,並且用戶對電腦的操作相互獨立,感受不到別人的存在。
- 主要缺點:不能優先處理一些緊急任務。操作系統對各個用戶/作業都是完全公平的,迴圈地為每個用戶/作業服務一個時間片,不區分任務的緊急性。
-
實時操作系統: 在實時操作系統的控制下,電腦系統接收到外部信號後及時進行處理,並且要在嚴格的時限內處理完事件。實時操作系統的主要特點是及時性和可靠性
- 主要優點:能夠優先響應一些緊急任務,某些緊急任務不需時間片排隊。
- 分類:硬實時操作系統:必須在絕對嚴格的規定時間內完成處理;軟實時操作系統:能接受偶爾違反時間規定
-
其他幾種操作系統:
- 網路操作系統:是伴隨著電腦網路的發展而誕生的,能把網路中各個電腦有機地結合起來,實現數據傳送等功能,實現網路中各種資源的共用(如文件共用)和各台電腦之間的通信。(如:Windows NT 就是一種典型的網路操作系統,網站伺服器就可以使用)
- 分散式操作系統:主要特點是分佈性和並行性。系統中的各台電腦地位相同,任何工作都可以分佈在這些電腦上,由它們並行、協同完成這個任務
- 個人電腦操作系統:如 Windows XP、MacOS,方便個人使用
操作系統的運行機制
-
如何區分 CPU 處於用戶態還是內核態:CPU 中有一個寄存器叫程式狀態字寄存器(PSW),其中有個二進位位,1 表示內核態,0 表示用戶態(有的 CPU 也可能相反)
-
內核態=核心態=管態,用戶態=目態
-
內核態和用戶態的切換
- 剛開機時,CPU 為內核態,操作系統內核程式先在 CPU 運行
- 開機完成後,用戶可以啟動某個應用程式
- 操作系統內核程式在合適的時候主動讓出 CPU,讓該應用程式上 CPU 運行(操作系統內核在讓出 CPU 之前,會用一條特權指令把 PSW 的標誌位設置為用戶態)
- 應用程式運行在用戶態
- CPU 發現要執行的指令是特權指令,但是處在用戶態,這個非法事件會引發一個中斷信號
- CPU 檢測到中斷信號後,會立即變為內核態,並停止運行當前的應用程式,轉而運行處理中斷信號的內核程式
- 操作系統獲取 CPU 的控制權,直到處理完中斷後再將 CPU 使用權轉給應用程式
- 內核態——用戶態:執行一條特權指令——修改 PSW 的標誌位為用戶態,這個動作意味著操作系統將主動讓出 CPU 使用權
- 用戶態——內核態:由中斷引發,硬體自動完成變態過程,觸發中斷信號意味著操作系統將強行奪回 CPU 的使用權(除了非法使用特權指令之外,還有很多事件會觸發中斷信號。一個共性是,但凡需要操作系統介入的地方,都會觸發中斷信號)
中斷和異常
- 中斷是讓操作系統內核奪回 CPU 使用權的唯一途徑
中斷的作用
沒有中斷機制,就不可能實現操作系統,不可能實現程式併發
- 讓操作系統內核強行奪回 CPU 的控制權
- 使 CPU 從用戶態變為內核態
中斷類型
-
內中斷(異常、例外):與當前執行的指令有關,中斷信號來源於 CPU 內部
- 陷阱、陷入:執行陷入指令,意味著應用程式主動地將 CPU 控制權還給操作系統內核。 系統調用就是通過陷入指令完成(陷入指令)(註意不是特權指令,能再用戶態使用)
- 故障:由致命錯誤引起,內核程式無法修複該錯誤,因此一般不再將 CPU 使用權還給引發終止的應用程式, 而是直接終止該應用程式。如:整數除 0、非法使用特權指令
- 終止:由錯誤條件引起的,可能被內核程式修複。內核程式修複故障後會把 CPU 使用權還給應用程式,讓它繼續執行下去。如:缺頁故障。
-
外中斷:與當前執行的指令無關,中斷信號來源於 CPU 外部
- 時鐘中斷
- I/O 中斷請求
每一條指令執行結束時,CPU 都會例行檢查是否有外中斷信號
中斷機制的基本原理
不同的中斷信號,需要用不同的中斷處理程式來處理
-
檢查中斷信號
- 內中斷:CPU 在執行指令時會檢查是否有異常發生
- 外中斷:每個指令末尾,CPU 都會檢查是否有外中斷信號需要處理
-
找到相應的中斷處理程式
- 根據中斷信號的類型去查詢中斷向量表,以此來找到相應的中斷處理程式在記憶體中的存放位置
系統調用
系統調用是操作系統提供給應用程式使用的介面,可以理解為一種可供應用程式調用的特殊函數,應用程式可以通過系統調用來請求獲得操作系統內核的服務(和庫函數類似,但有區別)
- 有的庫函數涉及系統調用(如 open),有的不涉及系統調用(如取絕對值的函數)
系統調用的分類
系統中的各種共用資源都由操作系統內核統一掌管,因此凡是與共用資源有關的操作(如存儲分配、I/O 操作、文件管理等),都必須通過系統調用的方式向操作系統內核提出服務請求,這樣可以保證系統的穩定性和安全性,防止用戶進行非法操作。
系統調用過程
操作系統的內核
巨集內核和微內核
操作系統結構
分層結構
最底層是硬體,最上層是用戶介面,每層可單向調用更低一層的介面(不能跨層調用)
模塊化
將操作系統按功能劃分為若幹個具有一定獨立性的模塊
內核 = 主模塊(進程、記憶體)+ 可載入內核模塊(驅動)
外核
外核能夠給用戶分配未經抽象的硬體資源(沒有虛擬化映射),用戶看到的是物理記憶體,可以提高訪存效率(在一些頻繁使用的物理地址可以這樣分配)
操作系統引導(開機過程)
- 操作系統引導(boot):開機的時候,讓操作系統運行起來
虛擬機
虛擬機:使用虛擬化技術,將一臺物理機器虛擬化為多台虛擬機器,每個虛擬機器都可以獨立運行一個操作系統;需要使用到虛擬機管理程式(虛擬機監控程式/VMM/Hypervisor)
- 第一類 VMM,直接運行在硬體上,只有 VMM 是運行在內核空間中的,操作系統是運行在用戶空間的,只不過是它自己以為運行在內核空間中,VMM 提供操作系統執行特權指令的功能
- 第二類 VMM,直接運行在宿主操作系統上(VMware)
- 兩類 VMM 對比