当前位置:首页 > 工业技术
操作系统现代观点
操作系统现代观点

操作系统现代观点PDF电子书下载

工业技术

  • 电子书积分:16 积分如何计算积分?
  • 作 者:(美)Gary Nutt著;孟祥山,晏益慧译
  • 出 版 社:北京:机械工业出版社
  • 出版年份:2004
  • ISBN:711113530X
  • 页数:508 页
图书介绍:本书是一本介绍操作系统的优秀高校教材。
《操作系统现代观点》目录

目录 1

出版者的话 1

专家指导委员会 1

译者序 1

前言 1

第1章 导言 1

1.1 计算机与软件 1

1.1.1 通常的系统软件 2

1.1.2 资源抽象 2

示例:磁盘设备抽象 3

1.1.3 资源共享 4

1.2 操作系统策略 6

1.1.4 没有系统软件的计算机 6

性能改善:多道程序系统 7

1.2.1 批处理系统 7

示例:批处理文件 9

1.2.2 分时系统 10

1.2.3 个人计算机和工作站 12

1.2.4 过程控制和实时系统 13

1.2.5 网络 14

1.2.6 当代操作系统的起源 14

示例:Linux的发展 15

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

1.3 小结 18

1.4 习题 19

2.2 资源 21

第2章 使用操作系统 21

2.1 计算的抽象模型 21

2.2.1 文件 22

示例:POSIX文件 22

示例:Windows文件 23

2.2.2 其他资源 26

2.3 进程 26

2.3.1 创建进程 28

示例:使用FORK、JOIN和QUIT 29

示例:UNIX中创建进程 30

示例:Windows中创建进程 32

2.4 线程 33

2.5 对象 35

示例:C线程 35

2.6 小结 36

2.7 习题 36

实验:Shell程序 37

实验:一个多线程的Windows控制台应用程序 42

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

3.1 OS设计中的要素 51

3.1.1 性能 51

3.1.2 保护和安全 52

3.1.3 正确性 52

3.1.4 可维护性 53

3.1.5 商业化因素对操作系统的影响 53

3.2 基本功能 54

3.1.6 标准和开放系统 54

3.2.2 进程和资源管理 55

3.2.3 存储管理 55

3.2.1 设备管理 55

3.2.4 文件管理 56

3.2.5 功能模块组织结构 56

3.3 基本实现需考虑的因素 57

3.3.1 处理机模式 57

3.3.2 内核 58

3.3.3 请求获得操作系统服务 58

3.4 小结 60

3.5 习题 60

4.1 冯·诺依曼体系结构 61

第4章 计算机组织结构 61

4.2 中央处理器 63

4.2.1 算术逻辑功能单元 63

4.2.2 控制单元 64

4.3 存储器 66

性能改善:机器加速 67

性能改善:并行处理机 67

4.4 设备 68

4.4.1 一般设备特征 69

4.4.2 设备控制器 69

示例:异步串行设备 70

4.4.3 设备驱动器 71

4.5 中断 72

4.6 模式转换:自陷指令 74

4.7 小结 75

4.8 习题 76

实验:内核计数器 78

第5章 设备管理 87

5.1 设备管理方法 87

5.1.1 I/O系统的组织结构 87

5.1.2 使用轮询的直接I/O 88

5.1.3 中断驱动I/O 89

性能改善:中断与轮询 91

5.1.4 存储映射I/O 92

5.1.5 直接内存访问(DMA) 93

性能改善:I/O与处理机的并行 94

5.2 缓冲 95

5.3 设备驱动程序 97

5.3.1 设备驱动程序接口 98

5.3.2 CPU与设备的交互作用 99

5.3.3 I/O性能优化 100

5.4 一些设备管理方法 100

5.4.1 串行通信 101

示例:UNIX的设备驱动程序 101

5.4.2 顺序访问的存储设备 102

5.4.3 随机存取设备 103

性能改善:旋转设备的访问优化 104

5.6 习题 108

5.5 小结 108

实验:软盘驱动器 109

第6章 进程管理 117

6.1 进程和资源的系统观点 117

6.1.1 进程模型实现 117

6.1.2 资源模型实现 119

6.2 初始化操作系统 119

6.3 进程地址空间 121

6.3.1 生成地址空间 121

6.3.2 载入程序 122

6.3.3 地址空间中一致性维护 122

6.4 进程抽象 123

6.4.2 进程状态图 124

6.4.1 进程控制块 124

6.5 资源抽象 125

6.6 进程层次结构 127

6.6.1 精炼化进程管理器 127

6.6.2 专用的资源分配策略 128

6.7 小结 129

6.8 习题 129

实验:观察OS的运行操作 130

第7章 调度 137

7.1 调度机制 137

7.1.1 进程调度机制 137

7.1.2 保存进程的上下文 138

7.1.3 自愿的CPU共享 139

