图书介绍

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

操作系统 第3版
  • (美)加里·纳特(Gary Nutt)著;罗宇,吕硕等译 著
  • 出版社: 北京:机械工业出版社
  • ISBN:7111163788
  • 出版时间:2005
  • 标注页数:553页
  • 文件大小:62MB
  • 文件页数:572页
  • 主题词:操作系统

PDF下载


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

下载说明

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

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

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

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

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

图书目录

目录1

出版者的话1

专家指导委员会1

译者序1

前言1

第1章 导言1

1.1 计算机与软件1

1.1.1 通常的系统软件2

1.1.2 资源抽象4

示例:磁盘设备抽象5

1.1.3 资源共享6

1.1.4 虚拟机和透明资源共享6

1.1.5 显式资源共享9

1.2 操作系统策略10

1.2.2 用户的观点11

1.2.1 批处理系统11

1.2.3 批处理技术12

示例:批处理文件13

1.2.4 分时系统13

1.2.5 用户的观点14

1.2.6 分时技术14

示例:UNIX分时系统14

1.2.7 个人计算机和工作站15

1.2.8 用户的观点16

1.2.9 操作系统技术16

1.2.10 对现代操作系统技术的贡献17

示例:微软Windows操作系统家族17

1.2.11 嵌入式系统18

1.2.12 用户的观点18

1.2.13 操作系统技术18

1.2.16 用户的观点19

1.2.15 小型通信计算机19

1.2.14 对现代操作系统技术的贡献19

示例:VxWorks19

1.2.17 操作系统技术20

示例:Windows CE(Pocket PC)20

1.2.18 网络21

1.2.19 现代操作系统的起源22

1.3 小结22

1.4 习题23

第2章 使用操作系统25

2.1 程序员看到的虚拟机25

2.1.1 顺序计算25

2.1.2 多线程计算26

2.2 资源27

示例:Windows文件28

示例:POSIX文件28

2.2.1 使用文件28

2.2.2 使用其他资源30

2.3 进程和线程31

2.3.1 创建进程和线程32

2.3.2 FORK()、JOIN()和QUIT():历史的观点32

示例:使用FORK()、JOIN()和QUIT()32

2.3.3 经典的进程创建34

2.3.4 现代进程和线程的创建34

2.4 并发程序的编写34

2.4.1 多单线程进程:UNIX模型34

示例:在UNIX系统中执行命令36

2.4.2 多进程和进程中的多线程:Windows模型39

示例:创建Windows进程40

2.5 对象43

2.7 习题44

2.6 小结44

实验2.1:一个简单的shell45

实验2.2:一个多线程的应用程序50

第3章 操作系统的组织结构55

3.1 基本功能55

3.1.1 设备管理55

3.1.2 进程、线程和资源管理56

3.1.3 存储管理56

3.1.4 文件管理57

3.2 一般实现考虑57

3.2.1 性能58

3.2.2 资源独占性使用58

3.2.3 处理器模式58

3.2.4 内核59

3.2.5 请求获得操作系统服务60

3.2.6 软件模块化61

3.3 当代的操作系统内核62

3.3.1 UNIX内核63

示例:Linux64

3.3.2 Windows NT执行体和内核65

3.4 小结66

3.5 习题67

实验3.1:观察操作系统的行为67

第4章 计算机组织结构69

4.1 冯·诺依曼体系结构69

4.1.1 冯·诺依曼体系结构的发展69

4.1.2 基本思想69

4.2 中央处理单元71

4.2.1 算术逻辑运算单元71

4.2.2 控制单元72

4.3 主存储器73

4.2.3 处理器的实现73

4.4 I/O设备74

4.4.1 设备控制器75

4.4.2 直接内存访问76

4.4.3 存储映射I/O77

4.5 中断78

4.6 当代传统计算机80

4.7.1 片上系统技术83

4.7 移动计算机83

4.7.2 电源管理84

示例:Itsy移动计算机84

4.8 多处理机和并行计算机85

4.8.1 并行指令执行85

4.8.2 阵列处理机86

4.8.3 共享内存多处理机86

4.8.4 分布式存储多处理机86

4.10 习题87

4.8.5 工作站网络87

4.9 小结87

第5章 设备管理91

5.1 I/O系统91

5.1.1 设备管理器抽象91

5.1.2 在应用程序内I/O与处理器的交迭执行93

