程序A: int i,j;
int a[50][50]; for (i=0;i<50;i++) for (j=0;j<50;j++) a[i][j]=0;
程序B: int i,j;
int a[50][50]; for (j=0;j<50;j++) for (i=0;i<50;i++) a[i][j]=0;
若在程序执行过程中,内存中只有一个页面用来存放数组的信息,试问程序A和程序B执行时产生的中断次数分别是多少?
答案
1. 答:缺页中断与一般中断一样,需要经历保护CPU香肠、分析中断原因、转中断处理程序进行及恢复中断现场等步骤。但缺页中断是一种特殊的中断,他与一般中断的区别: (1)在指令执行期间产生和处理中断,。通常cpu是在一条至六年个执行之后去检查是否有中断发生,若有边去处理中断;否则继续执行下一跳指令。而缺页中断是在指令执行期间发现所要访问的指令或数据不再内存时产生和处理中断。
(2)一条指令执行期间可能产生多次中断。对于一跳要求读取多个字节数据的指令,指令中的数据可能跨越两个页面。该指令执行时可能要发生3次中断,一次是访问指令,另外两次访问数据。
2. 答:局部置换是指当前进程在执行过程中发生缺页时,旨在分配给该进程的物理块中选择一页换出。全局置换是指在所有用户使用的整个存储空间中选择一个页面换出。 在多道程序系统中建议使用局部置换策略。这样即使某个进程出现了抖动现象,也不致引起其他程序产生抖动,从而将抖动局限在较小的范围内。
3. 答:虚拟存储器的特征有以下几个方面:
(1)离散性:指进程不必装入连续的内存空间,二十“见缝插针”。 (2)多次性:只一个进程的程序和数据要分多次调入内存。
(3)对换性:指进程在运行过程中,允许将部分程序和数据换进、换出。 (4)虚拟性:指能从逻辑上扩充内存容量。
虚拟存储器的容量主要是受计算机的地址长度和外存容量的限制。
4. (1)先进先出置换算法。
页面调度表 页面走向 物理块1 物理块2 缺页 1 2 1 3 1 2 4 2 1 3 4 1 1 3 3 2 2 1 1 4 2 2 1 1 4 4 3 3 缺 缺 缺 缺 缺 缺 缺 缺 缺 答:页面引用11次,缺页9次,缺页率为9/11=81.8%。
(3) 假如有一种页面置换算法,它总是淘汰刚使用过的页面。 页面调度表 页面走向 物理块1 物理块2 缺页 1 2 1 3 1 2 4 2 1 3 4 1 1 3 1 1 1 3 4 2 2 2 4 2 2 2 缺 缺 缺 缺 缺 缺 缺 缺 答:页面引用11次,缺页8次,缺页率为8/11=72.7%。
5. 答:如果一个进程的页面走向为4、3、2、1、4、3、5、4、3、2、1、5,若给该进程非配3个物理块,其页面调度情况如表所示:
页面走向 物理块1 物理块2 物理块3 缺页 4 3 2 1 4 3 5 4 3 2 1 5 4 4 4 1 1 1 5 5 5 3 3 3 4 4 4 2 2 2 2 2 3 3 3 1 缺 缺 缺 缺 缺 缺 缺 缺 缺 引用12次,缺页9次。
若给该进程分配4个物理块,其页面调度情况如下: 页面走向 物理块1 物理块2 物理块3 物理块4 缺页 4 3 2 1 4 3 5 4 3 2 1 5 4 4 4 4 5 5 5 5 1 1 3 3 3 3 4 4 4 4 5 2 2 2 2 3 3 3 3 1 1 1 1 2 2 2 缺 缺 缺 缺 缺 缺 缺 缺 缺 缺 引用12次,缺页10次
6. 答:由于页的代谢奥为100字,因此访问序列10、205、110、40、314、432、320、225、80、130、272、420、128对应的页号是0、2、1、0、3、4、3、2、0、1、2、4、1。给该进程分配3个物理块,采用LRU置换算法,其页面调度情况如表。 页面走向 物理块1 物理块2 物理块3 缺页 0 2 1 0 3 4 3 2 0 1 2 4 1 0 0 0 0 0 2 2 2 2 2 2 3 3 3 3 1 1 1 1 4 4 0 0 4 缺 缺 缺 缺 缺 缺 缺 缺 缺 被淘汰的页号分别是2、1、0、4、3、0,共9次。 7.
进程4个页面的情况 页号 存储块号 加载时间 访问时间 访问位 修改位 0 2 30 160 0 1 1 1 160 157 0 0 2 0 10 162 1 0 3 3 220 165 1 1 (2) OPT(最佳)置换算法;
答:OPT(最佳)置换算法是选择永久不用的也活长时间不用的也,将其患处,题目中
没有给出页面的将来走向,所以无法判断将置换哪一页。 (3) FIFO(先进先出)置换算法;
答:FIFO(先进先出)置换算法是选择最先装入内存的页面,将其换出。从表中可知,
应考察的是页面的加载时间,加载时间最小的是10,因此最先装入内存的是第2页。
(4) LRU(最近最少使用)置换算法;
答:LRU(最近最少使用)算法时选择最近最久没有被访问的页面,将其换出。应考察
的是页面的访问时间,访问时间最小的是157,因此最近最久没有被访问的是第1页。
(5) Clock置换算法。
答:CLOCK置换算法时LRU算法的变种,他首先选择访问位和修改位均为0的一页,将
其换出。满足该条件的是第1页。
8.
(1) 0X0A5C
物理地址是0001001001011100 (2) 0X103C
产生缺页中断 (3) 0X257B
产生越界中断 (4) 0X8A4C 地址错误
9. 答:由题知,数组a中有50X50=2500个整数,每个整数占2个字节,数组共需要2X2500=5000字节。儿页面的大小是100字节,则数组占用的空间为5000/100=50页。 对于程序A:由于数组是按行存放的,而初始化数组的程序也是按行进行初始化的。
因此当缺页后调入的一页,位于该页的所有数组元素全部进行初始化,然后再调入另一页。 所以缺页的次数为50次。
对于程序B由于数组是按行存放的,而初始化数组的程序却是案例额进行初始化
的。因此当缺页后调入的一页中,位于该页撒谎能够的数组元素只有一个,所以程序B每访问一个元素长生一次缺页中断,则整个数组将长生2500次缺页。