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