《计算机类专业系统能力培养系列教材计算机系统基础(第2版)/袁春风》元春风 | PDF下载|ePub下载
计算机类专业系统能力培养系列教材计算机系统基础(第2版)/袁春风 版权信息
- 出版社:机械工业出版社
- 出版时间:2018-08-01
- ISBN:9787111604891
- 条形码:9787111604891 ; 978-7-111-60489-1
计算机类专业系统能力培养系列教材计算机系统基础(第2版)/袁春风 本书特色
本书主要介绍与计算机系统相关的核心概念,解释这些概念如何相互关联并终影响程序执行的结果和性能。本书共分8章,主要内容包括数据的表示和运算、程序的转换及机器级表示、程序的链接、程序的执行、存储器层次结构、虚拟存储器、异常控制流和I/O操作的实现等。本书将计算机系统每个抽象层涉及的重要概念通过程序的开发和运行串联起来,内容详尽,反映现实,概念清楚,通俗易懂,实例丰富,并提供大量典型习题以供读者练习。本书可以作为计算机专业本科或大专院校学生计算机系统方面的基础性教材,也可以作为有关专业研究生或计算机技术人员的参考书。
计算机类专业系统能力培养系列教材计算机系统基础(第2版)/袁春风 内容简介
本书主要介绍与计算机系统相关的核心概念,解释这些概念如何相互关联并终影响程序执行的结果和性能。本书共分8章,主要内容包括数据的表示和运算、程序的转换及机器级表示、程序的链接、程序的执行、存储器层次结构、虚拟存储器、异常控制流和I/O操作的实现等。本书将计算机系统每个抽象层涉及的重要概念通过程序的开发和运行串联起来,内容详尽,反映现实,概念清楚,通俗易懂,实例丰富,并提供大量典型习题以供读者练习。本书可以作为计算机专业本科或大专院校学生计算机系统方面的基础性教材,也可以作为有关专业研究生或计算机技术人员的参考书。
计算机类专业系统能力培养系列教材计算机系统基础(第2版)/袁春风 目录
序 言
前 言
[0第0]一部分 系统概述和可执行目标文[亻牛]的生成
[0第0]1章 计算[1机1]系统概述2
1.1 计算[1机1]基本工作原理2
1.1.1 冯・诺依曼结构基本思想2
1.1.2 冯・诺依曼[1机1]基本结构3
1.1.3 程序和指令的执行过程4
1.2 程序的开发与运行7
1.2.1 程序设计语言和翻译程序7
1.2.2 从源程序到可执行文[亻牛]9
1.2.3 可执行文[亻牛]的启动和执行10
1.3 计算[1机1]系统的层次结构12
1.3.1 计算[1机1]系统抽象层的转换12
1.3.2 计算[1机1]系统核心层之间的关联14
1.3.3 计算[1机1]系统的不同用户16
1.4 计算[1机1]系统性能[0评0]价18
1.4.1 计算[1机1]性能的定义19
1.4.2 计算[1机1]性能的测试19
1.4.3 用指令执行速度进行性能[0评0]估21
1.4.4 用基准程序进行性能[0评0]估22
1.4.5 Amdahl定律23
1.5 本书的[1主1]要内容和组织结构24
1.6 小结27
习题27
[0第0]2章 数据的[1机1]器级表示与处理30
2.1 数制和编码30
2.1.1 信息的二进制编码30
2.1.2 进位计数制32
2.1.3 定点与浮点表示36
2.1.4 定点数的编码表示36
2.2 整数的表示41
2.2.1 无符号整数和带符号整数的表示41
2.2.2 C语言中的整数及其相互转换42
2.3 浮点数的表示44
2.3.1 浮点数的表示范围44
2.3.2 浮点数的规格化45
2.3.3 IEEE 754浮点数标准45
2.3.4 C语言中的浮点数类型49
2.4 十进制数的表示51
2.4.1 用ASCII码字符表示51
2.4.2 用BCD码表示51
2.5 非数值数据的编码表示52
2.5.1 逻辑值52
2.5.2 西文字符52
2.5.3 汉字字符53
2.6 数据的宽度和存储55
2.6.1 数据的宽度和单位55
2.6.2 数据的存储和排列顺序57
2.7 数据的基本运算61
2.7.1 按位运算和逻辑运算61
2.7.2 左移运算和右移运算61
2.7.3 位扩展运算和位截断运算63
2.7.4 整数加减运算64
2.7.5 整数乘除运算68
2.7.6 常量的乘除运算71
2.7.7 浮点数运算72
2.8 小结78
习题79
[0第0]3章 程序的转换及[1机1]器级表示87
3.1 程序转换概述87
3.1.1 [1机1]器指令及汇编指令88
3.1.2 指令集体系结构89
3.1.3 生成[1机1]器代码的过程89
3.2 IA-32指令系统概述94
3.2.1 数据类型及其格式95
3.2.2 寄存器组织和寻址方式96
3.2.3 [1机1]器指令格式101
3.3 IA-32常用指令类型及其[*]作103
3.3.1 传送指令103
3.3.2 定点算术运算指令106
3.3.3 按位运算指令109
3.3.4 控制转移指令110
3.3.5 x87浮点处理指令115
3.3.6 MMX/SSE指令集116
3.4 C语言程序的[1机1]器级表示118
3.4.1 过程调用的[1机1]器级表示118
3.4.2 选择语句的[1机1]器级表示132
3.4.3 循环结构的[1机1]器级表示136
3.5 复杂数据类型的分配和访问139
3.5.1 数组的分配和访问139
3.5.2 结构体数据的分配和访问144
3.5.3 联合体数据的分配和访问146
3.5.4 数据的对齐148
3.6 越界访问和缓冲区溢出151
3.6.1 缓冲区溢出151
3.6.2 缓冲区溢出攻[1击1]153
3.6.3 缓冲区溢出攻[1击1]的防范155
3.7 兼容IA-32的64位系统158
3.7.1 x86-64的发展简[0史0]158
3.7.2 x86-64的基本特点159
3.7.3 x86-64的基本指令和对齐159
3.7.4 x86-64的过程调用161
3.7.5 x86-64的浮点[*]作与SIMD指令165
3.8 小结166
习题167
[0第0]4章 程序的链接182
4.1 编译、汇编和静态链接182
4.1.1 编译和汇编182
4.1.2 可执行目标文[亻牛]的生成184
4.2 目标文[亻牛]格式186
4.2.1 ELF目标文[亻牛]格式186
4.2.2 可重定位目标文[亻牛]格式187
4.2.3 可执行目标文[亻牛]格式190
4.2.4 可执行文[亻牛]的存储器映像192
4.3 符号表和符号解析193
4.3.1 符号和符号表193
4.3.2 符号解析196
4.3.3 与静态库的链接199
4.4 重定位201
4.4.1 重定位信息202
4.4.2 重定位过程202
4.5 动态链接206
4.5.1 动态链接的特性207
4.5.2 程序加载时的动态链接207
4.5.3 程序运行时的动态链接209
4.5.4 位置无关代码210
4.6 小结214
习题215
[0第0]二部分 可执行目标文[亻牛]的运行
[0第0]5章 程序的执行222
5.1 程序执行概述222
5.1.1 程序及指令的执行过程222
5.1.2 CPU的基本功能和组成224
5.1.3 打断程序正常执行的事[亻牛]226
5.2 数据通路基本结构和工作原理227
5.2.1 数据通路基本结构227
5.2.2 数据通路的时序控制229
5.2.3 总线式数据通路230
5.2.4 单周期数据通路235
5.3 流水线方式下指令的执行238
5.3.1 指令流水线的基本原理238
5.3.2 适合流水线的指令集特征241
5.3.3 CISC和RISC风格指令集242
5.3.4 指令流水线的实现245
5.3.5 高级流水线实现技术248
5.4 小结249
习题250
[0第0]6章 层次结构存储系统253
6.1 存储器概述253
6.1.1 存储器的分类253
6.1.2 [1主1]存储器的组成和基本[*]作255
6.1.3 存储器的[1主1]要性能指标255
6.1.4 各类存储元[亻牛]的特点256
6.1.5 存储器的层次结构257
6.2 [1主1]存与CPU的连接及其读写[*]作257
6.2.1 [1主1]存芯片技术257
6.2.2 [1主1]存与CPU的连接及其读写260
6.2.3 “装入”指令和“存储”指令[*]作过程263
6.3 硬盘存储器266
6.3.1 磁盘存储器的结构266
6.3.2 磁盘存储器的性能指标268
6.3.3 磁盘存储器的连接269
6.3.4 固态硬盘270
6.4 高速缓冲存储器271
6.4.1 程序访问的局部性271
6.4.2 cache的基本工作原理273
6.4.3 cache行和[1主1]存块的映[身寸]275
6.4.4 cache中[1主1]存块的替换算[0法0]281
6.4.5 cache一致性问题282
6.4.6 影响cache性能的因素283
6.4.7 IA-32的cache结构举例284
6.4.8 cache和程序性能285
6.5 虚拟存储器289
6.5.1 虚拟存储器的基本概念289
6.5.2 虚拟地址空间290
6.5.3 虚拟存储器的实现291
6.5.4 存储保护299
*6.6 IA-32+Linux中的地址转换300
6.6.1 逻辑地址到线性地址的转换301
6.6.2 线性地址到物理地址的转换306
*6.7 实例:Intel Core i7+Linux存储系统308
6.7.1 Core i7的层次化存储器结构308
6.7.2 Core i7的地址转换[1机1]制308
6.7.3 Linux系统的虚拟存储管理311
6.8 小结314
习题315
[0第0]7章 异常控制流322
7.1 进程与进程的上下文切换322
7.1.1 程序和进程的概念322
7.1.2 进程的逻辑控制流323
7.1.3 进程的上下文切换325
7.1.4 进程的存储器映[身寸]326
7.1.5 程序的加载和运行329
7.2 异常和中断332
7.2.1 基本概念333
7.2.2 异常的分类334
7.2.3 中断的分类337
7.2.4 异常和中断的响应过程338
*7.3 IA-32+Linux中的异常和中断340
7.3.1 IA-32的中断向量表340
7.3.2 IA-32的中断描述符表341
7.3.3 IA-32中异常和中断的处理342
7.3.4 Linux对异常和中断的处理344
7.3.5 IA-32+Linux的系统调用348
7.4 小结350
习题351
[0第0]8章 I/O[*]作的实现354
8.1 I/O子系统概述354
8.2 用户空间I/O软[亻牛]357
8.2.1 用户程序中的I/O函数358
8.2.2 文[亻牛]的基本概念359
8.2.3 系统级I/O函数361
8.2.4 C标准I/O库函数363
8.2.5 用户程序中的I/O请求368
8.3 I/O硬[亻牛]与软[亻牛]的接口370
8.3.1 I/O设备370
8.3.2 基于总线的互连结构371
8.3.3 I/O接口的功能和结构374
8.3.4 I/O端口及其编址376
8.3.5 I/O控制方式377
8.4 内核空间I/O软[亻牛]384
8.4.1 与设备无关的I/O软[亻牛]384
8.4.2 设备驱动程序386
8.4.3 中断服务程序387
8.5 小结389
习题390
附录A 数字逻辑电路基础395
附录B gcc的常用命令行选项409
附录C GDB的常用命令411
参考文献414
计算机类专业系统能力培养系列教材计算机系统基础(第2版)/袁春风 作者简介
袁春风 南京大学计算机科学与技术系教授。主要研究领域为大数据计算与并行处理技术、Web信息检索与文本挖掘技术等。在相关领域承担科研项目近40项,发表论文近70篇,两次获江苏省科技进步二等奖,并获江苏省软件一等奖。主持的“计算机组成原理”和“计算机组成与系统结构”课程被遴选为精品课程、精品资源共享课、江苏省精品课程;主编的《计算机组成与系统结构》以及《计算机组成与系统结构习题解答与教学指导》获“十二五”普通高等教育规划教材和江苏省精品教材;作为主要成员获2013年江苏省教学成果特等奖和2014年国家教学成果二等奖。“计算机系统基础(一):程序的表示、转换与链接”获国家精品在线开放课程,“计算机组成与系统结构”课程网站获江苏省多媒体课件特等奖。