描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787512135840
产品特色
编辑推荐
本教材内容组织源自作者的教学实践,为读者展现一个计算机系统的整体概念,使得高级语言的语法不再是生硬的规则,计算机硬件也不再是深不可测的黑箱,为读者建立一个软、硬件有机关联的知识框架。本教材避免软、硬件割裂,使用的案例具有软、硬件概念兼顾效果。
内容简介
全书共分5章,第1章介绍计算机系统软、硬件构成,系统层次和性能评测等;第2章介绍硬件数据表示对高级语言程序数据类型的支持及相关概念;第3章针对高级语言程序转化为机器可执行代码过程,介绍程序预处理、编译、解释、库和链接等技术,以及集成开发环境的配置;第4章围绕程序执行,介绍程序存储映像、指令流水化执行、多核处理器对线程级并行的支持,以及基于OpenMP的并行程序设计思想;第5章关于存储对计算机系统和程序性能的影响,介绍计算机存储资源的层次性,程序空间、内存空间和交换空间概念,内存碎片、内存泄露和垃圾回收管理,以及高级语言程序数据组织和访问优化思想。每章后配有习题,并为任课教师提供课件资源和代码资源。
本书适合作为高等院校计算机科学与技术、软件工程、电子信息工程、物联网等专业方向的本科生教材,也可作为计算机工程技术人员的参考书。
本书适合作为高等院校计算机科学与技术、软件工程、电子信息工程、物联网等专业方向的本科生教材,也可作为计算机工程技术人员的参考书。
目 录
第1章计算机系统构成
1 1计算机组件与特征参数
1.2软件
1.2.1BIOS
1.2.2操作系统
1.2.3应用软件栈
1.2.4设备驱动程序
1.3计算机系统层次
1.4计算机系统性能评测
1.4.1性能度量参数与均值
1.4.2评测程序
1.5量化设计原则
1.5.1加速经常性事件的原则
1.5.2Amdahl定律
1.5.3CPU性能公式
1.5.4访问局部性
1.6计算机分类
习题1
第2章数据类型与数据表示
2.1数制和编码
2.1.1数制和数的机器表示
2.1.2字符编码
2.2整型数表示
2.2.1Intel体系结构整型数据表示
2.2.2补码
2.3实型数表示
2.3.1Intel体系结构浮点数据表示
2.3.2移码
2.4指针型变量表示
2.4.1存储器编址
2.4.2寄存器
2.5结构型变量表示
2.5.1存储对齐
2.5.2字节排序
2.6合成式SIMD数据类型
2.6.164位SIMD合成式数据类型
2.6.2128位SIMD合成式数据类型
习题2
第3章程序翻译和链接
3.1程序预处理
3.1.1预处理制导类型
3.1.2头文件的作用
3.1.3条件包含的应用
3.2程序翻译
3.2.1编译
3.2.2解释
3.2.3双重翻译
3.3链接
3.3.1库的基本概念
3.3.2静态链接
3.3.3动态链接
3.4集成开发环境的配置
3.4.1关于头文件指向的配置
3.4.2关于库指向的配置
3.4.3关于平台选择的配置
习题3
第4章程序的并行执行
4.1程序存储映像
4.1.1代码段
4.1.2数据段
4.1.3栈
4.1.4堆
4.2指令并行执行
4.2.1指令流水线
4.2.2流水线性能
4.2.3流水化并行的瓶颈
4.3线程级并行执行
4.3.1多核处理器
4.3.2多核处理器对多线程同时执行的支持
4.3.3Intel HT技术
4.4并行程序设计
4.4.1加速for循环的并行构造
4.4.2基于共享存储的并行编程模型
4.4.3fork-join并行执行模型
习题4
第5章存储层次与访问优化
5.1存储资源的层次结构
5.1.1存储层次的平均访问时间
5.1.2存储体系的构建基础
5.1.3多级cache
5.2内存空间
5.2.1内存与程序空间
5.2.2虚拟地址到内存地址的映射
5.3交换空间
5.3.1Linux对交换空间的管理
5.3.2Windows对交换空间的管理
5.4内存维护管理
5.4.1内存碎片
5.4.2内存泄露
5.4.3垃圾回收
5.5高级语言程序数据组织与访问的优化
5.5.1数据结构的声明
5.5.2针对访问性能的循环变换
习题5
参考文献
1 1计算机组件与特征参数
1.2软件
1.2.1BIOS
1.2.2操作系统
1.2.3应用软件栈
1.2.4设备驱动程序
1.3计算机系统层次
1.4计算机系统性能评测
1.4.1性能度量参数与均值
1.4.2评测程序
1.5量化设计原则
1.5.1加速经常性事件的原则
1.5.2Amdahl定律
1.5.3CPU性能公式
1.5.4访问局部性
1.6计算机分类
习题1
第2章数据类型与数据表示
2.1数制和编码
2.1.1数制和数的机器表示
2.1.2字符编码
2.2整型数表示
2.2.1Intel体系结构整型数据表示
2.2.2补码
2.3实型数表示
2.3.1Intel体系结构浮点数据表示
2.3.2移码
2.4指针型变量表示
2.4.1存储器编址
2.4.2寄存器
2.5结构型变量表示
2.5.1存储对齐
2.5.2字节排序
2.6合成式SIMD数据类型
2.6.164位SIMD合成式数据类型
2.6.2128位SIMD合成式数据类型
习题2
第3章程序翻译和链接
3.1程序预处理
3.1.1预处理制导类型
3.1.2头文件的作用
3.1.3条件包含的应用
3.2程序翻译
3.2.1编译
3.2.2解释
3.2.3双重翻译
3.3链接
3.3.1库的基本概念
3.3.2静态链接
3.3.3动态链接
3.4集成开发环境的配置
3.4.1关于头文件指向的配置
3.4.2关于库指向的配置
3.4.3关于平台选择的配置
习题3
第4章程序的并行执行
4.1程序存储映像
4.1.1代码段
4.1.2数据段
4.1.3栈
4.1.4堆
4.2指令并行执行
4.2.1指令流水线
4.2.2流水线性能
4.2.3流水化并行的瓶颈
4.3线程级并行执行
4.3.1多核处理器
4.3.2多核处理器对多线程同时执行的支持
4.3.3Intel HT技术
4.4并行程序设计
4.4.1加速for循环的并行构造
4.4.2基于共享存储的并行编程模型
4.4.3fork-join并行执行模型
习题4
第5章存储层次与访问优化
5.1存储资源的层次结构
5.1.1存储层次的平均访问时间
5.1.2存储体系的构建基础
5.1.3多级cache
5.2内存空间
5.2.1内存与程序空间
5.2.2虚拟地址到内存地址的映射
5.3交换空间
5.3.1Linux对交换空间的管理
5.3.2Windows对交换空间的管理
5.4内存维护管理
5.4.1内存碎片
5.4.2内存泄露
5.4.3垃圾回收
5.5高级语言程序数据组织与访问的优化
5.5.1数据结构的声明
5.5.2针对访问性能的循环变换
习题5
参考文献
前 言
在高校人才培养过程中,各个专业呈现出对计算机系统愈发依赖的趋势。应用级程序设计人员为了使工作更加顺利有效,需要对程序的运行环境有一个系统化的理解。本书以软、硬件结合为出发点,展现了一个适于初级编程人员理解的计算机系统。
本书内容包括计算机系统软硬件构成、编程语言使用的数据类型和机器级数据表示、高级语言程序的翻译和链接、程序的并行执行、计算机系统的存储层次和程序的数据访问优化。考虑到计算机软件和硬件的密切关联,本书内容组织的特点是结合程序案例采取软硬件概念捆绑式介绍。
本书内容能够引领学生从硬件层面去理解程序数据表达,弥补学生仅从高级语言编程规则去认识、编写代码的不足;加强学生对于程序集成开发环境配置的理解,使学生在程序构建和调试过程中思路更为流畅;深入理解程序运行时系统软件对内存的维护和管理,处理器和多级存储对于程序快速执行的支持;从而使学生认识一个立体化、软硬件综合的计算机系统,有助于编写更优化的程序代码。
本书共有5章,每章的教学目标如下。
第1章——以桌面台式机主板为案例,学习常用计算机部件特征参数,进一步了解计算机部件间的组织方式;通过学习开机启动到应用完成各阶段的软件类型,使学生理解计算机系统的层次关系;结合计算机系统性能度量参数和第三方测试程序,使学生掌握如何评价计算机系统;通过Amdahl定律的学习和基本计算机性能公式的分析,使学生深刻理解计算机系统设计决策的量化分析思想。
第2章——面向程序中的数和符号,介绍计算机使用的数制和字符编码;通过整型和浮点数据表示的介绍,使学生理解程序中整型和浮点变量长度(或位宽)以及能够表达的数值范围;通过捆绑指针、存储器编址以及寄存器三个概念,使学生深入理解指针类型变量的使用以及快速访问指针变量的方法;通过捆绑结构型变量、存储对齐及字节排序三个概念,使学生深入理解变量声明方式对存储空间占用的影响,以及硬件特性对于多字节数据存放排序的影响;通过介绍SIMD数据类型,使学生理解现代处理器对于加速多媒体应用中向量运算的支持。
第3章——通过学习程序预处理内容,使学生深入理解程序头文件的作用和条件包含的用途;通过编译、解释及二者结合的翻译方式,使学生了解不同编程语言程序的翻译过程,以HelloWorld.c编译产生的目标代码为例,使学生深入理解高级语言语句与汇编和机器指令之间的对应关系;通过学习程序静态、动态链接过程,使学生深入理解集成开发环境关于库指向的配置;结合HelloWorld.c的目标代码,使学生理解静态库、动态库、导入库概念。
第4章——结合程序存储映像,使学生综合理解程序执行期间程序代码、全局变量、静态变量、局部变量、malloc动态分配空间所处的存储位置,以及对于栈和堆的具体化认识;通过学习指令级并行和线程级并行概念,使学生了解现代处理器并行执行程序的方式;通过学习OpenMP并行编程模型,使学生掌握基于共享存储的并行程序设计原理和方法。
第5章——通过多级存储资源的学习,使学生深入理解计算机系统的性能也受到存储层次设计的影响;将程序从虚拟空间到内存空间的映射与操作系统对内存空间的划分相结合,使学生充分理解操作系统管理交换空间和合并内存碎片的意义,程序编写时及时释放动态分配内存的重要性,以及程序运行时垃圾回收的作用;使学生掌握如何利用访问局部性改进高级语言(如C语言)程序代码的数据访问次序,从而缩短程序执行时间。
本书可作为计算机及相关专业学生计算机系统课程的教材,建议采用32~64个教学课时。对于本书读者,好具有 “高级程序设计语言”或“C语言程序设计”知识背景,以便对计算机系统有更加全面、透彻的理解。
本书每章都配有一定数量的习题。这些习题的安排是对书中知识点应用的补充案例;也有一些习题是对正文知识点的扩展,以便在突出全书主题、保证思路流畅的同时能够为学生建立更加丰富的知识结构;习题中的代码可以直接运行,配合代码设计的问题能够开阔学生编程视野,从而进一步激发学生的兴趣。本书配有电子课件和相关软件资源,可与本书作者或责任编辑联系。
本书的编写得到了北京交通大学教材出版基金资助,也得到了北京交通大学教务处、计算机与信息技术学院领导的大力支持,在此一并表示衷心的感谢!
由于作者水平有限,书中难免有疏漏与不妥之处,还望广大读者和专家批评、指正。
本书内容包括计算机系统软硬件构成、编程语言使用的数据类型和机器级数据表示、高级语言程序的翻译和链接、程序的并行执行、计算机系统的存储层次和程序的数据访问优化。考虑到计算机软件和硬件的密切关联,本书内容组织的特点是结合程序案例采取软硬件概念捆绑式介绍。
本书内容能够引领学生从硬件层面去理解程序数据表达,弥补学生仅从高级语言编程规则去认识、编写代码的不足;加强学生对于程序集成开发环境配置的理解,使学生在程序构建和调试过程中思路更为流畅;深入理解程序运行时系统软件对内存的维护和管理,处理器和多级存储对于程序快速执行的支持;从而使学生认识一个立体化、软硬件综合的计算机系统,有助于编写更优化的程序代码。
本书共有5章,每章的教学目标如下。
第1章——以桌面台式机主板为案例,学习常用计算机部件特征参数,进一步了解计算机部件间的组织方式;通过学习开机启动到应用完成各阶段的软件类型,使学生理解计算机系统的层次关系;结合计算机系统性能度量参数和第三方测试程序,使学生掌握如何评价计算机系统;通过Amdahl定律的学习和基本计算机性能公式的分析,使学生深刻理解计算机系统设计决策的量化分析思想。
第2章——面向程序中的数和符号,介绍计算机使用的数制和字符编码;通过整型和浮点数据表示的介绍,使学生理解程序中整型和浮点变量长度(或位宽)以及能够表达的数值范围;通过捆绑指针、存储器编址以及寄存器三个概念,使学生深入理解指针类型变量的使用以及快速访问指针变量的方法;通过捆绑结构型变量、存储对齐及字节排序三个概念,使学生深入理解变量声明方式对存储空间占用的影响,以及硬件特性对于多字节数据存放排序的影响;通过介绍SIMD数据类型,使学生理解现代处理器对于加速多媒体应用中向量运算的支持。
第3章——通过学习程序预处理内容,使学生深入理解程序头文件的作用和条件包含的用途;通过编译、解释及二者结合的翻译方式,使学生了解不同编程语言程序的翻译过程,以HelloWorld.c编译产生的目标代码为例,使学生深入理解高级语言语句与汇编和机器指令之间的对应关系;通过学习程序静态、动态链接过程,使学生深入理解集成开发环境关于库指向的配置;结合HelloWorld.c的目标代码,使学生理解静态库、动态库、导入库概念。
第4章——结合程序存储映像,使学生综合理解程序执行期间程序代码、全局变量、静态变量、局部变量、malloc动态分配空间所处的存储位置,以及对于栈和堆的具体化认识;通过学习指令级并行和线程级并行概念,使学生了解现代处理器并行执行程序的方式;通过学习OpenMP并行编程模型,使学生掌握基于共享存储的并行程序设计原理和方法。
第5章——通过多级存储资源的学习,使学生深入理解计算机系统的性能也受到存储层次设计的影响;将程序从虚拟空间到内存空间的映射与操作系统对内存空间的划分相结合,使学生充分理解操作系统管理交换空间和合并内存碎片的意义,程序编写时及时释放动态分配内存的重要性,以及程序运行时垃圾回收的作用;使学生掌握如何利用访问局部性改进高级语言(如C语言)程序代码的数据访问次序,从而缩短程序执行时间。
本书可作为计算机及相关专业学生计算机系统课程的教材,建议采用32~64个教学课时。对于本书读者,好具有 “高级程序设计语言”或“C语言程序设计”知识背景,以便对计算机系统有更加全面、透彻的理解。
本书每章都配有一定数量的习题。这些习题的安排是对书中知识点应用的补充案例;也有一些习题是对正文知识点的扩展,以便在突出全书主题、保证思路流畅的同时能够为学生建立更加丰富的知识结构;习题中的代码可以直接运行,配合代码设计的问题能够开阔学生编程视野,从而进一步激发学生的兴趣。本书配有电子课件和相关软件资源,可与本书作者或责任编辑联系。
本书的编写得到了北京交通大学教材出版基金资助,也得到了北京交通大学教务处、计算机与信息技术学院领导的大力支持,在此一并表示衷心的感谢!
由于作者水平有限,书中难免有疏漏与不妥之处,还望广大读者和专家批评、指正。
书摘插画
评论
还没有评论。