第1篇 背景知識
第1章 硬件基礎
1.1 硬件的基本構成
1.2 處理器
1.2.1 CPU的性能因素
1.2.2 微處理器的發展
1.3 指令與指令周期
1.3.1 指令
1.3.2 指令周期
1.3.3 指令集的復雜性
1.3.4 流水線和並行處理
1.4 中斷
1.4.1 中斷和指令周期
1.4.2 中斷處理
1.4.3 多個中斷
1.5 存儲器的層次結構
1.5.1 內存的4種類型
1.5.2 存儲器的重要特性
1.5.3 存儲器訪問的局部性原理
1.6 高速緩存
1.7 直接內存存取
1.8 多處理器和多核計算機組織結構
1.8.1 對稱多處理器
1.8.2 多核計算機
1.9 啟動計算機
1.10 習題
第2章 操作繫統概述
2.1 操作繫統的功能
2.1.1 作為用戶/計算機接口
2.1.2 作為資源管理器
2.1.3 作為擴展機器
2.2 操作繫統的種類
2.3 操作繫統的核心概念
2.3.1 進程
2.3.2 地址空間與內存管理
2.3.3 文件
2.3.4 調度和資源管理
2.3.5 輸入/輸出
2.3.6 保護
2.3.7 Shell與圖形用戶界面
2.4 操作繫統的發展
2.4.1 串行處理
2.4.2 簡單批處理繫統
2.4.3 多道批處理繫統
2.4.4 分時繫統
2.4.5 實時繫統
2.4.6 通用操作繫統
2.4.7 操作繫統的進一步發展
2.5 繫統調用
2.5.1 繫統調用的概念
2.5.2 用於進程管理的繫統調用
2.5.3 用於文件管理的繫統調用
2.5.4 Windows Win32 API
2.6 操作繫統結構
2.6.1 單體繫統
2.6.2 層次式繫統
2.6.3 微內核
2.6.4 客戶機-服務器模式
2.6.5 虛擬機
2.6.6 外核
2.7 多處理器和多核計算機操作繫統的設計因素
2.7.1 多線程
2.7.2 對稱多處理器計算機
2.7.3 多核計算機
2.8 習題
第2篇 進程與線程
第3章 進程描述和控制
3.1 進程的概述
3.2 進程狀態
3.2.1 兩狀態進程模型
3.2.2 進程的創建和終止
3.2.3 五狀態模型
3.2.4 被掛起的進程
3.3 進程描述
3.3.1 操作繫統的控制結構
3.3.2 進程控制結構
3.4 進程控制
3.4.1 進程創建
3.4.2 進程切換
3.5 操作繫統的執行
3.5.1 無進程的內核
3.5.2 在用戶進程中執行
3.5.3 基於進程的操作繫統
3.6 習題
第4章 線程
4.1 線程的概念
4.1.1 單線程和多線程
4.1.2 線程的屬性
4.1.3 線程的功能特性
4.1.4 線程和進程的區別
4.2 用戶級和內核級線程
4.3 多核和多線程
4.4 Windows 7線程和SMP管理
4.4.1 進程對像和線程對像
4.4.2 多線程
4.4.3 線程狀態
4.4.4 對OS子繫統的支持
4.4.5 對稱多處理的支持
4.5 習題
第5章 互斥與同步
5.1 並發的原理
5.1.1 同步與互斥
5.1.2 簡單舉例
5.1.3 進程的交互
5.1.4 互斥的要求
5.2 互斥:硬件的支持
5.3 信號量
5.3.1 互斥
5.3.2 生產者/消費者問題
5.3.3 信號量的實現
5.4 管程
5.4.1 使用信號的管程
5.4.2 使用通知和廣播的管程
5.5 消息傳遞
5.5.1 同步
5.5.2 尋址
5.5.3 消息格式
5.5.4 排隊原則
5.5.5 互斥
5.6 讀者/寫者問題
5.6.1 讀者優先
5.6.2 寫者優先
5.7 習題
第6章 死鎖與饑餓
6.1 死鎖原理
6.1.1 可搶占資源和不可搶占資源
6.1.2 可重用資源和可消耗資源
6.1.3 資源獲取
6.1.4 死鎖的定義
6.1.5 資源死鎖的條件
6.1.6 死鎖建模
6.2 死鎖檢測和死鎖恢復
6.2.1 死鎖檢測
6.2.2 死鎖恢復
6.3 死鎖避免
6.3.1 資源軌跡圖
6.3.2 安全狀態和不安全狀態
6.3.3 單個資源的銀行家算法
6.3.4 多個資源的銀行家算法
6.4 死鎖預防
6.5 活鎖與饑餓
6.5.1 兩階段加鎖
6.5.2 通信死鎖
6.5.3 活鎖
6.5.4 饑餓
6.6 哲學家就餐問題
6.7 習題
第3篇 存儲管理與調度
第7章 存儲管理
7.1 無存儲器抽像
7.2 存儲器抽像:地址空間
7.2.1 地址空間的概念
7.2.2 交換技術
7.2.3 空閑內存管理
7.2.4 駐留集管理
7.3 虛擬內存
7.3.1 分頁
7.3.2 頁表
7.3.3 加速分頁過程
7.3.4 針對大內存的頁表
7.4 頁面置換算法
7.4.1 頁面置換算法
7.4.2 近未使用(NRU)頁面置換算法
7.4.3 先進先出(FIFO)頁面置換算法
7.4.4 第二次機會頁面置換算法
7.4.5 時鐘頁面置換算法
7.4.6 近少使用(LRU)頁面置換算法
7.4.7 不常用頁面置換算法
7.4.8 工作集頁面置換算法
7.4.9 工作集時鐘(WSClock)頁面置換算法
7.5 習題
第8章 分頁與分段設計
8.1 分頁繫統的設計問題
8.1.1 局部分配策略與全局分配策略
8.1.2 負載控制
8.1.3 頁面大小
8.1.4 分離的指令空間和數據空間
8.1.5 共享頁面
8.1.6 共享庫
8.1.7 內存映射文件
8.1.8 清除策略
8.1.9 虛擬內存接口
8.2 設計的實現問題
8.2.1 與分頁有關的工作
8.2.2 指令備份
8.2.3 後備存儲
8.3 分段
8.3.1 純分段的實現
8.3.2 分段和分頁結合:MULTICS
8.3.3 分段和分頁結合:Intel Pentium
8.4 習題
第9章 處理器管理
9.1 處理器調度的類型
9.2 調度算法
9.2.1 短程調度準則
9.2.2 優先級的使用
9.2.3 選擇調度策略
9.2.4 公平共享調度
9.3 多處理器調度
9.3.1 粒度
9.3.2 設計問題
9.3.3 進程調度
9.3.4 線程調度
9.4 實時調度
9.4.1 實時操作繫統的特點
9.4.2 實時調度方法
9.4.3 限期調度
9.4.4 速率單調調度
9.4.5 優先級反轉
9.5 習題
第4篇 輸入/輸出和文件管理
第10章 輸入/輸出管理
10.1 I/O硬件原理
10.1.1 I/O設備
10.1.2 設備控制器
10.1.3 內存映射I/O
10.1.4 直接存儲器存取
10.2 I/O軟件原理
10.2.1 I/O軟件的目標
10.2.2 程序控制I/O
10.2.3 中斷驅動I/O
10.2.4 使用DMA的I/O
10.3 I/O軟件層次
10.3.1 中斷處理程序
10.3.2 設備驅動程序
10.3.3 與設備無關的I/O軟件
10.3.4 用戶空間的I/O軟件
10.4 習題
第11章 I/O設備管理
11.1 盤
11.1.1 磁盤
11.1.2 光盤
11.1.3 固態硬盤
11.2 磁盤臂調度算法
11.3 磁盤陣列(RAID)
11.4 時鐘
11.4.1 時鐘硬件
11.4.2 時鐘軟件
11.4.3 軟定時器
11.5 用戶界面:鍵盤、鼠標和監視器
11.5.1 輸入軟件
11.5.2 輸出軟件
11.6 電源管理
11.7 習題
第12章 文件管理
12.1 文件
12.1.1 文件命名
12.1.2 文件結構
12.1.3 文件類型
12.1.4 文件存取
12.1.5 文件屬性
12.1.6 文件操作
12.2 目錄
12.2.1 一級目錄繫統
12.2.2 層次目錄繫統
12.2.3 路徑名
12.2.4 目錄操作
12.3 文件繫統的實現
12.3.1 文件繫統布局
12.3.2 文件的實現
12.3.3 目錄的實現
12.3.4 虛擬文件繫統
12.4 文件繫統管理和優化
12.4.1 磁盤空間管理
12.4.2 文件繫統備份
12.4.3 文件繫統的一致性
12.4.4 文件繫統性能
12.4.5 磁盤碎片整理
12.5 習題
第5篇 操作繫統進階
第13章 操作繫統安全
13.1 安全的概念
13.2 威脅、攻擊與資產
13.2.1 威脅與資產
13.2.2 入侵者
13.2.3 數據意外遺失
13.3 惡意軟件
13.3.1 特洛伊木馬
13.3.2 病毒
13.3.3 蠕蟲
13.3.4 僵尸
13.3.5 移動代碼
13.3.6 間諜軟件
13.3.7 Rootkit
13.4 內部與外部攻擊
13.4.1 後門陷阱
13.4.2 邏輯炸彈
13.4.3 登錄欺騙
13.4.4 利用代碼漏洞
13.5 身份驗證與訪問控制
13.5.1 基於密碼的身份驗證
13.5.2 基於令牌的身份驗證
13.5.3 生物特征識別認證
13.5.4 訪問控制
13.6 入侵檢測
13.6.1 基於主機的入侵檢測技術
13.6.2 審計記錄
13.7 防御
13.7.1 防火牆
13.7.2 反病毒技術
13.7.3 蠕蟲對策
13.8 習題
第14章 多媒體操作繫統
14.1 多媒體概述
14.2 多媒體文件
14.2.1 視頻編碼
14.2.2 音頻編碼
14.3 視頻壓縮
14.3.1 JPEG標準
14.3.2 MPEG標準
14.4 音頻壓縮
14.5 多媒體進程調度
14.5.1 調度同質進程
14.5.2 一般實時調度
14.5.3 速率單調調度
14.5.4 早終時限優先調度
14.6 多媒體文件繫統
14.6.1 VCR控制功能
14.6.2 近似視頻點播
14.7 文件存放
14.7.1 在單個磁盤上存放文件
14.7.2 兩個替代的文件組織策略
14.7.3 近似視頻點播的文件存放
14.7.4 在單個磁盤上存放多個文件
14.7.5 在多個磁盤上存放文件
14.8 高速緩存
14.8.1 塊高速緩存
14.8.2 文件高速緩存
14.9 多媒體磁盤調度
14.9.1 靜態磁盤調度
14.9.2 動態磁盤調度
14.10 習題
第15章 嵌入式操作繫統
15.1 嵌入式繫統
15.2 eCos
15.2.1 可配置性
15.2.2 eCos組件
15.2.3 eCos調度程序
15.2.4 eCos線程同步
15.3 TinyOS
15.3.1 無線傳感器網絡
15.3.2 TinyOS的目標
15.3.3 TinyOS的組件
15.3.4 TinyOS的調度程序
15.3.5 TinyOS的資源接口
15.4 習題
第16章 分布式處理、客戶/服務器和集群繫統
16.1 客戶/服務器計算模型
16.1.1 客戶/服務器的概念
16.1.2 客戶/服務器的應用
16.1.3 中間件
16.2 面向服務的體繫結構
16.3 分布式消息傳遞
16.4 遠程過程調用
16.5 集群
16.5.1 集群的配置
16.5.2 操作繫統的設計問題
16.5.3 集群計算機的體繫結構
16.5.4 Windows集群服務器
16.5.5 Beowulf和Linux集群
16.6 習題
附錄 部分習題參考答案
參考文獻