CSDN博客

img happyjyr

[推荐]考中科院三个所的计算机试题范围(软件基础和硬件基础)

发表于2004/9/25 20:10:00  2062人阅读

[推荐]考中科院三个所的计算机试题范围(软件基础和硬件基础)

OS
基本概念部分
一.   对OS的认识
1.   外部:
模型:OS本身是个层次模型。在计算机中起承上启下的作用。层次:硬件,硬件抽象层,OS内核,OS外部程序,应用软件等。层次模型从两个方面认识:OS在计算机的层次模型中;OS本身也是分层的。OS层次见笔记。
类型(分类):批处理,分时,时事,单用户多用户,单机网络等。
功能:定义:1资源管理,2进程角度:安排计算机工作流程,3方便用户。
   内部组成:进程,存储,设备,文件,磁盘管理等。也可以看成是进程存储,设备文件两个子系统。
现代OS特征:动态性等(不会直接考)。
2.内部:子系统:进程控制:进程+处理机
       文件管理:设备+文件
3.对典型OS的认识
特点:UNIX,LINUX,NT各有什么特点?WHY?
对应的设计思想:为什么NT有多用户的特点?

        一般的设计思想(OS几大模块的设计过程)
A.设计模型(层次模型,面向对象)
例如:给定条件,设计当中某个管理模块。
B.模块设计
一.   进程管理模块:(对进程的认识及控制)
并发的含义,条件,与顺序,并行之间的区别:给定条件,能否实现并发(保证读集写集)?如果不能为什么?什么情况下可以并发?什么情况下可以?
进程的特征,状态:在特定OS设计中各个状态之间的转换。如:LINUX下进程状态转换过程。
进程控制,原语,运行状态:原语的含义。
   运行状态:1核心态:哪些进程运行在核心态,在什么情况下它们之间会相互转换?注意中断,系统调用。通过中断进入核心态。中断的处理过程。如NT下给出系统调用,给出函数名,问它在OS中的运行过程,在此过程中他要做的关键性的不走:参数检查,类型匹配,形参的个数处理,如果实参个数超过形参个数,如何处理?参考第10章OS接口。
       2用户态:哪些进程运行在用户态。
线程的特征,与进程的比较:进程定义与线程定义+线程好处+线程缺点。
注意:比较题的答法:定义+各自优点+各自缺点。
1.   进程通信:(不会出编程题)
临界区与临界资源的含义:
进程的通信方式:低级,高级(消息,共享存储区等)
进程调度模型:分三层:进程调度,中间调度,作业调度。特定OS从属于哪一类?一般来说,UNIX无作业调度,而其他有3种调度。
常用进程调度算法:
  1每种算法的思想:优先权调度,对动态优先权感兴趣;UNIX多级队列反馈轮转。
  2各自特点:好?坏?
  3实现时的支持:如动态优先权需要什么数据结构,硬件。
  4实际OS中,采用的是什么?
二.   存储管理模块(内存+外存+CACHE+TLB)
1.   内存(尤其是分区式)
(1)   几种典型的内存分配方案:基本思想;设计方案,如何实现动态分区;特点(优缺)。
(2)   虚拟存储思想:
(3)   请求分页式:思想:
          硬件支持:页表,地址转换,缺页中断
          页面分配策略:
          页面置换算法:OBT,LRU,LFU等。注意各自思想;软(数据结构)硬件(存储区,寄存器等)实现。
          实例:
2.   外存(尤其是连续分配)
(1)   磁盘调度算法:1思想:
           2实例:对特定例子,最好的磁盘调度算法是什么
(2)   外存分配方式:1连续:过程,如何做,分配不好出现的情况。
           2链接:显式,隐式的含义特点:思想,大概做法。
           3索引:常见的,所以不一定考。
3.   抖动(请求分页式):外存空间分配会不会出现抖动?从空间分配方法,内外存分配的区别表现在哪些方面?抖动是否可以看成一个方面?
4.   碎片:不同的分配方案要分别考虑这4个问题
(1)   含义:
(2)   引起原因:分区式的区内碎片,分页式的页内碎片,外存分配的连续分配。
(3)   解决方法:紧凑。什么时候用?分页式一般不谈紧凑
(4)   分类:1内碎片(内存中的)和外碎片(外存中)
       2内碎片是页内碎片等已经分配给进程但不会被使用的空间。
5.   实例设计:尽量选用速度快价格可以接受的。EG:全用CACHE不用磁盘。
三.设备与文件管理模块(目前出题比较少)
1.I/O控制方式,做法:重点是中断方式。如:中断的处理过程,它所运行的状态(可以在核心态也可以在用户态)。
2.缓冲区:类型,作用(缓冲速度)。
注意:从设计角度出题。

               实际OS
