图书介绍

操作系统 第3版PDF|Epub|txt|kindle电子书版本网盘下载

操作系统 第3版
  • (美)Harver M. Deitel,(美)Paul J. Deitel,(美)David R. Choffnes著;施平安,江永忠,瞿中译 著
  • 出版社: 北京:清华大学出版社
  • ISBN:7302151857
  • 出版时间:2007
  • 标注页数:1331页
  • 文件大小:250MB
  • 文件页数:1373页
  • 主题词:操作系统

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快]温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页直链下载[便捷但速度慢]  [在线试读本书]   [在线获取解压码]

下载说明

操作系统 第3版PDF格式电子书版下载

下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。

建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!

(文件页数 要大于 标注页数,上中下等多册电子书除外)

注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具

图书目录

第Ⅰ部分 硬件、软件和操作系统导论5

第1章 操作系统导论5

1.1 概述7

1.2 什么是操作系统7

1.3 操作系统早期历史:20世纪40~50年代8

操作系统思想:改革9

1.4 20世纪60年代9

操作系统思想:人力和计算机资源的相对价值11

人物介绍:Ken Thompson和Dennis Ritchie12

1.5 20世纪70年代13

奇闻轶事:亚伯拉罕·林肯的技术忠告14

1.6 20世纪80年代14

人物介绍:Doug Engelbart15

1.7 Internet和万维网的发展历史16

人物介绍:Tim Berners-Lee17

1.8 20世纪90年代18

人物介绍:Linus Torvalds20

人物介绍:Richard Stallman21

1.9 2000年至今22

1.10 应用基础23

1.11 操作系统环境24

1.12 操作系统组件和目标26

1.12.1 操作系统核心组件27

1.12.2 操作系统目的28

操作系统思想:性能30

1.13 操作系统体系结构30

操作系统思想:尽量保持简单(Keep It Simple,KIS)31

奇闻轶事:系统设计师与系统工程师31

操作系统思想:体系结构32

1.13.1 单内核体系结构32

1.13.2 分层体系结构33

1.13.3 微内核体系结构34

1.13.4 网络操作系统和分布式操作系统35

第2章 硬件和软件的概念57

2.1 概述59

2.2 硬件设备的发展59

人物介绍:Gordon Moore和摩尔定律60

2.3 硬件组件62

2.3.1 主板62

2.3.2 处理器63

2.3.3 时钟65

2.3.4 存储器分级体系65

操作系统思想:高速缓存技术67

2.3.5 主存储器68

2.3.6 辅助存储器68

2.3.7 总线69

2.3.8 直接存储器存取(DMA)71

操作系统思想:遗留硬件和软件72

2.3.9 外围设备72

2.4 操作系统的硬件支持74

2.4.1 处理器74

操作系统思想:最少权限原则75

操作系统思想:保护76

奇闻轶事:Glitch这一术语的由来77

2.4.2 定时器和时钟77

2.4.3 自举78

2.4.4 即插即用79

2.5 高速缓存技术和缓冲技术79

操作系统思想:试探法81

2.6 软件概述81

2.6.1 机器语言和汇编语言81

2.6.2 解释器和编译器82

2.6.3 高级语言83

2.6.4 结构化程序设计84

2.6.5 面向对象程序设计85

2.7 应用编程接口(API)86

2.8 编译、链接和加载87

2.8.1 编译87

2.8.2 链接88

小型案例分析:Mach系统91

2.8.3 加载92

2.9 固件93

2.10 中间件94

第Ⅱ部分 进程和线程115

第3章 进程的概念115

3.1 概述117

操作系统思想:用户最终想要的应用程序117

小型案例分析:CTSS和Multics118

人物介绍:Fernando J.Corbato119

3.2 进程的状态:进程的生命周期119

3.3 进程管理120

3.3.1 进程状态和状态转换图120

3.3.2 进程控制块/进程描述符122

操作系统思想:操作系统中的数据结构123

3.3.3 进程操作124

3.3.4 挂起进程和恢复进程126

3.3.5 上下文切换127

3.4 中断129

操作系统思想:异步与同步130

3.4.1 中断处理130

3.4.2 中断类型132

3.5 进程间通信134

3.5.1 信号134

3.5.2 消息传递135

3.6 案例分析:UNIX进程136

小型案例分析:UNIX系统138

第4章 线程的概念155

4.1 概述157

操作系统思想:并发性158

4.2 线程的定义158

4.3 引入线程的动机159

操作系统思想:并行性161

4.4 线程状态:线程的生命周期161

4.5 线程操作163

4.6 线程模型164

4.6.1 用户级线程164

4.6.2 内核级线程166

操作系统思想:标准的一致性167

4.6.3 用户级和内核级组合线程168

4.7 线程实现需要考虑的问题169

4.7.1 线程信号交付170

奇闻轶事:工程172

4.7.2 线程终止172

4.8 POSIX和Pthread173

奇闻轶事:标准和一致性:插针到插针兼容性173

4.9 Linux线程175

操作系统思想:可伸缩性175

4.10 Windows XP线程177

4.11 Java多线程案例分析,第Ⅰ部分:介绍Java线程179

第5章 异步并发执行197

5.1 概述199

5.2 互斥199

