《操作系统原理》PDF下载

  • 购买积分:15 如何计算积分?
  • 作  者:何炎祥等编著
  • 出 版 社:上海:上海科学技术文献出版社
  • 出版年份:1999
  • ISBN:7543913895
  • 页数:487 页
图书介绍:本书全面系统地介绍了现代操作系统的基本概念,设计原理以及在构造过程中可能面临的种种问题及其解决方法,此外,还介绍了在设计操作系统过程中一些重要的新进展,如线程、实时系统、多处理器调度、进程迁移、分布计算模式、安全性等。为便于理解,还选择了三个有代表性的操作系统:WindowsNT,UNIX和MVS作为实例贯穿全书。本书内容丰富,取材新颖,强调理论与实践的既可作为大专院校计算机及相关专业的教科书,又适合于计算机爱好者自学,还可作为有关工程技术人员的参考书。

第一章 操作系统概述 1

1.1 操作系统的目标和作用 1

1.1.1 作为人机交互界面 1

1.1.2 资源管理者 3

1.1.3 推动操作系统发展的因素 3

1.2 操作系统的演变 4

1.2.1 串行处理 5

1.2.2 简单批处理系统 5

1.2.3 多道程序批处理系统 9

1.2.4 分时系统 13

1.3 主要成就 15

1.3.1 进程 15

1.3.2 存储器管理 19

1.3.3 信息保护和安全性 21

1.3.4 调度和资源管理 22

1.3.5 系统结构 23

1.4 操作系统举例 26

1.4.1 WindowsNT 26

1.4.2 UNIXSystemV 31

1.4.3 MVS 33

1.4.4 多媒体计算机及多媒体操作系统 37

1.5 操作系统的主要研究课题 41

1.6 习题 42

第二章 进程描述与控制 43

2.1 进程状态 43

2.1.1 两状态进程模型 45

2.1.2 进程的产生和终止 47

2.1.3 状态模型 49

2.1.4 挂起的进程 53

2.1.5 挂起的其他用途 57

2.2 进程描述 58

2.2.1 操作系统控制结构 59

2.2.2 进程控制结构 60

2.2.3 进程属性 61

2.3 进程控制 64

2.3.1 执行模式 64

2.3.2 进程创建 65

2.3.3 进程切换 66

2.3.4 上下文切换 67

2.3.5 操作系统的执行 68

2.3.6 微核 70

2.4 进程和线程 71

2.4.1 单进程多线程 71

2.4.2 其他安排 73

2.4.3 多对多关系 73

2.5 进程描述和控制的例子 73

2.5.1 UNIXSystemV 73

2.5.2 WindowsNT 77

2.5.3 MVS 82

2.6 小结 86

2.7 习题 87

第三章 并发控制:互斥与同步 91

3.1 并发原理 92

3.1.1 与操作系统相关的问题 95

3.1.2 进程间的相互作用 96

3.1.3 进程间竞争资源 97

3.1.4 进程通过共享合作 98

3.1.5 进程通过通信合作 99

3.1.6 互斥的要求 100

3.2 互斥——软件方法 101

3.2.1 Dekker算法的初次尝试 101

3.2.2 再次尝试 102

3.2.3 第三次尝试 103

3.2.4 第四次尝试 104

3.2.5 一个正确的解决方法 105

3.2.6 Peterson算法 105

3.3.1 禁止中断 107

3.3 互斥——硬件支持 107

3.3.2 特殊的机器指令 108

3.3.3 使用机器指令方法的特性 110

3.4 信号量 110

3.4.1 互斥 112

3.4.2 生产者/消费者问题 113

3.4.3 信号量的实现 118

3.4.4 理发师问题 118

3.4.5 一个不公平的理发店 120

3.4.6 一个公平的理发店 121

3.5 管程 123

3.5.1 带信号量的管程 124

3.6 消息传递 126

3.6.1 同步 128

3.6.2 寻址 129

3.6.3 消息格式 131

3.6.4 排队规则 131

