●章 操作繫統概論 1
1.1 操作繫統的概念 1
1.1.1 操作繫統的定義和目標 1
1.1.2 操作繫統的形成和發展 2
1.1.3 操作繫統的主要特性 5
1.2 操作繫統的功能 6
1.2.1 處理器管理 6
1.2.2 存儲管理 6
1.2.3 設備管理 7
1.2.4 文件管理 8
1.3 操作繫統的接口 8
1.3.1 操作接口和操作命令 9
1.3.2 程序接口與繫統調用 9
1.4 操作繫統的結構 10
1.4.1 整體式結構 10
1.4.2 層次式結構 11
1.4.3 客戶/服務器結構 11
1.4.4 虛擬機結構 11
1.5 流行操作繫統簡介 12
1.5.1 Windows操作繫統 12
1.5.2 UNIX操作繫統 13
1.5.3 Linux操作繫統 13
1.5.4 iOS操作繫統 13
1.5.5 Android操作繫統 15
本章小結 15
習題 16
第2章 處理器管理及並發進程 17
2.1 多道程序設計 17
2.1.1 程序的順序執行 17
2.1.2 程序的並發執行 18
2.1.3 多道程序設計 18
2.1.4 並發程序執行的條件 19
2.2 進程 20
2.2.1 進程的定義及其屬性 20
2.2.2 進程的狀態及其轉換 21
2.2.3 進程控制塊 23
2.2.4 進程隊列 24
2.3 進程的控制 25
2.3.1 操作繫統內核 25
2.3.2 原語 26
2.3.3 進程控制原語 26
2.4 進程調度 28
2.4.1 進程調度簡介 28
2.4.2 進程調度的算法 28
2.5 線程及其實現 32
2.5.1 為什麼要引入多線程概念 33
2.5.2 多線程環境下的進程和線程 33
2.5.3 多線程的優點及其應用 35
2.5.4 多線程實現的三種方式 36
2.5.5 Java環境下多線程設計舉例 37
2.6 並發進程的概念 38
2.6.1 相關進程及其關繫 38
2.6.2 與時間有關的錯誤 39
2.6.3 臨界區概念及其管理要求 41
2.6.4 臨界區管理的嘗試 42
2.6.5 信號量與PV操作 46
2.7 進程的互斥和同步 47
2.7.1 進程的互斥 47
2.7.2 進程的同步 50
2.7.3 進程互斥和同步的關繫 59
2.8 管程 60
2.8.1 管程的概念 60
2.8.2 管程的特點及其組成 61
2.8.3 漢森(Brinch Hansen)方法實現管程 62
2.8.4 漢森方法實現管程的實例 63
2.9 進程通信 66
2.9.1 消息傳遞概述 66
2.9.2 消息傳遞的兩種方式 67
2.9.3 消息傳遞應用舉例 69
2.9.4 信號量機制、管程和消息傳遞機制的關繫 70
2.10 死鎖 70
2.10.1 死鎖的定義與產生的原因 70
2.10.2 死鎖的防止 72
2.10.3 死鎖的避免與銀行家算法 73
2.10.4 死鎖的檢測與解除 77
本章小結 78
習題2 79
第3章 存儲管理 81
3.1 存儲繫統的基本概念 81
3.1.1 存儲器的分類 81
3.1.2 物理地址和邏輯地址 81
3.1.3 地址重定位和存儲保護 82
3.2 存儲管理的基本概念 82
3.2.1 存儲管理的功能 82
3.2.2 內存擴充技術 83
3.2.3 存儲管理的分類 84
3.3 分區存儲管理 85
3.3.1 單一連續區 86
3.3.2 固定分區存儲管理 86
3.3.3 可變分區存儲管理 88
3.4 簡單分頁存儲管理 94
3.4.1 基本原理 94
3.4.2 地址轉換 95
3.4.3 相聯存儲器和快表 97
3.4.4 頁的分配與回收 97
3.4.5 頁的共享和保護 98
3.4.6 兩級和多級頁表 98
3.5 簡單分段存儲管理 100
3.5.1 基本原理 100
3.5.2 地址轉換 101
3.5.3 段的共享 102
3.5.4 分段存儲管理的優點 103
3.6 虛擬存儲管理 104
3.7 請求分頁虛擬存儲管理 105
3.7.1 基本原理 105
3.7.2 主存頁面分配策略 106
3.7.3 頁面調入策略 107
3.7.4 頁面置換算法 107
3.7.5 缺頁中斷率分析 109
3.8 請求分段虛擬存儲管理 111
3.8.1 基本原理 111
3.8.2 地址轉換 112
3.8.3 段的動態鏈接 112
3.8.4 段的動態增長 113
3.9 請求段頁式虛擬存儲管理 113
本章小結 113
習題3 113
第4章 設備管理 116
4.1 設備管理概述 116
4.1.1 設備管理的任務與目標 116
4.1.2 設備管理的功能 117
4.1.3 外部設備的分類 117
4.2 設備I/O控制方式 119
4.2.1 程序查詢方式 119
4.2.2 中斷方式 120
4.2.3 DMA(直接內存存取)方式 120
4.2.4 I/O通道控制方式 121
4.3 設備I/O軟件原理 123
4.3.1 I/O軟件的目標 124
4.3.2 I/O中斷處理程序 124
4.3.3 設備驅動程序 125
4.3.4 與設備無關的I/O軟件 125
4.3.5 用戶級的I/O軟件 125
4.4 緩衝技術 126
4.4.1 單緩衝技術 127
4.4.2 雙緩衝技術 127
4.4.3 多緩衝技術 127
4.4.4 緩衝池技術 128
4.5 外圍的設備分配、回收與啟動 128
4.5.1 設備類相對號和絕對號 128
4.5.2 外部設備的分配和回收 129
4.6 磁盤驅動調度 130
4.6.1 磁盤結構 131
4.6.2 磁盤調度 132
4.6.3 磁盤移臂調度 133
4.6.4 磁盤的旋轉調度 134
4.7 虛擬設備 136
4.7.1 脫機工作方式 136
4.7.2 Spooling技術 137
4.7.3 虛擬設備 138
本章小結 138
習題4 139
第5章 文件管理 141
5.1 文件繫統 141
5.1.1 文件和文件繫統 141
5.1.2 文件的分類 142
5.1.3 文件繫統的功能 143
5.2 文件目錄 143
5.2.1 目錄內容 144
5.2.2 目錄結構 144
5.3 文件結構與存取方法 147
5.3.1 文件的邏輯結構及存取方法 147
5.3.2 文件的物理結構及存取方法 148
5.3.3 存儲空間管理 151
5.4 文件的使用 152
5.4.1 文件訪問 152
5.4.2 文件控制 154
5.4.3 目錄管理 155
5.4.4 文件的共享 155
5.5 安全性和保護 156
5.5.1 文件的訪問權限 156
5.5.2 文件的存取控制 156
5.5.3 文件的完整性 158
本章小結 158
習題5 158
第6章 Windows和Linux操作繫統 160
6.1 Windows 2000/XP操作繫統 160
6.1.1 Windows 2000/XP簡介 160
6.1.2 Windows操作繫統總體架構 161
6.1.3 用戶模式和內核模式 165
6.1.4 Windows操作繫統和應用程序 167
6.2 Linux操作繫統 171
6.2.1 Linux簡介 171
6.2.2 Linux Shell 172
6.2.3 vi文本編輯器 174
6.2.4 gcc編譯器和gdb調試 177
本章小結 181
習題6 182
附錄1 操作繫統參考實驗項目 183
部分 基本實驗部分 183
實驗1 進程管理 183
實驗2 進程調度 184
實驗3 存儲管理 185
實驗4 獨占設備的靜態分配模擬 185
實驗5 文件管理 186
第二部分 創新實驗部分(Linux) 187
實驗6 more命令實現 187
實驗7 文件列表命令實現 191
實驗8 文件繫統路徑命令實現 197
實驗9 操作繫統引導程序的實現 203
實驗10 操作繫統內核加載程序的實現 210
附錄2 操作繫統課程設計參考案例 217
案例1 多線程編程解決進程間同步和互斥問題的實現 217
案例2 固定分區/可變分區管理算法的模擬 220
案例3 頁面置換算法的模擬 221
案例4 銀行家算法的模擬 228
案例5 移動臂調度算法的模擬 233
案例6 一個簡單文件管理器的實現 239
參考文獻 245
內容簡介
操作繫統是管理和控制計算機硬件與軟件資源的計算機程序,是計算機繫統的核心繫統軟件。操作繫統課程是計算機類專業的核心課程和必修課程,操作繫統的原理、相關管理技術和調度策略是計算機應用繫統開發專業人員必須掌握的專業知識。
本書共分6章,章為操作繫統概論,第2章~第5章分別介紹操作繫統中處理器管理及並發進程、存儲管理、設備管理和文件管理等內容,第6章介紹Windows和Linux操作繫統。為方便讀者學習,每章末尾均附有小結和習題。附錄部分是驗證和重現操作繫統基本理論的實驗和課程設計項目,供讀者選用。