5.2.1 Java多线程案例分析,第Ⅱ部分:一个Java生产者/消费者关系200

5.2.2 临界区208

5.2.3 互斥基元208

5.3 实现互斥基元209

5.4 互斥问题的软件方案210

5.4.1 Dekker算法210

奇闻轶事:为什么应该相信软件能正常工作?220

5.4.2 Peterson算法220

5.4.3 N线程互斥:Lamport的Bakery算法223

人物介绍:Leslie Lamport227

5.5 互斥问题的硬件方案228

5.5.1 禁止中断228

5.5.2 test-and-set指令229

5.5.3 swap指令231

5.6 信号量233

人物介绍:Edsger W.Dijkstra234

5.6.1 使用信号量的互斥235

5.6.2 使用信号量的线程同步236

5.6.3 计数信号量238

5.6.4 实现信号量238

奇闻轶事:不明确的要求239

第6章 并发编程257

6.1 概述259

奇闻轶事:彻底测试是不可能的260

6.2 监视器261

操作系统思想:信息隐藏262

6.2.1 条件变量262

6.2.2 用监视器来实现简单的资源分配263

人物介绍:Per Brinch Hansen264

6.2.3 监视器示例:循环缓冲区265

6.2.4 监视器示例:Reader和Writer268

6.3 Java监视器271

6.4 Java多线程案例分析,第Ⅲ部分:Java中的生产者/消费者关系272

6.5 Java多线程案例分析,第Ⅳ部分:Java中的循环缓冲区280

第7章 死锁和无限延期299

7.1 概述301

7.2 死锁的例子301

7.2.1 数据传输死锁302

奇闻轶事:单行道大桥303

7.2.2 简单资源死锁303

7.2.3 脱机打印系统中的死锁304

操作系统思想:等待、死锁和无限延期305

7.2.4 示例:就餐哲学家306

7.3 相关问题:无限延期307

7.4 资源概念308

7.5 死锁的4个必要条件309

7.6 死锁解决方案310

7.7 死锁预防310

奇闻轶事:不允许螺母、螺栓和螺钉311

7.7.1 杜绝“等待”条件311

7.7.2 杜绝“不可抢占”条件313

7.7.3 杜绝“循环等待”条件313

7.8 使用Dijkstra的银行家算法来避免死锁315

奇闻轶事:缩写词317

7.8.1 安全状态的例子317

7.8.2 非安全状态的例子318

7.8.3 安全状态变成非安全状态的例子319

7.8.4 银行家算法资源分配319

7.8.5 银行家算法的缺点320

7.9 死锁检测321

7.9.1 资源分配图321

7.9.2 缩减资源分配图322

7.10 死锁恢复324

7.11 当前和未来系统中的死锁策略326

第8章 处理器调度345

8.1 概述347

8.2 调度级别347

8.3 可抢占与不可抢占调度的对比349

操作系统思想:开销350

8.4 优先级351

8.5 调度目标351

操作系统思想:可预测性352

操作系统思想:公平性353

8.6 调度标准353

8.7 调度算法355

8.7.1 先入先出(FIFO)调度355

8.7.2 轮流(RR)调度356

8.7.3 最短进程优先(SPF)调度358

8.7.4 最高响应比优先(HRRN)调度359

8.7.5 最短剩余时间优先(SRT)调度360

8.7.6 多级反馈队列361

8.7.7 公平共享调度364

8.8 截止期调度366

操作系统思想:资源管理强度与相对资源价值的对比367

8.9 实时调度367

小型案例分析:实时操作系统369

8.10 Java线程调度369

第Ⅲ部分 物理和虚拟内存393

第9章 实内存组织和管理393

9.1 概述395

9.2 内存组织395

操作系统思想:对处理能力、内存、存储和带宽的追求是无止境的396

9.3 内存管理397

9.4 内存层次结构397

9.5 内存管理策略399

9.6 连续性和非连续性内存分配400

9.7 单用户连续性内存分配400

9.7.1 叠加401

9.7.2 单用户系统中的保护402

9.7.3 单流批处理404

操作系统思想:改变是规则,而不是例外404

9.8 固定分区多道程序设计405

奇闻轶事:分割408

操作系统思想:空间资源和碎片化409

9.9 可变分区多道程序设计409

9.9.1 可变分区的特征410

9.9.2 内存安置策略413

9.10 使用内存交换的多道程序设计414

第10章 虚拟内存组织431

10.1 概述433

小型案例分析:Atlas433

操作系统思想:虚拟化434

人物介绍:Peter Denning435

10.2 虚拟内存:基本概念435

奇闻轶事:虚拟内存不必要436

10.3 块映射439

10.4 分页441

10.4.1 分页地址转换之直接映射技术444

10.4.2 分页地址转换之关联映射技术445

10.4.3 分页地址转换之直接/联想映射技术446

操作系统思想:经验结果:基于局部性的直观推断447

10.4.4 多级页表449

10.4.5 反向页表451

10.4.6 分页系统中的共享453

操作系统思想:缓式分配455

10.5 分段456

10.5.1 分段地址转换之直接映射457

10.5.2 分段系统中的共享459

10.5.3 分段系统中的保护和访问控制460

10.6 分段/分页系统464