3.6.5 互斥 132

3.7 读者/写者问题 133

3.7.1 读者优先 134

3.7.2 写者优先 135

3.8 小结 138

3.9 习题 138

第四章 死锁处理 142

4.1 死锁的概念 142

4.1.1 可重用资源 143

4.1.2 消耗型资源 144

4.1.3 产生死锁的条件 144

4.2.3 非抢占 146

4.2.2 占用并等待 146

4.2 死锁预防 146

4.2.1 互斥 146

4.2.4 循环等待 147

4.3 死锁检测 147

4.4 死锁避免 148

4.4.1 避免启动新进程 149

4.4.2 避免分配资源 150

4.4.3 处理死锁的综合方法 152

4.5 哲学家用餐问题 154

4.7.1 UNIXSystemV 156

4.6 小结 156

4.7 系统举例 156

4.7.2 WindowsNT 159

4.7.3 MVS 161

4.8 习题 163

第五章 内存管理 165

5.1 内存管理的要求 165

5.1.1 重定位 165

5.1.2 保护 166

5.1.5 物理组织 167

5.1.3 共享 167

5.1.4 逻辑组织 167

5.2 程序的加载 168

5.2.1 固定分区 168

5.2.2 分配算法 169

5.2.3 动态分区 171

5.2.4 配置算法 173

5.2.5 替换算法 175

5.2.6 重定位 175

5.2.7 简单分页 177

5.2.8 简单分段 180

5.3 虚拟内存的硬件和控制结构 182

5.3.1 局部性和虚拟内存 185

5.3.2 分页 186

5.3.3 页的大小 193

5.3.4 分段 195

5.3.5 段页组合式 197

5.3.6 共享和保护 198

5.4 操作系统软件 199

5.4.2 分配策略 201

5.4.1 装入策略 201

5.4.3 替换策略 202

5.4.4 常驻集管理 209

5.4.5 清除策略 216

5.4.6 加载控制 217

5.5 内存管理的实例 219

5.5.1 System/370和MVS 219

5.5.2 WindowsNT 224

5.5.3 UNIXSystemV 228

5.6 小结 230

5.7 附录 231

5.7.1 加载 232

5.7.2 连接 235

5.8 习题 238

第六章 处理机调度 240

6.1 调度类型 240

6.1.1 长程调度 242

6.2 调度算法 243

6.2.1 短程调度标准 243

6.1.3 短程调度 243

6.1.2 中程调度 243

6.2.2 优先权的使用 244

6.2.3 调度策略 246

6.2.4 性能比较 256

6.2.5 模拟模型 259

6.2.6 公平分享调度 260

6.3 多处理机调度 262

6.3.1 粒度 263

6.3.2 设计要点 264

6.3.3 进程调度策略 266

6.4 实时调度 273

6.4.1 背景 273

6.4.2 实时操作系统的特性 274

6.4.3 实时调度 278

6.4.4 期限调度 279

6.4.5 单一比率调度 283

6.5.1 UNIXSystemV 286

6.5 系统举例 286

6.5.2 WindowsNT 288

6.5.3 MVS 290

6.6 小结 292

6.7 附录响应时间 293

6.8 习题 294

第七章 I/O管理和磁盘调度 298

7.1 I/O设备 298

7.2.1 I/O函数的发展 300

7.2 I/O函数的组织 300

7.2.2 DMA 301

7.2.3 I/O通道的性质 303

7.3 操作系统设计问题 305

7.3.1 设计目标 305

7.3.2 I/O函数的逻辑结构 305

7.4 I/O缓冲 307

7.4.1 单缓冲 308

7.4.2 双缓冲 310

7.5.1 磁盘性能参数 311

7.5 磁盘调度 311

7.4.3 循环缓冲 311

7.4.4 缓冲的用途 311

7.5.2 寻道时间 312

7.5.3 旋转延迟 313

7.5.4 传输时间 313

7.5.5 时间测定比较 313

7.5.6 磁盘调度策略 314