一.   她们体现出的特点及如何体现:如LINUX在完成一个任务花的时间比较短,WHY?从调度算法等多方面说明。
二.   进程/线程调度算法及算法流程,数据结构,特点。(优先权定义,如何改变,调度 的标准)
三.   请求分页方案的实现细节:数据结构,页面置换,淘汰等。
   
死锁不会考,UNIX估计也不会考,分区是重点,考LINUX和NT的可能性比较大。
1.1.3 1.2.5 2.1.2 2.1.3 2.1.4 2.2.1 2.2.2 2.3.1 2.3.2 2.4.1 2.4.2 2.4.3 3.1.1 3.1.2 3.5 4.1 4.2 5.2.2 5.2.3 5.2.4 5.4  5.5.1 5.5.2 6.1 6.2 6.3 6.4.3 7.2.2 7.3 8.2 9.1 9.2 10.2

DS

1.   数据结构的概念:数据之间的内在联系。要了解3种数据结构的概念:逻辑结构;物理结构;基本操作。
例如:栈和队的逻辑结构都是线性的,但她们的基本操作不同,就是不同的数据结构。
2.   常见的数据结构的分类:线性关系;集合关系;一对多;多对多(图);
3.   什么事物理结构(应该有印象)。
4.   算法设计时要用类PASCAL,类C,不要用C++.
5.   算法分析的常用方法:事前分析;事后统计。
6.   时间/空间复杂度的概念。空间是算法运行时资源占用情况。
时间复杂度:最坏,最好,平均。
例如:归并排序都是O(n*logn),最好,最怀,平均都是一样的
   插入排序:最好为O(n) ,最坏为O(n2)
7.   线性表:逻辑关系,各种基本操作,两个有序表的归并。
线性表的顺序存储:线性表的操作在顺序表中的实现。
例如:1。插入与删除和插入的位置与表长有关。
   2.在一个长为n的表中插入一个元素的平均复杂度,要有插入位置的概率分布表达式,即给出此表达式,算平均复杂度。
8.   线性表的链式存储:链表的基本操作:2个有序表的归并。
例如:1。把链表就地逆置:一个指针P指向当前逆置好的一系列节点的最后一个节点,取P的NEXT插入队头。
   2.三色问题:节点红黄蓝在链表上无序排列,把他们按红黄蓝的顺序排好。要求只能从头到尾搜索一遍。设当前指针P,头指针S,S.NEXT为Q,S后接红节点。若P为红,插入S后。若P为黄,插入Q后。若P为兰,不动。然后P向后移,求下个。
注:要了解单链表的插入,删除在什么位置操作。
9.   静态链表(数组表示):不能象单链表那样不受限增加节点。
10.   循环链表:如果表示队列,用它最好。P指向队尾。好处:用于优先队列中。
11.   双向链表:单链表中只有P指向当前节点,不能删除P。因为无法找到P 的前驱。而双向链表可以。注意指针变化情况。
12.   栈:后进先出。基本操作:出入栈,取栈顶。在顺序表和链表上的实现;出栈序列是否合理?
例如:入栈序列是1,2,,,n,则出栈序列有几种?(即n个节点的二叉树的个数。因为树的先序是1,2,,,n)。
13.   栈与递归:见我给你寄过去的手写体。
14.   队列:先进现出。链队列,循环队列。
例如:1。把从队头开始的第i个元素删除:队列 只有出队入队,不能直接删除。要先将前i-1个出队,入队尾;i出队;i+1以后的出队入队尾。
   2.队列逆置(队头与队尾交互):出队入栈;后出栈入队。
注意:这些结构的基本操作有什么,不能混。
15.   循环队列:队头指针和队尾指针。记住队空和满的标志。见手写版。
16.   串:1。KMP算法,求NEXT函数值等。时间:O(n+m)。其中,模式匹配为O(n);预处理为O(m),要会证明她们。简略证明见手写版。
      2.求两串的最长公共子串,时间为O(n)是不行的,至少要O(n2)。具体证明估计不会考。
17.数组:存储位置与下标对应。特殊数组(对称,上三角等)。
  三元组,稀疏矩阵(求逆)。计数技术,在设计算法中的应用。
   十字链表不考。
   广义表:基本概念,存储结构(二叉链表)。应用不考。
   广义表递归算法了解。
18.   二叉树的性质(熟)。
   存储结构:二叉链表,三叉链表。
   遍历:中,先,后。 按层遍历:用辅助队列。例如求K层有多少节点。