10.6.1 分段/分页系统中的动态地址转换464

10.6.2 分段/分页系统中的共享和保护467

10.7 案例分析:IA-32 Intel构架虚拟内存468

小型案例分析:IBM大型机操作系统471

小型案例分析:VM操作系统的早期历史472

第11章 虚拟内存管理495

11.1 概述497

11.2 局部性497

11.3 请求分页498

操作系统思想:操作系统中的计算机理论500

操作系统思想:空间-时间折中500

11.4 先行分页技术501

11.5 页替换502

11.6 页替换策略503

11.6.1 随机页替换503

11.6.2 先入先出(FIFO)页替换504

11.6.3 FIFO异常505

11.6.4 最近最少使用(LRU)的页替换策略506

11.6.5 最少使用(LFU)的页替换策略508

11.6.6 最近不用的先淘汰(NUR)页替换策略508

11.6.7 FIFO变型:二次机会页替换和时钟页替换510

11.6.8 最远的页先淘汰替换策略510

11.7 工作集模型512

11.8 缺页错误频率(PFF)页替换516

11.9 页释放517

11.10 页大小517

11.11 分页模式下的程序行为519

11.12 全局页替换与局部页替换521

11.13 案例分析:Linux页替换策略522

第Ⅳ部分 辅助存储器、文件和数据库545

第12章 磁盘性能优化545

12.1 概述547

12.2 辅助存储器的演变547

12.3 活动臂磁盘存储器的特征548

12.4 磁盘调度的必要性550

12.5 磁盘调度策略551

12.5.1 先到先服务(FCFS)磁盘调度策略553

12.5.2 最短寻道时间优先(SSTF)磁盘调度554

奇闻轶事:每个问题都有解决方案,每个解决方案都有问题555

12.5.3 SCAN磁盘调度555

12.5.4 C-SCAN磁盘调度556

12.5.5 FSCAN和N-Step SCAN磁盘调度557

12.5.6 LOOK和C-LOOK磁盘调度559

12.6 旋转优化560

12.6.1 SLTF调度560

12.6.2 SPTF和SATF调度561

12.7 系统考虑563

操作系统思想:饱和与瓶颈564

12.8 高速缓存和缓冲565

12.9 其他的磁盘性能优化技术566

操作系统思想:压缩和解压567

操作系统思想:冗余技术568

12.10 独立磁盘冗余阵列(RAID)569

12.10.1 RAID概述569

操作系统思想:任务关键系统570

操作系统思想:容错571

12.10.2 第0级(带区集)572

12.10.3 第1级(镜像)573

12.10.4 第2级(位级汉明纠错码奇偶校验)574

12.10.5 第3级(位级异或纠错码奇偶校验)576

12.10.6 第4级(块级异或纠错码奇偶校验)578

12.10.7 第5级(块级分布式异或纠错码奇偶校验)579

第13章 文件和数据库系统605

13.1 概述607

13.2 数据层次结构607

13.3 文件608

13.4 文件系统609

操作系统思想:加密和解密610

13.4.1 目录611

13.4.2 元数据615

13.4.3 安装616

13.5 文件组织618

13.6 文件分配618

13.6.1 连续文件分配619

13.6.2 链表式非连续文件分配620

13.6.3 表格式非连续文件分配621

小型案例分析:MS-DOS623

13.6.4 索引非连续文件分配624

13.7 空闲空间管理627

13.8 文件访问控制628

操作系统思想:安全性629

13.8.1 访问控制矩阵629

13.8.2 用户级访问控制630

13.9 数据访问技术631

13.10 数据完整性保护632

13.10.1 备份和恢复632

操作系统思想:备份和恢复632

13.10.2 数据完整性和基于日志的文件系统633

操作系统思想:墨菲法则和健壮系统634

13.11 文件服务器和分布式系统637

13.12 数据库系统637

13.12.1 数据库系统的优点638

13.12.2 数据访问638

13.12.3 关系数据库模型639

13.12.4 操作系统和数据库系统641

第Ⅴ部分 性能、处理器和多处理器管理665

第14章 性能和处理器设计665

14.1 概述667

14.2 影响性能问题的重要趋势667

14.3 为什么性能监督和评估是必需的668

14.4 性能指标669

14.5 性能评估技术671

14.5.1 tracing和profiling671

14.5.2 计时和微基准程序672

14.5.3 特定应用程序的评估673

14.5.4 分析模型674

14.5.5 基准程序675

14.5.6 复合程序676

14.5.7 仿真677

14.5.8 性能监督678

14.6 瓶颈和饱和679

14.7 反馈循环680

14.7.1 负反馈680

14.7.2 正反馈681

14.8 处理器设计中的性能技术681

14.8.1 复杂指令集计算(CISC)682

14.8.2 精简指令集计算(RISC)683

14.8.3 Post-RISC处理器686

14.8.4 显式并行指令计算(EPIC)688

第15章 多处理器管理711

15.1 概述713

小型案例分析:超级计算机713

人物介绍:Seymour Cray714

15.2 多处理器构架715

15.2.1 顺序和并行执行构架分类715

15.2.2 处理器互连机制716

15.2.3 松散耦合系统与紧密耦合系统722

15.3 多处理器操作系统组织723

15.3.1 主/从结构723

