【发布时间】:2012-11-19 15:25:57
【问题描述】:
这不是作业问题。我今天的学期考试就来了。
此代码片段计算每个表列的平均值 t[i][j] 0<=i<18 ; 0<=j<1024
for (j = 0; j < 1024; i++) {
temp = 0;
for (i = 0; i < 18; i++) {
temp += temp + t[i][j];
}
cout << temp/18;
}
变量是 32 位浮点值。
变量i、j、temp 存储在处理器寄存器中(因此不需要内存引用来访问 temp。主内存是字可寻址和分页的,包含 17 个帧,每个大小为 1024 个字和一个字是4字节。页面替换策略是LRU。
确定执行给定程序片段的页面错误数?答:18432
如何计算?
【问题讨论】:
-
@DavidTitarenco,您是否认为每次通过索引访问数组都会产生页面错误?
-
@aleguna 内部循环位于数组的外部索引之上,这意味着每次访问相隔 1024 个单词。由于每帧有 1024 个单词,所以我们有了。
标签: c++ operating-system