某虚拟存储系统中有一个进程共有6页(0~5),其中代码占3页(0~2),数据占1页(3),数据堆占1页(4),用户栈占1页(5)。它们依次存放在外存的22,23,25,26存储块。当前,代码页已经分配在物理内存的66,67,87页,数据页为31,并已经进行

admin2013-07-12  31

问题 某虚拟存储系统中有一个进程共有6页(0~5),其中代码占3页(0~2),数据占1页(3),数据堆占1页(4),用户栈占1页(5)。它们依次存放在外存的22,23,25,26存储块。当前,代码页已经分配在物理内存的66,67,87页,数据页为31,并已经进行了修改。数据堆页还没有分配内存,用户栈分配在01页。请问:
(1)页表中应该包含哪些项目?请填写此页表(见下表)。
(2)若内存堆申请内存,因无分配物理内存而产生缺页中断,此时内存无空闲页面,则采用LRU页面淘汰算法选中内存的那个页面?操作系统作何处理?页表又如何变化?设当前时刻为虚拟时间1256。

选项

答案(1)页表填写见下: [*] (2)当内存堆申请内存,产生缺页中断,采用LRU页面淘汰算法选中数据页,操作系统根据页表的指示,该页已经被改写了,所以首先要将该页写回外存块中,修改该页表,然后将该页分配给数据堆页,重新修改数据堆页的页表,返回到缺页中断的那条指令,继续执行。修改的页表如下: [*] 逻辑4、5页只要从来没有被换出到交换区,就没有外存块号。

解析 内存计算的变化很多,本题主要考查考生对内存管理的理解。根据题意,本系统采用的是虚拟存储系统,因此立即可以想到,进程一定是部分调入。从题目给出的条件中可知,进程共有6页(0~5),其中代码占3页(0~2),数据占l页(3),数据堆占1页(4),用户栈占1页(5)。这个条件显然是虚拟存储管理的实际情况,进程的逻辑页有6页,因此分配的虚拟空间也是6页。按题意,页面依次存放在外存的22,23,25,26存储块。这个条件告诉我们,进程对应的外存是4块,显然,有2页是进程运行过程中产生的,一般数据堆和栈是在运行过程中产生的,在虚拟存储管理中,数据堆和栈对应的外存应该在对换区上,而且,只有在换出时才分配,所以在外存地址中一般是不包括堆和栈的。题目还提供了当前代码页已经分配在物理内存的66,67,87页,数据页为31,并已经进行了修改。此信息说明虚拟存储管理已经分配了物理内存页框,而且,数据页还被修改了,那么应该在页表中表现出来。题目还告诉我们数据堆页还没有分配内存,显然还没有使用。用户栈分配在01页。表示栈也已经分配内存页框了。据此就可以填写表格了。
上面已经提到,数据堆还没有分配,当用到该页时,由于不在内存故产生缺页中断,题目的意思是在本进程内进程页面置换。当采用LRU算法时,考虑LRU算法是最近最久未使用的页面淘汰掉,从给定的条件看,数据页3被引用的时间为1020,最久未使用,而且,记录的时间为引用时间,所以该页还是最近未使用,故这页被选中淘汰,该页框被分配给数据堆页,解答如下,存在位表示是否在内存,修改位根据题意,只有数据页修改了,故为1,引用位表示该页的使用情况,在没有特别说明的情况下,只要该页面被调入内存,对虚拟存储管理来说,该页一定被引用。保护方式代码页只能读和运行,数据页可以读写,栈可以读写,外存块号和内存页框号由题目给出,填写如下。
转载请注明原文地址:https://kaotiyun.com/show/Krxi777K
0

最新回复(0)