《操作系统原理及Linux内核分析 第2版》PDF下载

  • 购买积分:12 如何计算积分?
  • 作  者:李芳,刘晓春,李东海编著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2018
  • ISBN:9787302503590
  • 页数:315 页
图书介绍:本书主要介绍操作系统的核心功能:操作系统接口、进程管理、存储管理、文件管理、设备管理的主要思想及设计原理。围绕这五大模块以Linux为例分析操作系统的核心代码的实现方法、技术以及操作系统各个功能部分的关联实现技巧。在此基础上,从操作系统的发展需求及计算机体系结构的发展上,引入操作系统的最新技术,如线程的引入及应用环境、多处理机系统的实现技术、实时调度算法等。

第1章 绪论 1

1.1 什么是操作系统 1

1.1.1 程序是如何运行的 1

1.1.2 操作系统的作用 2

1.2 操作系统运行环境 3

1.2.1 计算机的基本硬件元素 3

1.2.2 与操作系统相关的几种主要寄存器 4

1.2.3 指令的执行 5

1.2.4 中断 5

1.2.5 处理机状态及特权指令 6

1.3 操作系统的形成和发展 7

1.3.1 操作系统发展的基础 8

1.3.2 手工操作 8

1.3.3 批处理系统 9

1.3.4 分时系统 12

1.3.5 实时系统 13

1.3.6 个人操作系统 14

1.3.7 网络操作系统 15

1.3.8 分布式操作系统 15

1.3.9 嵌入式操作系统 16

1.3.10 操作系统的发展趋势 17

1.4 操作系统的功能和特性 17

1.4.1 操作系统的功能 17

1.4.2 操作系统的基本特征 19

1.5 操作系统结构 20

1.5.1 模块组合结构及层次结构 20

1.5.2 微内核结构 21

1.5.3 虚拟机结构 23

1.6 Linux操作系统 24

1.6.1 Linux发展历程 24

1.6.2 Linux的特点 26

1.6.3 Linux内核结构 27

习题 28

第2章 用户接口 29

2.1 命令控制界面 29

2.1.1 联机命令的类型 29

2.1.2 联机命令的操作方式 30

2.2 Linux系统的命令控制界面 31

2.2.1 登录Shell 31

2.2.2 命令句法 32

2.2.3 常用的基本命令 32

2.2.4 重定向与管道命令 35

2.2.5 通信命令 36

2.2.6 后台命令 38

2.3 程序接口 38

2.3.1 系统调用 38

2.3.2 系统调用的类型 39

2.3.3 系统调用的实现 39

2.3.4 Linux系统调用 41

2.3.5 Windows应用编程接口 43

习题 45

第3章 进程管理 46

3.1 进程的概念 46

3.1.1 进程的引入 46

3.1.2 进程的定义 48

3.1.3 引入进程的利弊 49

3.2 进程控制块和进程的状态 50

3.2.1 进程的状态及其变化 50

3.2.2 进程控制块 51

3.3 进程的控制 54

3.3.1 进程的创建原语 54

3.3.2 进程的撤销原语 56

3.3.3 进程的阻塞与唤醒原语 57

3.4 进程同步 58

3.4.1 互斥 58

3.4.2 进程的同步 59

3.4.3 同步机构 60

3.4.4 同步机构应用 64

3.5 经典的进程同步问题 67

3.5.1 生产者-消费者问题 67

3.5.2 读者-写者问题 70

3.5.3 哲学家进餐问题 71

3.6 进程通信 72

3.6.1 进程通信的类型 72

3.6.2 进程通信的方式 73

3.6.3 消息缓冲队列通信机制 73

3.6.4 信箱通信 75

3.7 线程 76

3.7.1 线程的引入 76

3.7.2 线程的概念 77

3.7.3 线程的控制 78

3.7.4 线程的实现 79

3.7.5 线程的适用范围 80

3.8 Linux的进程管理 81

3.8.1 Linux进程概念与描述 81

3.8.2 Linux中的进程状态及其转换 82

3.8.3 Linux的进程控制 83

3.8.4 Linux的进程通信 85

习题 92

第4章 处理机调度与死锁 94

4.1 调度的基本概念 94

4.1.1 作业的概念及作业的状态 94

4.1.2 分级调度 96

4.1.3 调度的功能与时机 97

4.1.4 调度原则与性能衡量 98

4.2 调度算法 99

4.2.1 先来先服务算法 100

4.2.2 短作业优先算法 100

4.2.3 最高响应比优先算法 101

4.2.4 高优先权优先算法 102

4.2.5 轮转法 104

4.2.6 多级反馈算法 105

4.3 实时调度算法 106

4.3.1 实时系统的特点 106

4.3.2 实时调度算法 107

4.4 多处理机调度 109

4.4.1 多处理机系统的类型 110

4.4.2 多处理机系统调度方式 110

4.5 死锁 111

4.5.1 死锁的产生 112

4.5.2 死锁的必要条件 113

4.6 解决死锁问题的方法 113

4.6.1 死锁的预防 113

4.6.2 死锁的避免 114

4.6.3 死锁的检测与解除 118

4.7 Linux进程调度 120

4.7.1 调度的时机 120

4.7.2 调度策略 121

4.7.3 调度算法 121

习题 123

第5章 存储管理 126

5.1 存储管理基本概念 126

5.1.1 物理内存和虚拟存储空间 126

5.1.2 存储管理的主要任务 127

5.2 分区式存储管理 131

5.2.1 固定分区 131

5.2.2 可变分区 132

5.2.3 地址变换与内存保护 136

