操作系统虚拟存储器的一道经典练习题 int a[100][100]
有一个矩阵 int a[100][100],以行为先进行存储。假设有一个虚拟存储系统,物理内存有3页,其中1页用来存放程序,其余2页用于存放数据。
程序A
for (i=0;i<=99;i++)
for(j=0;j<=99;j++)
a[i][j]=0;
程序B
for(j=0;j<=99;j++)
for (i=0;i<=99;i++)
a[i][j]=0;
若每页可存放200个整数,程序A和程序B的执行过程各会发生多少次缺页?
答案:程序A缺页50次,程序B缺页4901次。
只讲B. 看下图:
这个程序还和调度算法有关。 上面讲的是缺页最少的情况。
如果采用FIFO页面置换机制,则缺页数为5000