《操作系统原理与LINUX实例设计 第2版》PDF下载

  • 购买积分:11 如何计算积分?
  • 作  者:蒲晓蓉,周瑞,李玉军,薛瑞尼编著
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2014
  • ISBN:9787121232046
  • 页数:276 页
图书介绍:本书从原理性和实用性出发,以现代操作系统原理为基础,较深入地介绍了Linux操作系统中的部分功能实现与应用编程技术。全书共分6章,主要内容包括:概述、进程的并发控制、存储管理、设备管理、文件管理系统及嵌入式操作系统。本书提供多媒体电子课件和习题解答。

第1章 概述 1

1.1 计算机系统资源与操作系统 1

1.2 操作系统的发展 4

1.2.1 推动操作系统发展的关键因素 4

1.2.2 操作系统发展的几个典型转变 5

1.2.3 操作系统的进一步发展 7

1.3 现代操作系统的设计概述 8

1.3.1 操作系统的功能性需求 8

1.3.2 操作系统的非功能性需求 12

1.3.3 操作系统依赖的硬件平台 13

1.3.4 操作系统的体系结构 14

1.3.5 操作系统中的关键数据结构 17

1.4 Linux操作系统简介 18

1.4.1 Linux的起源及特性 18

1.4.2 Linux系统运行的基本硬件平台 19

1.4.3 主流Linux操作系统版本简介 19

1.5 Linux的系统调用分析 21

1.5.1 系统调用的含义 21

1.5.2 系统调用的作用 21

1.5.3 系统调用的工作原理 22

1.5.4 Linux系统调用的相关数据结构 22

1.5.5 Linux新型快速系统调用机制简析 23

1.6 Linux的系统调用设计 24

1.6.1 添加一个系统调用 24

1.6.2 系统调用测试 26

1.6.3 系统调用过程分析 26

习题 29

第2章 进程的并发控制 30

2.1 并发、程序与进程 30

2.1.1 并发概述 30

2.1.2 程序的顺序执行与并发执行 31

2.1.3 进程及其运行环境 33

2.2 进程的状态转换 35

2.2.1 五状态进程模型 35

2.2.2 进程的挂起状态与七状态进程模型 37

2.2.3 Linux的进程及其状态转换 39

2.3 操作系统对进程的控制 41

2.3.1 操作系统内核 41

2.3.2 进程的构成及进程的组织 43

2.3.3 进程控制块 44

2.3.4 操作系统对进程的控制 47

2.3.5 Linux对进程的控制 50

2.3.6 Linux的内核机制 52

2.4 线程——另一种并发实体 55

2.4.1 进程与线程 55

2.4.2 多线程并发 56

2.4.3 线程的类型 57

2.4.4 Linux的进程与线程管理 58

2.5 进程调度 59

2.5.1 调度的目标、原则和方式 60

2.5.2 调度的类型 61

2.5.3 进程调度算法 63

2.5.4 实时系统与实时任务调度 66

2.5.5 Linux的进程调度分析 69

2.5.6 Linux下时钟中断与进程调度的关系 75

2.6 进程并发控制:互斥与同步 77

2.6.1 并发控制 77

2.6.2 互斥与同步的解决策略 80

2.6.3 互斥/同步问题:生产者/消费者问题 89

2.6.4 互斥/同步问题:读者/写者问题 92

2.6.5 Linux通信实例 94

2.6.6 Linux信号量分析 97

2.7 进程死锁 99

2.7.1 进程死锁的原因 100

2.7.2 解决死锁的方法 101

2.7.3 预防死锁 102

2.7.4 避免死锁 103

2.7.5 检测并解除死锁 107

2.8 死锁问题:哲学家进餐问题 108

习题 110

第3章 存储管理 113

3.1 存储管理子系统概述 113

3.1.1 存储分配 113

3.1.2 地址映射 114

3.1.3 存储保护 116

3.1.4 存储共享 116

3.1.5 存储扩充 117

3.2 简单存储管理技术 117

3.2.1 简单存储分区技术 117

3.2.2 简单存储分页技术 121

3.2.3 简单存储分段技术 125

3.2.4 简单存储段页式技术 127

3.3 虚拟存储管理技术 129

3.3.1 虚拟存储技术概述 129

3.3.2 虚拟存储分页技术 131

3.3.3 虚拟存储分段技术 132

3.3.4 虚拟存储段页式技术 133

3.3.5 虚拟存储系统的软件策略 134

3.4 Linux的虚拟内存管理 143

3.4.1 80386分段机制在Linux系统中的实现 144

3.4.2 80386的分页机制在Linux系统中的实现 148

3.4.3 Linux虚拟内存管理的实现 152

3.5 Linux存储器管理案例分析 157

3.5.1 共享存储分析 157

3.5.2 共享存储的修改与测试 172

习题 175

第4章 设备管理 177

4.1 设备管理子系统概述 177

4.1.1 设备管理的主要功能 177

4.1.2 设备管理分层模型 178

4.1.3 I/O控制方式 179

4.2 设备分配 180

4.2.1 相关的数据结构 180

4.2.2 设备分配算法 182

4.3 I/O缓冲技术 184

4.4 虚拟设备 186

4.5 磁盘设备的管理 189

4.6 Linux的设备管理 193

4.6.1 Linux驱动程序的设计框架 194

4.6.2 Linux内核模块驱动程序设计 198

4.6.3 驱动程序测试 203

习题 204

第5章 文件管理系统 205

5.1 文件管理子系统概述 205

5.2 文件目录 206

5.3 文件的逻辑组织与访问 208

5.4 文件的物理组织 211

5.4.1 文件存储空间的分配技术 213

5.4.2 空闲空间的管理 217

5.5 Linux的虚拟文件系统 219

5.5.1 VFS文件系统的作用 220

5.5.2 VFS文件系统中的数据结构 220

5.5.3 主要数据结构间的关系 229

5.6 文件系统分析与设计 229

5.6.1 文件系统的操作集 230

5.6.2 物理文件系统的注册 235

5.6.3 文件系统的安装 238

5.6.4 文件系统的设计与测试 241

习题 245

第6章 嵌入式操作系统 246

6.1 嵌入式操作系统概述 246

6.1.1 无处不在的嵌入式系统 246

6.1.2 嵌入式软件系统 247

6.1.3 嵌入式操作系统及其特点 248

6.1.4 嵌入式操作系统的结构 249

6.1.5 嵌入式实时内核和扩展组件 251

6.2 任务管理与调度 251

6.2.1 任务及其管理 251

6.2.2 任务调度 252

6.3 任务间的同步、互斥与通信 254

6.3.1 信号量 254

6.3.2 事件 256

6.3.3 异步信号 256

6.3.4 消息队列 256

6.3.5 管道 257

6.4 中断管理 258

6.4.1 中断处理过程 258

6.4.2 中断嵌套 259

6.5 时钟管理 260

6.5.1 实时时钟和系统时钟 260

6.5.2 时间管理 260

6.6 内存与设备管理 261

6.6.1 内存管理 261

6.6.2 设备管理 263

6.7 嵌入式文件系统 264

6.8 嵌入式操作系统与通用操作系统的比较 265

6.9 代表性嵌入式操作系统 265

6.9.1 VxWorks 266

6.9.2 Windows Phone 267

6.9.3 Embedded Linux 267

6.9.4 Symbian 267

6.9.5 iOS系统 268

6.9.6 Android系统 268

习题 275

参考文献 276