867 计算机系统.docx
867 计算机系统 【考查目标】 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