7.5.7 磁盘高速缓存 318

7.6.1 UNIXSystemV 322

7.6 系统举例 322

7.6.2 MVS 326

7.7 小结 328

7.8 习题 329

第八章 文件管理 331

8.1 概述 331

8.1.1 文件 331

8.1.2 文件管理系统 333

8.2 文件结构和存取 336

8.2.2 顺序文件 338

8.2.1 堆 338

8.2.3 索引顺序文件 339

8.2.4 索引文件 340

8.2.5 直接或快速文件 341

8.3 文件目录 341

8.3.1 内容 341

8.3.2 结构 343

8.3.3 命名 344

8.4 文件共享 346

8.4.1 访问权限 346

8.5 记录分块 347

8.4.2 同时访问 347

8.6 辅存管理 349

8.6.1 文件分配 349

8.6.2 预先分配和动态分配 349

8.6.3 空闲空间管理 355

8.6.4 可靠性 356

8.6.5 磁盘交叉存放 357

8.7 系统举例——UNIXSystemV 359

8.7.1 信息结点 359

8.7.2 文件分配 360

8.9 习题 362

8.8 小结 362

第九章 分布计算 364

9.1 客户/服务器计算 365

9.1.1 什么是客户/服务器计算 365

9.1.2 客户/服务器应用 367

9.1.3 中间件 372

9.2 分布式消息传递 375

9.3 远程过程调用 376

9.3.2 参数表示 378

9.3.1 参数传递 378

9.4 小结 379

9.5 习题 380

第十章 分布式进程管理 381

10.1 进程迁移 381

10.1.1 目的 381

10.1.2 进程迁移机制 382

10.1.3 迁移的协商 385

10.1.4 驱逐 387

10.2 分布式全局状态 388

10.2.1 全局状态及分布式快照 388

10.1.5 抢占及非抢占进程的传送 388

10.2.2 分布式快照算法 391

10.3 分布式进程管理——互斥 393

10.3.1 分布式互斥 394

10.3.2 分布式系统的事件定序 396

10.3.3 分布式互斥算法 399

10.4 分布式死锁 405

10.4.1 资源分配中的死锁 405

10.4.2 死锁预防 406

10.4.4 死锁检测 408

10.4.3 死锁避免 408

10.4.5 消息通信中的死锁 412

10.5 小结 416

10.6 习题 416

第十一章 安全性 418

11.1 对安全性的威胁 419

11.1.1 威胁的类型 419

11.1.2 计算机系统资源 420

11.1.3 设计原则 423

11.2 保护 424

11.2.2 面向用户的存取控制 425

11.2.1 内存的保护 425

11.2.3 面向数据的存取控制 426

11.2.4 WindowsNT的保护机制 428

11.3 入侵者 433

11.3.1 攻击技术 434

11.3.2 口令的保护 435

11.3.3 攻击检测 439

11.4 病毒及其威胁 442

11.4.1 恶意程序 443

11.4.2 病毒的特性 446

11.4.3 病毒的类型 449

11.4.4 反病毒的方法 450

11.5 可靠系统 451

11.5.1 特洛伊木马的御防 452

11.6 网络安全 454

11.6.1 安全性攻击的可能位置 454

11.6.2 加密装置的位置 455

11.6.3 密钥的分配 457

11.6.4 加入信息量 460

11.7 小结 460

11.8 附录 加密 461

11.8.1 传统加密方法 462

11.8.2 公开密钥加密方法 463

11.9 习题 464

附录 排队分析 466

1 为什么进行排队分析 466

2 排队模型 468

2.1 单服务器模型 468

2.2 多服务器模型 470

2.3 基本排队关系 470

3 单服务器队列 471

2.4 假设 471

4 多服务器队列 473

5 队列网 473

5.1 信息流的分割和汇聚 474

5.2 一前一后的队列 474

5.3 Jackson定理 475

5.4 包交换网中的应用 476

6 其他排队模型 477

参考文献 479