【考查目标】
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. 数组、结构及联合的分配及访问;数据对齐原则;理解指针;存储器的越界引用及缓冲区溢出。
三、处理器体系结构及优化程序性能
(一)处理器体系结构
(1)了解CPU的功能和基本结构,指令的执行过程。
(2)理解计算机系统中的数据通路概念,数据通路的功能,掌握数据通路的基本结构。
(二)指令流水线
1. 指令流水线的基本概念
2. 流水线的性能及流水线冒险(竞争)处理技术
四、存储器层次结构
(一)存储器的分类、存储器的层次化结构、存储技术趋势
(二)高速缓冲存储器(Cache)
1. Cache基本工作原理
映射方式;查找算法;替换算法;写策略。
2. Cache性能分析
3.了解程序如何和cache打交道,不同的循环嵌套顺序、遍历方向等对cache命中的影响,以及如何修改循环嵌套顺序以提高cache命中率。
(三)虚拟存储器
1. 虚拟存储器的基本概念
2. 页式虚拟存储器、段式虚拟存储器、段页式虚拟存储器
3. TLB(快表)
4. 虚拟地址和物理地址的相关概念,弄得虚拟地址如何转换为物理地址;通过Intel Pentium和Linux的实例了解整个存储管理机制
5.理解存储映射、动态内存分配和垃圾回收机制。
五、在系统上运行程序
(一)链接
1. 掌握程序的链接过程,理解静态链接和动态链接,了解链接过程中使用到的技术如符号解析、重定位等。
2. 了解所写的程序是怎么成为一个可执行文件的,需要了解这中间涉及到的每一个细节,能够排查因为链接问题而产生的程序执行错误。
(二)异常控制流
1. 掌握异常控制的相关概念,包括中断、陷阱、错误、中止等。
2. 了解进程的概念,掌握进程级别的 Exception:信号(signal)以及操作系统处理异常的手段(上下文切换)技术,理解用户程序和系统交互(如系统调用)的原理和方式。
六、 输入输出(I/O)系统
(一) I/O系统基本概念
(二) 外部设备
1. 输入设备:键盘、鼠标
2. 输出设备:显示器、打印机
3. 外存储器:硬盘存储器、磁盘阵列、光盘存储器
(三) I/O方式
1. 程序查询方式
2. 程序中断方式
中断的基本概念;中断响应过程;中断处理过程;多重中断和中断屏蔽的概念。
3. DMA方式
DMA控制器的组成;DMA传送过程。
4. 通道方式
【参考教材】
[1] Randal E. Bryant David R. O’Hallaron著. 龚奕利等译. 深入理解计算机系统(原书第2版). 北京:机械工业出版社, 2011.1
[2] William Stallings著. 彭蔓蔓, 吴强, 任小西等译. 计算机组成与体系结构:性能设计. 北京: 机械工业出版社, 2011.5