15.3.2 独立内核724

15.3.3 对称结构725

操作系统思想:适当地降低性能(Graceful Degradation)726

15.4 存储器访问构架726

15.4.1 均匀的内存访问727

15.4.2 非均匀的内存访问728

15.4.3 全高速缓存存储构架729

15.4.4 非远程存储访问730

15.5 多处理器内存共享731

操作系统思想:数据复制和一致性732

15.5.1 高速缓存一致性732

15.5.2 页复制和迁移733

15.5.3 共享虚拟内存734

15.6 多处理器调度736

15.6.1 不知道作业的多处理器调度738

15.6.2 知道作业的多处理器调度739

15.7 进程迁移742

15.7.1 进程迁移步骤742

15.7.2 进程迁移概念744

15.7.3 进程迁移策略745

15.8 负载平衡746

15.8.1 静态负载平衡747

15.8.2 动态负载平衡748

15.9 多处理器互斥751

15.9.1 旋锁751

15.9.2 休眠/唤醒锁752

15.9.3 读/写锁753

第Ⅵ部分 联网和分布式计算781

第16章 联网概论781

16.1 概述783

16.2 网络拓扑783

小型案例分析:Symbian OS786

16.3 网络类型786

16.4 TCP/IP协议堆栈787

16.5 应用层788

16.5.1 超文本传输协议(HTTP)789

16.5.2 文件传输协议(FTP)790

16.6 传输层790

奇闻轶事:不可靠的通信线路可能带来麻烦791

16.6.1 传输控制协议(TCP)792

16.6.2 用户数据文报协议(UDP)793

16.7 网络层793

16.7.1 Internet协议(IP)794

16.7.2 IPv6795

16.8 链路层796

16.8.1 Ethernet796

16.8.2 令牌环797

16.8.3 光纤分布式数据接口(FDDI)799

16.8.4 IEEE 802.11(无线)799

16.9 客户/服务器模型800

第17章 分布式系统入门817

17.1 概述819

17.2 分布式系统的特点820

17.2.1 性能和伸缩性820

17.2.2 连接性和安全性820

17.2.3 可靠性和容错性821

17.2.4 透明性821

17.2.5 网络操作系统823

17.2.6 分布式操作系统823

17.3 分布式系统中的通信823

17.3.1 中间件824

奇闻轶事:发生错误的后果825

17.3.2 远程过程调用(RPC)825

17.3.3 远程方法调用(RMI)826

17.3.4 CORBA827

17.3.5 DCOM828

17.3.6 分布式系统中的进程迁移828

17.4 分布式系统中的同步829

17.5 分布式系统中的互斥830

17.5.1 没有共享内存的互斥830

17.5.2 Agrawala和Ricart的分布式互斥算法831

17.6 分布式系统中的死锁832

17.6.1 分布式死锁832

17.6.2 死锁预防833

17.6.3 死锁检测834

17.6.4 一个分布式资源死锁检测算法835

17.7 案例分析:Sprite分布式操作系统837

17.8 案例分析:Amoeba分布式操作系统838

第18章 分布式系统和Web服务853

18.1 概述855

18.2 分布式文件系统855

18.2.1 分布式文件系统的概念855

18.2.2 网络文件系统(NFS)857

18.2.3 Andrew文件系统(AFS)859

18.2.4 Coda文件系统861

18.2.5 Sprite文件系统864

18.3 多计算机系统867

18.4 群集868

18.4.1 群集类型869

18.4.2 群集的优势869

18.4.3 群集的例子870

18.5 对等分布式计算872

18.5.1 客户/服务器和对等应用程序872

18.5.2 集中式和分散式P2P应用程序873

18.5.3 Peer发现与搜索875

18.5.4 JXTA876

18.6 网格计算877

18.7 Java分布式计算878

18.7.1 Java Servlet和JavaServer Page(JSP)878

18.7.2 Jini880

18.7.3 JavaSpaces882

18.7.4 Java管理扩展(JMX)884

18.8 Web服务885

18.8.1 Microsoft.NET平台886

18.8.2 Sun Microsystems和Sun ONE平台887

第Ⅶ部分 安全性911

第19章 安全性911

19.1 概述914

操作系统思想:伦理系统设计914

19.2 加密技术915

19.2.1 秘密密钥加密技术916

19.2.2 公钥加密技术919

人物介绍:Rivest,Shamir和Adleman921

19.3 认证922

19.3.1 基础认证922

19.3.2 生物特征和智能卡924

19.3.3 Kerberos925

19.3.4 单一登录926

19.4 访问控制927

19.4.1 访问权和保护域927

19.4.2 访问控制模型和策略928

19.4.3 访问控制机制929

19.5 安全性攻击932

19.5.1 密码分析932

19.5.2 病毒和蠕虫932

19.5.3 拒绝服务(DoS)攻击934

19.5.4 软件漏洞935

19.5.5 系统渗透936

19.6 预防攻击和安全性解决方案937

19.6.1 防火墙937

19.6.2 入侵检测系统(IDS)938

19.6.3 反病毒软件939

19.6.4 安全性补丁941

小型案例分析:OpenBSD942

小型案例分析:Macintosh943

19.6.5 安全的文件系统944

19.6.6 橘皮书安全性945

