操作系统精髓与设计原理第六版pdf免费版|百度网盘下载
编者评论:操作系统的本质和设计原则第 6 版 pdf
本书不仅全面介绍了操作系统的基本概念、原理和方法,而且清晰地展示了当代操作系统的本质和特点。鉴于近年来操作系统领域的最新变化,笔者今天为大家带来操作系统本质与设计原则第六版pdf。有需要欢迎下载
简介
本书不仅全面介绍了操作系统的基本概念、原理和方法,而且清晰地展示了当代操作系统的本质和特点。笔者重点关注近年来操作系统领域的最新变化,
深入阐述操作系统的设计原则,同时为读者呈现对整个操作系统领域的全面而深入的了解。
图书特色
·选择Windows Vista、UNIX和Linux作为例子,帮助读者熟悉当代操作系统的设计原则和实现问题。
·嵌入式操作系统的新章节讨论了嵌入式操作系统的基本特征,并给出了两个示例系统:TinyOS 和 eCos。
·在第5版的基础上,扩充了计算机安全的相关内容,包括计算机安全威胁和计算机安全技术。
・扩展和更新了与并发相关的内容,并添加了游戏软件中多处理器调度设计问题的示例。
·补充动画演示、模拟项目和编程项目,以提高学生的动手能力。
・改进的插图和新的、广泛的“经过实地测试”的家庭作业。
·对章末的习题进行了调整和扩充,帮助读者深入理解操作系统的精髓。
相关内容部分预览
关于作者
William Stallings 拥有博士学位。拥有麻省理工学院计算机科学博士学位,目前在澳大利亚新南威尔士大学国防学院(堪培拉)信息技术与电子工程系任教。
他是世界著名的计算机学者和畅销教科书作者。他撰写了 17 本书,出版了 40 多本书,涵盖计算机安全、计算机网络和计算机体系结构等方面。他曾九次获得美国教科书和学术专着协会颁发的“年度最佳计算机科学教科书”奖。
目录
出版商的话
翻译顺序
前言
第 0 章读者指南 1
0.1 图书概述 1
0.2 面向读者和教师的学习路线图 1
0.3 互联网和网络资源 2
第 1 部分背景
第 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/O22
1.7.2 中断驱动 I/O22
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 Microsoft Windows 概述 51
2.5.1 历史 51
2.5.2 单用户多任务处理 53
2.5.3 架构 53
2.5.4 客户端/服务器模型 56
2.5.5 线程和 SMP57
2.5.6 Windows 对象 57
2.6 传统 UNIX 系统 58
2.6.1 历史 58
2.6.2 说明 59
2.7 现代 UNIX 系统 60
2.7.1 System V 版本 4 (SVR4) 60
2.7.2 BSD61
2.7.3 Solaris 1061
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 PageMaker111
4.1.4 用户级和内核级线程 112
4.1.5 其他解决方案 115
4.2 对称多处理 116
4.2.1 SMP 架构 116
4.2.2 SMP System 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 RTOS 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 题
第 5 部分 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 RAID347
11.6.1 RAID 级别 0349
11.6.2 RAID 级别 1350
11.6.3 RAID 级别 2351
11.6.4 RAID 级别 3351
11.6.5 RAID 级别 4352
11.6.6 RAID 级别 5353
11.6.7 RAID 级别 6353
11.7 磁盘缓存 353
11.7.1 设计注意事项 353
11.7.2 性能注意事项 355
11.8 UNIX SVR4 I/O355
11.8.1 缓冲区高速缓存 356
11.8.2 字符队列 356
11.8.3 无缓冲 I/O357
11.8.4 UNIX 设备 357
11.9 Linux I/O357
11.9.1 磁盘调度 358
11.9.2 Linux 页面缓存 360
11.10 Windows I/O360
11.10.1 基本 I/O 机制 360
11.10.2 异步 I/O 和同步 I/O361
11.10.3 软件 RAID361
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 eCos409
13.3.1 可配置性 409
13.3.2 eCos 组件 411
13.3.3 eCos 调度程序 414
13.3.4 eCos线程同步415
13.4 TinyOS419
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 rootkits447
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 Cluster 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 贝奥武夫功能 498
16.7.2 贝奥武夫软件 499
16.8 总结 500
16.9 推荐阅读和网站500
16.10 关键术语、复习题和问题 501
附录 A 并发主题 503
附录 B 面向对象设计 516
附录 C 编程和操作系统项目 523
词汇表 528
参考 536
读者评论
首先,本书语境清晰,循序渐进,完美表达了知识点之间的联系。这是一个例子:
本书将进程管理中的进程调度分离为一个部分,放在内存管理的后面。这种布局看似将知识拆解成碎片,实则别出心裁。我读过其他书籍,例如 Tanenbaum 的《现代操作系统》,
流程管理在一章中完成。但是——我们知道进程调度离不开内存管理的方式。不了解内存管理,怎么理解进程调度的前因后果?
其次,它在逻辑上严谨且组织良好:想法、需求、问题、结论、计划、要求和实施细节。重点问题的原因、优缺点,直接列个清单,一二三四,解释清楚。以内存管理为例,举三个例子:
内存管理要求列表
我们对内存管理有什么要求?需求之间的依赖关系是什么。
书籍告诉我们现在应该关注什么(记忆和外部记忆之间的信息流)。为什么我们把存储管理作为操作系统的职责?
虚拟内存是如何从简单的分段和简单的分页中产生的。简单的分页和切分已经在概念上取得了哪些突破,我们还能进一步突破吗?
三是解释方式多样,图和表很多,对不同方案做了充分的对比,如图:
作者:凤玲
链接:https://www.58edu.cc/article/1522324485187866626.html
文章版权归作者所有,58edu信息发布平台,仅提供信息存储空间服务,接受投稿是出于传递更多信息、供广大网友交流学习之目的。如有侵权。联系站长删除。