5.1.3 多个线程间的I/O-处理器交迭执行94

5.2 I/O策略94

5.2.1 使用轮询的直接I/O95

5.2.2 中断驱动I/O96

5.2.3 中断I/O与轮询I/O的性能比较97

5.3 设备管理器设计97

5.3.1 设备相关的驱动程序基础框架98

5.3.2 服务中断99

示例:Linux设备I/O100

5.4 缓冲102

5.5 不同种类设备的特征104

5.5.1 通信设备105

示例:异步串行设备106

5.5.2 顺序访问存储设备107

示例:传统磁带107

5.5.3 随机访问存储设备107

示例:磁盘108

示例:磁盘访问优化109

示例:CD-ROM和DVD111

5.6 小结112

5.7 习题112

实验5.1:软盘驱动程序113

第6章 进程、线程和资源的实现119

6.1 手边的任务119

6.1.1 经典进程的虚拟机120

6.1.2 支持现代进程和线程121

6.1.4 进程地址空间122

6.1.3 资源122

6.1.5 操作系统家族123

6.1.6 进程管理器的任务123

6.2 硬件进程124

6.3 虚拟机接口125

6.4 进程抽象127

示例:Linux进程描述表129

示例:Windows NT/2000/XP进程描述表130

6.5 线程抽象130

示例:Linux线程描述表131

示例:Windows NT/2000/XP线程描述表131

6.6 状态图132

示例:UNIX状态图133

6.7 资源管理器134

6.8.1 精化进程管理器136

6.8 概括进程管理策略136

6.8.2 专用的资源分配策略137

6.9 小结138

6.10 习题138

实验6.1:内核计时器139

实验6.2:操纵内核对象144

第7章 调度153

7.1 概述153

7.2 调度机制154

7.2.1 进程调度程序组织154

7.2.2 保存上下文154

7.2.3 自愿的CPU共享156

7.2.4 非自愿的CPU共享157

7.2.5 性能158

7.3 策略选择158

7.3.1 调度程序的特征159

7.3.2 一个调度研究模型160

示例:分解一个进程成多个小进程160

7.4 非剥夺策略161

示例:估计系统负载161

7.4.1 先来先服务162

示例:预测FCFS的等待时间163

7.4.2 最短作业优先163

7.4.3 优先级调度164

7.4.4 期限调度165

7.5 剥夺式策略166

7.5.1 轮转166

7.5.2 多级队列168

7.6 调度程序的实现169

示例:Linux调度机制170

7.7 小结171

示例:Windows NT/2000/XP中的线程调度171

示例:BSDUNIX中的调度策略171

7.8 习题172

实验7.1:分析RR调度174

第8章 基本同步原理179

8.1 协作进程179

8.1.1 临界区181

8.1.2 死锁186

8.1.3 资源共享187

8.2 经典解决办法的改进188

8.3 信号量:现代解决方法的基础189

8.3.1 操作原理190

示例:使用信号量191

8.3.2 应用中要考虑的因素195

8.6 习题199

8.5 小结199

8.4 共享存储的多处理机中的同步199

实验8.1:有限缓冲区问题202

第9章 高级同步技术与进程间通信209

9.1 可选的同步原语209

9.1.1 AND同步210

示例:使用AND同步来解决哲学家就餐问题211

9.1.2 事件211

示例:使用通用事件213

示例:Windows NT/2000/XP中的分派对象213

9.2 管程215

9.2.1 操作原理215

9.2.2 条件变量216

示例:使用管程218

9.2.3 使用管程的一些实际状况220

9.3.1 管道模型221

9.3.2 消息传递机制221

9.3 进程间通信221

9.3.3 信箱222

9.3.4 消息协议223

9.3.5 使用send()和receive()操作223

示例:同步的IPC224

9.3.6 延迟的消息拷贝225

9.4 小结225

9.5 习题225

实验9.1:使用管道227

实验9.2:精炼shell程序232

第10章 死锁235

10.1 背景235

10.1.1 死锁预防237

10.1.2 死锁避免237

10.2 一个系统死锁模型238

10.1.4 人工死锁管理238

10.1.3 死锁检测和恢复238

示例:单个资源类型239

10.3 死锁预防241

10.3.1 占有并等待241

10.3.2 循环等待242

10.3.3 允许剥夺243

10.4 死锁避免244

示例:使用银行家算法246

