当前位置:首页 > 工业技术
操作系统  精髓与设计原理  第5版
操作系统  精髓与设计原理  第5版

操作系统 精髓与设计原理 第5版PDF电子书下载

工业技术

  • 电子书积分:18 积分如何计算积分?
  • 作 者:(美)(斯托林斯)William Stallings著;陈渝译
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2006
  • ISBN:712102196X
  • 页数:612 页
图书介绍:操作系统是计算机系统的核心系统软件,负责控制和管理整个系统,使之协调工作。本书不仅全面系统地讲述了操作系统的基本概念、原理和方法,而且以当代最流行的操作系统——Windows、UNIX和Linux为例,全面清楚地展现了当代操作系统的本质和特点,使本书的内容具有先进性和适应性。
《操作系统 精髓与设计原理 第5版》目录

第0章 读者指南 1

0.1 本书概述 1

0.2 主题顺序 1

0.3 因特网和Web资源 2

第一部分 背景 5

第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 中断和指令周期 13

1.4.2 中断处理 14

1.4.3 多个中断 16

1.4.4 多道程序设计 18

1.5 存储器的层次结构 19

1.6 高速缓冲存储器 21

1.6.1 动机 22

1.6.2 高速缓冲存储器原理 22

1.6.3 高速缓冲存储器设计 24

1.7 I/O通信技术 24

1.7.1 可编程I/O 25

1.7.2 中断驱动I/O 25

1.7.3 直接存储器访问 26

1.8 推荐读物和网站 27

1.9 关键术语、复习题和习题 27

附录1A 两级存储器的性能特征 29

附录1B 过程控制 34

第2章 操作系统概述 38

2.1 操作系统的目标和功能 38

2.1.1 作为用户/计算机接口的操作系统 38

2.1.2 作为资源管理器的操作系统 39

2.1.3 操作系统的易扩展性 40

2.2 操作系统的发展 41

2.2.1 串行处理 41

2.2.2 简单批处理系统 42

2.2.3 多道程序批处理系统 44

2.2.4 分时系统 46

2.3 主要的成就 48

2.3.1 进程 48

2.3.2 内存管理 51

2.3.3 信息保护和安全 52

2.3.4 调度和资源管理 53

2.3.5 系统结构 54

2.4 现代操作系统的特征 57

2.5 Microsoft Windows概述 59

2.5.1 历史 59

2.5.2 单用户多任务 60

2.5.3 体系结构 61

2.5.4 客户/服务器模型 64

2.5.5 线程和SMP 65

2.5.6 Windows对象 65

2.6 传统的UNIX系统 66

2.6.1 历史 66

2.6.2 描述 67

2.7 现代UNIX系统 68

2.7.1 系统V版本4(简称SVR4) 68

2.8.1 历史 69

2.8 Linux操作系统 69

2.7.3 4.4BSD 69

2.7.2 Solaris 9 69

2.8.2 模块结构 70

2.8.3 内核组件 72

2.9 推荐读物和网站 74

2.10 关键术语、复习题和习题 75

第二部分 进程 77

第3章 进程描述和控制 79

3.1 什么是进程 79

3.1.1 背景 79

3.2 进程和进程控制块 80

3.3 进程状态 81

3.3.1 两状态进程模型 83

3.3.2 进程的创建和终止 83

3.3.3 五状态模型 84

3.3.4 被挂起的进程 87

3.4 进程描述 92

3.4.1 操作系统的控制结构 92

3.4.2 进程控制结构 93

3.5 进程控制 98

3.5.1 执行模式 98

3.5.2 进程创建 99

3.5.3 进程切换 99

3.5.4 操作系统的执行 101

3.6 UNIX SVR4进程管理 103

3.6.1 进程状态 103

3.6.2 进程描述 105

3.6.3 进程控制 106

3.7 小结 107

3.8 推荐读物 107

3.9 关键术语、复习题和习题 107

编程项目1:开发一个shell程序 110

第4章 线程、对称多处理和微内核 112

4.1 进程和线程 112

4.1.1 多线程 112

4.1.2 线程功能特性 115

4.1.3 例子——Adobe PageMaker 116

4.1.4 用户级和内核级线程 118

4.1.5 其他方案 121

4.2 对称多处理 122

4.2.1 SMP系统的体系结构 123

4.2.2 SMP系统的组织结构 124

4.2.3 多处理器操作系统的设计思考 125

4.3 微内核 125

4.3.1 微内核体系结构 125

4.3.2 微内核组织结构的优点 126

4.3.3 微内核性能 127

4.3.4 微内核设计 128

4.4 Windows线程和SMP管理 130

4.4.1 进程对象和线程对象 131

