0

该项目的目标是采用先前创建的程序,该程序计算数据矩阵的叉积,并在其上测试页面替换算法。

这个想法是弄清楚程序使用了多少页,以及在计算叉积的循环期间引用各种页码的顺序。

出于测试目的,页面大小应该限制为 4096。我不完全确定从哪里开始找出页面引用字符串。这是需要计算的循环:

for(int i=0; i<6; i++)
{
    for(int j=0; j<6; j++)
    {
        x->result[i][j]+=array[i]*array[j]; //cross product algorithm                                         
                                             //performed on line
    }
}

任何可以提供的帮助或建议将不胜感激,我很不知道从哪里开始,但是一旦我知道如何实际获取参考字符串,我就可以完成剩下的工作。

4

1 回答 1

0

表达式引用的页码x->result[i][j]+=array[i]*array[j]

  • (uintptr_t)(void *)&x->result[i][j]/4096
  • (uintptr_t)(void *)&array[i]/4096
  • (uintptr_t)(void *)&array[j]/4096

(前提是x->result[i][j]array[i]并且array[j]不要跨越页面边界);语言标准未定义在一次迭代中引用它们的顺序。

于 2016-03-04T09:24:57.450 回答