《操作系统精髓与设计原理》是2010年机械工业出版社出版的图书,作者是(美)WilliamStallings。
内容简介
《操作系统:精髓与设计原理(第6版)(英文版)》是讲解操作系统的经典教材,全书不仅系统地讲述了操作系统的基本概念、原理和方法,而且以当代最流行的操作系统——Windows Vista、
UNIx和
Linux为例,全面清楚地展现了当代操作系统的本质和特点。与教材配套的专用站点,为教师和学生理解书中内容,提供了及时、生动的材料。
《操作系统:精髓与设计原理(第6版)(英文版)》既注重对操作系统经典知识的讲解,又紧密结合当代最新的操作系统发展趋势,可作为大学计算机专业双语教材和参考书,也可供从事
计算机专业研究方向的
专业技术人员参考。
作者简介
(美国)斯托林斯(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.3 指令的执行 9
1.3.1 取指令和执行指令 9
1.4 中断 11
1.4.2 中断处理 14
1.4.3 多个中断 15
1.6 高速缓存 20
1.6.1 动机 20
1.6.2 高速缓存原理 20
1.6.3 高速缓存设计 21
1.7 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.1 系统 34
2.1.3 操作系统的易扩展性 35
2.2 操作系统的发展 35
2.2.1 串行处理 35
2.3 主要的成就 42
2.3.1 进程 42
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.5 线程和SMP 57
2.5.6 Windows对象 57
2.6.1 历史 58
2.6.2 描述 59
2.7 现代UNIX系统 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.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.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.1 进程状态 98
3.7.2 进程描述 99
3.7.3 进程控制 101
3.8 小结 102
3.9 推荐读物 102
3.10 关键术语、复习题和习题 102
编程项目1:开发一个shell程序 105
4.1 进程和线程 107
4.1.2 线程功能特性 109
4.1.3 例子:Adobe PageMaker 111
4.1.5 其他方案 115
4.2.1 SMP体系结构 116
4.2.2 SMP系统的组织结构 117
4.2.3 多处理器操作系统的
4.2.3 设计思考 118
4.3.1 微内核体系结构 119
4.3.2 微内核组织结构的优点 120
4.3.3 微内核性能 121
4.3.4 微内核设计 121
4.4.1 进程对象和线程对象 123
4.4.3 线程状态 125
4.4.4 对操作系统子系统的支持 126
4.5 Solaris的线程和SMP管理 127
4.5.1 多线程体系结构 127
4.5.2 动机 127
4.5.3 进程结构 128
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.3 操作系统关注的问题 141
5.1.4 进程的交互 141
5.1.5 互斥的要求 144
5.2 互斥:硬件的支持 144
5.2.1 中断禁用 144
5.3.1 互斥 150
5.3.2 生产者/消费者问题 151
5.3.3 信号量的实现 154
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.1 死锁的原理 178
6.1.1 可重用资源 180
6.1.2 可消耗资源 181
6.1.4 死锁的条件 183
6.2.1 互斥 184
6.2.2 占有且等待 184
6.2.3 不可抢占 184
6.2.4 循环等待 184
6.3.1 进程启动拒绝 185
6.4.1 死锁检测算法 189
6.4.2 恢复 190
6.5 一种综合的死锁策略 190
6.7 UNIX的并发机制 192
6.7.1 管道 192
6.7.2 消息 193
6.7.4 信号量 194
6.7.5 信号 194
6.8.4 屏障 199
6.9.2 信号量 200
6.9.3 多读者/单写者锁 201
6.10 Windows并发机制 201
6.10.2 分派器对象 202
6.11 小结 204
6.12 推荐读物 204
6.13 关键术语、复习题和习题 205
第三部分 内存
7.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.4 分段 222
7.5 安全问题 222
7.6 小结 225
7.7 推荐读物 225
7.8 关键术语、复习题和习题 225
附录7A 加载和链接 228
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.2 内核内存分配器 259
8.4 Linux内存管理 260
8.4.2 内核内存分配 261
8.5 Windows内存管理 262
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.4 小结 290
9.5 推荐读物 291
9.6 关键术语、复习题和习题 291
附录9A 响应时间 294
编程项目2:主机调度shell程序 299
10.1 多处理器调度 304
10.1.1 粒度 304
10.1.2 设计问题 307
10.2 实时调度 312
10.2.1 背景 312
10.2.2 实时操作系统的特点 313
10.2.4 限期调度 316
10.2.5 速率单调调度 319
10.3 Linux调度 322
10.3.1 实时调度 322
10.3.2 非实时调度 323
10.4 UNIX SVR4调度 325
10.5 Windows调度 326
10.5.2 多处理器调度 328
10.6 小结 328
10.7 推荐读物 328
10.8 关键术语、复习题和习题 329
第11章 I/O管理和磁盘调度 334
11.2 I/O功能的组织 335
11.2.1 I/O功能的发展 335
11.3 操作系统设计问题 337
11.3.1 设计目标 337
11.4.1 单缓冲 340
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.1 设计考虑 353
11.7.2 性能考虑 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.1 堆 376
12.2.2 顺序文件 376
12.2.3 索引顺序文件 377
12.2.5 直接文件或散列文件 378
12.3 文件目录 378
12.3.1 内容 378
12.3.2 结构 379
12.3.3 命名 380
12.4.1 访问权限 381
12.4.2 同时访问 381
12.5 记录组块 382
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.2 文件分配 392
12.8.3 目录 393
12.8.4 卷结构 393
6.10.4 控制 393
12.8.6 UNIX中的访问控制列表 394
12.9.1 超级块对象 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.2.1 移植现有的商业操作系统 408
13.2.2 为特定目的构建的嵌入式
6.10.4 操作系统 408
13.3 eCos 409
13.3.1 可配置性 409
13.3.2 eCos组件 411
13.4 TinyOS 419
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.4 移动代码 438
14.4.5 多威胁恶意软件 439
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.2 基于密码的身份验证 451
15.1.3 基于令牌的身份验证 453
15.3.1 基本原则 460
15.3.2 基于主机的入侵检测技术 461
15.3.3 审计记录 462
15.4 恶意软件防御 463
15.4.1 反病毒方法 463
15.4.3 自动代理程序的对策 466
15.4.4 rootkit对策 466
15.5.1 编译时防御 467
15.5.2 运行时防御 469
15.6 Windows Vista安全性 470
15.6.2 访问令牌 471
15.7 推荐读物和网站 474
15.8 关键术语、复习题和习题 475
第16章 集群 481
16.1 客户/服务器计算模型 481
16.1.1 什么是客户/服务器
16.1.1 计算模型 481
16.1.3 中间件 486
16.2 分布式消息传递 487
16.2.1 可靠性与不可靠性 488
16.2.2 阻塞与无阻塞 488
16.3.2 参数表示 490
16.3.3 客户/服务器绑定 490
16.3.4 同步和异步 490
16.4 集群 491
16.4.1 集群的配置 491
16.4.2 操作系统的设计问题 493
16.4.4 集群与SMP的比较 495
16.6 Sun集群 496
16.6.1 对象和通信支持 497
16.6.2 进程管理 497
16.6.3 网络连接 497
16.6.4 全局文件系统 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