操作系統概述
一、什么是操作系統
操作系統是計算機系統中最基本、最重要的系統軟件,它負責管理和控制計算機的硬件與軟件資源,為用戶和其他軟件提供方便、高效、安全的使用環境。
1.1 操作系統的定義
從不同角度看,操作系統有不同的定義:
- 資源管理者:操作系統是計算機硬件資源的管理者
- 服務提供者:操作系統為用戶和應用程序提供服務
- 系統擴展器:操作系統擴展了計算機硬件的功能
1.2 操作系統的目標
- 方便性:為用戶提供友好的操作界面
- 有效性:提高系統資源利用率
- 可擴展性:支持硬件和軟件的擴展
- 開放性:支持不同系統間的互操作
二、操作系統的發展歷程
2.1 手工操作階段(1940s-1950s)
- 無操作系統
- 人工裝卸紙帶、卡片
- 程序員即操作員
2.2 批處理系統(1950s-1960s)
- 單道批處理系統
- 多道批處理系統
- 主要特點:作業自動連續處理
2.3 分時系統(1960s)
- 多個用戶共享計算機資源
- 交互式操作
- 典型代表:UNIX系統
2.4 實時系統(1960s)
- 硬實時系統:嚴格的時間限制
- 軟實時系統:相對的時間限制
- 應用領域:工業控制、航空航天等
2.5 現代操作系統
- 個人計算機操作系統
- 分布式操作系統
- 嵌入式操作系統
- 網絡操作系統
三、操作系統的基本特征
3.1 并發性
- 多個程序在同一時間段內同時執行
- 宏觀上并行,微觀上串行
- 通過進程管理實現并發
3.2 共享性
- 資源可供多個并發執行的進程共同使用
- 互斥共享:如打印機
- 同時訪問:如磁盤文件
3.3 虛擬性
- 通過技術將一個物理實體變為多個邏輯實體
- 虛擬處理器、虛擬內存、虛擬設備
3.4 異步性
- 進程以不可預知的速度向前推進
- 可能導致結果的不確定性
- 操作系統需要保證結果的正確性
四、操作系統的功能
4.1 處理器管理
- 進程控制:創建、撤銷、狀態轉換
- 進程同步:協調并發進程的執行順序
- 進程通信:進程間信息交換
- 進程調度:分配處理器時間
4.2 存儲器管理
- 內存分配與回收
- 地址映射
- 內存保護
- 內存擴充(虛擬存儲)
4.3 設備管理
- 設備分配
- 設備驅動
- 設備無關性
- 緩沖管理
4.4 文件管理
- 文件存儲空間管理
- 目錄管理
- 文件讀寫管理
- 文件保護
4.5 用戶接口
- 命令接口
- 圖形用戶接口
- 程序接口(系統調用)
五、計算機系統服務
5.1 操作系統提供的服務
5.1.1 程序執行
- 將程序裝入內存并運行
- 結束程序執行
- 異常處理
5.1.2 I/O操作
- 提供統一的設備訪問接口
- 隱藏硬件細節
- 提高設備利用率
5.1.3 文件系統操作
- 文件的創建、刪除、讀寫
- 目錄管理
- 文件保護和安全
5.1.4 通信服務
- 進程間通信
- 網絡通信
- 資源共享
5.1.5 錯誤檢測和處理
- 硬件錯誤檢測
- 軟件錯誤處理
- 容錯機制
5.2 系統調用
5.2.1 系統調用的概念
- 操作系統提供給應用程序的接口
- 應用程序通過系統調用請求操作系統服務
- 運行在核心態
5.2.2 系統調用的類型
- 進程控制類系統調用
- 文件管理類系統調用
- 設備管理類系統調用
- 信息維護類系統調用
- 通信類系統調用
5.2.3 系統調用的實現
- 陷入機制
- 參數傳遞
- 系統調用表
5.3 用戶與操作系統的交互
5.3.1 命令解釋器
- 接收并解釋用戶命令
- 執行相應操作
- 提供交互環境
5.3.2 圖形用戶界面
- 窗口系統
- 菜單驅動
- 鼠標操作
六、操作系統的體系結構
6.1 單體結構
- 所有功能集中在一個內核中
- 簡單高效
- 維護困難
6.2 層次結構
- 按功能分層
- 每層為上層提供服務
- 易于設計和調試
6.3 微內核結構
- 內核只包含基本功能
- 其他功能作為服務進程運行
- 靈活、可擴展
6.4 虛擬機結構
- 在物理計算機上創建多個虛擬機
- 每個虛擬機運行獨立的操作系統
- 資源隔離性好
七、與思考
7.1 操作系統的重要性
操作系統是計算機系統的核心,它:
- 管理計算機資源
- 提供用戶接口
- 為應用程序提供運行環境
- 保證系統的安全和穩定
7.2 學習建議
- 理論與實踐相結合:在理解概念的動手實踐
- 建立系統思維:從整體上把握操作系統各部分的關系
- 關注最新發展:了解操作系統技術的最新進展
- 多做練習:通過習題鞏固知識點
7.3 常見問題
- 操作系統如何實現進程的并發執行?
- 虛擬內存的工作原理是什么?
- 文件系統是如何組織和管理文件的?
- 系統調用的執行過程是怎樣的?
自學提示:
- 建議配合王道操作系統的PPT課件進行學習
- 每個章節學習后,嘗試用自己的話要點
- 遇到不理解的概念,可以查閱相關資料或進行實驗驗證
- 定期復習,構建完整的知識體系