5.2.4 分区式存储管理的优缺点 136

5.3 页式存储管理 137

5.3.1 静态页式存储管理 137

5.3.2 动态页式存储管理 141

5.3.3 指令存取速度与页面大小问题 143

5.3.4 存储保护 144

5.3.5 页式存储管理的优缺点 144

5.4 淘汰算法与抖动现象 145

5.4.1 淘汰算法 145

5.4.2 抖动现象与工作集 149

5.5 段式存储管理 151

5.5.1 静态段式存储管理 151

5.5.2 动态段式存储管理 154

5.5.3 分段和分页的主要区别 155

5.5.4 段的信息共享 156

5.5.5 段的静态链接与动态链接 157

5.5.6 段式存储管理的内存保护 159

5.5.7 段式存储管理的优缺点 160

5.6 段页式存储管理 160

5.6.1 实现原理 160

5.6.2 段页式存储管理的其他问题 162

5.7 Linux存储管理 162

5.7.1 进程虚存空间的管理 163

5.7.2 Linux的分页式存储管理 164

习题 166

第6章 设备管理 168

6.1 设备管理概述 168

6.1.1 设备的分类 168

6.1.2 设备管理的目标 169

6.1.3 设备控制器 170

6.1.4 I/O系统的层次结构 171

6.2 数据传送控制方式 173

6.2.1 程序直接控制方式 173

6.2.2 中断控制方式 174

6.2.3 DMA控制方式 175

6.2.4 通道控制方式 177

6.3 中断处理与设备驱动程序 179

6.3.1 中断处理过程 179

6.3.2 设备驱动程序 180

6.4 缓冲技术 182

6.4.1 引入缓冲技术的原因 182

6.4.2 缓冲的种类 184

6.4.3 缓冲池的管理 185

6.5 设备分配 187

6.5.1 设备分配中的数据结构 187

6.5.2 设备分配的原则 188

6.5.3 设备分配程序 190

6.5.4 SPOOLing技术 190

6.6 逻辑I/O系统 192

6.7 Linux的设备管理 193

6.7.1 逻辑I/O管理 193

6.7.2 用户与设备驱动程序 195

6.7.3 设备模型 195

习题 196

第7章 文件管理 197

7.1 文件和文件系统 197

7.1.1 文件的概念 197

7.1.2 文件的分类 198

7.1.3 文件管理系统 199

7.2 文件的逻辑结构 200

7.2.1 无结构文件 201

7.2.2 顺序文件 201

7.2.3 索引文件 202

7.2.4 直接文件 202

7.3 文件的物理结构 203

7.3.1 连续文件 203

7.3.2 链接式文件 204

7.3.3 索引文件 206

7.4 文件存储空间的管理 207

7.4.1 位示图法 208

7.4.2 空闲表法 208

7.4.3 空闲链表法 209

7.5 文件目录管理 210

7.5.1 文件控制块的内容 210

7.5.2 目录结构 211

7.5.3 目录管理 213

7.6 文件共享和保护 215

7.6.1 基于索引节点的共享方法 216

7.6.2 基于符号链接的共享方法 216

7.6.3 文件的保护 217

7.7 磁盘管理与调度 219

7.7.1 磁盘性能简述 219

7.7.2 磁盘调度算法 221

7.8 Linux文件管理 223

7.8.1 Linux文件系统概论 223

7.8.2 虚拟文件系统 225

7.8.3 EXT文件系统 226

7.8.4 文件管理和操作 229

习题 232

第8章 多处理机系统 234

8.1 多处理机 235

8.1.1 多处理机硬件 236

8.1.2 多处理机操作系统类型 242

8.1.3 多处理机同步 244

8.1.4 处理机调度 247

8.2 多计算机 251

8.2.1 多计算机硬件 252

8.2.2 低层通信软件 255

8.2.3 用户层通信软件 256

8.2.4 远程过程调用 258

8.2.5 分布式共享存储器 259

8.2.6 多计算机调度 262

8.2.7 负载均衡 263

8.3 虚拟化 265

8.3.1 准虚拟化 266

8.3.2 内存的虚拟化 268

8.3.3 I/O设备的虚拟化 269

8.3.4 虚拟工具 269

8.3.5 多核处理机上的虚拟机 269

8.3.6 授权问题 270

习题 270

第9章 嵌入式操作系统 272

9.1 什么是嵌入式操作系统 272

9.2 嵌入式操作系统的特点 274

9.3 嵌入式操作系统的主要功能 276

9.4 嵌入式操作系统的应用领域 280

9.5 典型的嵌入式操作系统 281

9.5.1 VxWorks 281

9.5.2 QNX 282

9.5.3 嵌入式Linux 283

9.5.4 Windows CE 285

9.5.5 Android 286

9.5.6 iOS 287

9.5.7 Symbian OS 287

9.5.8 TinyOS 289

9.5.9 μC/OS 290

9.6 嵌入式操作系统的发展趋势 291

习题 292

第10章 操作系统安全 293

10.1 操作系统安全概述 293

10.2 操作系统的安全机制 294

10.2.1 硬件安全机制 295

10.2.2 标识与鉴别机制 298

10.2.3 访问控制机制 301

10.2.4 最小权限管理 307

10.2.5 可信路径 307

10.2.6 审计 308

10.3 Linux操作系统的安全性 308

10.3.1 PAM机制 309

10.3.2 文件系统加密 309

10.3.3 网络监控与入侵检测 309

10.3.4 强制访问控制 310

10.3.5 安全审计 310

10.3.6 防火墙机制 311

习题 311

参考文献 313