一、操作系統的功能
操作系統位於計算機用戶與計算機硬件之間。操作系統的目的時提供操作環境,以便用戶能夠便捷而高效地執行程序。同時,操作系統時管理計算機硬件的軟件。
從用戶視角來看,操作系統設計的主要目的是用戶使用方便,次要的是性能,不在乎的是資源利用。當然,性能對用戶來說也重要,不過這種系統優化的重點是單個用戶的體驗而不是多個用戶的需求。
從計算機的角度來看,操作系統是與硬件緊密相連的程序。因此,可將操作系統看作資源分配器。為了解決問題,計算機系統可能具有許多資源:CPU時間、內存空間、文件存儲空間、I/O設備等。操作系統管理這些資源。面對許多甚至沖突的資源請求,操作系統應考慮如何為各個程序和用戶分配資源,以便計算機系統能有效且公平地運行。
二、操作系統的定義
操作系統一直運行在計算機上的程序通常稱為內核態(Kernel)。除了內核外,還有其他兩類程序:系統程序和應用程序。前者是與系統運行有關的程序,但不是內核的一部分;后者是與運行無關的所有其他程序。
先在的移動設備的操作系統不只有內核,還有中間件(middleware)。中間件為應用程序開發人員提供其他功能的軟件框架。例如,最常見的兩個移動操作系統,Apple的iOS和Google的Android,除了內核外,都有中間件以便支持數據。
程序運行有兩種狀態:
- 用戶態:權限受限,無法完整執行操作系統。
- 內核態:可以完全控制整個計算機操作系統。
為什么應用程序不能直接訪問外設呢?
- 在計算機中,內核是被信任的第三方。
- 只有內核可以執行特權指令。
- 為了方便應用程序。
三、操作系統的基本概念
系統調用:應用程序主動向操作系統發出服務請求。
異常:非法指令或者其他壞的處理狀態。
中斷:來自不同的硬件設備的計時器和網絡的中斷。
中斷可分為硬件中斷和軟件中斷。
硬件中斷:
- 設置中斷標記(CPU初始化)
將內部、外部時間設置中斷標記
中斷事件的ID
軟件中斷:
- 保存當前狀態
- 中斷服務程序處理
- 清除中斷標記
- 恢復之前的處理狀態
跨越操作系統邊界的開銷
在執行時間上的開銷超過程序調用
開銷:
- 建立中斷/異常/系統調用號於對應服務例程映射關系的初始化開銷
- 建立內核堆棧
- 驗證參數
- 內核態映射到用戶態的地址空間更新頁面映射權限
- 內核態獨立地址空間TLB
四、操作系統划分
由於操作系統較為復雜,需要划分為多個模塊進行學習。
- 內存管理
- 進程管理
- CPU調度
- 同步機制
- 文件系統管理