下列程序实现了矩阵乘法。 int A[1 0 0][1 5 0]; int B[150][2 0 0]; int C[1 0 0][2 0 0]; for(i=0,i

admin2014-12-08  30

问题 下列程序实现了矩阵乘法。
    int A[1 0 0][1 5 0];
    int B[150][2 0 0];
    int  C[1 0 0][2 0 0];
    for(i=0,i<100;i++)
    for(j=0;j<2 0 0;j++)
    for(k=0;k<150;k++)
    C[j]  +=A[k]*B[k][j];
    假设矩阵A和矩阵B的初值已经初始化过,矩阵C初始化为0,各矩阵均以页为单位连续存放(且假定是行优先存储)。又假定一个整数占用1个字,代码以及变量i、j和k存放在其他页面里,并且存取变量i、j和k时不存在缺页问题。主存初始为空,在请求分页存储管理中,页面淘汰算法为FIFO。
作业分配两个页面,每个页面为500字,给矩阵A、B和C使用。问执行上面的程序时,缺页次数是多少?当执行完程序时,留在内存的10个页面各属于哪些矩阵?(注:c+=c+a*b的执行顺序为:读a、读b、计算a×b、读c、计算c+a×b、写c)

选项

答案若每个页面为500字时,则矩阵A占用30页,矩阵B占用60页,矩阵C占用40页。由于内存中仅两个页面,所以每次访问都将出现缺页,即缺页次数为 3 000 000×3=9 000 000(次)

解析
转载请注明原文地址:https://jikaoti.com/ti/g0ajFFFM
0

最新回复(0)