第一章 计算机系统组成及工作原理 1
1.1 基本概念 1
1.1.1 计算机系统的硬件组成 1
1.1.2 计算机系统的层次结构 3
1.1.3 计算机的主要性能指标 3
1.2 运算方法基础与运算器 4
1.2.1 数值数据在计算机中的表示 4
1.2.2 非数值数据在计算机中的表示 9
1.2.3 数据校验码 11
1.2.4 基本的算术运算 13
1.2.5 基本的逻辑运算 15
1.2.6 运算器的基本组成 16
1.3 指令系统及控制器 18
1.3.1 指令格式和指令的寻址方式 18
1.3.2 指令类型 21
1.3.3 控制器的组成 22
1.3.4 CPU的总体结构 23
1.3.5 中断系统 24
1.4 存储系统 25
1.4.1 存储系统原理 25
1.4.2 半导体随机存储器和只读存储器 26
1.4.3 主存储器的组成与读写操作 28
1.4.4 外存储器的工作原理 31
1.5 输入/输出设备与输入/输出系统 33
1.5.1 常见输入/输出设备及I/O接口 33
1.5.2 程序查询方式 35
1.5.3 程序中断方式 35
1.5.4 DMA方式 37
1.5.5 通道方式 39
1.5.6 典型总线 41
练习题 42
参考文献 42
第二章 数据结构与算法 43
2.1 基本概念 43
2.1.1 数据结构的基本概念 43
2.1.2 算法及算法分析 44
2.2 线性表 45
2.2.1 线性表的定义及其基本操作 45
2.2.2 线性表的顺序存储结构 46
2.2.3 线性表的链式存储结构 48
2.3 堆栈与队列 55
2.3.1 堆栈的基本概念与操作 55
2.3.2 堆栈的存储结构 55
2.3.3 队列的基本概念与操作 56
2.3.4 队列的存储结构 57
2.4 特殊矩阵的压缩存储 57
2.4.1 对称矩阵的压缩存储 58
2.4.2 对角矩阵的压缩存储 58
2.4.3 稀疏矩阵的三元组表存储 58
2.5 树与二叉树 59
2.5.1 树的基本概念 60
2.5.2 二叉树的基本概念 61
2.5.3 二叉树的存储结构 62
2.5.4 二叉树的遍历 64
2.5.5 二叉排序树 66
2.6 图 68
2.6.1 图的基本概念 68
2.6.2 图的存储 69
2.6.3 图的遍历 71
2.6.4 最小生成树 72
2.6.5 最短路径 73
2.6.6 拓扑排序 74
2.6.7 关键路径 74
2.7 文件及其查找 75
2.7.1 文件的基本概念 75
2.7.2 顺序文件及其查找方法 76
2.7.3 索引文件及其查找方法 79
2.7.4 B-树和B+树 80
2.7.5 散列表的查找 81
2.8 内排序 84
2.8.1 排序的基本概念 84
2.8.2 插入排序法 85
2.8.3 选择排序法 86
2.8.4 起泡排序法 87
2.8.5 Shell排序法 88
2.8.6 快速排序法 89
2.8.7 堆排序法 91
2.8.8 二路归并排序法 92
练习题 94
第三章 离散数学 95
3.1 数理逻辑 95
3.1.1 命题逻辑基本概念 95
3.1.2 命题公式及其分类 98
3.1.3 命题逻辑等值演算 100
3.1.4 主析取范式与主合取范式 102
3.1.5 命题逻辑的推理理论 106
3.1.6 谓词逻辑基本概念 110
3.1.7 谓词公式的解释与分类 111
3.1.8 谓词逻辑的等值演算与前束范式 113
3.1.9 谓词逻辑推理理论 115
3.2 集合论 118
3.2.1 集合的基本概念 118
3.2.2 集合的基本运算 119
3.2.3 包含排斥原理 120
3.2.4 有序对、卡氏积和二元关系 122
3.2.5 关系的运算及性质 123
3.2.6 复合关系 125
3.2.7 关系的闭包 126
3.2.8 等价关系与偏序关系 127
3.2.9 函数 130
3.2.10 自然数和集合的基数 132
3.3 代数结构 135
3.3.1 代数运算及其性质 135
3.3.2 代数系统的同态与同构 137
3.3.3 商代数与积代数 138
3.3.4 半群与群 139
3.3.5 循环群与置换群 141
3.3.6 群的陪集分解、不变子群和商群 142
3.3.7 环和域 144
3.3.8 格与布尔代数 145
3.4 图论 147
3.4.1 无向图与有向图 147
3.4.2 通路、回路和图的连通性 152
3.4.3 图的矩阵表示 154
3.4.4 二部图 156
3.4.5 欧拉图与哈密顿图 157
3.4.6 平面图 158
3.4.7 无向树及生成树 160
3.4.8 根树及其应用 161
练习题 163
第四章 操作系统 172
4.1 操作系统基本概念 172
4.1.1 操作系统概念 172
4.1.2 操作系统的历史 173
4.1.3 操作系统的功能 173
4.1.4 操作系统的类型 174
4.1.5 研究操作系统的方法 176
4.1.6 操作系统的硬件环境 177
4.2 进程管理 180
4.2.1 多道程序设计 180
4.2.2 进程 181
4.2.3 进程间的通信 184
4.2.4 进程控制 187
4.2.5 进程调度 187
4.2.6 死锁 189
4.3 作业管理 191
4.3.1 操作系统与用户的接口 191
4.3.2 作业管理概述 192
4.3.3 批处理方式下的作业管理 193
4.4 存储管理 196
4.4.1 存储管理概述 197
4.4.2 内存资源管理 198
4.4.3 分区存储管理 199
4.4.4 页式存储管理 200
4.4.5 段式存储管理 202
4.4.6 段页式存储管理 204
4.4.7 虚拟存储管理 206
4.4.8 虚拟存储管理的性能问题 209
4.4.9 交换技术 209
4.5 文件管理 210
4.5.1 文件与文件系统 210
4.5.2 文件结构和存取方式 211
4.5.3 文件目录 214
4.5.4 文件存储空间的管理 217
4.5.5 文件存取控制 218
4.5.6 文件的使用 220
4.5.7 文件系统的安全 221
4.6 设备管理 221
4.6.1 设备管理概述 221
4.6.2 通道技术 223
4.6.3 缓冲技术 224
4.6.4 设备分配 225
4.6.5 设备处理 227
4.6.6 磁盘调度 227
4.7 UNIX操作系统的特点与使用 228
4.7.1 UNIX操作系统概述 228
4.7.2 UNIX的结构 229
4.7.3 UNIX基本操作 229
4.7.4 UNIX文件系统 230
4.7.5 UNIX的基本命令 230
4.7.6 UNIX系统Shell 232
4.8 Linux系统的特点及使用 235
4.8.1 Linux概述 235
4.8.2 Linux结构 235
4.8.3 基本命令 236
4.8.4 Shell 238
4.9 Windows操作系统的特点及使用 240
4.9.1 Windows概述 240
4.9.2 Windows操作系统进程管理 241
4.9.3 Windows操作系统存储管理 242
4.9.4 Windows操作系统文件系统 243
4.9.5 Windows操作系统I/O设备管理 244
练习题 245
第五章 软件工程 246
5.1 软件工程的基本概念 246
5.1.1 软件与软件危机 246
5.1.2 软件工程定义 246
5.1.3 软件生存周期 247
5.1.4 软件过程模型 248
5.2 结构化分析与设计 249
5.2.1 问题定义、可行性研究和软件计划 249
5.2.2 软件需求分析 250
5.2.3 软件体系结构设计 258
5.2.4 概要设计和详细设计 263
5.2.5 用户界面设计 276
5.3 原型化开发方法 281
5.3.1 原型化开发方法的基本原理 281
5.3.2 原型化开发模型和开发过程 282
5.4 面向对象分析与设计 284
5.4.1 面向对象的基本概念 284
5.4.2 面向对象分析 285
5.4.3 统一建模语言(UML) 289
5.4.4 软件复用 291
5.5 软件测试 294
5.5.1 软件测试的基本概念 294
5.5.2 软件测试方法 296
5.5.3 测试用例设计 297
5.5.4 软件测试过程 300
5.6 软件维护 304
5.6.1 软件维护的基本概念 304
5.6.2 软件维护活动和实施 305
5.6.3 软件可维护性 307
5.6.4 软件维护的副作用 308
5.7 软件工程环境与工具 309
5.7.1 软件工程环境 309
5.7.2 软件开发工具 310
5.8 软件质量保证与软件质量度量 312
5.8.1 软件质量概念 312
5.8.2 软件质量保证(SQA) 314
5.8.3 软件质量度量与评价 316
5.8.4 软件技术评审 318
5.8.5 软件可靠性 320
5.9 软件管理 321
5.9.1 软件管理职能 321
5.9.2 软件项目的组织与计划 322
5.9.3 风险分析 324
5.9.4 项目进度与跟踪 326
5.9.5 软件配置管理 327
5.9.6 软件过程成熟度模型(CMM) 328
5.9.7 软件工程标准化与软件文档 329
5.9.8 软件产权保护 332
练习题 333
参考文献 334
第六章 数据库 335
6.1 数据库的基本概念 335
6.1.1 信息处理与数据库 335
6.1.2 数据模型 336
6.1.3 数据库系统结构 341
6.1.4 数据库系统组成 342
6.2 关系数据库 343
6.2.1 关系模型的基本概念 343
6.2.2 关系代数 347
6.2.3 元组关系演算 351
6.2.4 域关系演算 353
6.2.5 查询优化 355
6.3 关系数据库标准语言SQL 359
6.3.1 SQL语言的特点 359
6.3.2 SQL的系统结构 360
6.3.3 SQL的数据定义 361
6.3.4 SQL的数据操纵 363
6.3.5 视图 367
6.3.6 数据控制 369
6.3.7 嵌入式SQL 370
6.4 关系数据库设计理论 373
6.4.1 关系模型的存储异常 373
6.4.2 函数依赖 374
6.4.3 函数依赖公理 376
6.4.4 模式分解 377
6.4.5 关系模式的规范化 380
6.5 数据库保护 384
6.5.1 数据库恢复 384
6.5.2 并发控制 388
6.5.3 完整性 393
6.5.4 安全性 396
6.6 数据库设计 399
6.6.1 数据库设计概述 399
6.6.2 需求分析 402
6.6.3 概念设计 403
6.6.4 逻辑设计 407
6.6.5 物理设计 409
6.6.6 数据库实施与维护 410
6.7 数据库管理系统 410
6.7.1 数据库管理系统的组成 410
6.7.2 数据库系统的工作过程 411
6.7.3 关系数据库管理系统 412
6.8 数据库新技术 418
6.8.1 数据库技术的发展 418
6.8.2 分布式数据库 419
6.8.3 并行数据库 422
6.8.4 多媒体数据库 423
6.8.5 面向对象数据库和对象—关系数据库 425
6.8.6 数据仓库 427
6.8.7 数据挖掘 429
6.8.8 Web数据库 430
练习题 431
第七章 计算机体系结构 433
7.1 体系结构的基本概念 433
7.1.1 计算机系统的层次结构 433
7.1.2 计算机体系结构的定义 434
7.1.3 计算机体系结构的分类 435
7.1.4 体系结构发展的影响因素 437
7.1.5 体系结构的定量分析 439
7.2 存储系统 442
7.2.1 存储层次 442
7.2.2 Cache工作原理 443
7.2.3 虚存工作原理 449
7.3 指令与时间并行性 454
7.3.1 指令优化策略 454
7.3.2 流水线技术 456
7.3.3 RISC 468
7.4 并行处理技术 472
7.4.1 并行性概念 472
7.4.2 超标量与超流水线技术 474
7.4.3 向量处理机 480
7.4.4 阵列处理机 486
7.4.5 多处理机 488
7.4.6 机群系统 491
7.5 系统性能评价 493
7.5.1 性能评价概念 493
7.5.2 基准测试程序 494
练习题 495
参考文献 496
第八章 计算机网络 497
8.1 计算机网络与Internet 497
8.1.1 网络发展 498
8.1.2 网络协议 500
8.1.3 网络软件 501
8.1.4 网络硬件 503
8.1.5 协议层次与参考模型 509
8.2 应用层 512
8.2.1 应用层概述 512
8.2.2 万维网 514
8.2.3 文件传送 523
8.2.4 电子邮件 526
8.2.5 域名系统 530
8.2.6 网络安全 534
8.2.7 网络多媒体技术 536
8.3 传输层 539
8.3.1 传输层概述 539
8.3.2 无连接传输 543
8.3.3 面向连接传输 544
8.3.4 Socket编程 554
8.4 网络层与路由 564
8.4.1 网络层概述 565
8.4.2 路由原理 568
8.4.3 Internet协议 575
8.4.4 Internet路由 588
8.4.5 服务质量 592
8.5 链路层与局域网 595
8.5.1 数据链路层概述 595
8.5.2 流量控制 597
8.5.3 差错控制 600
8.5.4 PPP:点—点协议 603
8.5.5 多路访问协议与Ethernet 606
8.5.6 数据链路层交换 617
练习题 623
参考文献 624