7.1.4 非自愿的CPU共享 141

7.1.5 性能 141

7.2 策略选择 142

7.2.1 分解一个进程成多个小进程 144

7.3 非剥夺式策略 145

7.3.1 先来先服务 145

性能改善:系统负载的近似表示 146

7.3.2 最短作业优先 147

性能改善:预测FCFS的等待时间 148

7.3.3 优先级调度 148

7.3.4 期限调度 150

7.4 剥夺式策略 150

7.4.1 轮转 151

7.4.2 多级队列 153

7.5 小结 154

7.6 习题 155

第8章 同步基本原理 159

8.1 进程的相互作用 159

示例:线性方程系统的解 160

8.1.1 临界区 161

8.1.2 死锁 164

8.2 进程协同 165

8.3 信号量 167

8.3.1 信号量操作的原理 168

示例:使用信号量的例子 169

8.3.2 应用中要考虑的因素 174

8.4 共享存储器的多处理机 177

8.5 小结 177

8.6 习题 177

实验:有限缓冲区问题 181

第9章 高级同步技术 187

9.1 可选的同步原语 187

9.1.1 AND同步 187

9.1.2 事件 188

示例:使用事件 189

示例:UNIX信号 190

示例:Windows 2000中的分派对象 191

9.2.1 操作原理 192

9.2 管程 192

9.2.2 条件变量 193

示例:使用管程的例子 195

9.2.3 应用管程的一些实际状况 198

9.3 进程间通信 199

9.3.1 信箱 200

9.3.2 消息传输协议 201

9.3.3 使用send和receive操作 201

示例:同步的IPC 202

9.3.4 延迟的消息拷贝 203

9.4 严格排序事件执行 203

9.5 小结 205

9.6 习题 205

实验:精炼Shell程序 207

第10章 死锁 211

10.1 背景 211

10.1.1 死锁预防 213

10.1.2 死锁避免 213

10.1.3 死锁检测和恢复 213

10.1.4 人工死锁管理 214

10.2 一个系统死锁模型 214

示例:单个资源类型 215

10.3 死锁预防 216

10.3.1 占有并等待 216

10.3.2 循环等待 218

10.3.3 允许剥夺 218

10.4 死锁避免 220

10.4.1 银行家算法 221

示例:使用银行家算法 222

10.5 死锁检测和恢复 224

10.5.1 连续可重用资源 224

10.5.2 可消费资源 228

10.5.3 一般资源系统 231

10.5.4 恢复 231

10.6 小结 232

10.7 习题 232

第11章 存储管理 235

11.1 基本知识 235

11.1.1 请求主存 235

11.1.2 将地址空间映射到内存 236

性能改善:使用存储层次结构减少访问时间 237

示例:地址绑定过程 238

11.1.3 用于数据结构的动态存储 241

11.2 内存分配 241

11.2.1 固定分区存储分配策略 242

11.2.2 可变分区存储分配策略 243

11.2.3 现代存储分配策略 245

性能改善:移动程序的开销 246

11.3 动态地址重定位 246

11.3.1 运行时界限检查 250

示例:扩充小地址空间 250

11.4.1 交换 251

11.4 存储管理器策略 251

11.4.2 虚拟内存 253

性能改善:使用高速缓存存储器 254

11.4.3 共享存储器的多处理机 255

11.5 小结 257

11.6 习题 257

第12章 虚拟内存 261

12.1 地址转换 261

12.1.1 地址空间映射 261

12.1.2 段式和页式 263

12.2 页式 263

12.2.1 虚拟地址转换 265

性能改善:页表实现 267

12.3 静态页面调度算法 268

12.3.1 取策略 268

12.3.2 请求调页算法 269

12.3.3 栈算法 272

12.3.4 实现LRU 273

性能改善:页面调度性能 274

12.4 动态页面调度算法 275

12.4.1 驻留集算法 275

示例:驻留集算法示例 277

12.4.2 驻留集算法实现 278

性能改善:利用分页实现IPC 279

示例:Windows 2000虚拟存储器 280

示例:Linux虚拟存储器 283

12.5 段式 284

12.5.1 地址转换 284

12.5.2 实现 286

示例:多段系统 288

12.6 小结 290

12.7 习题 291

第13章 文件管理 293

13.1 文件 293

13.1.1 低级文件 295

13.1.2 结构化文件 297

13.1.3 数据库管理系统 301

13.2 低级文件实现 302

13.1.4 多媒体存储 302

13.2.1 open和close操作 303

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

13.2.2 块管理 305

示例:UNIX文件结构 307

13.2.3 读、写字节流 309

13.3 支持其他的存储抽象 311

13.3.1 结构化顺序文件 311

13.3.2 索引顺序文件 312

13.3.3 数据库管理系统 312

13.3.4 多媒体文档 312

示例:Windows 2000中的存储映射文件 313