4.4.2 多线程 132

4.4.3 线程状态 132

4.4.4 对OS子系统的支持 133

4.4.5 对称多处理的支持 134

4.5 Solaris线程和SMP管理 134

4.5.1 多线程体系结构 134

4.5.2 动机 135

4.5.3 进程结构 136

4.5.4 线程的执行 137

4.5.5 把中断当做线程 138

4.6 Linux的进程和线程管理 138

4.6.1 Linux任务 138

4.6.2 Linux线程 140

4.8 推荐读物 141

4.7 小结 141

4.9 关键术语、复习题和习题 142

第5章 并发性:互斥和同步 144

5.1 并发的原理 145

5.1.1 一个简单的例子 145

5.1.2 竞争条件 147

5.1.3 操作系统关注的问题 147

5.1.4 进程的交互 148

5.1.5 互斥的要求 150

5.2 互斥:硬件的支持 151

5.2.1 中断禁用 151

5.2.2 专用机器指令 151

5.3 信号量 154

5.3.1 互斥 156

5.3.2 生产者/消费者问题 158

5.3.3 信号量的实现 162

5.4.1 使用信号的管程 163

5.4 管程 163

5.4.2 使用通知和广播的管程 166

5.5 消息传递 168

5.5.1 同步 168

5.5.2 寻址 169

5.5.3 消息格式 170

5.5.4 排队原则 171

5.5.5 互斥 171

5.6 读者-写者问题 172

5.6.1 读进程具有优先权 173

5.6.2 写进程具有优先权 174

5.7 小结 176

5.8 推荐读物 176

5.9 关键术语、复习题和习题 177

6.1 死锁原理 183

第6章 并发性:死锁和饥饿 183

6.1.1 可重用资源 185

6.1.2 可消费资源 187

6.1.3 资源分配图 187

6.1.4 死锁的条件 188

6.2 死锁预防 189

6.2.1 互斥 189

6.2.2 占有且等待 190

6.2.3 非抢占 190

6.2.4 循环等待 190

6.3 死锁避免 190

6.3.1 进程启动拒绝 191

6.3.2 资源分配拒绝 191

6.4 死锁检测 195

6.4.1 死锁检测算法 195

6.5 一种综合的死锁策略 196

6.4.2 恢复 196

6.6 哲学家就餐问题 197

6.6.1 使用信号量解决方案 198

6.6.2 使用管程解决方案 198

6.7 UNIX的并发机制 200

6.7.1 管道 200

6.7.2 消息 200

6.7.3 共享存储区 200

6.7.4 信号量 200

6.7.5 信号 201

6.8 Linux内核并发机制 202

6.8.1 原子操作 202

6.8.2 自旋锁 203

6.8.3 信号量 204

6.8.4 屏障 206

6.9 Solaris线程同步原语 207

6.9.1 互斥锁 207

6.9.2 信号量 208

6.9.3 多读者单写者锁 208

6.9.4 条件变量 208

6.10 Windows并发机制 209

6.10.1 等待函数 209

6.10.2 同步对象 209

6.10.3 临界区对象 210

6.11 小结 210

6.12 推荐读物 211

6.13 关键术语、复习题和习题 211

第三部分 内存 217

7.1.1 重定位 218

7.1 内存管理的需求 218

第7章 内存管理 218

7.1.2 保护 219

7.1.3 共享 219

7.1.4 逻辑组织 219

7.1.5 物理组织 220

7.2 内存分区 220

7.2.1 固定分区 220

7.2.2 动态分区 223

7.2.3 伙伴系统 225

7.2.4 重定位 227

7.3 分页 228

7.4 分段 231

7.5 小结 232

7.6 推荐读物 232

7.7 关键术语、复习题和习题 233

附录7A 加载和链接 235

第8章 虚拟内存 239

8.1 硬件和控制结构 239

8.1.1 局部性和虚拟内存 240

8.1.2 分页 241

8.1.3 分段 250

8.1.4 分段和分页的结合 251

8.1.5 保护和共享 252

8.2 操作系统软件 253

8.2.1 读取策略 253

8.2.2 放置策略 254

8.2.3 替换策略 254

8.2.4 驻留集管理 260

8.2.5 清除策略 264

8.2.6 加载控制 265

8.3.1 分页系统 266

8.3 UNIX和Solaris内存管理 266

8.3.2 内核内存分配器 269

8.4 Linux内存管理 270

8.4.1 Linux虚拟内存 270

8.4.2 内核内存分配 271

8.5 Windows内存管理 272

8.5.1 Windows虚拟地址映射 272

8.5.2 Windows分页 273

8.6 小结 273

8.7 推荐读物和网站 274

8.8 关键术语、复习题和习题 275