19.7 安全通信946

19.8 密钥协定协议946

19.8.1 密钥管理947

19.8.2 数字签名948

19.9 公钥基础设施、证书和证书授权机构949

19.10 安全通信协议951

19.10.1 安全套接层(SSL)951

19.10.2 虚拟专用网和IP安全性952

19.10.3 无线安全性953

19.11 隐写术954

19.12 所有权和开放源码安全性955

19.13 案例分析:UNIX系统安全性956

第Ⅷ部分 操作系统案例分析985

第20章 案例分析:Linux985

20.1 概述988

20.2 发展史988

20.3 Linux概述990

20.3.1 发展和团体990

20.3.2 分发991

20.3.3 用户界面992

20.3.4 标准992

20.4 内核体系结构993

20.4.1 硬件平台994

小型案例分析:用户模式的Linux995

20.4.2 可加载的内核模块996

20.5 进程管理997

20.5.1 进程和线程组织997

20.5.2 进程调度999

20.6 内存管理1004

20.6.1 内存组织1004

20.6.2 物理内存分配和释放1009

20.6.3 页面替换1010

20.6.4 交换1012

20.7 文件系统1013

20.7.1 虚拟文件系统1013

20.7.2 虚拟文件系统高速缓存1016

20.7.3 第2扩展文件系统1018

20.7.4 过程文件系统1022

20.8 输入/输出管理1024

20.8.1 设备驱动程序1024

20.8.2 字符设备输入/输出1026

20.8.3 块设备输入/输出1027

20.8.4 网络设备输入/输出1030

20.8.5 统一设备模型1031

20.8.6 中断1033

20.9 内核同步1035

20.9.1 自旋锁1035

20.9.2 阅读程序/写程序锁1036

20.9.3 顺序锁1036

20.9.4 内核信号量1037

20.10 进程间的通信1038

20.10.1 信号1038

20.10.2 管道1039

20.10.3 套接字1040

20.10.4 消息队列1041

20.10.5 共享内存1042

20.10.6 系统V信号量1043

20.11 联网技术1044

20.11.1 数据包处理1044

20.11.2 网络过滤器框架和异常分支1045

20.12 可伸缩性1046

20.12.1 对称多处理(SMP)1047

20.12.2 非均衡内存访问1047

20.12.3 其他的可伸缩性功能1048

20.12.4 嵌入式Linux1049

20.13 安全性1049

20.13.1 认证1050

20.13.2 访问控制方法1050

20.13.3 加密技术1051

第21章 案例分析:Windows XP1077

21.1 概述1080

21.2 历史1080

人物介绍:比尔·盖茨(Bill Gates)1081

人物介绍:大卫·卡特勒1083

小型案例分析:OS/21084

21.3 设计目标1084

21.4 系统体系结构1085

21.5 系统管理机制1087

21.5.1 注册表1087

21.5.2 对象管理器1088

21.5.3 中断请求级(IRQL)1089

21.5.4 异步过程调用(APC)1091

21.5.5 延迟过程调用(DPC)1092

21.5.6 系统线程1093

21.6 进程和线程管理1093

21.6.1 进程和线程结构1093

21.6.2 线程调度1096

21.6.3 线程同步1099

21.7 内存管理1104

21.7.1 内存组织1104

21.7.2 内存分配1106

21.7.3 页面替换1109

21.8 文件系统管理1111

21.8.1 文件系统驱动程序1111

21.8.2 NTFS1112

21.9 输入/输出管理1117

21.9.1 设备驱动程序1118

21.9.2 输入/输出处理1120

21.9.3 中断处理1124

21.9.4 文件高速缓存管理1125

21.10 进程间的通信1126

21.10.1 管道1126

21.10.2 mailslot控件1128

21.10.3 共享内存1128

21.10.4 本地和远程过程调用1129

21.10.5 组件对象模型(COM)1131

21.10.6 拖放式和复合文档1132

21.11 联网技术1133

21.11.1 网络输入/输出1133

21.11.2 网络驱动程序体系结构1135

21.11.3 网络协议1136

21.11.4 网络服务1138

21.11.5 .NET1138

21.12 可伸缩性1139

21.12.1 对称多处理(SMP)1139

21.12.2 嵌入式Windows XP1140

21.13 安全性1141

21.13.1 认证1141

21.13.2 授权1142

21.13.3 Internet连接防火墙1143

21.13.4 其他功能部件1144

术语表1187

索引1279

第Ⅰ部分 硬件、软件和操作系统导论5

第1章 操作系统导论5

图1-1 应用程序与操作系统之间的交互24

图1-2 虚拟机示意图26

图1-3 单内核操作系统体系结构33

图1-4 THE操作系统的层34

图1-5 微内核操作系统体系结构35

图1-6 客户机/服务器网络操作系统模型36

第2章 硬件和软件的概念57

图2-1 Intel处理器中晶体管数量与时间的关系61

图2-2 处理器组件64

图2-3 存储器分级体系66

图2-4 直接存储器存取(DMA)71

图2-5 外围设备73

图2-6 自举78

图2-7 应用编程接口86

图2-8 编译阶段88

图2-9 目标模块89

图2-10 链接过程89

图2-11 符号解析90

图2-12 加载92

