李永乐 数学讲师
广受学生信赖的“线代王”
《计算机系统》考试大纲
【考查目标】
1.从程序员的视角全面了解计算机系统的基本概念,包括汇编语言,底层的内存中的数据表示及常用运算方法、虚拟存储器、编译系统、动态加载库等。了解如何将高级语言程序翻译成机器语言。
2.理解单处理器计算机系统中各组成部件的基本概念、基本结构、工作原理以及相互连接方式,理解计算机系统层次化结构概念,建立计算机系统的整机概念。了解计算机系统的内存管理,缓存管理,性能测量及编译优化。
【考查内容】
一、计算机系统概述
(一)计算机发展历程
(二)计算机系统层次结构
1.计算机硬件的基本组成
2.计算机软件的基本组成
3.程序在机器中的存储及编译、运行过程。
二、数据及程序的机器级表示
(一)信息的表示及处理
1.进位计数制及其相互转换;字符与字符串;布尔运算;数据大小、寻址和字节顺序。
2.C语言中的位级运算、逻辑运算及移位运算。
3.整数的表示和运算
(1)无符号数的表示;有符号数的表示;C语言中的有符号数和无符号数。
(2)无符号加法和补码加法运算;无符号乘法及补码乘除法运算;溢出概念和判别方法;截断及误差的概念。
4.浮点数的表示和运算
(1)浮点数的表示范围;IEEE754标准
(2)浮点数的加/减运算
(3)C语言中的浮点数
(二)汇编语言程序
1.掌握AT&T及Intel汇编语言,能阅读这两种格式的汇编语言程序;了解基于Intel处理器的寄存器结构及内存中数据的操作过程。
2.掌握汇编语言控制执行流程,汇编语言函数和系统调用,内联汇编。
3.了解IA32及x86-64两种机器的指令集结构。
(三)程序的机器级表示
1.能基于汇编语言对程序的表示进行剖析,在内存与寄存器这一级别研究程序的执行过程,熟练掌握及深刻理解C语言中的经典语句:赋值、数组、if、switch、while、for等对应的汇编机器级表示及程序执行过程。
2.数组、结构及联合的分配及访问;数据对齐原则;理解指针;存储器的越界引用及缓冲区溢出。
3.浮点程序的机器级表示。
三、处理器体系结构及优化程序性能
(一)处理器体系结构
理解计算机系统中的数据通路概念,数据通路的功能,掌握数据通路的基本结构。
(二)优化程序性能
1.了解如何优化程序的执行效率,包括代码的优化,编译器的优化,以及CPU级别的优化,并介绍微指令的概念,功能单元上微指令的并行,程序分支的预测等。
2.掌握程序性能优化的各种方式,熟悉编译器优化代码的方式,能够在小细节上对程序进行手动优化。
(三)指令流水线
1.指令流水线的基本概念
2.流水线的性能及流水线冒险(竞争)处理技术
四、存储器层次结构
(一)存储器的分类、存储器的层次化结构、存储技术趋势
(二)高速缓冲存储器(Cache)
1.Cache基本工作原理
映射方式;查找算法;替换算法;写策略。
2.Cache性能分析
3.了解程序如何和cache打交道,不同的循环嵌套顺序、遍历方向等对cache命中的影响,以及如何修改循环嵌套顺序以提高cache命中率。
(三)虚拟存储器
1.虚拟存储器的基本概念
2.页式虚拟存储器、段式虚拟存储器、段页式虚拟存储器
3.TLB(快表)
4.虚拟地址和物理地址的相关概念,弄得虚拟地址如何转换为物理地址;通过IntelPentium和Linux的实例了解整个存储管理机制
5.理解存储映射、动态内存分配和垃圾回收机制。
五、在系统上运行程序
(一)链接
1.掌握程序的链接过程,理解静态链接和动态链接,了解链接过程中使用到的技术如符号解析、重定位等。
2.了解所写的程序是怎么成为一个可执行文件的,需要了解这中间涉及到的每一个细节,能够排查因为链接问题而产生的程序执行错误。
(二)异常控制流
1.掌握异常控制的相关概念,包括中断、陷阱、错误、中止等。
2.了解进程的概念,掌握进程级别的Exception:信号(signal)以及操作系统处理异常的手段(上下文切换)技术,理解用户程序和系统交互(如系统调用)的原理和方式。
六、总线
(一)总线概述
1.总线的基本概念
2.总线的分类
3.总线的组成及性能指标
(二)总线仲裁
1.集中仲裁方式
2.分布仲裁方式
(三)总线操作和定时
1.同步定时方式
2.异步定时方式
(四)总线标准
【参考教材】
[1]Randal E.Bryant David R.O’Hallaron著.龚奕利等译.深入理解计算机系统(原书第2版).北京:机械工业出版社,2011.1
[2]William Stallings著.彭蔓蔓,吴强,任小西等译.计算机组成与体系结构:性能设计.北京:机械工业出版社,2011.5