我正在努力学习考试。我找到了这个例子,但不明白他们是如何得到答案的。谁能解释一下吗?
问题:
考虑二维数组 A: int A[][] = new int[100][100]; 其中 A[0][0] 位于页面大小为 200 的分页内存系统中的位置 200。操作矩阵的小进程位于页面 0(位置 0 到 199)中。因此,每条指令都将从第 0 页获取。对于两个页框,使用 LRU 替换并假设第一个页框包含进程而另一个页框最初为空,以下数组初始化循环会生成多少页错误?
A:
for (int j=0;j<100;j++)
for (int i=0; i<100; i++)
A[i][j] = 0;
乙:
for(int i=0; i<100; i++)
for (int j=0; j<100; j++)
A[i][j] = 0;
给出的正确答案是:a:100 x 50 = 5000 b:50
我有点理解第一部分。共有50页。(10000/200=50) 并且每次 j 发生变化时,都会发生页面错误..所以总共有 100 个页面错误..但是为什么要乘以 50?为什么第二个是50?
谢谢!!