如果有一个程序要把50×50的数组赋初值形成单位矩阵,每个主存块为200个字节,每个数组元素占2个字节,若已分配到2个主存块可供使用,数组中的元素按行编址,其初始状态为空,程序编制如下:
(1)VarA:ARRAY[1..50,1..50]ofinteger;
i,j:integer;
BEGIN
FORj:=1to50DO
FORi:=1to50DO
IFi=jTHEN
A[i,j]:=1;
ELSE
A[i,j]:=0
END;
(2)VarA:ARRAY[1..50,1..50]ofinteger;
i,j:integer;
BEGIN
FOR.i:=1to50DO
FORj:=1to50DO
IFi=jTHEN
A[i,j]:=1;
ELSE
A[i,j]:=0
END;
当采用FIFO页面调度算法时,各会产生多少次缺页中断?
根据题意,每个主存块能放1 00个元素,2个主存块能存放200个元素。但缺页中断时,装入/调出单位还是一页(即1 00个元素)。由于主存初始状态为空,所以从第一页起,都要做页面中断处理。 (1)此程序按列处理,所以每执行一次赋值语句就会有一次页面中断。比如,赋A[1,1]为1,A[2,1]为。后,A[3,1],A[4,1]不在主存中,要通过缺页中断处理装入下一页,所以共产生1 2 5 0次((5 0 × 50)/2)缺页中断。 (2)此程序按行处理,每装入一页可分为二行元素赋值,然后才产生一次缺页中断,所以共产生2 5次(5 0/2)缺页中断。