附录8A 哈希表 278

第四部分 调度 281

第9章 单处理器调度 282

9.1 处理器调度的类型 282

9.1.1 长程调度 283

9.1.2 中程调度 284

9.2 调度算法 285

9.2.1 短程调度准则 285

9.1.3 短程调度 285

9.2.2 优先级的使用 286

9.2.3 选择调度策略 286

9.2.4 性能比较 296

9.2.5 公平共享调度 299

9.3 传统的UNIX调度 302

9.4 小结 303

9.5 推荐读物 304

9.6 关键术语、复习题和习题 304

附录9A 响应时间 307

附录9B 排队系统 308

编程项目2:主机调度shell程序 312

10.1.1 粒度 317

第10章 多处理器和实时调度 317

10.1 多处理器调度 317

10.1.2 设计问题 318

10.1.3 进程调度 320

10.1.4 线程调度 320

10.2 实时调度 325

10.2.1 背景 325

10.2.2 实时操作系统的特点 326

10.2.3 实时调度 329

10.2.4 时限调度 329

10.2.5 速率单调调度 332

10.2.6 优先级逆转 335

10.3 Linux调度 337

10.3.1 实时调度 337

10.3.2 非实时调度 338

10.4 UNIX SVR4调度 340

10.5.1 进程和线程优先级 341

10.5 Windows调度 341

10.5.2 多处理器调度 342

10.6 小结 343

10.7 推荐读物 343

10.8 关键术语、复习题和习题 344

第五部分 输入/输出和文件 347

第11章 I/O管理和磁盘调度 348

11.1 I/O设备 348

11.2 I/O功能的组织 349

11.2.1 I/O功能的发展 350

11.2.2 直接存储器访问 350

11.3.1 设计目标 352

11.3.2 I/O功能的逻辑结构 352

11.3 操作系统设计问题 352

11.4 I/O缓冲 354

11.4.1 单缓冲区 354

11.4.2 双缓冲 356

11.4.3 循环缓冲 356

11.4.4 缓冲的用途 356

11.5 磁盘调度 356

11.5.1 磁盘性能参数 357

11.5.2 磁盘调度策略 359

11.6 RAID 362

11.6.1 RAID第0层 365

11.6.2 RAID第1层 365

11.6.3 RAID第2层 366

11.6.4 RAID第3层 366

11.6.5 RAID第4层 367

11.6.7 RAID第6层 368

11.7 磁盘高速缓冲 368

11.6.6 RAID第5层 368

11.7.1 设计考虑 369

11.7.2 性能考虑 370

11.8 UNIX SVR4 I/O 370

11.8.1 缓冲区高速缓存 372

11.8.2 字符队列 373

11.8.2 无缓冲I/O 373

11.8.3 UNIX设备 373

11.9 LINUX I/O 374

11.9.1 磁盘调度 374

11.9.2 Linux页面缓存 376

11.10 Windows I/O 376

11.10.1 基本I/O模块 376

11.11 小结 377

11.10.3 软件RAID 377

11.10.2 异步I/O和同步I/O 377

11.12 推荐读物和网站 378

11.13 关键术语、复习题和习题 379

附录11A 磁盘存储设备 381

第12章 文件管理 387

12.1 概述 387

12.1.1 文件和文件系统 387

12.1.2 文件结构 388

12.1.3 文件管理系统 389

12.2 文件组织和访问 391

12.2.1 堆 393

12.2.2 顺序文件 393

12.2.3 索引顺序文件 394

12.2.4 索引文件 394

12.3.2 结构 395

12.3.1 内容 395

12.3 文件目录 395

12.2.5 直接文件或散列文件 395

12.3.3 命名 397

12.4 文件共享 398

12.4.1 访问权限 398

12.4.2 同时访问 399

12.5 记录组块 399

12.6 二级存储管理 401

12.6.1 文件分配 401

12.6.2 空闲空间的管理 404

12.6.3 可靠性 406

12.7 UNIX文件管理 407

12.7.1 索引节点 407

12.7.2 文件分配 408

12.7.3 目录 409

12.8 Linux虚拟文件系统 410

12.7.4 卷结构 410

12.8.1 超级块对象 412

12.8.2 索引节点对象 413

12.8.3 目录项对象 413

12.8.4 文件对象 413

12.9 Windows文件系统 413

12.9.1 NTFS的重要特征 413

12.9.2 NTFS卷和文件结构 414

12.9.3 可恢复性 416

12.10 小结 417

12.11 推荐读物 417

12.12 关键术语、复习题和习题 418

第六部分 分布式系统和安全 421

第13章 网络 424

13.1 为什么需要网络体系结构 425

