書籍簡介
作業系統是計算機系統的核心繫統軟體,負責控制和管理整個系統,使之協調工作。本書不僅全面地講述了作業系統的基本概念、原理和方法,還清楚地展現了當代作業系統的本質和特點。全書分為八個部分,由淺入深地介紹了計算機系統、作業系統、進程描述和控制、執行緒、微核心、並發性、記憶體管理、虛擬記憶體、單處理器調度、多處理器和實時調度、I/O管理和磁碟調度、檔案管理、嵌入式作業系統、計算機安全技術以及分散式作業系統等內容。
本書是計算機界巨擘WilliamStallings的經典著作之一,其第4版曾獲得美國計算機科學與工程類大獎,得到了全球計算機教育界和工程技術人員的好評。書中不僅全面地講述了作業系統的基本概念、原理和方法,而且還以當代最流行的作業系統為例,全面清楚地展現了當代作業系統的本質和特點。作者針對近幾年作業系統領域的最新變化,對作業系統的設計原理進行深入的闡述,同時將其對作業系統整個領域全面而深入的理解呈現給讀者。
本書特色
•選擇WindowsVista、UNIX和Linux三個作業系統作為示例,以幫助讀者熟悉當代作業系統的設計原理和實現問題。
•新增嵌入式作業系統一章,討論了嵌入式作業系統的基本特點,並給出了兩個實例系統:TinyOS和eCos。
•在第5版的基礎上擴展了計算機安全的相關內容,包括計算機安全威脅和計算機安全技術。
•擴展和更新了並發的相關內容,並增加了有關遊戲軟體中多處理器調度設計問題的實例。
•補充動畫演示、模擬項目和編程項目,便於培養學生的動手實踐能力。
•改進了插圖,增加大量新的“現場測試”(field-tested)型家庭作業。
•調整和擴充了章末的練習題,有助於讀者深入理解作業系統的精髓。
作者簡介
(美國)斯托林斯(William Stallings)
擁有美國麻省理工學院計算機科學博士學位,現任教於澳大利亞新南威爾斯大學國防學院(坎培拉)信息技術與電子工程系。他是世界知名的計算機學者和暢銷教材作者,已經撰寫了17部著作,出版了40多本書籍,內容涉及計算機安全、計算機網路和計算機體系結構等方面,堪稱計算機界的全才。他曾九次榮獲美國“教材和學術專著作者協會”頒發的“年度最佳計算機科學教材”獎。
圖書目錄
【中文版目錄】
出版者的話
譯者序
前言
第0章 讀者指南 1
0.1 本書概述 1
0.2 讀者和教師的學習路線圖 1
0.3 Internet和Web資源 2
第一部分 背景
第1章 計算機系統概述 6
1.1 基本構成 6
1.2 處理器暫存器 6
1.2.1 用戶可見暫存器 7
1.2.2 控制和狀態暫存器 8
1.3 指令的執行 9
1.3.1 取指令和執行指令 9
1.3.2 I/O函式 11
1.4 中斷 11
1.4.1 中斷和指令周期 12
1.4.2 中斷處理 14
1.4.3 多箇中斷 15
1.4.4 多道程式設計 17
1.5 存儲器的層次結構 17
1.6 高速快取 20
1.6.1 動機 20
1.6.2 高速快取原理 20
1.6.3 高速快取設計 21
1.7 I/O通信技術 22
1.7.1 可程式I/O 22
1.7.2 中斷驅動I/O 22
1.7.3 直接記憶體存取 24
1.8 推薦讀物和網站 24
1.9 關鍵術語、複習題和習題 25
附錄1A 兩級存儲器的性能特徵 27
附錄1B 過程控制 30
第2章 作業系統概述 33
2.1 作業系統的目標和功能 33
2.1.1 作為用戶/計算機接口的
2.1.1 作業系統 33
2.1.2 作為資源管理器的操作
2.1.1 系統 34
2.1.3 作業系統的易擴展性 35
2.2 作業系統的發展 35
2.2.1 串列處理 35
2.2.2 簡單批處理系統 36
2.2.3 多道程式設計批處理系統 38
2.2.4 分時系統 40
2.3 主要的成就 42
2.3.1 進程 42
2.3.2 記憶體管理 44
2.3.3 信息保護和安全 46
2.3.4 調度和資源管理 46
2.3.5 系統結構 47
2.4 現代作業系統的特徵 49
2.5 微軟的Windows 概述 51
2.5.1 歷史 51
2.5.2 單用戶多任務 53
2.5.3 體系結構 53
2.5.4 客戶/伺服器模型 56
2.5.5 執行緒和SMP 57
2.5.6 Windows對象 57
2.6 傳統的UNIX系統 58
2.6.1 歷史 58
2.6.2 描述 59
2.7 現代UNIX系統 60
2.7.1 系統V版本4(SVR4) 60
2.7.2 BSD 61
2.7.3 Solaris 10 61
2.8 Linux作業系統 61
2.8.1 歷史 62
2.8.2 模組結構 63
2.8.3 核心組件 64
2.9 推薦讀物和網站 67
2.10 關鍵術語、複習題和習題 68
第二部分 進程
第3章 進程描述和控制 73
3.1 什麼是進程 73
3.1.1 背景 73
3.1.2 進程和進程控制塊 74
3.2 進程狀態 75
3.2.1 兩狀態進程模型 76
3.2.2 進程的創建和終止 77
3.2.3 五狀態模型 78
3.2.4 被掛起的進程 81
3.3 進程描述 84
3.3.1 作業系統的控制結構 85
3.3.2 進程控制結構 86
3.4 進程控制 90
3.4.1 執行模式 90
3.4.2 進程創建 91
3.4.3 進程切換 92
3.5 作業系統的執行 93
3.5.1 無進程的核心 94
3.5.2 在用戶進程中執行 94
3.5.3 基於進程的作業系統 95
3.6 安全問題 95
3.6.1 系統訪問威脅 96
3.6.2 對抗措施 96
3.7 UNIX SVR4進程管理 98
3.7.1 進程狀態 98
3.7.2 進程描述 99
3.7.3 進程控制 101
3.8 小結 102
3.9 推薦讀物 102
3.10 關鍵術語、複習題和習題 102
編程項目1:開發一個shell程式 105
第4章 執行緒、對稱多處理(SMP)
第4章 和微核心 107
4.1 進程和執行緒 107
4.1.1 多執行緒 107
4.1.2 執行緒功能特性 109
4.1.3 例子:Adobe PageMaker 111
4.1.4 用戶級和核心級執行緒 112
4.1.5 其他方案 115
4.2 對稱多處理 116
4.2.1 SMP體系結構 116
4.2.2 SMP系統的組織結構 117
4.2.3 多處理器作業系統的
4.2.3 設計思考 118
4.3 微核心 119
4.3.1 微核心體系結構 119
4.3.2 微核心組織結構的優點 120
4.3.3 微核心性能 121
4.3.4 微核心設計 121
4.4 Windows執行緒和SMP管理 122
4.4.1 進程對象和執行緒對象 123
4.4.2 多執行緒 125
4.4.3 執行緒狀態 125
4.4.4 對作業系統子系統的支持 126
4.4.5 對稱多處理的支持 126
4.5 Solaris的執行緒和SMP管理 127
4.5.1 多執行緒體系結構 127
4.5.2 動機 127
4.5.3 進程結構 128
4.5.4 執行緒的執行 129
4.5.5 把中斷當做執行緒 129
4.6 Linux的進程和執行緒管理 130
4.6.1 Linux任務 130
4.6.2 Linux執行緒 131
4.7 小結 132
4.8 推薦讀物 133
4.9 關鍵術語、複習題和習題 133
第5章 並發性:互斥和同步 138
5.1 並發的原理 139
5.1.1 一個簡單的例子 139
5.1.2 競爭條件 141
5.1.3 作業系統關注的問題 141
5.1.4 進程的互動 141
5.1.5 互斥的要求 144
5.2 互斥:硬體的支持 144
5.2.1 中斷禁用 144
5.2.2 專用機器指令 145
5.3 信號量 147
5.3.1 互斥 150
5.3.2 生產者/消費者問題 151
5.3.3 信號量的實現 154
5.4 管程 155
5.4.1 使用信號的管程 155
5.4.2 使用通知和廣播的管程 158
5.5 訊息傳遞 159
5.5.1 同步 160
5.5.2 定址 161
5.5.3 訊息格式 162
5.5.4 排隊原則 162
5.5.5 互斥 162
5.6 讀者-寫者問題 163
5.6.1 讀者優先 164
5.6.2 寫者優先 164
5.7 小結 166
5.8 推薦讀物 167
5.9 關鍵術語、複習題和習題 167
第6章 並發:死鎖和飢餓 178
6.1 死鎖的原理 178
6.1.1 可重用資源 180
6.1.2 可消耗資源 181
6.1.3 資源分配圖 182
6.1.4 死鎖的條件 183
6.2 死鎖預防 184
6.2.1 互斥 184
6.2.2 占有且等待 184
6.2.3 不可搶占 184
6.2.4 循環等待 184
6.3 死鎖避免 185
6.3.1 進程啟動拒絕 185
6.3.2 資源分配拒絕 186
6.4 死鎖檢測 189
6.4.1 死鎖檢測算法 189
6.4.2 恢復 190
6.5 一種綜合的死鎖策略 190
6.6 哲學家就餐問題 191
6.6.1 使用信號量解決方案 191
6.6.2 使用管程解決方案 192
6.7 UNIX的並發機制 192
6.7.1 管道 192
6.7.2 訊息 193
6.7.3 共享記憶體 193
6.7.4 信號量 194
6.7.5 信號 194
6.8 Linux核心並發機制 195
6.8.1 原子操作 195
6.8.2 自旋鎖 196
6.8.3 信號量 197
6.8.4 屏障 199
6.9 Solaris執行緒同步原語 199
6.9.1 互斥鎖 200
6.9.2 信號量 200
6.9.3 多讀者/單寫者鎖 201
6.9.4 條件變數 201
6.10 Windows並發機制 201
6.10.1 等待函式 201
6.10.2 分派器對象 202
6.10.3 臨界區 203
6.10.4 輕量級讀寫鎖和條件變數 203
6.11 小結 204
6.12 推薦讀物 204
6.13 關鍵術語、複習題和習題 205
第三部分 記憶體
第7章 記憶體管理 210
7.1 記憶體管理的需求 210
7.1.1 重定位 210
7.1.2 保護 211
7.1.3 共享 211
7.1.4 邏輯組織 211
7.1.5 物理組織 211
7.2 記憶體分區 212
7.2.1 固定分區 212
7.2.2 動態分區 214
7.2.3 夥伴系統 216
7.2.4 重定位 218
7.3 分頁 219
7.4 分段 222
7.5 安全問題 222
7.5.1 緩衝區溢出攻擊 222
7.5.2 預防緩衝區溢出 225
7.6 小結 225
7.7 推薦讀物 225
7.8 關鍵術語、複習題和習題 225
附錄7A 載入和連結 228
第8章 虛擬記憶體 232
8.1 硬體和控制結構 232
8.1.1 局部性和虛擬記憶體 233
8.1.2 分頁 235
8.1.3 分段 242
8.1.4 段頁式 243
8.1.5 保護和共享 244
8.2 作業系統軟體 244
8.2.1 讀取策略 245
8.2.2 放置策略 246
8.2.3 置換策略 246
8.2.4 駐留集管理 251
8.2.5 清除策略 255
8.2.6 載入控制 255
8.3 UNIX和Solaris記憶體管理 257
8.3.1 分頁系統 257
8.3.2 核心記憶體分配器 259
8.4 Linux記憶體管理 260
8.4.1 Linux虛擬記憶體 260
8.4.2 核心記憶體分配 261
8.5 Windows記憶體管理 262
8.5.1 Windows虛擬地址映射 263
8.5.2 Windows分頁 263
8.6 小結 264
8.7 推薦讀物和網站 264
8.8 關鍵術語、複習題和習題 265
附錄8A 散列表 268
第四部分 調度
第9章 單處理器調度 272
9.1 處理器調度的類型 272
9.1.1 長程調度 273
9.1.2 中程調度 274
9.1.3 短程調度 274
9.2 調度算法 274
9.2.1 短程調度準則 274
9.2.2 優先權的使用 275
9.2.3 選擇調度策略 276
9.2.4 性能比較 284
9.2.5 公平共享調度 287
9.3 傳統的UNIX調度 289
9.4 小結 290
9.5 推薦讀物 291
9.6 關鍵術語、複習題和習題 291
附錄9A 回響時間 294
附錄9B 排隊系統 296
編程項目2:主機調度shell程式 299
第10章 多處理器和實時調度 304
10.1 多處理器調度 304
10.1.1 粒度 304
10.1.2 設計問題 307
10.1.3 進程調度 308
10.1.4 執行緒調度 309
10.2 實時調度 312
10.2.1 背景 312
10.2.2 實時作業系統的特點 313
10.2.3 實時調度 315
10.2.4 限期調度 316
10.2.5 速率單調調度 319
10.2.6 優先權反轉 321
10.3 Linux調度 322
10.3.1 實時調度 322
10.3.2 非實時調度 323
10.4 UNIX SVR4調度 325
10.5 Windows調度 326
10.5.1 進程和執行緒優先權 326
10.5.2 多處理器調度 328
10.6 小結 328
10.7 推薦讀物 328
10.8 關鍵術語、複習題和習題 329
第五部分 I/O和檔案
第11章 I/O管理和磁碟調度 334
11.1 I/O設備 334
11.2 I/O功能的組織 335
11.2.1 I/O功能的發展 335
11.2.2 直接存儲器訪問 336
11.3 作業系統設計問題 337
11.3.1 設計目標 337
11.3.2 I/O功能的邏輯結構 338
11.4 I/O緩衝 339
11.4.1 單緩衝 340
11.4.2 雙緩衝 341
11.4.3 循環緩衝 341
11.4.4 緩衝的作用 341
11.5 磁碟調度 342
11.5.1 磁碟性能參數 342
11.5.2 磁碟調度策略 344
11.6 RAID 347
11.6.1 RAID級別0 349
11.6.2 RAID級別1 350
11.6.3 RAID級別2 351
11.6.4 RAID級別3 351
11.6.5 RAID級別4 352
11.6.6 RAID級別5 353
11.6.7 RAID級別6 353
11.7 磁碟高速快取 353
11.7.1 設計考慮 353
11.7.2 性能考慮 355
11.8 UNIX SVR4 I/O 355
11.8.1 緩衝區高速快取 356
11.8.2 字元佇列 356
11.8.3 無緩衝I/O 357
11.8.4 UNIX設備 357
11.9 Linux I/O 357
11.9.1 磁碟調度 358
11.9.2 Linux頁面快取 360
11.10 Windows I/O 360
11.10.1 基本I/O機制 360
11.10.2 異步I/O和同步I/O 361
11.10.3 軟體RAID 361
11.10.4 卷影複製 361
11.10.5 卷加密 362
11.11 小結 362
11.12 推薦讀物 362
11.13 關鍵術語、複習題和習題 363
附錄11A 磁碟存儲設備 365
第12章 檔案管理 371
12.1 概述 371
12.1.1 檔案和檔案系統 371
12.1.2 檔案結構 371
12.1.3 檔案管理系統 373
12.2 檔案組織和訪問 375
12.2.1 堆 376
12.2.2 順序檔案 376
12.2.3 索引順序檔案 377
12.2.4 索引檔案 377
12.2.5 直接檔案或散列檔案 378
12.3 檔案目錄 378
12.3.1 內容 378
12.3.2 結構 379
12.3.3 命名 380
12.4 檔案共享 381
12.4.1 訪問許可權 381
12.4.2 同時訪問 381
12.5 記錄組塊 382
12.6 二級存儲管理 383
12.6.1 檔案分配 383
12.6.2 空閒空間的管理 387
12.6.3 卷 388
12.6.4 可靠性 388
12.7 檔案系統安全 389
12.8 UNIX檔案管理 390
12.8.1 索引節點 391
12.8.2 檔案分配 392
12.8.3 目錄 393
12.8.4 卷結構 393
12.8.5 傳統的UNIX檔案訪問
6.10.4 控制 393
12.8.6 UNIX中的訪問控制列表 394
12.9 Linux虛擬檔案系統 395
12.9.1 超級塊對象 397
12.9.2 索引節點對象 397
12.9.3 目錄項對象 398
12.9.4 檔案對象 398
12.10 Windows檔案系統 398
12.10.1 NTFS的重要特徵 398
12.10.2 NTFS卷和檔案結構 399
12.10.3 可恢復性 401
12.11 小結 402
12.12 推薦讀物 402
12.13 關鍵術語、複習題和習題 403
第六部分 嵌入式系統
第13章 嵌入式作業系統 406
13.1 嵌入式系統 406
13.2 嵌入式作業系統的特點 407
13.2.1 移植現有的商業作業系統 408
13.2.2 為特定目的構建的嵌入式
6.10.4 作業系統 408
13.3 eCos 409
13.3.1 可配置性 409
13.3.2 eCos組件 411
13.3.3 eCos調度程式 414
13.3.4 eCos執行緒同步 415
13.4 TinyOS 419
13.4.1 無線感測器網路 420
13.4.2 TinyOS的目標 420
13.4.3 TinyOS的組件 421
13.4.4 TinyOS的調度程式 423
13.4.5 配置例子 423
13.4.6 TinyOS的資源接口 425
13.5 推薦讀物和網站 426
13.6 關鍵術語、複習題和習題 426
第七部分 安全
第14章 計算機安全威脅 430
14.1 計算機安全的概念 430
14.2 威脅、攻擊和資產 431
14.2.1 威脅和攻擊 431
14.2.2 威脅和資產 432
14.3 入侵者 434
14.3.1 入侵者行為模式 435
14.3.2 入侵技術 437
14.4 惡意軟體概述 437
14.4.1 後門 437
14.4.2 邏輯炸彈 438
14.4.3 特洛伊木馬 438
14.4.4 移動代碼 438
14.4.5 多威脅惡意軟體 439
14.5 病毒、蠕蟲與殭屍 440
14.5.1 病毒 440
14.5.2 蠕蟲 443
14.5.3 殭屍 445
14.6 rootkits 447
14.6.1 rootkit安裝 447
14.6.2 系統級調用攻擊 447
14.7 推薦讀物和網站 448
14.8 關鍵術語、複習題和習題 448
第15章 計算機安全技術 451
15.1 身份驗證 451
15.1.1 身份驗證方法 451
15.1.2 基於密碼的身份驗證 451
15.1.3 基於令牌的身份驗證 453
15.1.4 生物特徵識別認證 454
15.2 訪問控制 455
15.2.1 自主訪問控制 456
15.2.2 基於角色的訪問控制 458
15.3 入侵檢測 460
15.3.1 基本原則 460
15.3.2 基於主機的入侵檢測技術 461
15.3.3 審計記錄 462
15.4 惡意軟體防禦 463
15.4.1 反病毒方法 463
15.4.2 蠕蟲對策 465
15.4.3 自動代理程式的對策 466
15.4.4 rootkit對策 466
15.5 處理緩衝區溢出攻擊 467
15.5.1 編譯時防禦 467
15.5.2 運行時防禦 469
15.6 Windows Vista安全性 470
15.6.1 訪問控制方案 470
15.6.2 訪問令牌 471
15.6.3 安全描述符 471
15.7 推薦讀物和網站 474
15.8 關鍵術語、複習題和習題 475
第八部分 分散式系統
第16章 分散式處理、客戶/伺服器和
第16章 集群 481
16.1 客戶/伺服器計算模型 481
16.1.1 什麼是客戶/伺服器
16.1.1 計算模型 481
16.1.2 客戶/伺服器模型的套用 482
16.1.3 中間件 486
16.2 分散式訊息傳遞 487
16.2.1 可靠性與不可靠性 488
16.2.2 阻塞與無阻塞 488
16.3 遠程過程調用 489
16.3.1 參數傳遞 490
16.3.2 參數表示 490
16.3.3 客戶/伺服器綁定 490
16.3.4 同步和異步 490
16.3.5 面向對象機制 491
16.4 集群 491
16.4.1 集群的配置 491
16.4.2 作業系統的設計問題 493
16.4.3 集群計算機的體系結構 494
16.4.4 集群與SMP的比較 495
16.5 Windows集群伺服器 495
16.6 Sun集群 496
16.6.1 對象和通信支持 497
16.6.2 進程管理 497
16.6.3 網路連線 497
16.6.4 全局檔案系統 498
16.7 Beowulf和Linux集群 498
16.7.1 Beowulf特徵 498
16.7.2 Beowulf軟體 499
16.8 小結 500
16.9 推薦讀物和網站 500
16.10 關鍵術語、複習題和習題 501
附錄A 並發主題 503
附錄B 面向對象設計 516
附錄C 編程和作業系統項目 523
術語表 528
參考文獻 536
【英文版目錄】
Chapter 1 Computer System Overview 1
1.1 Basic Elements 1
1.2 Processor Registers 2
1.3 Instruction Execution 5
1.4 Interrupts 8
1.5 The Memory Hierarchy 19
1.6 Cache Memory 22
1.7 I/O Communication Techniques 26
1.8 Recommended Reading and Web Sites 29
1.9 KeyTerms, Review Questions, and Problems 30
Appendix 1A Performance Characteristics of Two-Level Memory 32
Appendix 1B Procedure Control 39
Chapter 2 Operating System Overview 43
2.1 Operating System Objectives and Functions 43
2.2 The Evolution of Operating Systems 47
2.3 Major Achievements 56
2.4 Developments Leading to Modern Operating Systems 69
2.5 Microsoft Windows Overview 72
2.6 Traditional UNIX Systems 82
2.7 Modern UNIX Systems 85
2.8 Linux 86
2.9 Recommended Reading and Web Sites 93
2.10Key Terms, Review Questions, and Problems 95
Chapter 3 Process Description and Control 97
3.1 What is a Process? 97
3.2 Process States 100
3.3 Process Description 115
3.4 Process Control 124
3.5 Execution of the Operating System 129
3.6 Security Issues 132
3.7 UNIX SVR4 Process Management 136
3.8 Summary 141
3.9 Recommended Reading 142
3.10KeyTerms, Review Questions, and Problems 142
Programming Project One Developing a Shell 146
Chapter 4 Threads, SMP, and Microkernels 149
4.1 Processes andThreads 149
4.2 Symmetric Multiprocessing (SMP) 163
4.3 Microkernels 167
4.4 WindowsVista Thread and SMP Management 173
4.5 Solaris Thread and SMP Management 178
4.6 Linux Process andThread Management 183
4.7 Summary 186
4.8 Recommended Reading 187
4.9 KeyTerms, Review Questions, and Problems 188
Chapter 5 Concurrency: Mutual Exclusion and Synchronization 193
5.1 Principles of Concurrency 194
5.2 Mutual Exclusion: Hardware Support 203
5.3 Semaphores 206
5.4 Monitors 219
5.5 Message Passing 226
5.6 Readers/Writers Problem 232
5.7 Summary 236
5.8 Recommended Reading 237
5.9 Key Terms, Review Questions, and Problems 238
Chapter 6 Concurrency: Deadlock and Starvation 249
6.1 Principles of Deadlock 249
6.2 Deadlock Prevention 258
6.3 Deadlock Avoidance 259
6.4 Deadlock Detection 265
6.5 An Integrated Deadlock Strategy 267
6.6 Dining Philosophers Problem 268
6.7 UNIX Concurrency Mechanisms 272
6.8 Linux Kernel Concurrency Mechanisms 275
6.9 Solaris Thread Synchronization Primitives 281
6.10Windows Vista Concurrency Mechanisms 284
6.11Summary 288
6.12Recommended Reading 288
6.13Key Terms, Review Questions, and Problems 289
Chapter 7 Memory Management 295
7.1 Memory Management Requirements 295
7.2 Memory Partitioning 298
7.3 Paging 309
7.4 Segmentation 313
7.5 Security Issues 314
7.6 Summary 318
7.7 Recommended Reading 318
7.8 Key Terms, Review Questions, and Problems 319
Appendix 7A Loading and Linking 321
Chapter 8 Virtual Memory 328
8.1 Hardware and Control Structures 328
8.2 Operating System Software 347
8.3 UNIX and Solaris Memory Management 365
8.4 Linux Memory Management 371
8.5 WindowsVista Memory Management 373
8.6 Summary 376
8.7 Recommended Reading and Web Sites 377
8.8 Key Terms, Review Questions, and Problems 378
Appendix 8A Hash Tables 382
Chapter 9 Uniprocessor Scheduling 386
9.1 Types of Scheduling 386
9.2 Scheduling Algorithms 390
9.3 Traditional UNIX Scheduling 412
9.4 Summary 414
9.5 Recommended Reading 414
9.6 Key Terms, Review Questions, and Problems 415
Appendix 9A Response Time 418
Appendix 9B Queuing Systems 420
Programming Project Two The HOST Dispatcher Shell 427
Chapter 10 Multiprocessor and Real-Time Scheduling 432
10.1 Multiprocessor Scheduling 432
10.2 Real-Time Scheduling 445
10.3 Linux Scheduling 460
10.4 UNIX FreeBSD Scheduling 464
10.5Windows Vista Scheduling 466
10.6 Summary 469
10.7 Recommended Reading 469
10.8 Key Terms, Review Questions, and Problems 470
Chapter 11 I/O Management and Disk Scheduling 473
11.1 I/O Devices 473
11.2Organization of the I/O Function 474
11.3 Operating System Design Issues 478
11.4 I/O Buffering 481
11.5 Disk Scheduling 484
11.6 RAID 491
11.7 Disk Cache 500
11.8 UNIX FreeBSD I/O 503
11.9 Linux I/O 506
11.10WindowsVista I/O 510
11.11Summary 513
11.12 Recommended Reading 513
11.13Key Terms, Review Questions, and Problems 515
Appendix 11A Disk Storage Devices 517
Chapter 12 File Management 528
12.1 Overview 528
12.2 File Organization and Access 534
12.3File Directories 538
12.4 File Sharing 543
12.5Record Blocking 544
12.6Secondary Storage Management 546
12.7File System Security 554
12.8 UNIX File Management 556
12.9 Linux File Management 563
12.10WindowsVista File System 567
12.11Summary 573
12.12 Recommended Reading 573
12.13Key Terms, Review Questions, and Problems 574
Glossary 577
References 587