第1章 计算机概述 1
1.1 计算机硬件 1
1.1.1 处理器 1
1.1.2 存储器 5
1.1.3 I/O设备 8
1.1.4 时钟部件 8
1.1.5 计算机总线 10
1.1.6 各功能部件组织结构 11
1.2 计算机软件 12
1.2.1 固化软件 12
1.2.2 系统软件 13
1.2.3 工具软件 13
1.2.4 应用软件 14
1.3 机器指令与程序执行 14
1.3.1 指令集 14
1.3.2 指令执行与指令周期 14
1.4 中断机制 15
1.4.1 中断的作用 16
1.4.2 中断查询机制 16
1.4.3 中断管理程序 17
1.4.4 中断类型及中断处理 18
1.4.5 多中断处理技术 19
1.5 高速缓存技术 20
1.5.1 高速缓存在系统中的作用 20
1.5.2 具有高速缓存的主存储器访问机制 21
1.6 I/O访问方式 21
1.7 本章小结 22
习题 23
第2章 操作系统概述 25
2.1 操作系统的作用与功能 25
2.1.1 用户对操作系统的需求 25
2.1.2 操作系统的作用 26
2.1.3 操作系统的功能 27
2.2 操作系统的发展历程 28
2.3 操作系统分类 29
2.3.1 批处理操作系统 29
2.3.2 分时操作系统 32
2.3.3 实时操作系统 32
2.3.4 多处理器的操作系统 33
2.3.5 网络操作系统 34
2.3.6 分布式操作系统 35
2.3.7 个人计算机操作系统 36
2.3.8 嵌入式操作系统 36
2.4 操作系统设计 36
2.4.1 操作系统设计难点 37
2.4.2 软件工程思想的应用 38
2.5 操作系统中的核心技术 38
2.5.1 并行管理技术 38
2.5.2 存储管理技术 39
2.5.3 文件与I/O管理技术 40
2.5.4 调度算法与信息安全控制 40
2.6 操作系统体系结构 41
2.6.1 无结构系统 41
2.6.2 层次结构 42
2.6.3 虚拟机结构 42
2.6.4 微内核结构 43
2.7 典型操作系统 44
2.7.1 MS-DOS 44
2.7.2 Microsoft Windows 45
2.7.3 UNIX操作系统 46
2.8 本章小结 48
习题 49
第3章 进程与进程管理 50
3.1 什么是进程 50
3.1.1 多道环境中的程序执行 50
3.1.2 进程的定义 52
3.1.3 进程的特性 52
3.1.4 进程与程序的区别 53
3.2 进程的派生机制 53
3.3 进程的状态 54
3.3.1 进程执行 54
3.3.2 两状态进程 56
3.3.3 5状态进程 56
3.3.4 挂起进程模型 59
3.4 进程描述 60
3.4.1 进程描述内容 60
3.4.2 进程控制块 61
3.4.3 进程映像 62
3.5 进程控制 63
3.5.1 进程管理 63
3.5.2 进程控制操作 64
3.6 本章小结 66
习题 67
第4章 进程通信及处理器调度 69
4.1 程序顺序执行与进程并发 69
4.1.1 程序顺序执行 69
4.1.2 进程并发条件 70
4.1.3 构造进程并发环境 71
4.2 进程的同步与互斥 72
4.2.1 进程交互方式 73
4.2.2 进程互斥的实现 73
4.2.3 进程同步问题 79
4.2.4 用信号量管理进程的同步与互斥 82
4.2.5 管程 83
4.3 进程通信机制 85
4.3.1 消息传递通信 85
4.3.2 消息通信应用 87
4.3.3 经典IPC问题:读者-写者问题 88
4.3.4 经典IPC问题:哲学家就餐问题 90
4.4 处理器调度 92
4.4.1 调度中应关注的问题 92
4.4.2 调度方式与操作系统分类 93
4.4.3 处理器分级调度 93
4.4.4 调度的衡量标准 94
4.4.5 处理器调度算法 96
4.4.6 调度算法的性能分析 101
4.5 UNIX进程调度分析 102
4.5.1 调度时机安排 102
4.5.2 调度标志设置 102
4.5.3 进程调度策略及优先数的计算 102
4.5.4 进程调度实现 103
4.6 本章小结 103
习题 104
第5章 存储管理 106
5.1 计算机存储结构 106
5.1.1 存储器配置方式 106
5.1.2 常见PC机存储结构 106
5.2 地址重定位及内存访问保护 107
5.2.1 地址空间 107
5.2.2 地址重定位 107
5.2.3 地址重定位及存储信息保护 108
5.3 存储管理中的分配技术 109
5.3.1 进程交换的意义 109
5.3.2 用位示图法控制存储分配 110
5.3.3 用链表法实现内存分配管理 111
5.4 分区存储管理技术 111
5.4.1 单一分区内存管理 111
5.4.2 固定大小的多分区管理 111
5.4.3 动态分区管理 113
5.5 分区分配算法 115
5.5.1 分区分配算法描述 115
5.5.2 分配算法使用特性 116
5.6 页式管理 117
5.6.1 分页的基本思想 117
5.6.2 静态页式管理 117
5.6.3 动态页式管理 120
5.7 段式管理 121
5.7.1 段式管理基本原理 121
5.7.2 段式管理的地址变换机制 122
5.8 段页式存储管理 123
5.8.1 分页与分段管理的特点 123
5.8.2 段页式管理方式 124
5.9 虚拟存储技术 124
5.9.1 局部性原理 124
5.9.2 虚拟存储的基础 125
5.9.3 用分页管理实现虚拟存储 126
5.9.4 虚拟存储页面置换算法 127
5.10 本章小结 131
习题 131
第6章 线程管理 133
6.1 线程基本概念 133
6.1.1 线程定义 133
6.1.2 进程与线程的分工 134
6.2 基于线程并发的优势 135
6.2.1 线程切换优势 135
6.2.2 操作系统对线程支持的综合优势 136
6.3 包含线程的进程描述模型 137
6.4 线程管理实现机制 138
6.4.1 线程执行状态 138
6.4.2 用户级线程管理模式 139
6.4.3 核心级线程管理模式 140
6.4.4 混合型线程管理模式 140
6.5 适合多线程的应用 141
6.5.1 用多线程解决实际问题 141
6.5.2 线程控制语句 143
6.5.3 关于多线程标准库 145
6.5.4 多线程编程规则 146
6.6 多线程程序设计实例 148
6.6.1 用多线程提高程序执行效率 148
6.6.2 用线程实现数据库查询 150
6.6.3 用多线程完成文件复制 151
6.7 本章小结 154
习题 155
第7章 I/O技术与设备管理 156
7.1 I/O设备的硬件 156
7.1.1 I/O设备分类 157
7.1.2 设备控制器 157
7.1.3 I/O端口的描述与访问 158
7.1.4 DMA访问机制 160
7.1.5 I/O中断 161
7.2 I/O软件设计 163
7.2.1 I/O软件功能 163
7.2.2 程序控制I/O方式 164
7.2.3 中断驱动I/O方式 165
7.2.4 直接存储器I/O访问方式 166
7.2.5 I/O软件变迁过程 166
7.3 I/O管理子系统设计 167
7.3.1 I/O管理子系统设计特点 167
7.3.2 I/O管理子系统结构 168
7.3.3 中断处理程序设计 168
7.3.4 设备驱动程序设计 170
7.3.5 I/O管理中的设备无关性设计 171
7.3.6 I/O缓冲技术 173
7.4 用户层I/O软件设计 175
7.4.1 建立I/O访问库 176
7.4.2 虚拟设备管理 176
7.5 磁盘管理技术 177
7.5.1 磁盘性能参数 177
7.5.2 磁盘调度策略 178
7.5.3 RAID技术 179
7.5.4 磁盘格式化问题 182
7.6 时钟管理 184
7.6.1 时钟硬件的组成 184
7.6.2 时钟软件功能 185
7.7 字符终端管理 185
7.7.1 字符终端接口 185
7.7.2 字符设备输入软件 186
7.7.3 字符设备输出软件 187
7.8 I/O子系统设计实例 187
7.8.1 Windows 2000/XP的I/O子系统 187
7.8.2 Linux的I/O子系统 190
7.9 本章小结 193
习题 194
第8章 文件管理 196
8.1 文件管理概述 196
8.1.1 信息描述单元 196
8.1.2 文件系统的作用 197
8.1.3 文件命名规则 197
8.1.4 文件分类 198
8.2 文件存储结构 198
8.3 目录管理 200
8.3.1 文件控制块 200
8.3.2 目录文件 201
8.3.3 文件目录结构 203
8.4 磁盘文件系统 206
8.4.1 磁盘分区与格式化 206
8.4.2 文件存盘管理 208
8.4.3 目录存储策略 211
8.4.4 多级目录中文件共享 212
8.4.5 文件系统构造 215
8.5 用于文件管理的系统调用 216
8.5.1 系统调用功能 216
8.5.2 UNIX文件描述符 216
8.5.3 文件创建和文件链接 217
8.5.4 文件打开及文件关闭 219
8.5.5 对文件的读/写操作 220
8.5.6 改变文件访问指针位置 221
8.5.7 捕获文件当前指针位置 223
8.6 文件并发访问控制 224
8.6.1 文件并发访问机制 224
8.6.2 文件记录加锁技术 224
8.6.3 UNIX文件记录加锁方法 225
8.7 文件系统实例:UNIX文件系统 226
8.7.1 UNIX的文件与目录 226
8.7.2 安装与卸载文件系统 227
8.7.3 UNIX文件系统组成 228
8.7.4 UNIX文件存储策略 228
8.7.5 文件访问动态管理机制 229
8.7.6 UNIX虚拟文件系统 230
8.8 文件系统实例:Windows文件系统 232
8.8.1 磁盘访问特点 232
8.8.2 建立磁盘主引导区 232
8.8.3 磁盘分区 233
8.8.4 NTFS文件系统 234
8.9 本章小结 236
习题 237
第9章 网络与分布式操作系统 239
9.1 计算机网络 239
9.1.1 网络分类 239
9.1.2 网络协议 240
9.1.3 网络结构 240
9.2 网络操作系统 243
9.2.1 网络操作系统模型 243
9.2.2 操作系统对Internet的支持 244
9.3 分布式系统概念 246
9.3.1 分布式基础 246
9.3.2 分布式操作系统 247
9.3.3 分布式程序设计语言 248
9.3.4 分布式文件和数据库系统 248
9.4 分布式操作系统技术 249
9.4.1 分布式进程通信 249
9.4.2 分布式资源管理 252
9.4.3 分布式文件系统 254
9.5 本章小结 258
习题 258
第10章 操作系统的安全性 260
10.1 系统安全基本知识 260
10.1.1 对系统造成威胁的人 260
10.1.2 安全管理的目标 261
10.1.3 操作系统安全原则 262
10.1.4 系统级安全措施功能 263
10.2 数字加密技术 264
10.2.1 数字加密 264
10.2.2 数字签名 266
10.3 用户身份验证 267
10.3.1 用户口令验证 267
10.3.2 持有物信息验证 269
10.3.3 人体生物识别 269
10.4 计算机病毒攻击与防范 270
10.4.1 植入系统内部的危害 270
10.4.2 来自系统外部的危害 274
10.4.3 病毒引发分析 274
10.4.4 病毒传播 276
10.4.5 系统安全与反入侵技术 276
10.5 本章小结 279
习题 280
附录A Solaris内存分页管理技术分析 281
附录B Linux设备驱动程序设计 306