本書全面、系統地闡述了現代操作系統的基本原理、主要功能及實現技術。重點論述多用戶、多任務操作系統的運行機制;系統資源管理的策略和方法;操作系統提供的用戶界面。討論了現代操作系統采用的并行處理技術和虛擬技術。
1.名家系列,配重點、難點內容微課視頻
2.國家精品課程、國家精品資源共享課程配套教材
3.國家十二五規劃教材
龐麗萍,華中科技大學教授,博導,1967年畢業于北京郵電學院無線電專業。曾任國家教育部工科計算機基礎課程教學指導委員會委員、中國計算機學會教育與培訓專業委員會委員。主持的“操作系統原理”課程獲2007年***精品課程,2013年獲國家精品資源共享課程;獲2004年度寶鋼教育獎優秀教師獎;1995年獲首屆“孺子牛金球獎”(香港柏寧頓(中國)教育基金會頒發)。長期從事計算機操作系統、分布式計算機系統的研究和教學工作。主要研究方向為并行分布式系統。是“局域網上異構的分布式操作系統”、“基于UNIX的分布式操作系統”、“實時分布式UNIX操作系統實現技術”等預研及基金項目的負責人和研制者。并參加完成了211行動計劃項目“集群超級網絡服務器聚集技術”、973項目“下一代互聯網信息存儲的組織模式和核心技術研究”。編著了《操作系統原理》等11本教材,其中《計算機操作系統(第2版)》被評為國家十二五規劃教材。
目錄
第1章 緒論 1
1.1 操作系統在計算機系統中的地位 1
1.1.1 存儲程序式計算機的結構和特點 1
1.1.2 操作系統與計算機系統各層次的關系 3
1.1.3 操作系統與計算機體系結構的關系 4
1.2 操作系統的形成和發展 6
1.2.1 操作系統發展的初級階段 7
1.2.2 操作系統的形成 9
1.2.3 操作系統的進一步發展 11
1.3 操作系統的基本概念 12
1.3.1 操作系統的定義和特性 12
1.3.2 操作系統的資源管理功能 14
1.3.3 操作系統應解決的基本問題 16
1.4 操作系統的基本類型 18
1.4.1 批量操作系統 18
1.4.2 分時操作系統 18
1.4.3 實時操作系統 19
1.4.4 個人計算機操作系統 20
1.4.5 網絡操作系統 21
1.4.6 分布式操作系統 22
1.5 操作系統采用的關鍵技術 25
1.5.1 操作系統采用的并行處理技術 25
1.5.2 操作系統采用的虛擬技術 26
1.6 UNIX、Linux操作系統概述 26
1.6.1 UNIX操作系統的發展 26
1.6.2 UNIX操作系統的類型及特點 27
1.6.3 Linux系統及其特點 29
習題1 33
第2章 操作系統的結構和硬件支持 35
2.1 操作系統虛擬機 35
2.2 操作系統的組織結構 36
2.2.1 操作系統的結構 36
2.2.2 運行時的組織結構 39
2.2.3 操作系統與計算機系統各層次的接口 40
2.3 處理機的特權級 41
2.3.1 處理機的態及分類 41
2.3.2 特權指令 41
2.4 中斷及其處理 42
2.4.1 中斷概念及類型 42
2.4.2 向量中斷和探詢中斷 44
2.4.3 中斷進入 44
2.4.4 軟件中斷處理過程 46
2.5 UNIX、Linux系統結構 48
2.5.1 UNIX系統的體系結構 48
2.5.2 UNIX系統的核心結構 49
2.5.3 Linux系統的內核結構 50
2.6 Linux系統的特權級與中斷處理 50
2.6.1 Linux系統的特權級 50
2.6.2 中斷處理的上半部和下半部 51
2.6.3 中斷處理下半部的實現機制 52
習題2 53
第3章 操作系統的用戶接口 54
3.1 用戶工作環境 54
3.1.1 操作系統提供的環境 54
3.1.2 操作系統的生成和系統初啟 55
3.1.3 應用程序的處理 58
3.2 用戶接口 60
3.2.1 用戶接口的定義 60
3.2.2 操作系統提供的用戶接口 60
3.3 系統功能調用 62
3.3.1 系統功能調用的定義 62
3.3.2 系統功能調用的實現 63
3.3.3 應用程序的編程接口 64
3.4 UNIX系統功能調用 65
3.4.1 UNIX系統調用的分類 65
3.4.2 UNIX系統調用的實現 66
3.5 Linux系統功能調用 68
3.5.1 Linux系統功能調用的過程 69
3.5.2 Linux系統功能調用的實現機制 70
3.5.3 增加一個新的系統調用的方法 71
3.5.4 從用戶空間訪問新的系統調用 72
習題3 73
第4章 進程及進程管理 74
4.1 進程引入 74
4.1.1 順序程序及特點 74
4.1.2 并發程序及特點 76
4.1.3 與時間有關的錯誤 78
4.2 進程概念 79
4.2.1 進程的定義 79
4.2.2 進程的狀態及變遷 80
4.2.3 進程控制塊 81
4.3 進程控制 83
4.3.1 進程控制的概念 83
4.3.2 進程創建與撤銷 84
4.3.3 進程等待與喚醒 85
4.4 進程之間的約束關系 86
4.4.1 進程競爭與合作 86
4.4.2 進程互斥的概念 87
4.4.3 進程同步的概念 89
4.5 同步機構 90
4.5.1 鎖和上鎖、開鎖操作 91
4.5.2 信號燈和P、V操作 92
4.6 進程互斥與同步的實現 94
4.6.1 上鎖原語和開鎖原語實現進程互斥 94
4.6.2 信號燈實現進程互斥 94
4.6.3 進程同步的實現 95
4.6.4 生產者—消費者問題 99
4.7 進程通信 100
4.7.1 進程通信的概念 100
4.7.2 進程通信方式 100
4.8 線程概念及特點 102
4.8.1 線程的概念 102
4.8.2 線程的特點與狀態 103
4.9 操作系統的并發機制實例 105
4.9.1 創建進程及應用實例 105
4.9.2 創建線程及應用實例 107
4.9.3 等待進程、線程的終止及其應用 107
4.9.4 信號量與使用方法 109
4.9.5 共享主存及應用實例 110
4.10 UNIX系統的進程管理 112
4.10.1 UNIX系統的進程及映像 112
4.10.2 UNIX進程的狀態及變遷 115
4.10.3 UNIX進程的創建 118
4.10.4 UNIX進程的終止與等待 120
4.10.5 UNIX進程的睡眠與喚醒 122
4.11 Linux系統的進程管理 123
4.11.1 Linux系統的進程與線程 123
4.11.2 進程描述符及其主要內容 123
4.11.3 進程描述符的獲得 126
4.11.4 Linux系統的進程狀態變遷 127
4.11.5 Linux系統的進程創建和終止 127
4.11.6 Linux系統的進程等待與喚醒 129
4.11.7 Linux系統中線程的實現 130
習題4 130
第5章 資源分配與調度 135
5.1 資源管理概述 135
5.1.1 資源管理的目的和任務 135
5.1.2 虛擬資源 136
5.2 資源管理的機制和策略 137
5.2.1 資源分配機制 137
5.2.2 資源分配策略 139
5.3 死鎖 143
5.3.1 死鎖的定義與例子 143
5.3.2 產生死鎖的原因和必要條件 145
5.3.3 系統模型和死鎖的處理 146
5.3.4 解決死鎖問題的策略 150
5.3.5 死鎖的預防 151
5.3.6 死鎖的避免 152
5.3.7 死鎖的檢測與忽略 153
習題5 154
第6章 處理機調度 157
6.1 處理機的多級調度 157
6.2 作業調度 158
6.2.1 作業的狀態 158
6.2.2 作業調度的功能 158
6.2.3 作業控制塊 159
6.2.4 調度算法性能的衡量 160
6.2.5 作業調度算法 161
6.3 進程調度 163
6.3.1 調度/分派結構 163
6.3.2 進程調度的功能 164
6.3.3 調度方式 165
6.3.4 進程優先數調度算法 165
6.3.5 循環輪轉調度 167
6.3.6 多級反饋隊列調度 168
6.3.7 調度用的進程狀態變遷圖 169
6.4 線程調度 170
6.5 UNIX系統的進程調度 171
6.5.1 UNIX系統的進程調度算法 171
6.5.2 進程切換調度程序switch 172
6.6 Linux系統的進程調度 173
6.6.1 進程調度程序的設計目標和特點 173
6.6.2 可變優先級 174
6.6.3 可變時間片 175
6.6.4 進程調度用的數據結構 177
6.6.5 Linux系統的進程調度算法 178
習題6 179
第7章 主存管理 181
7.1 主存管理概述 181
7.1.1 主存分片共享 181
7.1.2 程序的邏輯組織 182
7.2 主存管理的功能 182
7.2.1 虛擬存儲器 182
7.2.2 地址映射 184
7.2.3 主存分配 186
7.2.4 存儲保護 187
7.3 分區存儲管理及存在的問題 188
7.3.1 動態分區存儲管理技術 188
7.3.2 分區分配機構 189
7.3.3 分區分配與放置策略 190
7.3.4 碎片問題及拼接技術 192
7.4 頁式存儲管理 193
7.4.1 頁式系統應解決的問題 193
7.4.2 頁式地址變換 194
7.4.3 請調頁面的機制 197
7.4.4 淘汰機制與策略 199
7.4.5 幾種置換算法 201
7.5 段式和段頁式存儲管理 204
7.5.1 段式地址結構 204
7.5.2 段式地址變換 204
7.5.3 擴充段表功能 205
7.5.4 段頁式存儲管理 206
7.6 UNIX系統的存儲管理 207
7.6.1 概述 207
7.6.2 請求調頁的數據結構 208
7.6.3 UNIX系統的地址變換 209
7.6.4 頁面錯 210
7.7 Linux系統的存儲管理 211
7.7.1 主存尋址 211
7.7.2 Linux系統段頁式地址變換 214
7.7.3 Linux系統動態內核管理 215
7.7.4 Linux系統的進程地址空間 218
習題7 220
第8章 設備管理 223
8.1 設備管理概述 223
8.1.1 設備管理的功能 223
8.1.2 設備獨立性 224
8.1.3 設備控制塊 226
8.2 緩沖技術 226
8.2.1 緩沖概述 226
8.2.2 常用的緩沖技術 228
8.3 設備分配 229
8.3.1 設備分配概述 229
8.3.2 獨享分配 230
8.3.3 共享分配 230
8.3.4 虛擬分配 231
8.4 輸入/輸出控制 233
8.4.1 輸入/輸出硬件 233
8.4.2 輸入/輸出控制方式 234
8.4.3 輸入/輸出子系統 237
8.4.4 輸入/輸出控制的例子 239
8.5 UNIX系統的設備管理 241
8.5.1 UNIX系統設備管理的特點 241
8.5.2 UNIX系統的設備驅動程序接口 242
8.5.3 UNIX系統的緩沖區管理 244
8.5.4 UNIX系統的設備I/O控制 251
8.6 Linux系統的設備驅動 253
8.6.1 Linux系統設備的分類 253
8.6.2 設備文件及其標識 254
8.6.3 Linux塊設備的處理 256
8.6.4 用于塊設備處理的數據結構 257
8.6.5 輸入/輸出調度程序 260
8.6.6 策略例程 261
習題8 262
第9章 文件系統 264
9.1 文件系統概述 264
9.1.1 文件 264
9.1.2 文件系統 266
9.1.3 文件的組織 267
9.2 文件的邏輯結構和存取方法 268
9.2.1 文件的邏輯結構 268
9.2.2 文件的存取方法 269
9.3 文件的物理結構 269
9.3.1 連續文件 270
9.3.2 串聯文件 271
9.3.3 索引文件 272
9.3.4 文件物理結構比較 274
9.4 文件存儲空間的管理 275
9.4.1 空閑文件目錄 275
9.4.2 空閑塊鏈 275
9.4.3 位示圖 275
9.4.4 分配策略 276
9.5 文件目錄 277
9.5.1 文件目錄及其內容 277
9.5.2 一級文件目錄及缺點 278
9.5.3 多級文件目錄 278
9.6 共享與安全 279
9.6.1 文件共享與安全性的關系 279
9.6.2 存取權限的類型及其驗證 280
9.6.3 用文件路徑名加快文件的查找 282
9.7 文件操作與文件備份 284
9.7.1 文件操作 284
9.7.2 文件備份 285
9.8 UNIX文件系統的主要結構及實現 286
9.8.1 UNIX文件系統的特點 286
9.8.2 UNIX系統的索引文件結構 287
9.8.3 UNIX系統文件目錄結構 291
9.8.4 UNIX系統的打開文件機構 292
9.8.5 文件存儲器空閑塊的管理 296
9.8.6 UNIX文件系統調用 298
9.9 Linux文件系統 303
9.9.1 虛擬文件系統VFS(Virtual File System)概述 304
9.9.2 VFS通用文件系統模型與VFS對象 304
9.9.3 與進程相關的數據結構 307
9.9.4 VFS系統調用的實現 308
9.9.5 Ext2文件系統概述 310
9.9.6 Ext2磁盤數據結構 312
9.9.7 Ext2磁盤空間的管理 314
9.9.8 Ext2主存數據結構 316
習題9 317
模擬試題1 320
模擬試題2 322
模擬試題1答案 324
模擬試題2答案 328
參考文獻 332