《操作系统原理》PDF下载

  • 购买积分:12 如何计算积分?
  • 作  者:何炎祥等编著
  • 出 版 社:北京:科学出版社
  • 出版年份:2004
  • ISBN:7030131088
  • 页数:346 页
图书介绍:本书全面系统地介绍了现代操作系统的基本概念、设计原理以及在构造过程中可能面临的种种问题及其解决方法。

1 操作系统概述 1

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

1.1.1 作为人机交互界面 1

1.1.2 资源管理者 2

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

1.2 操作系统的演变 3

1.2.1 串行处理 3

1.2.2 简单批处理系统 4

1.2.3 多道程序批处理系统 6

1.2.4 分时系统 9

1.3 主要成就 11

1.3.1 进程 11

1.3.2 存储器管理 13

1.3.3 信息保护和安全性 14

1.3.4 调度和资源管理 15

1.3.5 系统结构 16

1.4 操作系统举例 18

1.4.1 Windows NT 18

1.4.2 UNIX System V 22

1.4.3 MVS 23

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

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

习题 29

2 进程描述与控制 30

2.1 进程状态 30

2.1.1 两状态进程模型 32

2.1.2 进程的产生和终止 32

2.1.3 状态模型 34

2.1.4 挂起的进程 37

2.1.5 挂起的其他用途 40

2.2 进程描述 40

2.2.1 操作系统控制结构 41

2.2.2 进程控制结构 42

2.2.3 进程属性 43

2.3 进程控制 45

2.3.1 执行模式 45

2.3.2 进程创建 45

2.3.4 上下文切换 46

2.3.3 进程切换 46

2.3.5 操作系统的执行 47

2.3.6 微核 49

2.4 进程和线程 49

2.4.1 单进程多线程 49

2.4.2 其他安排 50

2.4.3 多对多关系 51

2.5 进程描述和控制举例 51

2.5.1 UNIX System V 51

2.5.2 Windows NT 54

2.5.3 MVS 58

2.6 小结 61

习题 61

3 并发控制:互斥与同步 64

3.1 并发原理 64

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

3.1.2 进程间的相互作用 67

3.1.3 进程间竞争资源 68

3.1.4 进程通过共享合作 69

3.2 互斥——软件方法 70

3.1.5 进程通过通信合作 70

3.1.6 互斥的要求 70

3.2.1 Dekker算法的初次尝试 71

3.2.2 再次尝试 71

3.2.3 第三次尝试 72

3.2.4 第四次尝试 73

3.2.5 一个正确的解决方法 74

3.2.6 Peterson算法 74

3.3.1 禁止中断 75

3.3 互斥——硬件支持 75

3.3.2 特殊的机器指令 76

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

3.4 信号量 78

3.4.1 互斥 79

3.4.2 生产者/消费者问题 80

3.4.3 信号量的实现 84

3.4.4 理发师问题 84

3.4.5 一个不公平的理发店 85

3.4.6 一个公平的理发店 86

3.5 管程 88

3.6 消息传递 91

3.6.1 同步 91

3.6.2 寻址 92

3.6.3 消息格式 93

3.6.4 排队规则 93

3.6.5 互斥 93

3.7 读者/写者问题 95

3.7.1 读者优先 95

3.7.2 写者优先 96

3.8 小结 98

3.9 系统举例 99

3.9.1 UNIX System V 99

3.9.2 Windows NT 101

3.9.3 MVS 102

习题 104

4 死锁处理 106

4.1 死锁的概念 106

4.1.1 可重用资源 106

4.1.2 消耗型资源 107

4.1.3 产生死锁的条件 108

4.2 死锁预防 109

4.2.1 互斥 109

4.2.2 占用并等待 109

4.2.3 非抢占 109

4.2.4 循环等待 109

4.3 死锁检测 110

4.4 死锁避免 110

4.4.1 避免启动新进程 111

4.4.2 避免分配资源 112

4.4.3 处理死锁的综合方法 115

4.5 哲学家用餐问题 115

4.6 小结 117

习题 117

5 内存管理 119

5.1 内存管理的要求 119

5.1.1 重定位 119

5.1.2 保护 119

5.1.5 物理组织 120

5.1.3 共享 120

5.1.4 逻辑组织 120

5.2 程序的加载 121

5.2.1 固定分区 121

5.2.2 分配算法 122

5.2.3 动态分区 123

5.2.4 配置算法 125

5.2.5 替换算法 126

5.2.6 重定位 126

5.2.7 简单分页 127

5.2.8 简单分段 130

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

5.3.1 局部性和虚拟内存 133

5.3.2 分页 133

5.3.3 页的大小 138

5.3.4 分段 140

5.3.5 段页组合式 141

5.3.6 共享和保护 141

5.4 操作系统软件 143

5.4.2 分配策略 144

5.4.1 装入策略 144

5.4.3 替换策略 145

5.4.4 常驻集管理 150

5.4.5 清除策略 154

5.4.6 加载控制 155

5.5 内存管理举例 157

5.5.1 System/370和MVS 157

5.5.2 Windows NT 160

5.5.3 UNIX System V 162

5.7.1 加载 165

5.6 小结 165

5.7 附录 165

5.7.2 连接 168

习题 170

6 处理机调度 172

