描述
开 本: 16开纸 张: 胶版纸包 装: 平装是否套装: 否国际标准书号ISBN: 9787121232046
第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
计算机技术的发展不仅极大地促进了科学技术的发展,而且明显地加快了经济信息化和社会信息化的进程。因此,计算机教育在各国备受重视,具备计算机知识与能力已成为21世纪人才的基本素质之一。
计算机操作系统是现代计算机系统中的核心基础系统软件,操作系统设计原理与实现技术是计算机专业人员必须掌握的基本知识。操作系统经典原理不仅适合于具体操作系统的实现,同时也对应用程序设计具有很好的指导意义。因此,学习和研究操作系统的一般原理,了解操作系统涉及的关键术语、数据结构、经典算法,对于计算机专业知识的构建是非常必要和重要的。然而,单纯的原理介绍太过于理论化,结合一个具体操作系统实例进行分析,将有助于对操作系统原理的理解,提高系统级应用程序设计能力。
本书从原理性和实用性出发,以现代操作系统原理为基础,较深入地介绍Linux操作系统中的部分功能实现与应用编程技术。全书共6章,第1章为概述,第2章详细地分析多进程的并发控制,第3章介绍现代操作系统的存储管理技术与Linux的存储实现,第4章分析输入/输出设备管理及Linux的设备管理技术,第5章介绍文件管理系统的原理及Linux的虚拟文件系统实现,第6章介绍嵌入式操作系统。
本教材基于操作系统的一般原理,结合Linux操作系统关键功能模块的实现,既有理论基础的支撑,又配合实际操作系统实例分析。通过学习本书内容,读者可以:
系统了解计算机操作系统的一般原理;
认识操作系统的各大功能模块;
掌握计算机操作系统的经典算法和数据结构;
以Linux操作系统为例,学习如何编程实现操作系统的具体功能模块;
借鉴操作系统的原理和算法,指导计算机应用程序的设计和开发。
本书语言简明、通俗易懂,具有很强的专业性、技术性和实用性。本书是作者在对计算机专业和软件专业学生进行多年计算机操作系统教学的基础上逐年积累编写而成的,力求读者能利用操作系统的基本原理,理解和解释相应的操作系统实例。然而,众所周知,每一个操作系统实例的具体实现都是十分复杂的,且源于基本原理,又在基本原理的基础上进行了很大的发展和改进。本书注重操作系统通用原理的介绍,对实例分析部分仅仅是一个引入,有兴趣的读者还需要参考大量的文献,深入了解一个操作系统的实现。本书每一章都附有一定量的习题,供学生课后练习以巩固所学知识。本书提供教学用多媒体电子课件和习题解答,请登录华信教育资源网(http://www.hxedu.com.cn)注册下载。
本书可作为计算机专业和软件专业本科以及硕士研究生的计算机操作系统结构分析课程教材,也可供相关领域的工程技术人员学习和参考。
本书中关于操作系统原理部分由蒲晓蓉编写,李玉军负责第1章Linux操作系统简介、Linux系统调用分析与设计、第4章Linux的设备管理和第5章Linux的文件系统等内容的撰写,薛瑞尼负责第2章Linux的进程管理和第3章Linux的存储管理等部分内容的撰写,周瑞负责第6章嵌入式操作系统的撰写,全书由蒲晓蓉统稿。本书第一版的Linux实例部分由刘丹编写,为本次改版打下了良好的基础,在此表示感谢!本书的编写参考了大量近年来出版的相关技术资料,吸取了许多专家和同仁的宝贵经验,在此向他们深表感谢!
由于笔者经验和知识等方面的不足,加之时间仓促,最后的成品未能达到笔者预期的效果,书中难免存在错误和不足,敬请读者和专家批评指正。
编 者
于电子科技大学
2014年5月
评论
还没有评论。