《现代操作系统教程》PDF下载

  • 购买积分:13 如何计算积分?
  • 作  者:黄红桃,龚永义,许宪成,李畅,范策
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2016
  • ISBN:9787302447412
  • 页数:362 页
图书介绍:本书从原理、概念和技术的角度介绍了操作系统的基础知识,包括进程管理、中断与调度、死锁、存储管理、设备管理、文件系统。不仅讲述基本原理,还以当今较为成熟和流行的操作系统,如Windows、UNIX、Linux介绍具体的实现技术和方法。此外,还将简介近年来操作系统最新的技术和发展,以及安卓,苹果等系统的一些实现原理,其中部分内容采用英文文章。

第1章 操作系统概述 1

1.1 什么是操作系统 1

1.2 操作系统的目标和功能 3

1.2.1 操作系统的目标 3

1.2.2 操作系统的功能 4

1.3 操作系统的发展历程 6

1.3.1 操作系统的形成 6

1.3.2 操作系统的完善 9

1.4 操作系统的分类 9

1.4.1 多道批处理操作系统 9

1.4.2 分时操作系统 11

1.4.3 实时操作系统 13

1.4.4 通用操作系统 15

1.4.5 网络操作系统 15

1.4.6 分布式操作系统 16

1.4.7 微机操作系统 16

1.4.8 嵌入式操作系统 17

1.4.9 多处理机操作系统 18

1.4.10 服务器操作系统 19

1.4.11 大型机操作系统 19

1.4.12 云操作系统 20

1.4.13 移动操作系统 22

1.5 支持操作系统的硬件环境 24

1.6 操作系统的特征 26

1.6.1 并发性 26

1.6.2 资源共享性 27

1.6.3 异步性 27

1.7 现代操作系统 27

1.7.1 Windows 28

1.7.2 Mac OS 30

1.7.3 UNIX 31

1.7.4 Linux 31

1.7.5 Android 32

1.8 有关操作系统的研究 33

习题1 34

阅读材料 36

第2章 用户接口与作业管理 39

2.1 操作系统提供的用户接口 39

2.1.1 程序接口与系统调用 39

2.1.2 操作接口与系统程序 42

2.2 作业的基本概念 45

2.2.1 作业的定义 45

2.2.2 作业的分类 46

2.3 批处理作业控制 47

2.3.1 作业状态 47

2.3.2 作业控制块 48

2.4 调度算法 49

2.4.1 作业调度算法的目标与设计因素 49

2.4.2 单道批处理作业调度算法 50

2.4.3 多道批处理作业调度算法 51

习题2 52

阅读材料 53

第3章 进程管理 54

3.1 多道程序设计 54

3.2 进程的概念 55

3.2.1 前驱图和程序执行 56

3.2.2 进程的描述 63

3.3 进程控制块和状态转换 64

3.3.1 进程控制块PCB 64

3.3.2 进程状态及其转换 67

3.4 进程控制 72

3.4.1 操作系统控制结构 72

3.4.2 进程创建与终止 75

3.4.3 进程的阻塞与唤醒 76

3.4.4 进程的挂起与激活 77

3.4.5 进程间的相互关系 78

3.5 线程 79

3.5.1 线程的引入 79

3.5.2 线程的结构与线程控制块TCB 80

3.5.3 线程与进程 81

3.5.4 线程的实现 81

3.5.5 线程的调度 84

3.5.6 线程的应用 86

3.6 Linux进程管理 89

3.6.1 Linux进程结构 90

3.6.2 Linux进程状态及运行模式 93

3.6.3 Linux进程控制 95

习题3 97

阅读材料 98

第4章 中断和处理机调度 101

4.1 中断 101

4.1.1 中断和指令周期 101

4.1.2 中断处理 103

4.1.3 多个中断 106

4.1.4 多道程序设计 107

4.1.5 调度机制 108

4.1.6 高级、中级和低级调度 110

4.2 处理机调度 114

