[真1][18][单选]某虚拟页式存储系统中采用最近最少使用(LRU)页面置换算法,系统给每个进程分配 3 页内存,每页大小为 8192 字节。
某进程创建后,代码部分占用 2 页内存并驻留,数据部分占用 1页内存并且当前为空,对于如下程序(每个变量占用一个字)
VAR A: ARRAY [0..2047, 0..2047] OF INTEGER; FOR j := 0 TO 2047 DO FOR i := 0 TO 2047 DO A[i, j] := 0;
该程序执行完后产生多少次缺页中断?
2048×2048
2048 x 1
1024 x 1
2048 x 1024
答案
2048 x 1024
解析
综合题意可知,进程在内存中执行代码,但是数据需要从外存调入内存内存为空的状态,每页大小可以存放 8192/4 = 2048 个整数变量。而程序中数据量为 2048×2047,所以每个页面可以存放 4096 个数据元素。这样每次按顺序,总是缺第一、二页,调入一页到内存后又命中第三、四页,即每次缺页两次,由于数据总量有 2048×2047 个整数变量,需要存放在 2048×2047/2048 = 2047 页中,所以缺页次数为 2048 + 1024 次,故选择 D 选项。
转载请注明出处。