6.1 调度类型 172

6.1.1 长程调度 172

6.2 调度算法 174

6.2.1 短程调度标准 174

6.1.3 短程调度 174

6.1.2 中程调度 174

6.2.2 优先权的使用 176

6.2.3 调度策略 176

6.2.4 性能比较 184

6.2.5 模拟模型 186

6.2.6 公平分享调度 187

6.3 多处理机调度 188

6.3.1 粒度 189

6.3.2 设计要点 190

6.3.3 进程调度策略 191

6.4 实时调度 196

6.4.1 背景 196

6.4.2 实时操作系统的特性 196

6.4.3 实时调度 198

6.4.4 期限调度 199

6.4.5 单一比率调度 201

6.5.1 UNIX System V 204

6.5 系统举例 204

6.5.2 Windows NT 205

6.5.3 MVS 207

6.6 小结 208

6.7 附录响应时间 209

习题 210

7 I/O管理和磁盘调度 213

7.1 I/O设备 213

7.2 I/O函数的组织 214

7.2.1 I/O函数的发展 215

7.2.2 DMA 216

7.2.3 I/O通道的性质 217

7.3 操作系统设计问题 218

7.3.1 设计目标 218

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

7.4 I/O缓冲 220

7.4.1 单缓冲 220

7.5.1 磁盘性能参数 222

7.4.4 缓冲的用途 222

7.5 磁盘调度 222

7.4.3 循环缓冲 222

7.4.2 双缓冲 222

7.5.2 寻道时间 223

7.5.3 旋转延迟 223

7.5.4 传输时间 223

7.5.5 时间测定比较 224

7.5.6 磁盘调度策略 224

7.5.7 磁盘高速缓存 228

7.6.1 UNIX System V 230

7.6 系统举例 230

7.6.2 MVS 233

7.7 小结 235

习题 235

8 文件管理 237

8.1 概述 237

8.1.1 文件 237

8.1.2 文件管理系统 238

8.2 文件结构和存取 240

8.2.1 堆 241

8.2.3 索引顺序文件 242

8.2.2 顺序文件 242

8.2.5 直接或快速文件 243

8.2.4 索引文件 243

8.3 文件目录 244

8.3.1 内容 244

8.3.2 结构 245

8.3.3 命名 246

8.4 文件共享 247

8.4.2 同时访问 248

8.5 记录分块 248

8.4.1 访问权限 248

8.6 辅存管理 250

8.6.1 文件分配 250

8.6.2 预先分配和动态分配 250

8.6.3 空闲空间管理 254

8.6.4 可靠性 255

8.6.5 磁盘交叉存放 256

8.7 系统举例——UNIX System V 257

8.7.1 信息节点 257

8.7.2 文件分配 258

习题 259

8.8 小结 259

9 分布计算 261

9.1 客户/服务器计算 261

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

9.1.2 客户/服务器应用 263

9.1.3 中间件技术 266

9.2 分布式消息传递 269

9.3 远程过程调用 270

9.4 小结 271

9.3.2 参数表示 271

9.3.1 参数传递 271

习题 272

10 分布式进程管理 273

10.1 进程迁移 273

10.1.1 目的 273

10.1.2 进程迁移机制 273

10.1.3 迁移的协商 276

10.1.4 驱逐 277

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

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

10.2 分布式全局状态 278

10.2.2 分布式快照算法 280

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

10.3.1 分布式互斥 282

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

10.3.3 分布式互斥算法 285

10.4 分布式死锁 289

10.4.2 死锁预防 290

10.4.1 资源分配中的死锁 290

10.4.3 死锁避免 291

10.4.4 死锁检测 292

10.4.5 消息通信中的死锁 295

10.5 小结 297

习题 298

11 安全性 299

11.1 对安全性的威胁 300

11.1.1 威胁的类型 300

11.1.2 计算机系统资源 301

11.2 保护 303

11.1.3 设计原则 303

11.2.1 内存的保护 304

11.2.2 面向用户的存取控制 304

11.2.3 面向数据的存取控制 305

11.2.4 Windows NT的保护机制 306

11.3 入侵者 309

11.3.1 攻击技术 310

11.3.2 口令的保护 311

11.3.3 攻击检测 314

11.4.1 恶意程序 316

11.4 病毒及其威胁 316

11.4.2 病毒的特性 319

11.4.3 病毒的类型 321

11.4.4 反病毒的方法 322

11.5 可靠系统 322

11.6 网络安全 324

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

11.6.2 加密装置的位置 325

11.6.3 密钥的分配 327

11.6.4 加入信息量 328

11.8.1 传统加密方法 329

11.7 小结 329

11.8 附录加密 329

11.8.2 公开密钥加密方法 331

习题 331

附录 排队分析 333

附录1 为什么进行排队分析 333

附录2 排队模型 334

附2.1 单服务器模型 334

附2.3 基本排队关系 336

附2.4 假设 336

附2.2 多服务器模型 336

附录3 单服务器队列 337

附录4 多服务器队列 338

附录5 队列网 339

附5.1 信息流的分割和汇聚 339

附5.2 一前一后的队列 340

附5.3 Jackson定理 340

附5.4 包交换网中的应用 341

附录6 其他排队模型 341

参考文献 343