4.2.1 进程调度方式 114

4.2.2 调度算法 114

4.2.3 调度时机 125

4.3 实时调度 125

4.3.1 实现实时调度的基本条件 125

4.3.2 实时调度算法的分类 127

4.3.3 实时调度算法 128

4.4 多处理机调度 130

4.4.1 多处理机系统的类型 130

4.4.2 自调度 130

4.4.3 组调度 131

4.5 Linux系统进程调度 131

4.5.1 Linux时钟运作机制(时间基准) 131

4.5.2 UNIX/Linux中的系统调用 138

4.5.3 Linux调度程序 138

习题4 144

阅读材料 145

第5章 并发性——互斥、同步和通信 148

5.1 并发的原理 148

5.1.1 与时间有关的错误 148

5.1.2 互斥与同步的概念 149

5.1.3 临界区与进程互斥 150

5.1.4 硬件支持互斥的方法 151

5.2 信号量机制 153

5.2.1 信号量的概念 153

5.2.2 信号量的应用 154

5.2.3 生产者-消费者问题信号量机制解法 155

5.2.4 哲学家进餐问题信号量机制解法 157

5.2.5 读者写者问题解法 158

5.3 管程机制 160

5.3.1 管程的概念 161

5.3.2 生产者-消费者问题管程机制解法 162

5.3.3 哲学家进餐问题管程机制解法 163

5.4 进程通信 165

5.4.1 进程通信的方式 165

5.4.2 消息缓冲通信 166

5.4.3 信箱通信 167

5.4.4 共享文件通信 168

5.4.5 消息传递系统的若干问题 168

习题5 170

阅读材料 171

第6章 并发性——死锁 175

6.1 死锁的概念 175

6.2 产生死锁的条件和处理 176

6.2.1 必要条件 176

6.2.2 处理死锁的基本方法 177

6.3 死锁的预防 178

6.3.1 预先分配策略 178

6.3.2 有序分配策略 179

6.4 死锁的避免 180

6.4.1 系统安全状态 180

6.4.2 银行家算法 180

6.5 死锁的检测与解除 183

6.5.1 死锁的检测 183

6.5.2 死锁的解除 185

6.6 死锁的综合处理策略 186

习题6 186

阅读材料 188

第7章 内存管理 191

7.1 内存管理的功能 191

7.1.1 内存分配 191

7.1.2 地址变换 192

7.1.3 存储保护 193

7.1.4 存储共享 193

7.1.5 存储扩充 193

7.2 程序的链接和加载 194

7.2.1 程序的链接 194

7.2.2 程序的加载 196

7.3 连续分配方式 197

7.3.1 单一连续分配 197

7.3.2 固定分区分配 198

7.3.3 动态分区分配 199

7.3.4 可重定位分区分配 201

7.3.5 交换和覆盖 202

7.4 基本分页分配方式 203

7.4.1 页面与页表 204

7.4.2 地址变换机构 205

7.4.3 页面大小 208

7.5 基本分段分配方式 208

7.5.1 段表 209

7.5.2 地址变换机构 210

7.5.3 共享与保护 210

习题7 212

阅读材料 212

第8章 虚拟存储管理 216

8.1 虚拟存储器 216

8.1.1 虚拟存储器的定义 216

8.1.2 虚拟存储器的特点 217

8.1.3 虚拟存储器技术需要解决的问题 217

8.2 请求页式分配 218

8.2.1 请求分页硬件支持 218

8.2.2 内存分配策略 220

8.2.3 内存分配方法 222

8.2.4 缺页处理 222

8.3 页面置换算法 223

8.3.1 最优页面置换算法 223

8.3.2 先进先出置换算法 224

8.3.3 最近最少使用置换算法 225

8.3.4 用软件模拟LRU算法 226

8.3.5 时钟算法 228

8.3.6 改进Clock算法 229

8.3.7 工作集模型 229

8.4 虚拟段式分配 231

8.4.1 请求分段中的硬件支持 231

