內容簡介
本書是由西安電子科技大學、 西安交通大學和西北工業大學三校教師聯合編寫的“作業系統”課程的教科書。全書共九章。第一章為作業系統概論;第二章為作業系統與用戶的界面;第三章至第六章分別為進程管理、存儲管理、檔案系統和設備管理;第七章為Linux系統;第八章為網路作業系統;第九章介紹作業系統環境下的編程及舉例。
本書以先進性、簡明性和實用性為編寫的指導原則。全書體系合理、內容充實、結構清晰,便於教學。
本書適合作為高等學校計算機專業本科教材,也可作為非計算機專業本科、研究生的教學參考書,還可供工程技術人員學習作業系統時參考。
目錄
第一章 作業系統概論
11 什麼是作業系統 1
111 作業系統作為最基本的系統軟體 1
112 作業系統作為資源管理器 2
113 作業系統作為虛擬機 3
12 多道程式設計的概念 3
121 多道程式設計的硬體支持 3
122 多道程式設計原理 5
123 多道程式設計的實現 7
13 作業系統的功能和主要特徵 8
131 作業系統的功能 8
132 作業系統的主要特徵 10
14 作業系統的結構 12
141 作業系統的核心 12
142 傳統的作業系統結構設計模式 14
143 現代的作業系統結構設計模式 16
15 作業系統的分類 18
151 單用戶(微機)作業系統 18
152 批處理系統 19
153 分時系統 20
154 實時系統 21
155 網路作業系統 22
156 分散式作業系統 23
157 多處理機作業系統 24
16 小結 25
習題25
第二章 用戶與作業系統的接口 27
21 作業控制級接口 27
211 作業、 作業步、 作業流 27
212 作業的類型 28
213 作業控制命令與鍵盤操作命令 28
22 程式級接口 31
221 管態與算態 31
222 特權指令與訪管指令 32
223 系統調用 32
224 系統調用類型 33
225 系統調用的使用和執行過程 35
23 UNIX的用戶界面Shell簡介 36
231 Shell命令語言 36
232 Shell過程 43
24 小結 44
習題 45
第三章 進程管理 46
31 為什麼要引入進程的概念 46
311 從順序程式設計談起 46
312 程式的並發執行和資源共享 47
313 程式並發執行的特性 48
314 進程概念的引入 50
32 進程的表示和調度狀態 50
321 進程的表示 51
322 進程的調度狀態 52
33 進程的控制 54
331 進程的控制機構 54
332 進程控制原語 54
34 進程調度 56
341 交通控制程式和進程調度程式 56
342 進程調度算法的設計 57
343 常用的進程調度算法 58
344 作業、 進程和程式之間的區別和聯繫 61
35 執行緒及其管理 62
351 執行緒概念的引入 62
352 什麼是執行緒 62
353 Windows NT中的進程和執行緒 63
36 進程通訊 64
361 進程間的同步和互斥 65
362 信號量和P、 V操作 68
363 高級通訊原語 75
37 死鎖 79
371 死鎖的起因和產生死鎖的必要條件 80
372 死鎖舉例 82
373 對死鎖採取的對策 85
374 死鎖的預防 85
375 死鎖的避免 86
376 系統模型 89
377 死鎖的檢測 91
378 死鎖的解除 92
38 小結 92
習題 93
第四章 存儲管理 97
41 存儲管理的基本概念 97
411 存儲管理研究的課題 97
412 地址再定位 98
413 虛擬存儲器概念的引入 99
42 早期的存儲管理 100
421 單一連續分配 100
422 分區分配 101
43 分頁存儲管理 109
431 分頁原理 109
432 地址變換機構 110
433 分頁存儲管理算法 113
434 分頁存儲管理方案的評價 114
44 請求分頁存儲管理 114
441 請求分頁原理 115
442 頁面置換算法 117
443 性能分析 120
444 請求分頁存儲管理方案的評價 123
45 分段存儲管理 124
451 分段原理 124
452 段變換表 125
453 分段存儲管理方案的評價 127
46 段頁式存儲管理 129
461 段頁式存儲管理的實現 129
462 段頁式存儲管理的評價 131
47 Windows NT虛擬記憶體管理 131
471 進程的虛擬地址空間 131
472 虛擬存儲的實現 132
48 小結 134
習題 135
第五章 檔案系統 137
51 檔案系統概述 137
511 檔案和檔案系統 137
512 檔案的類型 138
513 檔案系統的基本功能 139
52 檔案的結構和存取法 140
521 檔案的邏輯結構 140
522 檔案的物理結構 141
523 檔案的存取方法 145
524 檔案結構、 檔案存儲設備和存取法的關係 146
53 檔案目錄 146
531 簡單的檔案目錄 146
532 二級目錄 148
533 多級目錄 148
534 檔案目錄項的組織 150
54 檔案存儲空間的管理 151
541 空白檔案目錄 151
542 空白塊鏈 152
543 位示圖(Bit Map) 152
544 MS-DOS的盤空間的管理 153
545 UNIX檔案存儲空間的管理 153
55 檔案的共享 154
551 目錄結構中的共享 155
552 打開檔案結構中的共享 156
553 管道檔案(Pipe) 157
56 檔案的存取控制 160
561 檔案存取控制法 160
562 檔案系統的安全性 163
57 檔案系統和用戶間的接口 164
571 檔案的創建和刪除 164
572 檔案的打開和關閉 165
573 檔案的讀寫 166
58 小結 166
習題 167
第六章 輸入/輸出系統 168
61 I/O系統的硬體結構 168
611 I/O設備類型 168
612 I/O設備的物理特性 169
613 I/O系統的硬體組織 174
62 採用通道模型的I/O系統 177
621 通道類型 177
622 多通路I/O系統 178
623 通道命令和通道程式 178
624 CPU和通道間的通訊 180
63 I/O系統的軟體組織 182
631 I/O軟體設計的目標 182
632 中斷處理程式 182
633 設備驅動程式 183
634 與設備無關的I/O軟體 183
635 用戶空間的I/O軟體 184
636 I/O系統軟體的層次結構 184
64 緩衝技術 185
641 單緩衝 185
642 雙緩衝 186
643 緩衝池 186
644 預先讀與延遲寫 188
65 磁碟的驅動調度 188
66 設備分配程式 190
661 設備分配的數據結構 190
662 I/O調度程式 192
663 設備分配的實施 194
67 Windows NT的I/O系統 195
671 I/O系統的結構 195
672 驅動程式模型 197
673 異步I/O操作 198
68 小結 199
習題 200
第七章 Linux作業系統簡介 202
71 Linux簡介 202
711 Linux的發展過程 202
712 Linux核心結構 204
713 Linux運行模式、 地址空間與上下文 207
72 Linux進程管理 208
721 Linux進程控制塊結構 208
722 進程調度算法和調度策略 210
723 進程使用的檔案 212
724 進程使用的虛擬記憶體 212
725 系統調用 213
726 進程的創建與終止 214
73 進程間的通訊機制 214
731 信號(Signal) 215
732 管道(Pipe) 215
733 訊息佇列 216
734 信號量 217
735 共享記憶體 217
74 Linux存儲管理 218
741 虛擬記憶體的實現機理 218
742 80386 體系結構的存儲管理功能 218
743 Linux分頁管理機制 219
744 空閒物理記憶體空間管理 219
745 虛擬段的組織 221
746 共享記憶體 221
747 請求換頁與頁面換入 222
748 交換空間 223
749 換出與丟棄頁面 223
7410 存儲管理系統的高速緩衝機制 224
75 Linux檔案系統 225
751 Linux檔案系統的特點 225
752 EXT2 檔案系統物理結構 225
753 EXT2 索引節點 226
754 EXT2 超級塊 227
755 EXT2 組描述符 227
756 EXT2 目錄 228
757 EXT2 檔案查找 228
758 EXT2 檔案擴展策略 228
759 虛擬檔案系統(VFS)概述 229
7510 VFS超級塊 230
7511 VFS索引節點 230
7512 檔案系統的註冊 230
7513 檔案系統的掛接與卸裝 231
7514 檔案系統管理的快取機制 232
7515 bdflush核心守護程式 234
76 Linux設備管理 234
761 設備驅動程式環境 234
762 設備檔案 240
763 設備驅動程式概述 241
764 設備驅動程式的結構 243
77 小結 247
習題 247
第八章 網路作業系統 249
81 網路作業系統的結構 250
811 網路作業系統的功能和特點 250
812 信息處理的基本模式 251
813 客戶/伺服器模式的工作過程 252
814 網路作業系統的結構 253
82 網路作業系統中的通信 254
821 通信機制 254
822 一個客戶/伺服器的例子 254
823 客戶與伺服器間的通信過程 256
824 傳送原語和接收原語 258
825 通信協定 258
83 網路作業系統中的資源共享 259
831 硬碟共享 259
832 印表機共享 260
833 網路檔案共享 261
84 網路作業系統中的服務軟體 262
841 服務軟體的分類 262
842 電子郵件E-mail 263
843 WWW超媒體網路 265
85 網路作業系統中的應用程式接口 268
851 傳輸層接口TLI 269
85.2 管套及其套用 272
86 Windows NT網路 275
861 Windows NT網路特點 275
862 Windows NT網路的體系結構 276
863 Windows NT網路的組成 278
87 小結 280
習題 280
第九章 作業系統環境下的編程及舉例 281
91 應用程式編程接口概述 281
92 進程間通訊實現方法與實例 282
921 管道 282
922 System V IPC 機制 286
923 套接字 294
93 執行緒編程及實現方法 300