《操作系统》是一部关于操作系统基本概念、管理策略及实现原理的教材,目的是尽可能清晰、全面地介绍现代操作系统涉及的内容和技术,展现现代操作系统的本质和特点,跟上现代操作系统发展的速度和步伐。全书共9章,第1章为操作系统概述,第2章介绍进程与线程,第3章介绍处理机管理,第4章和第5章介绍存储管理,第6章介绍文件管理,第7章介绍设备管理,第8章介绍并发进程的设计技术,第9章介绍死锁和系统安全。
《操作系统》内容涵盖《2009计算机考研大纲》和《高等学校计算机科学与技术专业公共核心知识体系与课程》中有关操作系统部分的要求;从认知的实际过程出发,对全书的内容做了精心安排;对于重点内容或难以理解之处,《操作系统》或通过举例、或不惜用较多的笔墨进行说明和解释;最后以附录的形式给出各章部分习题或详或简的参考答案。
《操作系统》可作为普通高等院校本科计算机专业及相关专业的操作系统教材和考研参考书,也可以作为IT行业有关人员的自学参考书。
目录
- 第1章 操作系统概述 1
- 1.1 操作系统的定义与功能 1
- 1.1.1 操作系统的定义 1
- 1.1.2 操作系统的功能 3
- 1.2 操作系统的接口与内核模式 5
- 1.2.1 操作系统的两种接口 5
- 1.2.2 操作系统内核的结构模式 9
- 1.3 操作系统的基本分类 11
- 1.3.1 批处理系统 11
- 1.3.2 分时系统 13
- 1.3.3 实时系统 14
- 1.3.4 网络系统 16
- 1.4 硬件支撑环境 17
- 1.4.1 计算机硬件的基本构成 17
- 1.4.2 中断 19
- 1.4.3 存储器的结构 22
- 1.5 Linux操作系统的诞生 24
- 1.5.1 操作系统的发展简史 24
- 1.5.2 Linux操作系统的诞生 25
- 习题 27
- 第2章 进程与线程 29
- 2.1 进程的概念 29
- 2.1.1 多道程序设计环境下的程序特点 29
- 2.1.2 进程的定义 32
- 2.1.3 进程的状态及状态变迁 34
- 2.2 进程的管理 37
- 2.2.1 进程控制块 37
- 2.2.2 进程控制块队列 40
- 2.2.3 进程控制的系统调用命令 41
- 2.3 线程 45
- 2.3.1 线程的概念 45
- 2.3.2 线程的实现 48
- 2.3.3 线程与进程的关系 49
- 2.4 Linux的进程 51
- 2.4.1 Linux进程 51
- 2.4.2 Linux的几种链接信息 54
- 2.4.3 Linux进程的生存过程 56
- 习题 59
- 第3章 处理机管理 61
- 3.1 处理机调度概述 61
- 3.1.1 处理机调度的3个层次 61
- 3.1.2 进程调度的功能、时机和基本策略 63
- 3.1.3 调度算法的性能评价指标 64
- 3.2 作业调度算法 66
- 3.2.1 先来先服务调度算法 66
- 3.2.2 短作业优先调度算法 69
- 3.2.3 最短剩余时间优先调度算法 70
- 3.2.4 最高响应比调度算法 71
- 3.3 进程调度算法 73
- 3.3.1 先来先服务调度算法 73
- 3.3.2 轮转调度算法 73
- 3.3.3 优先级调度算法 75
- 3.3.4 多级队列调度算法 77
- 3.3.5 多级反馈队列调度算法 78
- 3.4 实时处理与实时调度算法 79
- 3.4.1 实时处理的特征 79
- 3.4.2 最早截止时间优先调度算法 81
- 3.4.3 速率单调调度算法 82
- 3.5 Linux的处理机调度 84
- 3.5.1 涉及调度的进程分类 84
- 3.5.2 Linux的可运行队列 85
- 3.5.3 Linux的进程调度算法 87
- 习题 89
- 第4章 基本存储管理 92
- 4.1 存储管理预备知识 92
- 4.1.1 用户程序的4个处理阶段 92
- 4.1.2 地址重定位 94
- 4.1.3 程序的链接 97
- 4.1.4 存储管理的功能 98
- 4.2 分区存储管理 98
- 4.2.1 固定分区存储管理 99
- 4.2.2 可变分区存储管理 102
- 4.2.3 其他管理技术:覆盖、交换、伙伴系统 109
- 4.3 分页式存储管理 111
- 4.3.1 分页式存储管理的基本思想 111
- 4.3.2 分页式存储管理的地址转换 113
- 4.3.3 页帧的分配与回收 117
- 4.4 分段式和段页式存储管理 119
- 4.4.1 分段式存储管理 119
- 4.4.2 段页式存储管理 124
- 习题 125
- 第5章 虚拟存储管理 129
- 5.1 请求页式虚拟存储管理基础 129
- 5.1.1 虚拟存储器 129
- 5.1.2 请求页式虚拟存储管理 131
- 5.2 请求页式的替换策略 137
- 5.2.1 替换策略综述 137
- 5.2.2 请求页式静态替换策略 137
- 5.2.3 关于静态替换策略的进一步讨论 139
- 5.2.4 请求页式动态替换策略 144
- 5.3 请求段式虚拟存储管理 147
- 5.3.1 请求段式虚拟存储管理 147
- 5.3.2 段的动态链接 148
- 5.4 Linux的存储管理 150
- 5.4.1 Linux存储管理的硬件基础 150
- 5.4.2 Linux多级页表的地址转换 152
- 5.4.3 内存空间的管理 155
- 5.4.4 管理虚拟存储空间的数据结构 156
- 习题 158
- 第6章 文件管理 161
- 6.1 文件系统概述 161
- 6.1.1 文件系统概述 161
- 6.1.2 文件系统的功能 164
- 6.1.3 文件的逻辑结构 165
- 6.1.4 记录的成组与分解 166
- 6.2 文件的目录结构 167
- 6.2.1 目录 167
- 6.2.2 目录的层次结构 169
- 6.2.3 路径名 171
- 6.3 文件在磁盘上的组织 172
- 6.3.1 磁盘存储空间的管理 172
- 6.3.2 文件的物理结构 175
- 6.3.3 文件的存取方式 178
- 6.3.4 “按名存取”的实现 179
- 6.4 文件的使用 180
- 6.4.1 文件的操作 180
- 6.4.2 文件共享 182
- 6.4.3 文件保护 184
- 6.5 Linux的文件管理 185
- 6.5.1 Linux文件系统概述 186
- 6.5.2 Linux的文件类型 188
- 6.5.3 Linux的二次扩展文件系统——Ext2 190
- 6.5.4 Linux的虚拟文件系统——VFS 194
- 习题 197
- 第7章 设备管理 199
- 7.1 设备管理概述 199
- 7.1.1 I/O系统的组织结构 199
- 7.1.2 计算机设备的分类 201
- 7.1.3 设备管理的目标与功能 205
- 7.1.4 设备管理的数据结构 205
- 7.2 I/O的4种实现方式 208
- 7.2.1 程序循环控制I/O 208
- 7.2.2 中断驱动I/O 209
- 7.2.3 直接内存访问I/O 210
- 7.2.4 通道管理I/O 212
- 7.3 缓冲技术、虚拟设备与SPOOLing技术 214
- 7.3.1 I/O缓冲 214
- 7.3.2 虚拟设备与SPOOLing技术 217
- 7.4 磁盘及磁盘的移臂调度策略 218
- 7.4.1 磁盘的格式化 218
- 7.4.2 磁盘的性能参数 221
- 7.4.3 磁盘的移臂调度策略 222
- 7.4.4 独立磁盘冗余阵列:RAID 225
- 7.5 Linux的I/O管理 228
- 7.5.1 Linux设备管理综述 229
- 7.5.2 Linux对字符设备的管理 231
- 7.5.3 Linux对块设备的管理 232
- 7.5.4 Linux的磁盘调度 233
- 习题 235
- 第8章 并发性:互斥和同步 238
- 8.1 互斥和同步 238
- 8.1.1 互斥和临界区 238
- 8.1.2 同步 240
- 8.2 实现互斥的方法讨论 243
- 8.2.1 实现互斥的硬件方法 243
- 8.2.2 实现互斥的软件方法 244
- 8.3 信号量与P、V操作 246
- 8.3.1 信号量与P、V操作定义 246
- 8.3.2 用P、V操作实现互斥 247
- 8.3.3 用P、V操作实现同步 250
- 8.3.4 用P、V操作实现资源分配 252
- 8.3.5 管程 254
- 8.4 互斥、同步的样例分析 258
- 8.4.1 读者-写者问题 258
- 8.4.2 哲学家就餐问题 262
- 8.4.3 理发师理发问题 266
- 8.5 高级进程通信 268
- 8.5.1 消息缓冲通信 268
- 8.5.2 信箱通信 269
- 习题 270
- 第9章 死锁、系统安全 273
- 9.1 死锁概述 273
- 9.1.1 死锁的概念 273
- 9.1.2 资源分配图 276
- 9.1.3 产生死锁的必要条件 277
- 9.2 死锁的预防、避免、检测与恢复 278
- 9.2.1 死锁预防 278
- 9.2.2 死锁避免 280
- 9.2.3 死锁检测与恢复 286
- 9.3 系统的安全与保护 290
- 9.3.1 安全与保护概述 290
- 9.3.2 具体的安全威胁 296
- 9.3.3 具体的安全防护措施 298
- 习题 302
- 附录 各章部分习题解答 305
- 参考文献 316