图2-13 编译、链接和加载93

第Ⅱ部分 进程和线程115

第3章 进程的概念115

图3-1 进程状态转换121

图3-2 进程表和进程控制块123

图3-3 进程创建的层次结构125

图3-4 Linux操作系统中的进程层次结构125

图3-5 包括挂起状态和恢复状态的进程状态转换126

图3-6 上下文切换128

图3-7 处理中断131

图3-8 Intel IA-32体系结构所识别的常见的中断类型132

图3-9 Intel IA-32异常类型133

图3-10 UNIX系统调用137

图3-11 练习4的代码145

第4章 线程的概念155

图4-1 线程与进程的关系159

图4-2 线程的生命周期162

图4-3 用户级线程165

图4-4 内核级线程166

图4-5 组合线程模型168

图4-6 信号屏蔽171

图4-7 Linux系统任务状态转换图176

图4-8 Windows XP线程状态转换图178

图4-9 Java线程的创建、启动、睡眠和显示(1/2)180

图4-9 Java线程的创建、启动、睡眠和显示(2/2)181

第5章 异步并发执行197

图5-1 生产者/消费者例子中使用的Buffer接口202

图5-2 Producer类代表生产者/消费者关系中的生产者线程202

图5-3 Consumer类代表生产者/消费者关系中的消费者线程203

图5-4 UnsynchronizedBuffer类实现了Buffer接口,并声明要由Producer和Consumer共享的变量buffer204

图5-5 SharedBufferTest类包含main方法,它负责启动应用程序205

图5-6 互斥实现——版本1211

图5-7 互斥实现——版本2213

图5-8 互斥实现——版本3214

图5-9 互斥实现——版本4215

图5-10 正确解决互斥问题的Dekker算法217

图5-11 Peterson互斥算法220

图5-12 Lamport的Bakery算法224

图5-13 用于互斥的testAndSet指令230

图5-14 用于互斥的swap指令232

图5-15 使用信号量的互斥235

图5-16 使用信号量来实现的生产者/消费者关系236

图5-17 练习5.5的代码244

图5-18 用于练习5.16(a)的新的互斥基元245

图5-19 用于练习5.16(b)的代码245

图5-20 练习5.8的算法246

第6章 并发编程257

图6-1 资源分配监视器263

图6-2 伪代码监视器实现循环缓冲区266

图6-3 用于解决reader和writer问题的监视器伪代码268

图6-4 SynchronizedBuffer负责同步对一个共享整数的访问273

图6-5 通过同步机制来修改一个共享对象的线程277

图6-6 CircularBuffer控制对一个共享整数数组的访问281

图6-7 CircularBufferTest类实例化生产者和消费者线程285

第7章 死锁和无限延期299

图7-1 交通死锁的例子302

图7-2 资源死锁示例:这个系统已经死锁,因为每个进程都持有另一个进程需要的资源,但两个进程都不愿释放它所持有的资源304

图7-3 就餐哲学家行为306

图7-4 eat方法的实现306

图7-5 Havender提出的预防死锁的资源线性顺序方案314

图7-6 安全状态317

图7-7 非安全状态318

图7-8 安全状态变成了非安全状态319

图7-9 3个进程的状态描述320

图7-10 资源分配和请求图322

图7-11 通过缩减资源分配图,证明不存在死锁323

图7-12 练习7.9的典型哲学家行为332

图7-13 练习7.9(a)的哲学家行为332

图7-14 练习7.9(b)的哲学家行为332

图7-15 练习7.9(c)的哲学家行为333

图7-16 练习7.9(d)的哲学家行为333

图7-17 状态A的资源描述335

图7-18 状态B的资源描述335

图7-19 系统状态(当前loan、最大需求和当前claim)336

图7-20 系统状态(资源总数和可用资源数)336

图7-21 处于非安全状态的一个系统的例子337

第8章 处理器调度345

图8-1 调度级别348

图8-2 先入先出调度355

图8-3 轮流调度356

图8-4 多级反馈队列362

图8-5 标准UNIX进程调度程序。调度程序将处理器分配给用户,每个用户都可能有多个进程(AT&T Archives专利,使用已获AT&T许可)365

图8-6 公平共享调度程序。公平共享调度程序将系统资源划分为不同的部分,然后由进程调度程序分配给各个公平共享组(AT&T Archives专利,使用已获AT&T许可)365

图8-7 Java线程优先级调度371

第Ⅲ部分 物理和虚拟内存393

第9章 实内存组织和管理393

图9-1 Microsoft Windows操作系统的内存需求396

图9-2 层次化内存组织398

图9-3 单用户连续性内存分配401

图9-4 叠加结构402

图9-5 单用户连续性内存分配系统中的内存保护403

图9-6 单用户系统上的处理器使用情况(注意:在许多单用户作业中,与图中显示的相比,I/O等待时间要比处理器使用时间长得多)405

图9-7 使用绝对翻译和加载的固定分区多道程序设计406

图9-8 采用绝对翻译和加载的固定分区多道程序设计系统的内存浪费示意图406

图9-9 采用可重定位翻译和加载技术的固定分区多道程序设计407

图9-10 连续分配多道程序设计系统的内存保护407

图9-11 固定分区多道程序设计系统中的内部碎片化问题408

