本書分為兩部分,上篇基礎理論篇以操作系統對計算機系統資源的管理為線索,講述操作系統的基本概念、基本原理、設計方法和實現技術,并以Linux操作系統為實例,剖析了Linux操作系統各個功能模塊的實現機制,以加深讀者對操作系統基本理論的理解。下篇實驗指導篇圍繞操作系統的用戶接口、處理機管理、存儲管理、文件管理和設備管理,在Linux系統環境下,設計選取10個實驗,并給出了具體的課程設計題目和設計提示。
本書體系結構清晰,語言淺顯易懂,案例經典實用。 全書從理論到實驗、再到讀者自行開發,脈絡清晰,內容由淺入深,方便讀者學習使用。
本書既可作為高等學校計算機專業及相關專業的“操作系統”課程教材,也可作為從事計算機科學、工程和應用等方面工作的科技人員的參考用書。
本書分為兩部分:上篇基礎理論篇,下篇實驗指導篇,從基礎理論部分所講的知識點出發,精選10個實驗項目。
上篇 基礎理論篇
第1章 計算機操作系統概述
1.1 操作系統概念
1.2 操作系統的發展歷程
1.2.1 穿孔卡片
1.2.2 晶體管和單道批處理系統
1.2.3 集成電路芯片和多道程序系統
1.2.4 個人計算機和現代操作系統
1.3 操作系統的分類
1.3.1 批處理操作系統
1.3.2 分時操作系統
1.3.3 實時操作系統
1.3.4 網絡操作系統
1.3.5 分布式操作系統
1.3.6 嵌入式操作系統
1.3.7 云操作系統
1.4 現代操作系統的主要特性
1.4.1 并發性
1.4.2 共享性
1.4.3 虛擬性
1.4.4 異步性
1.5 操作系統的功能
1.5.1 處理機管理
1.5.2 存儲管理
1.5.3 設備管理
1.5.4 文件管理
1.5.5 用戶接口
1.6 Linux操作系統基礎
1.6.1 Linux的起源與發展
1.6.2 Linux系統的特點
1.6.3 Linux基本結構
1.6.4 Linux版本
思考與練習
第2章 操作系統用戶接口
2.1 用戶接口簡介
2.2 命令接口
2.2.1 作業
2.2.2 脫機用戶接口
2.2.3 聯機用戶接口
2.2.4 Linux的命令控制接口
2.3 圖形接口
2.4 系統調用
2.4.1 處理機的兩種工作狀態
2.4.2 系統調用的實現
2.4.3 系統調用實例
2.4.4 Linux系統調用
2.5 Linux編程基礎
2.5.1 Linux的Shell
2.5.2 vi使用入門
2.5.3 GCC概述
2.5.4 Makefile
思考與練習
第3章 處理機管理
3.1 進程與線程
3.1.1 進程的引入
3.1.2 進程的概念
3.1.3 進程控制
3.1.4 進程調度
3.1.5 線程
3.2 進程間的制約關系
3.2.1 進程互斥和同步的概念
3.2.2 進程互斥的實現
3.2.3 進程同步的實現
3.2.4 用P、V原語解決經典的同步/互斥問題
3.2.5 結構化的同步/互斥機制——管程
3.3 進程通信
3.3.1 進程的通信方式
3.3.2 消息緩沖機制
3.3.3 信箱通信
3.4 死鎖
3.4.1 死鎖的概念
3.4.2 死鎖產生的必要條件
3.4.3 死鎖的預防
3.4.4 死鎖的避免
3.4.5 死鎖的檢測和解除
3.5 處理機調度
3.5.1 調度的層次和分類
3.5.2 作業調度的功能和性能指標
3.5.3 作業調度算法
3.6 Linux系統的處理機管理
3.6.1 Linux系統進程與線程
3.6.2 Linux系統的進程控制塊
3.6.3 Linux的進程狀態及狀態變遷
3.6.4 Linux的進程控制
3.6.5 Linux的進程調度
3.6.6 Linux的進程通信
思考與練習
第4章 主存管理
4.1 存儲管理概述
4.1.1 基本概念
4.1.2 存儲管理的功能
4.1.3 主存的虛擬存儲中用到的幾種技術
4.2 存儲器的連續分配
4.2.1 單一連續分區存儲管理
4.2.2 固定分區存儲管理
4.2.3 可變分區存儲管理
4.3 存儲器的離散分配
4.3.1 分頁式存儲管理
4.3.2 分段式存儲管理
4.3.3 段頁式存儲管理
4.3.4 虛擬存儲管理
4.4 Linux系統的存儲管理
4.4.1 Linux的內存管理概述
4.4.2 Linux存儲空間的描述
4.4.3 Linux多級分頁機制
4.4.4 空閑內存的管理
4.4.5 內存的分配與回收
4.4.6 頁面的交換
思考與練習
第5章 文件管理
5.1 文件
5.1.1 文件的概念
5.1.2 文件的命名
5.1.3 文件的類型
5.1.4 文件的屬性
5.1.5 文件的邏輯結構及存取方法
5.1.6 文件的物理結構
5.1.7 文件的使用
5.2 目錄管理
5.2.1 文件控制塊與目錄項
5.2.2 目錄的層次結構
5.2.3 “按名存取”的實現
5.3 文件系統
5.3.1 文件系統的概念
5.3.2 文件系統的實現
5.3.3 文件系統的功能
5.4 文件系統的安全性和保護機制
5.4.1 文件的共享與安全
5.4.2 文件的保護
5.5 Linux文件系統管理
5.5.1 Linux文件系統的概念
5.5.2 Linux文件系統的特點
5.5.3 Linux文件系統的結構
5.5.4 Ext2文件系統
思考與練習
第6章 設備管理
6.1 設備管理概述
6.1.1 設備管理的目標和功能
6.1.2 I/O系統的組織結構
6.1.3 I/O系統的分類
6.1.4 I/O系統的物理特性
6.2 設備使用界面的管理
6.2.1 設備獨立性的概念
6.2.2 設備獨立性軟件
6.3 設備的分配
6.3.1 設備分配前應考慮的因素
6.3.2 設備分配原則
6.3.3 設備分配策略
6.3.4 設備分配中使用的數據結構
6.3.5 獨享設備的分配
6.3.6 共享設備的分配
6.3.7 虛擬設備的分配
6.4 緩沖區的管理
6.4.1 緩沖的引入
6.4.2 緩沖的概念
6.4.3 緩沖的分類及實現
6.5 I/O的具體實現
6.5.1 I/O請求的提出
6.5.2 對I/O請求的管理
6.5.3 I/O請求的具體實現
6.5.4 數據傳輸方式
6.6 Linux的設備管理
6.6.1 Linux設備管理的特點
6.6.2 Linux系統的I/O軟件結構
6.6.3 Linux的中斷處理
思考與練習
下篇 實驗指導篇
實驗一 Linux的安裝及應用
實驗二 進程創建
實驗三 進程控制
實驗四 進程互斥
實驗五 進程同步
實驗六 進程通信
實驗七 存儲管理
實驗八 文件管理
實驗九 設備驅動程序安裝
實驗十 課程設計及設計提示
參考文獻