本文是我2021年考研时准备的复试面试题,现在拿出来给大家分享一下
觉得好的点个赞哦,毕竟当初我也是整理了好久,改了好几次版本呢
祝大家都上岸!!!!
P.S.本篇大部分都是数据结构和组成原理,因为这两块面试中问的比较少,分开收集的话就太散了
另外里面夹杂了几道编译原理和系统结构的题目,题不是很多,索性就放在一起了
数据结构+组成原理 目录
12、在设备管理中,何谓设备独立性?如何实现设备独立性? 2
17、CISC和RISC(复杂指令集和精简指令集)的对比 3
18、流水线越多,并行度就越高。是否流水段越多,指令执行越快? 4
数据库的外模式描述的是用户可见的局部数据的逻辑结构;
数据库的内模式描述的是数据库的物理结构,是数据在数据库内部的组织方式。
指令寄存器IR:用来存放当前正在执行的一条指令;
存储器数据寄存器MDR:CPU和内存的中转站,起缓冲作用,用来暂存计算过程中读出或存入的数据;
存储器地址寄存器MAR:用来保存CPU当前所访问的主存单元的地址;
程序计数器PC:用来指出下一条执行的指令在主存中的地址;
程序状态字寄存器PSW:用来保存当前运算的各种状态条件标志;
累加寄存器ACC:用来保存算术逻辑单元ALU执行运算后的结果。
通用寄存器:用于存放操作数和各种中间地址信息等。
翻译程序是将一种语言编写的源程序翻译成另一种语言编写的目标程序;
编译程序是一种将高级语言所编写的源程序翻译成机器语言或汇编语言编写的目标程序;
解释程序在翻译的过程中边翻译边执行,中间不产生目标代码。
流水线是指把一个重复的过程分解为若干子过程,每个子过程与其他过程并行运行。
性能指标:吞吐量、加速比、效率
吞吐量是指单位时间内流水线所完成的单位数量;
加速比是指完成相同任务的前提下,不使用流水线所花时间和使用流水线所花时间之比;
效率是指流水线的设备利用率。
数据选择是从多个输入数据中选择一个输出;数据分配是将一个输入数据分配给多个输出端。
这种情况出现于DMA传送方式中,CPU要访存,I/O设备也要访存,两者发生冲突时。此时,I/O访存优于CPU访存,I/O可以窃取一两个存取周期占用总线,使得CPU延缓一两个周期访问主存。
句柄:一个句型的最左直接短语;
素短语:至少含有一个终结符,并且除它自身之外不再含任何更小的素短语。(不唯一)
LL(1)文法中的第一个L表示从左到右扫描输入串,第二个L表示最左推导,1表示分析时每一步只需向前查看一个字符。
LR(1)文法中的L指从左到右扫描输入符号串,R是指构造最右推导的逆过程(即最左规约)。1是每次搜索符号需要向前参考一步
局部性分为时间局部性和空间局部性
时间局部性是指一个信息被访问,那么它在近期很可能再次被访问;
空间局部性是指一个存储位置被访问,那么它附近的存储位置很可能下次被访问。
DMA方式是指内存与外设只需要在DMA控制器的控制下进行数据传输,而不需要进行CPU的干预。
与中断方式的主要区别是:
(1)中断方式在每个数据需要传输时都需要中断CPU,而DMA方式是在所要求传送的一批数据全部传送完毕时才中断CPU;
(2)中断传送过程需要CPU的干预,而DMA的传送过程不需要CPU干预。
(3)对于中断请求的响应只能发生在每条指令执行完毕的时候,而对DMA请求的响应可以发生在每个机器周期结束时(取指周期、间址周期、执行周期后均可),只要CPU不占用总线就可以被占用。
(4)DMA请求的优先级高于中断请求。
(5)中断方式具有对异常事件的处理能力,而DMA方式仅局限于传送数据块的IO操作。
(6)中断方式靠程序传送,DMA方式靠硬件传送。
设备独立性是指用户程序独立于所使用的具体设备。
实现方式是系统为每个用户进程配置一张用于联系逻辑设备名和物理设备名的映射表,以实现使用逻辑设备名来请求物理设备。
至少需要在系统中增设一个重定位寄存器,用来存放正在执行作业的起始内存地址,每次访问数据时,由硬件自动将相对地址与重定位寄存器中的起始地址相加,形成实际的物理地址。
存储程序的概念是指将指令像数据一样存入计算机的主存中,然后按其在存储器中的首地址执行程序的第一条指令,以后就按该程序的规定顺序执行其他指令,直至程序执行结束。(早期的计算机为了完成某个任务,一般是将完成该任务的程序通过操作一系列的开关或改变配线系统来实现的,即存储器中只存数据不存程序。)
(1)计算机硬件系统由运算器、存储器、控制器、输入设备和输出设备5大部件组成。
(2)指令和数据以同等地位存储在存储器中,并可按地址寻访。
(3)指令和数据均用二进制代码表示。
(4)指令由操作码和地址码组成。
(5)指令在存储器内按顺序存放。
(6)早期的冯诺依曼机以运算器为中心,现代计算机以存储器为中心。
(1)双端口RAM
双端口RAM 是指同一个存储器有左、右两个独立的端口,分别具有两组相互独立的地址线、数据线和读写控制线,允许两个独立的控制器同时异步地访问存储单元。(两者可以同时对同一地址读,但不能对同一地址一个读一个写or两者都写)
(2)多模块存储器
①单体多字存储器
单体多字系统的特点是存储器中只有一个存储体,每个存储单元存储m个字,总线宽度也为m个字,一次并行读出m个字。
②多体并行存储器
多体并行存储器由多体模块组成,每个模块都有相同的容量和存取速度,各模块都有独立的读写控制电路、地址寄存器和数据寄存器。它们既能并行工作,又能交叉工作。多体并行存储器分为高位交叉编址和低位交叉编址两种。
18、流水线越多,并行度就越高。是否流水段越多,指令执行越快?
不是
(1)流水段缓冲之间的额外开销增大
(2)流水段间控制逻辑变多、变复杂
(1)中断向量
就是中断服务程序的入口地址。
(2)中断向量地址(也称向量地址)
就是中断服务程序的入口地址的地址。
(3)向量中断
CPU响应中断后,中断硬件会自动将中断向量地址传送到CPU,由CPU实现程序的切换,这种方法称为中断向量法,采用中断向量法的中断称为向量中断。
(1)调用子程序过程发生的时间是已知的和固定的,而中断过程发生的时间一般是随机的
(2)子程序完全为主程序服务,而中断服务程序与主程序一般是无关的
(3)主程序调用子程序不需要专门的硬件电路;而中断处理需要专门的硬件电路。
(4)子程序嵌套可实现若干级,嵌套的最多级数受计算机内存开辟的堆栈大小限制;而中断嵌套级数主要由中断优先级来决定
循环和递归两者是可以互换的,不能决定性的说循环的效率比递归高。
递归的优点是:代码简洁清晰,容易检查正确性;缺点是:当递归调用的次数较多时,要增加额外的堆栈处理,有可能产生堆栈溢出的情况,对执行效率有一定的影响。
循环的优点是:结构简单,速度快;缺点是:它并不能解决全部问题,有的问题适合于用递归来解决不适合用循环。
(1)双亲表示法
这种存储方式采用一组连续空间来存储每个结点,同时在每个结点中增设一个伪指针,指示其双亲结点在数组中的位置。
缺点:求结点的孩子时需要遍历整个结构
(2)孩子表示法
孩子表示法是将每个结点的孩子结点都用单链表链接起来形成一个线性结构
缺点:寻找双亲的操作需要遍历全部链表
(3)孩子兄弟表示法:
孩子兄弟表示法又称二叉树表示法,即以二叉链表作为树的存储结构,左孩子右兄弟。
(1)邻接矩阵法(适合稠密图)
(2)邻接表法(适合稀疏图)
对图G 中的每个顶点V建立一个单链表,第i个单链表中的结点表示依附于顶点Vi的边
(3)十字链表法(有向图)
解决了邻接表查入度需要遍历整个链表的缺点,也解决了逆邻接表查出度需要遍历整个链表的缺点。在十字链表中,有向图中每条弧有一个结点,每个顶点也有一个结点。
弧结点有五个域,头域和尾域分别指向弧头和弧尾(弧尾->弧头),链域hlink指向弧头相同的下一条弧,链域tlink指向弧尾相同的下一条弧,info指向该弧的相关信息。
顶点结点有三个域,data存放顶点相关的数据信息,firstin和firstout分别指向以该顶点为弧头和弧尾的第一个弧结点。
(4)邻接多重表(无向图)
(1)顺序查找
(2)折半查找
(3)分块查找
(4)二叉排序树
(5)平衡二叉树
P.S.这题公式编辑太费事了,我直接从我的word笔记给大家截图了,后面的几道题带公式的也都是如此
插入排序包括:直接插入排序、折半插入排序、希尔排序
选择排序包括:简单选择排序,堆排序
交换排序包括:冒泡排序、快速排序
(1)直接插入排序(稳定):将序列分为有序部分和无序部分,从无序部分依次选择元素与有序部分比较找到合适的位置,将原来的元素往后移,将元素插入到相应位置上。
(2)折半插入排序(稳定):与直接插入排序类似,只不过查找时采用折半查找。
(3)希尔排序(不稳定):先将序列分为若干个子序列,对各子序列进行直接插入排序,等到序列基本有序时再对整个序列进行一次直接插入排序。
(4)简单选择排序(不稳定):将序列分为2部分,每经过一趟就在无序部分找到一个最小值然后与无序部分的第一个元素交换位置(无序中的最小值放前位)。
(5)堆排序(不稳定):设有一个任意序列,k1,k2,...,kn,当满足下面特点时称之为堆:让此序列排列成完全二叉树,该树具有以下特点,该树中任意节点均大于或小于其左右孩子,此树的根节点为最大值或者最小值。
(6)冒泡排序(稳定):基本思路为:每一趟都将元素进行两两比较,并且按照“前小后大”的规则进行交换。
(7)快速排序(不稳定):基本思路为:在序列中任意选择一个元素作为中心,比它大的元素一律向后移动,比它小的元素一律向前移动,形成左右两个子序列,再把子序列按上述操作进行调整,直到所有的子序列中都只有一个元素时序列即为有序。
(8)归并排序(稳定):基本思想为:把两个或者两个以上的有序表合并成一个新的有序表。
(9)基数排序(稳定):时间复杂度为:基于关键字的各位进行排序。
保存断点保存的是PC。
保存现场和屏蔽字时,现场信息一般是程序状态字、中断屏蔽寄存器和CPU中某些寄存器的内容。
DMA在I/O设备和内存之间开辟直接的数据交换通路,减少数据传输过程中CPU的干预。
IO通道可以进一步减少CPU的干预,即把对一个数据块的读写为单位的干预,减少为对一组数据块的读写为单位的干预。
存取时间:存储器的访问时间,指CPU启动一次存储器操作(读或写)到完成该操作的所需时间。
存取周期:指连续两次独立的存储器操作(读或写)之间所需的最小间隔时间,通常存取周期要大于存取时间。
(1)机器周期/CPU周期
在计算机中,为了便于管理,常常把一条指令的执行过程划分为若干个不同的阶段,每个阶段执行一项操作,如取指令,存储器读,存储器写等。把完成一项基本操作所需要的时间称为机器周期,也叫CPU周期。通常以存取周期为基准时间,即从内存中读取一个指令字的最短时间为机器周期。
(2)指令周期
CPU从主存中取出并执行一条指令的时间叫做指令周期。通常由若干个机器周期组成。指令周期包括取址周期、间址周期、执行周期和中断周期
(3)时钟周期
主频的倒数,是CPU中最小的时间单位。
(4)总线传输周期
指完成一次总线操作所需要的时间(总线一个操作过程是完成两个模块之间传送信息)。