《操作系统原理》PDF下载

  • 购买积分:14 如何计算积分?
  • 作  者:Lubomir F. Bic,Alan C. Shaw著;梁洪亮等译
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2005
  • ISBN:7302116024
  • 页数:444 页
图书介绍:本书对操作系统的原理进行了介绍,主要反映了从单处理器到分布式并行计算机系统的变化,特别是在无法严格区分面向集中环境的操作系统和面向分布环境的操作系统中。本书的为进程管理和同步、内存管理、文件和输入/输出管理以及保护和安全共4个部分,适合于计算机科学或计算机工程专业的学生。

目录 1

第1章 概述 1

1.1 操作系统的作用 1

1.1.1 弥补硬件和应用间的差距 1

1.1.2 操作系统的三种视图 4

1.2 操作系统的组织结构 8

1.2.1 结构化组织 9

1.2.2 硬件接口 9

1.2.3 编程接口 11

1.2.4 用户接口 13

1.2.5 运行时组织结构 19

1.3 操作系统的发展和概念 20

1.3.1 早期的系统 20

1.3.2 批处理操作系统 21

1.3.3 多道程序设计系统 22

1.3.4 交互式操作系统 24

1.3.5 个人计算机和工作站操作系统 25

1.3.7 分布式操作系统 26

1.3.6 实时操作系统 26

第2章 基本概念:进程及其交互 29

2.1 进程的概念 29

第1部分 进程管理和同步 29

2.2 进程定义及实例化 30

2.2.1 进程间的次序关系 31

2.2.2 进程的隐式创建 33

2.2.3 用fork和join显式地创建进程 36

2.2.4 进程声明与类集 39

2.3.1 竞争:临界区问题 40

2.3 基本的进程交互 40

2.3.2 协作 46

2.4 信号量 47

2.4.1 信号量操作与数据 47

2.4.2 使用信号量实现互斥 48

2.4.3 生产者/消费者情形中的信号量 50

2.5 事件同步 51

3.1 共享内存的方法 57

第3章 高级同步与通信 57

3.1.1 管程 58

3.1.2 受保护类型 62

3.2 分布式同步与通信 64

3.2.1 基于消息的通信 64

3.2.2 基于过程的通信 69

3.2.3 分布式互斥 72

3.3 其他经典同步问题 74

3.3.1 读者/写者问题 74

3.3.2 哲学家进餐问题 76

3.3.3 电梯(调度)算法 78

3.3.4 使用逻辑时钟对事件排序 80

第4章 操作系统内核:进程和线程的实现 88

4.1 内核定义与目标 88

4.2 队列结构 90

4.2.1 操作系统中的资源队列 90

4.2.2 队列的实现 91

4.3 线程 93

4.4.1 进程和线程描述符 95

4.4 进程与线程的实现 95

4.4.2 进程操作的实现 100

4.4.3 线程的操作 103

4.5 同步与通信机制的实现 103

4.5.1 信号量和锁 104

4.5.2 管程原语 107

4.5.3 时钟和时间管理 109

4.5.4 通信原语 114

4.6 中断处理 117

第5章 进程和线程调度 124

5.1 调度器的组织方式 124

5.1.1 嵌入的和自治的调度器 124

5.1.2 优先级调度 126

5.2 调度方法 127

5.2.1 调度框架 127

5.2.2 常用调度算法 130

5.2.3 方法对比 135

5.3 优先级倒置 142

5.4 多处理器和分布式调度 144

第6章 死锁 150

6.1 可重用资源、可消耗资源上的死锁 150

6.1.1 可重用资源和可消耗资源 151

6.1.2 计算机系统中的死锁 151

6.2 处理死锁问题的方法 153

6.3 一个系统模型 154

6.3.1 资源图 154

6.3.2 状态转换 155

6.3.3 死锁状态和安全状态 156

6.4 死锁检测 158

6.4.1 资源图的简化 158

6.4.2 死锁检测的特殊情况 159

6.4.3 分布式系统中的死锁检测 160

6.5 死锁恢复 163

6.5.1 进程终止 163

6.6.1 需求图 164

6.6 动态死锁避免 164

6.5.2 资源抢占 164

6.6.2 银行家算法 165

6.7 死锁预防 167

6.7.1 破坏互斥使用条件 168

6.7.2 破坏占有并等待条件 168

6.7.3 破坏循环等待条件 169

7.1.1 程序转换 174

7.1 使程序准备执行 174

第7章 物理内存 174

第2部分 内存管理 174

7.1.2 逻辑地址到物理地址的绑定 175

7.2 内存划分模式 179

7.2.1 固定分区 179

7.2.2 可变分区 180

7.2.3 伙伴系统 183

7.3 可变分区的分配策略 185

内存利用率的衡量 186

7.4.1 内存紧凑 188

7.4 内存不足时的管理 188

7.4.2 交换 189

7.4.3 覆盖 191

第8章 虚拟存储 196

8.1 虚拟存储的原理 196

8.2 虚拟存储的实现 198

8.2.1 分页机制 198

8.2.2 分段机制 203

8.2.3 段页机制 205

8.2.4 系统表的分页 206

8.2.5 变换索引缓冲区 208

8.3 分页系统的存储分配 209

8.3.1 全局页面置换算法 211

8.3.2 局部页面置换算法 217

8.3.3 装载控制和抖动 222

8.3.4 分页的评价 225

9.1 单一副本的共享 233

9.1.1 共享的原因 233

第9章 主存中数据和代码的共享 233

9.1.2 共享的需求 234

9.1.3 链接与共享 236

9.2 无虚拟存储的系统中的共享 236

9.3 分页系统中的共享 238

9.3.1 数据的共享 238

