本書(shū)是面向操作系統導論課程的經(jīng)典書(shū)籍,從第1版至今被國內外眾多高校選作教材。全書(shū)共六部分,不僅詳細講解了進(jìn)程管理、內存管理、存儲管理、保護與安全等概念,而且涵蓋重要的理論結果和案例研究,并且給出了供讀者深入學(xué)習的推薦讀物。這一版新增了多核系統和移動(dòng)計算的內容,每一章都融入了新的技術(shù)進(jìn)展,并且更新了習題和編程項目。本書(shū)既適合高等院校計算機相關(guān)專(zhuān)業(yè)的學(xué)生學(xué)習,也是專(zhuān)業(yè)技術(shù)人員的有益參考。
亞伯拉罕·西爾伯沙茨(Abraham Silberschatz) 計算機科學(xué)家,ACM、IEEE和AAAS會(huì )士?,F任耶魯大學(xué)計算機科學(xué)系教授,之前曾任貝爾實(shí)驗室信息科學(xué)研究中心副主管。除本書(shū)外,他還是教材《數據庫系統概念》的作者之一。
彼得·B. 高爾文(Peter B. Galvin) 現任Pluribus Networks首席解決方案架構師,之前曾任系統集成商Corporate Technologies的首席技術(shù)官,還曾在波士頓大學(xué)擔任講師。
格雷格·加涅(Greg Gagne) 威斯敏斯特學(xué)院計算機科學(xué)系主任,操作系統、計算機網(wǎng)絡(luò )、并行編程和軟件工程方面的專(zhuān)家。
---譯者簡(jiǎn)介---
鄭扣根,浙江大學(xué)計算機學(xué)院教授、博士生導師。1994年起于浙江大學(xué)任教至今,長(cháng)期從事操作系統、計算理論、形式化方法、計算機網(wǎng)絡(luò )等方面的教學(xué)和科研工作。
目 錄
Operating System Concepts, Ninth Edition
出版者的話(huà)
譯者序
前言
第一部分 概論
第1章導論 2
1.1操作系統的功能 2
1.1.1用戶(hù)視角 2
1.1.2系統視角 3
1.1.3操作系統的定義 4
1.2計算機系統的組成 4
1.2.1計算機系統的運行 5
1.2.2存儲結構 6
1.2.3I/O結構 8
1.3計算機系統的體系結構 9
1.3.1單處理器系統 9
1.3.2多處理器系統 10
1.3.3集群系統 12
1.4操作系統的結構 13
1.5操作系統的執行 14
1.5.1雙重模式與多重模式的執行 15
1.5.2定時(shí)器 16
1.6進(jìn)程管理 17
1.7內存管理 18
1.8存儲管理 18
1.8.1文件系統管理 18
1.8.2大容量存儲器管理 19
1.8.3高速緩存 19
1.8.4I/O系統 21
1.9保護與安全 21
1.10內核數據結構 22
1.10.1列表、堆棧及隊列 22
1.10.2樹(shù) 23
1.10.3哈希函數與哈希表 23
1.10.4位圖 24
1.11計算環(huán)境 24
1.11.1傳統計算 24
1.11.2移動(dòng)計算 25
1.11.3分布計算 26
1.11.4客戶(hù)機-服務(wù)器計算 26
1.11.5對等計算 27
1.11.6虛擬化 28
1.11.7云計算 29
1.11.8實(shí)時(shí)嵌入式系統 30
1.12開(kāi)源操作系統 31
1.12.1歷史 31
1.12.2Linux 31
1.12.3BSD UNIX 32
1.12.4Solaris 32
1.12.5用作學(xué)習的開(kāi)源操作系統 33
1.13小結 33
習題 35
推薦讀物 36
參考文獻 36
第2章操作系統結構 38
2.1操作系統的服務(wù) 38
2.2用戶(hù)與操作系統的界面 40
2.2.1命令解釋程序 40
2.2.2圖形用戶(hù)界面 41
2.2.3界面的選擇 42
2.3系統調用 43
2.4系統調用的類(lèi)型 46
2.4.1進(jìn)程控制 46
2.4.2文件管理 49
2.4.3設備管理 50
2.4.4信息維護 50
2.4.5通信 50
2.4.6保護 51
2.5系統程序 51
2.6操作系統的設計與實(shí)現 52
2.6.1設計目標 52
2.6.2機制與策略 53
2.6.3實(shí)現 53
2.7操作系統的結構 54
2.7.1簡(jiǎn)單結構 54
2.7.2分層方法 55
2.7.3微內核 56
2.7.4模塊 57
2.7.5混合系統 58
2.8操作系統的調試 60
2.8.1故障分析 60
2.8.2性能優(yōu)化 60
2.8.3DTrace 61
2.9操作系統的生成 63
2.10系統引導 64
2.11小結 64
習題 65
編程題 66
編程項目 66
推薦讀物 69
參考文獻 69
第二部分 進(jìn)程管理
第3章 進(jìn)程 72
3.1進(jìn)程概念 72
3.1.1進(jìn)程 72
3.1.2進(jìn)程狀態(tài) 73
3.1.3進(jìn)程控制塊 73
3.1.4線(xiàn)程 74
3.2進(jìn)程調度 75
3.2.1調度隊列 75
3.2.2調度程序 77
3.2.3上下文切換 78
3.3進(jìn)程運行 79
3.3.1進(jìn)程創(chuàng )建 79
3.3.2進(jìn)程終止 82
3.4進(jìn)程間通信 83
3.4.1共享內存系統 85
3.4.2消息傳遞系統 86
3.5IPC系統例子 89
3.5.1例子:POSIX共享內存 89
3.5.2例子:Mach 91
3.5.3例子:Windows 92
3.6客戶(hù)機/服務(wù)器通信 93
3.6.1套接字 93
3.6.2遠程過(guò)程調用 96
3.6.3管道 98
3.7小結 102
習題 103
編程題 105
編程項目 107
推薦讀物 110
參考文獻 110
第4章 多線(xiàn)程編程 112
4.1概述 112
4.1.1動(dòng)機 112
4.1.2優(yōu)點(diǎn) 113
4.2多核編程 114
4.2.1編程挑戰 115
4.2.2并行類(lèi)型 115
4.3多線(xiàn)程模型 116
4.3.1多對一模型 116
4.3.2一對一模型 116
4.3.3多對多模型 116
4.4線(xiàn)程庫 117
4.4.1Pthreads 118
4.4.2Windows線(xiàn)程 119
4.4.3Java線(xiàn)程 121
4.5隱式多線(xiàn)程 122
4.5.1線(xiàn)程池 123
4.5.2OpenMP 124
4.5.3大中央調度 125
4.5.4其他方法 125
4.6多線(xiàn)程問(wèn)題 125
4.6.1系統調用fork()和exec() 125
4.6.2信號處理 126
4.6.3線(xiàn)程撤銷(xiāo) 127
4.6.4線(xiàn)程本地存儲 128
4.6.5調度程序激活 128
4.7操作系統例子 129
4.7.1Windows線(xiàn)程 129
4.7.2Linux線(xiàn)程 130
4.8小結 131
習題 131
編程題 133
編程項目 134
推薦讀物 136
參考文獻 136
第5章 進(jìn)程調度 138
5.1基本概念 138
5.1.1CPU-I/O執行周期 138
5.1.2CPU調度程序 139
5.1.3搶占調度 139
5.1.4調度程序 140
5.2調度準則 140
5.3調度算法 141
5.3.1先到先服務(wù)調度 141
5.3.2最短作業(yè)優(yōu)先調度 142
5.3.3優(yōu)先級調度 144
5.3.4輪轉調度 145
5.3.5多級隊列調度 147
5.3.6多級反饋隊列調度 148
5.4線(xiàn)程調度 149
5.4.1競爭范圍 149
5.4.2Pthreads調度 149
5.5多處理器調度 151
5.5.1多處理器調度的方法 151
5.5.2處理器親和性 151
5.5.3負載平衡 152
5.5.4多核處理器 152
5.6實(shí)時(shí)CPU調度 154
5.6.1最小化延遲 154
5.6.2優(yōu)先權調度 155
5.6.3單調速率調度 156
5.6.4最早截止期限優(yōu)先調度 157
5.6.5比例分享調度 158
5.6.6POSIX實(shí)時(shí)調度 158
5.7操作系統例子 160
5.7.1例子:Linux調度 160
5.7.2例子:Windows調度 162
5.7.3例子:Solaris調度 164
5.8算法評估 165
5.8.1確定性模型 166
5.8.2排隊模型 167
5.8.3仿真 167
5.8.4實(shí)現 168
5.9小結 169
習題 170
推薦讀物 172
參考文獻 173
第6章 同步 175
6.1背景 175
6.2臨界區問(wèn)題 177
6.3Peterson解決方案 178
6.4硬件同步 179
6.5互斥鎖 181
6.6信號量
......