图9-12 可变分区多道程序设计的初始分区410

图9-13 可变分区多道程序设计中的内存“洞”411

图9-14 在可变分区多道程序设计中对内存洞进行合并411

图9-15 可变分区多道程序设计中的内存压缩412

图9-16 First-fit,Best-fit和Worst-fit内存安置策略414

图9-17 交换系统中的多道程序设计,每次只能有一个进程驻留在主内存中415

第10章 虚拟内存组织431

图10-1 内存组织的演变434

图10-2 二级存储结构436

图10-3 内存和辅助存储器中存在的各种地址空间437

图10-4 虚拟地址映射到真实地址438

图10-5 假邻近438

图10-6 块映射系统中虚拟地址格式439

图10-7 用块映射进行虚拟地址转换440

图10-8 纯分页系统下的虚拟地址格式441

图10-9 主存被分成页帧441

图10-10 在一个纯分页系统中的虚拟内存地址和物理内存地址间的对应关系442

图10-11 页表项443

图10-12 分页地址转换之直接映射技术444

图10-13 分页地址转换之纯联想映射技术445

图10-14 分页地址转换之联想/直接组合映射法448

图10-15 多级页地址转换450

图10-16 使用反向页表的页地址转换452

图10-17 使用散列锚表的反向页表453

图10-18 纯分页系统中的共享454

图10-19 真实内存分段系统中不连续的内存分配456

图10-20 纯分段系统中的虚拟内存格式457

图10-21 纯分段系统中的虚拟地址转换458

图10-22 分段映射表表项459

图10-23 纯分段系统中的共享460

图10-24 非连续内存分配多道程序设计系统中的内存保护键461

图10-25 访问控制类型462

图10-26 组合读、写和执行访问以产生有用的访问控制模式462

图10-27 带保护位的分段映射表项463

图10-28 分段/分页系统中的虚拟地址格式464

图10-29 在一个分段/分页系统中,使用组合的联想/直接映射技术的虚拟地址转换465

图10-30 分段/映射系统的映射表结构466

图10-31 在分段/映射系统中两个进程共享一个分段468

图10-32 虚拟机多道程序设计474

第11章 虚拟内存管理495

图11-1 请求分页系统下的空间-时间积499

图11-2 先进先出(FIFO)页替换504

图11-3 FIFO异常——缺页错误数可能随页帧分配而增加506

图11-4 最近最少使用的(LRU)页替换策略507

图11-5 NUR策略下的页分类509

图11-6 最远的页先淘汰替换策略的访问图511

图11-7 存储器的引用模式展示了局部性512

图11-8 缺页率取决于一个进程的所有页可用的内存量513

图11-9 进程的所引用页的工作集的定义514

图11-10 工作集大小作为窗口大小的函数514

图11-11 工作集内存管理下的主存分配515

图11-12 在一个分页/分段组合系统中的内部碎片518

图11-13 各种处理器构架中的页尺寸519

图11-14 一个进程的所有页随时间的变化被引用的百分比520

图11-15 缺页错误间隔时间与分配给一个进程的页帧数的关系521

图11-16 Linux页替换策略综述523

第Ⅳ部分 辅助存储器、文件和数据库545

第12章 磁盘性能优化545

图12-1 活动臂磁盘存储器的侧视图548

图12-2 硬磁盘的寻道时间和延迟时间549

图12-3 盘面的顶视图549

图12-4 磁盘存取过程的组成550

图12-5 磁盘请求模式552

图12-6 FCFS策略下的寻道模式553

图12-7 SSTF策略下的寻道模式554

图12-8 SCAN策略下的寻道模式556

图12-9 C-SCAN策略下的寻道模式557

图12-10 FSCAN策略下的寻道模式558

图12-11 N-Step SCAN策略下的寻道模式(n=3)558

图12-12 LOOK策略下的寻道模式559

图12-13 寻道优化策略总结560

图12-14 SLTF调度。请求将以指示的顺序得到服务,而不管它们到达的先后顺序561

图12-15 SPTF(a)和SATF(b)磁盘调度实例562

图12-16 根据RAID系统中的单个文件创建的带区(strip)和带区集(stripe)569

图12-17 第0级RAID(带区集)572

图12-18 第1级RAID(镜像)573

图12-19 第2级RAID(位级汉明纠错码奇偶校验)576

图12-20 第3级RAID(位级、单个奇偶校验磁盘)577

图12-21 第4级RAID(块级奇偶校验)578

图12-22 第5级RAID(块级分布式奇偶校验)580

图12-23 第0~5级RAID比较580

第13章 文件和数据库系统605

图13-1 目录文件内容示例611

图13-2 二级分层文件系统612

图13-3 分层文件系统的目录示例613

图13-4 文件系统中的链接614

图13-5 安装一个文件系统617

图13-6 链表式非连续文件分配621

图13-7 表式非连续文件分配622

图13-8 索引块链接625

图13-9 Inode结构626

图13-10 使用空闲表的空闲空间管理627

图13-11 使用位图的空闲空间管理628

图13-12 访问控制矩阵630

图13-13 基于日志的文件系统636

图13-14 关系数据库中的一个关系640

图13-15 通过投影形成的关系640

