代码片段的页面错误
Page Fault For a Code Fragment
这不是一个家庭作业问题。它出现在我今天的学期考试中。
此代码片段计算每个表列的平均值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
存储在处理器寄存器中(因此无需内存参考来访问温度。 主存储器是可寻址的,分页包含 17 帧,每个帧的大小为 1024 个字,一个字为 4 个字节。页面替换策略为 LRU。
确定执行给定程序片段的页面错误数?答: 18432
如何计算?
int array[3][3] = {{0, 1, 2},
{3, 4, 5},
{6, 7, 8}};
此数组在内存中的布局[0, 1, 2, 3, 4, 5, 6, 7, 8]
array[0][0]
array[0][1]
array[0][2]
array[1][0]
array[1][1]
array[1][2]
array[2][0]
array[2][1]
array[2][2]
这里array[1][0]
和array[2][0]
之间的内存地址差是3;
所以给定一个数组a[18][1024]
.a[i][j]
和 a[i+1][j]
之间的差异为 1024 字节(页面错误的大小)。因此,每次内部循环触发时都会导致页面错误。您的内部循环触发 18*1024 次(18432)。
相关文章:
- 警告处理为错误这里有什么问题
- "error: no matching function for call to"构造函数错误
- boost::进程间消息队列引发错误
- C++,OpenCV,尝试显示图像时"OpenCV(4.3.0) Error: Assertion failed (size.width>0 && size.height>0)"此错误
- 有关插入适配器的错误。[错误]请求从 'back_insert_iterator<vector<>>' 类型转换为非标量类型
- QT在错误的班级中寻找空位
- vector.resize()中的分配错误
- 代码在main()中运行,但在函数中出现错误
- 释放错误后堆使用
- 无法在这个基本的Qt代码片段中找到错误,但我被告知它肯定存在?
- 为什么我的C++代码在以下打印链表的代码片段中显示分段错误?
- 片段着色器中的"错误:在 GLSL 1.30 及更高版本中禁止使用非常量表达式索引的采样器数组"
- 为什么以下代码片段存在编译错误
- 为什么可以无错误地编译此片段
- 代码片段的页面错误
- Dart 编译错误 - 代码库中奇怪的代码片段
- OpenGL片段着色器没有效果,如何判断错误
- OpenGL错误1281片段着色器(仅通过使用块接口)
- 为什么这个代码片段给我一个分割错误
- 写入多于1个输出的片段着色错误