10.5 死锁检测和恢复247

10.5.1 顺序可重用资源248

示例:顺序可重用资源图252

10.5.2 可消费资源253

10.5.3 一般资源系统256

10.5.4 恢复257

10.6 小结257

10.7 习题257

11.1 基本知识259

第11章 存储管理259

11.2 地址空间抽象261

11.2.1 管理地址空间261

示例:静态地址绑定263

11.2.2 用于数据结构的动态存储266

11.2.3 现代存储绑定266

11.3 主存分配267

11.3.1 固定分区存储分配策略268

11.3.2 可变分区存储分配策略268

示例:移动程序的开销270

11.3.3 现代存储分配策略271

11.4 动态地址空间绑定271

11.5 现代存储管理器策略274

11.5.1 交换274

示例:使用高速缓存存储器276

11.5.2 虚拟存储器276

11.5.3 共享存储器的多处理机277

11.6 小结279

11.7 习题280

实验11.1:使用共享存储器281

第12章 虚拟存储器287

12.1 概述287

12.2 地址转换287

12.2.1 地址空间映射288

12.2.2 段式和页式289

12.3 页式290

示例:当代的页表实现293

12.4 静态页面调度算法293

12.4.1 取策略294

12.4.2 请求调页算法295

12.4.3 栈算法297

12.4.4 实现LRU298

12.4.5 页面调度性能299

12.5 动态页面调度算法300

12.5.1 驻留集算法300

示例:驻留集算法301

12.5.2 驻留集算法的实现302

示例:利用分页实现IPC303

示例:WindowsNT/2000/XP虚拟存储器304

示例:Linux虚拟存储器306

12.6 段式307

12.6.1 地址转换307

12.6.2 实现309

示例:Multics段式系统310

12.7 存储映射文件311

12.8 小结312

12.9 习题313

实验12.1:存储映射文件314

第13章 文件管理319

13.1 概述319

13.2 文件320

13.2.1 低级文件322

13.2.2 结构化文件323

13.2.3 数据库管理系统326

13.2.4 多媒体存储326

13.3 低级文件实现327

13.3.1 open()和close()操作327

示例:UNIX中的open和close操作329

13.3.2 块管理331

示例:UNIX文件结构333

示例:DOS下的FAT文件系统334

13.3.3 读、写字节流335

13.4.2 索引顺序文件337

13.4 支持高级文件抽象337

13.4.1 结构化顺序文件337

13.4.3 数据库管理系统338

13.4.4 多媒体文档338

13.5 目录338

示例:几个目录例子340

13.6 目录实现341

13.6.1 目录项341

13.6.2 打开一个文件341

13.7 文件系统342

示例:ISO9660文件系统342

13.7.1 安装文件系统343

13.7.2 异构文件系统344

13.8 小结345

13.9 习题345

实验13.1:一个简单的文件管理器347

第14章 保护和安全353

14.1 问题353

14.1.1 目标354

14.1.2 策略和机制354

14.1.3 保护和安全的上下文355

14.1.4 保护机制的开销357

14.2 认证357

14.2.1 外部用户认证357

示例:Windows NT/2000/XP用户认证359

14.2.2 内部的线程/进程认证361

14.2.3 网络中的认证361

14.2.4 软件认证363

14.3 授权364

14.3.1 特别的授权机制365

14.3.2 授权的通用模型367

14.3.3 实现安全策略369

14.3.4 实现通用的授权机制370

14.3.5 保护域370

14.3.6 访问矩阵的实现372

14.4 密码技术374

14.4.1 概述374

14.4.2 私有密钥加密技术375

14.4.3 公开密钥加密技术377

示例:PGP377

14.4.4 Internet信息发送377

14.5 小结378

14.6 习题379

第15章 网络381

15.1 从计算机通信到网络381

15.1.1 交换网络381

15.1.2 网络硬件需求382

15.1.3 网络软件需求383

15.2 ISO的OSI网络体系结构模型384

15.2.1 网络协议的演变384

15.2.2 ISO的OSI模型385

15.3 媒体访问控制(MAC)协议387

15.3.1 物理层387

示例:快速物理层388

15.3.2 数据链路层388

15.3.3 当代网络389

15.4 网络层391

15.4.1 Internet寻址392

15.4.2 路由393

15.4.3 网络层的使用394

示例:在Internet上的延迟395

15.5 传输层395