13.2 TCP/IP协议体系结构 426

13.2.2 TCP与UDP 427

13.2.1 TCP/IP层 427

13.2.3 IP和IPv6 428

13.2.3 TCP/IP操作过程 429

13.2.4 TCP/IP应用程序 431

13.3 套接字 432

13.3.1 套接字 432

13.3.2 套接字接口调用 433

13.4 Linux网络 434

13.4.1 发送数据 435

13.4.2 接收数据 436

13.5 小结 436

13.6 推荐读物和网站 437

13.7 关键术语、复习题和习题 437

附录13A 简单文件传输协议 439

14.1 客户/服务器计算模型 443

14.1.1 什么是客户/服务器计算模型 443

第14章 分布式处理、客户/服务器和集群 443

14.1.2 客户/服务模型的应用 444

14.1.3 中间件 449

14.2 分布式消息传递 451

14.2.1 可靠性与不可靠性 452

14.2.2 阻塞与无阻塞 453

14.3 远程过程调用 453

14.3.2 参数表示 454

14.3.1 参数传递 454

14.3.3 客户/服务器绑定 455

14.3.4 同步和异步 455

14.3.5 面向对象机制 455

14.4 集群 456

14.4.1 集群的配置 456

14.4.2 操作系统的设计问题 458

14.4.3 集群计算机的体系结构 459

14.5 Windows集群服务器 460

14.4.4 集群与SMP 460

14.6 Sun集群 461

14.6.1 对象和通信支持 462

14.6.2 进程管理 462

14.6.3 网络连接 462

14.6.4 全局文件系统 463

14.7 Beowulf和Linux集群 464

14.7.1 Beowulf特征 464

14.7.2 Beowulf软件 465

14.8 小结 465

14.9 推荐读物和网站 466

14.10 关键术语、复习题和习题 467

15.1.1 动机 469

15.1.2 进程迁移机制 469

第15章 分布式进程管理 469

15.1 进程迁移 469

15.1.3 迁移协商 472

15.1.4 移出 473

15.1.5 抢占式转移和非抢占式转移 474

15.2 分布式全局状态 474

15.2.1 全局状态和分布式快照 474

15.2.2 分布式快照算法 476

15.3.1 分布式互斥概念 478

15.3 分布式互斥 478

15.3.2 分布式系统中的事件排序 480

15.3.3 分布式队列 482

15.3.4 令牌传递方法 484

15.4 分布式死锁 486

15.4.1 资源分配中的死锁 486

15.4.2 消息通信中的死锁 490

15.6 推荐读物 493

15.5 小结 493

15.7 关键术语、复习题和习题 494

第16章 安全 495

16.1 安全威胁 495

16.1.1 威胁的类型 496

16.1.2 计算机系统资产 496

16.2 保护 500

16.2.1 内存的保护 501

16.2.2 面向用户的访问控制 501

16.2.3 面向数据的访问控制 502

16.3 入侵者 503

16.3.1 入侵技术 504

16.3.2 口令保护 505

16.3.3 口令选择策略 509

16.3.4 入侵检测 510

16.4.1 恶意程序 512

16.4 恶意软件 512

16.4.2 病毒的本质 515

16.4.3 病毒的类型 515

16.4.4 宏病毒 516

16.4.5 反病毒方法 517

16.4.6 电子邮件病毒 519

16.5 可信系统 519

16.5.1 特洛伊木马的防范 521

16.6 Windows安全 523

16.6.1 访问控制方案 523

16.6.2 访问令牌 523

16.6.3 安全描述符 524

16.7 小结 526

16.8 推荐读物和网站 527

16.9 关键术语、复习题和习题 528

附录16A 加密 530

A.1 互斥:软件方法 534

附录A 并发主题 534

A.2 竞争条件和信号量 538

A.3 理发店问题 543

A.4 习题 546

附录B 面向对象设计 548

B.1 动机 548

B.2 面向对象的概念 548

B.3 面向对象设计的优点 551

B.4 CORBA 551

B.5 推荐读物和网站 554

附录C 程序设计和操作系统项目 555

C.1 用于教学的操作系统项目 555

C.2 Nachos 555

C.4 程序设计项目 556

C.3 研究项目 556

C.5 阅读/报告作业 557

附录D OSP:一个操作系统项目环境 558

D.1 概述 558

D.2 OSP的创新 559

D.3 和其他操作系统课件的比较 559

附录E BACI:BEN-ARI并发程序设计系统 561

E.1 引言 561

E.2 BACI 561

E.3 BACI程序例子 563

E.4 BACI项目 567

E.5 BACI系统的增强 569

术语表 570

参考文献 577

索引 591

相关图书
作者其它书籍
返回顶部