19.   线索二叉树:中序(先后序不考)。线索中的插入删除不考。
20.   树与森林的遍历:树的先根与后根(分别对应相应二叉树的先序,中序)。森林的先序和后序(分别对应相应二叉树的先序,中序)。
树与二叉树一一对应。
由先序中序可以唯一确定二叉树。而由先序后序不能。例子见手写版。
二叉树可以为空,树不能为空(树为有根有序树)。
21.   树与等价:例如:判断一个元素是否属于一个特定的集合,可看这个节点是否在此树上。看两个节点是否在一个强联通分量,看他们是否在一棵树上。求KRUSCAL算法(最小生成树集合)。
22.   哈夫曼:前缀码。它是加权外部路径长度最小的二叉树。它是严格二叉树,无度为1的点。节点个数=2×叶节点-1。 构造,编码。
扩展:用0,1,2三进制编码:元素个数为奇。N个元素K进制:K-1整除N-1。否则增加概率为零的元素。
注意11。6节的最佳归并。
23.   树的计数:记结论。
1.   N个操作符或N个括号,为操作符加括号的情况数目。
2.   N+2个顶点的凸多边形,他的不同三角剖分的个数。
3.   a1,a2,,,an, ai=1/-1,任意前k个ai之和大于等于0,求不同组合数。
4.   见手写版。
24.   图:存储结构(针对有向图和无向图)。邻接表中边节点中存储的信息不是顶点内容而是顶点序号。
25.   图的遍历:深度优先借助于栈;广度优先借助于队列。
26.   图的连通:深度优先搜索一次。
27.   有向图的强联通分量(不重要)。
28.   最小生成树:PRIM算法,KRUSCAL算法。写算法,要用到树与等价类。(SEL-UNION算法)。她们的时间复杂度。若用优先队列,时间复杂度降低。
29.   关节点,关键路径:深度优先数。
30.   有向无环图:拓扑排序。用邻接矩阵保存它,则入度为0的列全为0。去掉该节点,必还有节点入度为0,所以调整矩阵,可得上三角矩阵。
DAG图等价为拓扑有序。拓扑排序算法:2个共享链栈,利用空间。
若得逆拓扑序,不用栈而用队列;也可以增加一个栈。也可以用深度优先搜索,找最深得那个节点最先把它输出。
31.   最短路径:单源(有向图,且权值>=0是DIJISTRU算法的适应范围)。对无向图,可看成2个方向权值一样。例子见手写版。
问:DIJISTRU算法能否求图的最小生成树?不能。
打印最短路径,时间O(n2),空间O(n),可以用DIJISTRU算法得到集合的同时,记录每个节点前面那个元素,一个一个向前找。
32.   二部图:一个图是否是二部图?时间是O(n)。用等价类:一个边的两点分属于不用等价类(估计不会考太深)。
33.   伙伴系统,边界标识(要看)。无用单元收集不考。
34.   顺序查找时间(最坏,平均)。有序表查找,二分查找,折半查找(判定树,树的高度,平均检索长度(在成功和不成功时的不同情况))。
静态树表不考,静态次优不考。
索引顺序表:概念。
动态查找:二叉排序树:中序遍历有序,先序无序。给出先(或后)序的次序,写出此树(因为中序是顺序的,已知)。他的插入和删除(删除不一定考)。给定树,求平均查找长度。
查找长度的量级。
平衡二叉树:一定是二叉排序树。树的所有子树都是平衡二叉树。反之不成立。若要执行4种旋转,至少7个节点。
M阶B树:关键字个数的上下限。N个关键字构成树的节点数目层数。
B+树的概念。  键树。
35.   哈希表:解决冲突的方法。只有链地址法可以解决二次聚集。不是同义词不会竞争同一位置。链地址法是顺序结构和链结构的完美结合。
36.   查找长度:1。探测次数(包括最后一次比较为空的次数)。
       2.关键字比较次数(不包括最后一次为空的)。
37.内部排序:简单插入排序(稳定);折半(不稳定);希尔(不稳定);冒泡(稳定);快速(不稳定);选择(不稳定);堆(不稳定);归并(稳定)。要记住她们的时间复杂度(最好,平均,最坏)。
  基数排序:给定N个数,范围在(0,n2-1),以O(n)时间排序。记ni=ai*n+bi,按(ai,bi)先以bi为基数排序,再以ai 排。
  基数排序利用关键字本身的值,而其他基于比较。
37.   找最大和最小值的时间[3/2n]-2。见手写版。两两比较,小的方一个数组,大的放一个数组,再找。
找最大和次大值:可以调整堆,也可以记下比较路径。

阅读全文
0 0

相关文章推荐

img
取 消
img