图13-16 SQL查询640

第Ⅴ部分 性能、处理器和多处理器管理665

第14章 性能和处理器设计665

图14-1 性能评估技术概括679

图14-2 IBM的System/370构架上10个最常执行的指令(经IBM公司授权刊登)684

图14-3 RISC和CISC设计对比685

图14-4 (a)EPIC处理器中的指令执行,(b)post-RISC处理器中的指令执行689

第15章 多处理器管理711

图15-1 共享总线多处理器组织717

图15-2 纵横开关矩阵多处理器组织718

图15-3 4向连接的二维网状网络719

图15-4 三维超立方体和四维超立方体720

图15-5 多级基准网络721

图15-6 紧密耦合系统722

图15-7 松散耦合系统722

图15-8 主/从多处理结构724

图15-9 UMA多处理器727

图15-10 NUMA多处理器728

图15-11 COMA多处理器729

图15-12 NORMA多处理器730

图15-13 一起调度算法(未分版本)740

图15-14 动态分割调度算法741

图15-15 进程迁移743

图15-16 使用图表示的静态负载平衡747

图15-17 处理器负载扩散749

第Ⅵ部分 联网和分布式计算781

第16章 联网概论781

图16-1 网络拓扑784

图16-2 FTP命令790

图16-3 通过令牌环协议来发送一条消息798

图16-4 三层客户/服务器模型801

第17章 分布式系统入门817

图17-1 RPC通信模型826

图17-2 wound-wait策略833

图17-3 wait-die策略834

图17-4 无死锁的系统836

图17-5 出现了死锁的系统836

图17-6 消除死锁之后的系统837

第18章 分布式系统和Web服务853

图18-1 NFS构架858

图18-2 AFS结构860

图18-3 Coda卷结构862

图18-4 互斥AVSG中的文件一致性问题863

图18-5 Sprite文件系统的域864

图18-6 Sprite文件系统中的读取和写入865

图18-7 典型的Beowulf群集870

图18-8 使用共享存储的高可用性群集871

图18-9 使用本地存储的高可用性群集871

图18-10 具有32个结点的负载平衡群集872

图18-11 集中式P2P即时通信应用程序873

图18-12 纯P2P即时通信应用程序874

图18-13 常见P2P应用874

图18-14 JXTA低级协议877

图18-15 Jini构架881

图18-16 使用JavaSpaces的分布式图像处理应用程序883

图18-17 JMX的三层管理构架884

图18-18 含有6个peer的P2P系统897

第Ⅶ部分 安全性911

第19章 安全性911

图19-1 用秘密密钥来加密和解密信息917

图19-2 密钥分配中心分配会话密钥917

图19-3 使用公钥加密技术加密和解密信息919

图19-4 用公钥算法认证920

图19-5 口令加码法(基于64位编码)923

图19-6 一小组主体和客体的访问控制矩阵930

图19-7 来源于访问控制矩阵的访问控制列表930

图19-8 多态病毒940

图19-9 创建数字信封947

第Ⅷ部分 操作系统案例分析985

第20章 案例分析:Linux985

图20-1 Linux体系结构994

图20-2 任务状态转换图998

图20-3 调度程序优先级阵列1000

图20-4 优先值和它们相应的交互性等级1002

图20-5 页表组织1005

图20-6 内核虚拟地址空间映射1006

图20-7 在IA-32 Intel体系结构上的物理内存区1008

图20-8 free_area向量1009

图20-9 页面替换系统概观1011

图20-10 VFS、文件系统和数据之间的关系1014

图20-11 一个特定的/home目录的目录条目组织1015

图20-12 VFS文件和索引节点操作1016

图20-13 目录条目和索引节点高速缓存1017

图20-14 ext2索引节点内容1019

图20-15 块组1020

图20-16 组描述符1021

图20-17 目录结构1021

图20-18 /proc目录的内容实例1023

图20-19 /proc/devices文件内容1024

图20-20 输入/输出接口层1025

图20-21 chrdevs向量1026

图20-22 块输入/输出子系统中的层1027

图20-23 统一设备模型组织1032

图20-24 POSIX信号1038

图20-25 系统V共享内存系统调用1042

图20-26 网络子系统所接收的网络数据包经过的路径1045

图20-27 网络过滤异常分支1046

图20-28 回送设备使用加密的API而提供的一个加密的文件系统1052

第21章 案例分析:Windows XP1077

图21-1 Windows XP系统体系结构1086

图21-2 中断请求级(IRQL)1090

图21-3 线程状态转换图1097

图21-4 Windows XP中的调度程序对象1101

图21-5 虚拟地址转换1105

图21-6 页状态1105

图21-7 内存分配步骤1107

图21-8 页帧状态1108

图21-9 页面替换过程1110

图21-10 样本文件的主文件表1113

图21-11 存储在B树中的目录内容1114

图21-12 Windows XP I/O支持组件1117

图21-13 I/O请求包1121

图21-14 Windows XP中的主要功能代码示例1121

图21-15 IRP的服务过程1122

图21-16 LPC或RPC调用的流程1130

图21-17 处理一个网络I/O请求1134

图21-18 网络驱动程序体系结构1136

图21-19 在一个Windows XP网络中的认证过程1142

热门推荐