13.4 存储映射(Memory-mapped)文件 313

13.5 目录 314

13.5.1 目录结构 315

示例:几个目录例子 316

13.6 目录实现 317

13.6.1 设备目录 317

13.6.2 文件目录 318

13.6.3 在层次目录中打开一个文件 318

13.6.4 安装可移动的文件系统 319

13.7 小结 319

13.8 习题 320

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

14.1 基本原理 327

第14章 保护和安全 327

14.1.1 策略和机制 328

14.1.2 策略和机制实现 328

14.1.3 认证机制 329

14.1.4 授权机制 329

14.1.5 加密 330

14.2 认证 331

14.2.1 用户认证 331

14.2.2 网上认证 331

示例:Kerberos网络认证方法 332

14.3 内部访问授权 334

14.3.1 一个资源保护的模型 334

14.3.2 改变保护状态 336

14.4.1 保护域 338

14.3.3 保护机制的开销 338

14.4 实现内部授权 338

14.4.2 实现访问矩阵 340

14.5 密码技术 343

14.6 小结 344

14.7 习题 345

第15章 网络 347

15.1 从计算机通信到网络 347

15.1.1 通信子网 348

15.1.2 网络通信协议 349

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

15.2.1 网络协议的演变 350

15.2.2 ISO的OSI模型 351

15.3 低层协议 353

性能改善:快速物理层 354

15.3.1 物理层 354

15.3.2 数据链路层 355

15.3.3 当代网络 356

15.4 网络层 358

15.4.1 寻址 359

15.4.2 路由 360

15.4.3 网络层的使用 361

15.5 传输层 361

15.5.1 通信端口 362

15.5.2 数据类型 362

15.5.3 靠的通信 363

15.6.1 命名 364

性能改善:数据报和虚电路 364

15.6 使用传输层 364

示例:域名系统 366

15.6.2 客户-服务器模式 367

15.7 小结 369

15.8 习题 369

实验:使用TCP/IP协议 370

第16章 远程文件 379

16.1 通过网络共享信息 379

16.1.1 显式的文件复制系统 380

16.1.2 隐含的文件共享 381

16.1.3 远程辅存接口 382

16.1.4 工作分布 383

16.2 远程磁盘系统 384

16.2.1 远程磁盘操作 386

16.2.2 性能因素 386

16.2.3 可靠性 387

16.2.4 远程磁盘的未来 389

16.3 远程文件系统 390

16.3.1 通用的体系结构 390

16.3.2 块高速缓存 392

16.3.3 失效后的恢复 393

16.4 文件级高速缓存 397

示例:Andrew文件系统 397

示例:LOCUS文件系统 398

16.5.1 文件名字 400

16.5 目录系统及其实现 400

16.5.2 打开一个文件 401

16.6 小结 402

16.7 习题 403

第17章 分布式计算 405

17.1 分布的进程管理 405

17.1.1 分解工作 405

17.1.2 支持分解的计算 407

17.1.3 一般的进程管理 408

17.1.4 调度 408

性能改善:进程迁移和负载平衡 409

17.1.5 进程协同 409

17.2 消息传递 412

17.2.1 消息传递接口 413

17.2.2 计算范例 414

17.3 远程过程调用 415

17.3.1 RPC如何工作 416

17.3.2 实现RPC 416

17.4 分布式存储器管理 420

17.4.1 远程存储器 423

示例:分布式存储器的实例 423

17.4.2 分布式虚拟存储器 425

17.4.3 分布式对象 426

17.5 小结 427

17.6 习题 428

18.1 操作系统的组成及相互关系 429

第18章 策略与实例 429

18.2 一般性结构问题 430

18.2.1 软件的组织结构 431

18.2.2 管理分布式硬件 435

18.3 传统的UNIX内核 437

18.3.1 内核 437

18.3.2 一体化结构 438

18.3.3 结论 438

18.4 Linux内核 439

18.4.1 内核结构 439

18.4.2 进程和资源管理 442

18.4.3 存储管理器 446

18.4.4 文件管理 447

18.5 Choices:面向对象的操作系统 449

18.5.1 框架 449

18.5.2 使用框架实现存储管理器 449

18.5.3 结论 450

18.6 微软Windows操作系统 451

18.6.1 一般性体系结构 451

18.6.2 硬件抽象层(HAL) 453

18.6.3 NT内核 453

18.6.4 NT执行体 455

18.6.5 NT子系统 459

18.7 Mach操作系统 459

18.7.1 进程管理 460

18.7.2 消息传递 462

18.7.3 内存管理 464

18.7.4 结论 466

18.8 CHORUS操作系统 466

18.8.1 进程管理 467

18.8.2 进程间通信 468

18.8.3 内存管理 468

18.8.4 结论 468

18.9 小结 468

18.10 习题 469

术语表 471

参考文献 483

索引 487

返回顶部