
1.编译compile:利用编译程序从源语言编写的原程序产生目标程序的过程,即是把高级语言变成计算机可以识别的2进制语言。
2.预处理pre-treatment:在程序源代码被编译之前,由预处理器对程序源代码进行的处理。
3.汇编Assemble:把汇编语言翻译成机器语言的过程。
4.连接link:用来把要执行的程序与库文件或其他已经翻译好的子程序(能完成一种功能的程序模块)连接在一起,形成机器能执行的程序。
5.活动进度activation record:函数调用时分配的一块内存,通常在栈内被产生,也被栈的框架调用。
6.缓存溢出buffer overflow:缓冲超过区域,所以重写了边界。
7.垃圾回收garbage collection :自动的回收堆分配的内存空间,它是一种绝对的内存能力,应用程序不必关心内存空间的释放,普遍的流行于现在的面向对象的语言中。
8.垃圾回收算法:
标记清除法:在每个块顶部用一个额外标记,使用后清除标记。
分代式垃圾回收法:频繁的检查年轻的对象是否为垃圾,较少的检查老对象,因为认为年轻的对象生命周期短。
引用计数:记录每一个对象上的指针数,当指针数为零是,是其为垃圾。
复制法:用两个堆,把一个堆中的数据复制到另一个中。
9.timer:计时器,保存时间特定的时间片段,时间一到,程序转向另外一个状态或者另外一个操作。
10.profiler:用来测量一个源代码所花费时间的工具,可显示程序执行历史,提供必要的分析,同时还可以发现程序的瓶颈,使我们的代码更有效。例如,我们可以通过它知道程序哪个部分被频繁调用,哪些部分会导致瓶颈等。
11.优化
12.对齐alignment:各类型数据按照一定的规则在空间上排列,而不是顺序的一个接一个的排放。
13.对齐规则
14.缓存和缓存结构cashe:硬盘控制器上的一块内存芯片,具有极快的存取速率,它是硬盘内部存储和外界接口之间的缓冲器。L1 L2
15.异常exception:异常就是控制流中的突变,用来响应处理器状态中的某些变化。
16.PE/COFF文件格式
17.Linker:一个可以把编译器生成的一个或多个对象组合成一个可执行程序的程序。
18.Loder:一个执行加载功能的系统程序,负责程序的加载。
19.时间戳计时器TSC:CPU附带了一个位的时间戳寄存器,当时钟信号到来的时候.该寄存器内容自动加1。
20.缓存命中/缺失
21.静态分配static memory allocation:程序在编译和连接阶段为变量分配的内存空间,只有程序终止才释放内存,每次调用函数不会重新初始化。
22.动态分配dynamic memory allocation:程序在运行期间为变量分配的内存空间,包括栈分配和堆分配。
23.同步synchronization:通过交换信息,使得多个进程或者线程能够协作他们活动。
24.互斥mutual exclusion:多个进程或线程在一段时间内只能有一个进程或者线程独占访问共享对象,包括代码数据和其他资源。
25.临界区critical section:临界区是一段访问共享资源的代码,当另一个进程已经在这段代码中运行时,这个进程就不能在这段代码中运行。
26.竞争race condition:发生在当多个进程或者线程在读写数据时,其最终的的结果依赖于多个进程的指令执行顺序。
27.阻碍编译器优化因素:简单的存储器别名引用和函数副作用。
28.存储器别名:两个不同的指针可能指向存储器中的同一个位置。
简答题 25 问答题 计算题 编程题
1.画活动记录
2.递归调用
3.size of
4.数据不同类型间转换
5.浮点数编码/整数编码
6.找内存错误(找到确定位置;错误原因类型;修改正确)(常见错误 maloc没有分配够 数据类型错 maloc没有检查返回条件正确返回free 野指针 释放数据结构成员是否调用别的maloc)
7.位操作(实验)
8.计算命中率(高速缓存结构)
9.垃圾回收(标记回收法 垃圾回收器……4种)
10.存储器(存储器层次结构)异常(类型 作用 名词解释 处理方式 处理程序 异常返回)
11.连接器的工作流程(重定位 符号解析)
