写在前面: 本章题目是不难的,但是在计算上很容易出错,考试前建议多加练习,提高熟练度,在考试中做的又快又准。
一、概念题
1.请设计一种场景,在使用运行时动态链接会比装入时动态链接比较好。
Answer:
当一个程序用到了100
个DLL
时,但是不可能每个指令都要用到这些DLL
,所以选择运行时动态链接,在涉及到这些指令的时候在链接,就很好了。
2.静态链接的优点与缺点。
Answer:
优点:方便与简单。缺点:不便于更新,得重新编译。
3.什么是装入时动态链接,什么是运行时动态链接:
Answer:
- 装入时动态链接:编译后得到的目标模块,是边装入边链接的。优点是速度快,缺点是耗内存。
- 运行时动态链接:将链接推迟到执行的时候,优点是内存小,缺点是速度快。
以上三种方式,取决于何时链接,一种是在装入之前,就已经都链接好了,一种是在装入时链接,一种是装入后,执行时链接!
4.首次适应算法的优点缺点。
Answer:
优点是节省大空间,缺点是留下空闲空间,而且会增加查找开销。
5.循环首次适应算法的优点、缺点。
Answer:
优点是减少查找时间,但是会浪费大空间
6.最佳适应算法的优点与缺点。
Answer:
将空闲分区按照分区大小来排序,优点是尽可能地利用,缺点是留下小碎片。
7.在分页机制中,页面过大有什么缺点,页面过小有什么缺点。
Answer:
页面过大,会导致最后一页造成的页内碎片过大,页面过小,导致页表过大,造成内存空间浪费。
8.在分页机制中,每个进程页的大小能不能不一样?
Answer:
如果每个作业的页大小不一样,那么进程中的块大小没法做对应。
9.在分页机制中,如何解决访存多了一次的问题,为什么可以这么解决。
Answer:
通过加一个快表,放到寄存器中,即可。而其原理是程序局部性原理。
10.两级页表中,要读取几次内存?
Answer:
要读三次。
11.页表可不可以离散地放在内存空间中?
Answer:
在地址转换机制中,由于寻址是加法,如果离散之后是没法计算的。
12.为什么要在连续分配内存的基础上,还要提出离散地方式?
Answer:
因为连续分配中,无法做到紧凑。第二是因为虚存的原因。
13.为什么段表里会有段长?
Answer:
因为段的大小不一样!
14.512MB的内存,可以跑2G的游戏吗?
Answer:
虚存!因为一条指令只会跑相关的,不会需要整个2G
的所以程序。
15.虚存能否连续分配内存?
Answer:
当然不可能,因为连续分配内存是一次性分配的。
16.在页表机制中,修改位的作用。
Answer:
因为把页放入内存中,在删除页的时候,得判断该页是否被修改过,如果被修改过,要更新在外存中对应的页。
二、计算题
Answer:
Answer:
Answer:
Answer:
Answer:
- 每一次都会缺页,所以是
128*128
- 每一轮循环,只有外循环会导致缺页,所以是
128