8.4.2 地址变换机构 231

8.4.3 缺段中断 232

8.5 段页式分配方式 232

8.5.1 段页式分配的原理 232

8.5.2 段页式分配的地址变换 233

8.5.3 分段和分页的结合:Intel Pentium 234

8.6 Linux系统的存储管理 236

8.6.1 Linux的虚拟存储空间 237

8.6.2 Linux管理内存空间的数据结构 238

8.6.3 Linux内存区的分配、释放和淘汰 239

习题8 242

阅读材料 243

第9章 设备管理 246

9.1 I/O系统 246

9.1.1 设备的类别 246

9.1.2 设备标识 248

9.1.3 I/O系统的结构 249

9.2 I/O设备数据传输控制方式 252

9.2.1 程序直接控制方式 252

9.2.2 中断控制方式 253

9.2.3 DMA控制方式 254

9.2.4 通道控制方式 255

9.3 设备管理与功能 258

9.4 设备分配 259

9.4.1 设备分配中的数据结构 260

9.4.2 设备分配应考虑的因素和分配技术 261

9.4.3 设备分配算法 264

9.4.4 SPOOLING系统 264

9.5 缓冲技术 267

9.5.1 缓冲的引入 267

9.5.2 单缓冲 269

9.5.3 双缓冲 271

9.5.4 循环缓冲 272

9.5.5 缓冲池 273

9.6 I/O软件设计 277

9.6.1 I/O软件的设计目标和原则 277

9.6.2 I/O中断处理程序 278

9.6.3 设备驱动程序 279

9.6.4 与硬件无关的操作系统I/O软件 281

9.6.5 用户空间的I/O软件 282

9.7 磁盘存储器管理 283

9.7.1 磁盘I/O 283

9.7.2 磁盘调度算法 288

9.8 RAID技术 292

9.8.1 RAID技术的引入 292

9.8.2 RAID分级 293

9.9 Linux的设备管理 294

9.9.1 Linux设备管理概述 295

9.9.2 设备驱动程序和内核之间的接口 296

9.9.3 字符设备 297

9.9.4 块设备 297

9.9.5 网络设备 299

习题9 300

阅读材料 301

第10章 文件管理 304

10.1 文件系统的概念 304

10.1.1 文件和文件系统 304

10.1.2 文件分类 305

10.1.3 文件操作 307

10.2 文件的逻辑结构 307

10.2.1 文件逻辑结构的类型 308

10.2.2 顺序文件 308

10.2.3 索引文件 309

10.2.4 索引顺序文件 309

10.2.5 直接文件和散列文件 310

10.3 文件的物理结构 311

10.3.1 顺序结构 311

10.3.2 链接结构 312

10.3.3 索引结构 314

10.4 文件的存取方法 317

10.4.1 顺序存取 317

10.4.2 直接存取 318

10.4.3 按键存取 318

10.5 文件目录 319

10.5.1 文件控制块与索引结点 319

10.5.2 文件目录与目录文件 321

10.5.3 目录结构 322

10.5.4 目录查询技术 325

10.6 文件存储空间管理 326

10.6.1 空闲表和空闲链表 326

10.6.2 位示图 327

10.6.3 UNIX成组链接 328

10.7 文件共享和保护 330

10.7.1 文件共享的模式 330

10.7.2 文件的保护 333

10.8 Windows文件系统 335

10.8.1 Windows磁盘管理和文件系统驱动 335

10.8.2 Windows文件系统格式 336

10.8.3 NTFS文件系统的结构 338

10.9 Linux的文件系统 340

10.9.1 ext2的文件系统 341

10.9.2 虚拟文件系统 346

10.10 分布式文件系统 350

10.10.1 分布式文件系统的发展阶段 351

10.10.2 HDFS系统构成 352

10.10.3 HDFS文件的读写操作 356

10.10.4 HDFS数据维护机制 357

习题10 358

阅读材料 359

参考文献 362