15.5.1 通信端口395

15.5.3 可靠的通信396

15.5.2 数据类型396

示例:数据报和虚电路性能397

15.6 使用传输层397

15.6.1 命名和地址397

示例:域名服务399

15.6.2 客户-服务器模型399

15.7 网络安全401

15.7.1 传输层安全:防火墙401

15.7.2 网络层安全:IPsec402

15.8 小结402

15.9 习题403

实验15.1:使用TCP/IP协议404

示例:WinSock包405

16.1 通过网络共享信息409

第16章 远程文件409

16.1.1 显式的文件复制系统411

16.1.2 无缝文件系统接口412

16.1.3 工作分布413

16.2 远程磁盘系统414

16.2.1 远程磁盘操作415

16.2.2 性能因素416

16.2.3 可靠性417

16.2.4 远程磁盘的未来419

16.3 远程文件系统419

16.3.1 通用的体系结构419

16.3.2 块高速缓存420

16.3.3 失效后的恢复422

16.4 文件级高速缓存424

16.4.1 Andrew文件系统424

16.4.2 LOCUS文件系统425

16.5.1 文件名字427

16.5 目录系统及其实现427

16.5.2 打开一个文件428

16.6 小结429

16.7 习题430

第17章 分布式计算431

17.1 分布式操作系统机制431

17.2 分布式主存433

示例:Linda程序设计语言435

17.2.1 远程存储器435

17.2.2 分布式共享存储器436

17.3 远程过程调用438

17.3.1 RPC如何工作438

17.3.2 实现RPC440

17.4 远程对象442

17.4.1 Emerald系统442

17.4.2 CORBA443

17.5 分布式进程管理444

17.4.3 Java远程对象444

17.5.1 通用的进程管理445

17.5.2 进程和线程创建445

17.5.3 调度446

17.5.4 迁移和负载平衡446

17.5.5 分布式同步447

17.6 小结450

17.7 习题451

实验17.1:使用远程过程调用452

第18章 分布式程序设计运行时系统459

18.1 用中间件来支持分布式软件459

18.2 传统的分布式应用程序459

18.3 经典分布式程序设计的中间件支持461

18.3.1 PVM461

18.3.2 Beowulf集群计算环境462

18.3.3 OSF分布式计算环境463

18.4 Web上的分布式程序设计468

18.5 移动代码的中间件支持469

18.5.1 Java和Java虚拟机469

18.5.2 ECMA-335通用语言基础设施473

18.6 小结477

18.7 习题477

第19章 设计策略479

19.1 设计考虑479

19.1.1 性能479

19.1.2 可信软件480

19.1.3 模块化480

19.1.4 可移植性482

19.2 单一内核483

示例:MS-DOS483

示例:UNIX内核483

示例:Choices——面向对象的操作系统484

19.3 模块化组织结构484

19.4 可扩展内核或微内核组织结构486

示例:Mach操作系统486

19.5 分层的组织结构491

19.6 用于分布式系统的操作系统492

19.6.1 网络操作系统492

示例:BSD UNIX493

19.6.2 分布式操作系统493

示例:CHORUS操作系统494

19.7 小结496

19.8 习题497

第20章 Linux内核499

20.1 Linux内核499

20.2 内核组织结构499

20.2.1 使用内核服务499

20.3 模块和设备管理501

20.2.4 机器中的控制流501

20.2.3 启动内核501

20.2.2 守护进程501

20.3.1 模块组织502

20.3.2 模块的安装和移除502

20.4 进程和资源管理503

20.4.1 运行进程管理器504

20.4.2 创建一个新任务504

20.4.3 IPC和同步505

20.4.4 调度程序506

20.5 存储管理器506

20.5.1 虚拟地址空间507

20.5.2 缺页处理程序509

20.6 文件管理509

20.7 小结511

第21章 Windows NT/2000/XP内核513

21.1 概述513

21.2.2 线程514

21.2 NT内核514

21.2.1 对象514

21.2.3 多处理机同步515

21.2.4 自陷、中断和异常515

21.3 NT执行体516

21.3.1 对象管理器516

21.3.2 进程和线程管理器517

21.3.3 虚拟存储管理器518

21.3.4 I/O管理器518

21.3.5 高速缓存管理器520

21.4 内核本地过程调用和IPC521

21.5 子系统522

21.6 小结523

术语表525

参考文献549

热门推荐