9.3.2 代码的共享 239

9.4.1 代码和数据的共享 241

9.4 分段系统中的共享 241

9.4.2 无限制的动态链接 242

9.5 分布式共享存储的原理 244

分布式共享存储的用户视图 245

9.6 分布式共享存储的实现 247

9.6.1 实现非结构化的分布式共享存储 247

9.6.2 实现结构化的分布式共享存储 252

第3部分 文件系统和输入/输出 258

第10章 文件系统 258

10.1 文件管理的基本功能 258

10.2 文件系统的层次模型 259

10.3 文件的用户视图 261

10.3.1 文件名和类型 262

10.3.2 逻辑文件的组织结构 263

10.3.3 其他的文件属性 266

10.3.4 文件操作 266

10.4 文件目录 267

10.4.1 目录的层次组织结构 268

10.4.2 目录操作 273

10.4.3 文件目录的实现 276

10.5 基本文件系统 279

10.5.1 文件描述符 279

10.5.2 打开和关闭文件 280

10.6 设备的组织方法 283

10.6.1 连续组织 283

10.6.2 链接组织 284

10.6.3 索引组织 285

10.6.4 空闲存储空间的管理 286

10.7.1 目录结构和共享 288

10.7 分布式文件系统的基本原理 288

10.7.2 文件共享的语义 291

10.8 实现分布式文件系统 292

10.8.1 基本结构 292

10.8.2 高速缓存 293

10.8.3 无状态的服务器与有状态的服务器 294

10.8.4 文件复制 295

第11章 输入/输出系统 303

11.1 设备管理中的基本问题 303

11.2 输入/输出系统的一种层次模型 305

输入/输出系统接口 306

11.3 输入/输出设备 308

11.3.1 用户终端 308

11.3.2 打印机和扫描仪 310

11.3.3 辅存 311

11.3.4 盘的性能特性 314

11.3.5 网络 316

11.4 设备驱动程序 317

11.4.1 内存映像与明确的设备接口 318

11.4.2 使用轮询的可编程输入/输出 319

11.4.3 使用中断的可编程输入/输出 322

11.4.4 直接内存访问 325

11.5 设备管理 327

11.5.1 缓冲和高速缓存 327

11.5.2 错误处理 333

11.5.3 磁盘调度 337

11.5.4 设备共享 339

第4部分 保护和安全 345

第12章 保护和安全接口 345

12.1 安全威胁 345

12.1.1 危害种类 346

12.1.2 易损坏的资源 347

12.1.3 攻击类型 347

12.2.1 外部安全措施 354

12.2.2 用户标识鉴别 354

12.2 保护系统应有的功能 354

12.2.3 通信安全措施 355

12.2.4 威胁监视 356

12.3 用户鉴别 356

12.3.1 鉴别方法 356

12.3.2 口令 357

12.4 安全通信 361

12.4.1 加密原理 361

12.4.2 密钥加密 362

12.4.3 公钥加密系统 366

第13章 内部保护机制 374

13.1 访问控制环境 374

13.2 指令级访问控制 375

13.2.1 寄存器和输入/输出保护 375

13.2.2 主存保护 376

13.3 高层访问控制 381

13.3.1 访问矩阵模型 381

13.3.2 访问列表和权能列表 382

13.3.3 一个综合实例:客户端/服务器保护 389

13.3.4 组合使用访问列表和权能列表 391

13.4.1 禁闭问题 392

13.4 信息流控制 392

13.4.2 层次化的信息流 394

13.4.3 选择性禁闭问题 395

第5部分 程序设计项目 402

Ⅰ 进程/线程的同步 402

1 项目概述 402

2 创建竞争条件 402

3 临界区问题的解决方法 403

3.1 使用互斥锁的解决方法 403

3.2 软件解决方法 404

4 实现一般信号量 404

4.1 使用互斥锁和条件变量的解决方法 404

4.2 软件解决方法 404

6 具体任务总结 405

7 附加任务的建议 405

5 有界缓冲区 405

Ⅱ 进程和资源管理 407

1 项目概述 407

2 进程和资源的基本管理器 407

2.1 进程状态 407

2.2 进程的表示 408

2.3 资源的表示 408

2.4 对进程和资源的操作 409

2.5 调度函数 410

2.6 演示shell程序 411

3 扩充的进程和资源管理器 412

3.1 超时中断 412

3.2 输入/输出处理 413

3.3 扩充的shell 414

4 具体任务总结 414

5 附加任务的建议 414

2 内存管理器 416

2.1 内存 416

Ⅲ 内存管理 416

1 项目概述 416

2.2 用户接口 417

3 模拟试验 417

3.1 产生请求的大小 418

4 具体任务总结 419

5 附加任务的建议 419

3.3 选择要释放的内存块 419

3.2 收集有关性能的数据 419

Ⅳ 页面置换算法 420

1 项目概述 420

2 全局页面置换算法 420

3 局部页面置换算法 421

4 产生引用串 422

5 性能评价 423

6 具体任务总结 423

7 附加任务的建议 424

2 输入/输出系统 425

1 项目概述 425

Ⅴ 文件系统 425

3 文件系统 426

3.1 用户和文件系统之间的接口 426

3.2 文件系统的组织结构 426

3.3 目录 427

3.4 创建和删除文件 427

3.5 打开和关闭文件 428

3.6 在文件中读、写和搜索 428

5 具体任务总结 429

4 演示shell程序 429

3.7 列出目录 429

6 附加任务的建议 430

Ⅵ 其他编程项目 431

1 定时器工具 431

2 进程调度 431

3 银行家算法 432

4 磁盘调度算法 432

5 稳定存储 432

术语表 434