考虑以下程序: #define Size 64 int A[Size; Size], B[Size; Size], C[Size; Size]; int register i, j; for(j = 0; j < Size; j++) for(i = 0; i < Size; i++) C[i; j] = A[i; j] + B[i; j] 假设该程序在使用请求分页的系统上运行,页尺寸为 1 KB。每个整数为 4B。显然每个数组需要 16 页。例如,A[0, 0]~A[0,63]、A[1, 0]~A[1, 63]、A[2, 0]一A[2, 63]和A[3, 0]~A[3, 63] 将存储在第一个数据页中。以此类推,可知数组 A 的其他部分和数组 B、C 如何存储。假设系统给这个进程分配了 4页尺寸的工作集,其中 1 页用于代码,3 页用于数据。系统给 i , j 分配了两个寄存器(使用这两个变量时不需要访问内存)。 a.  缺页中断出现的频率是多少?(以执行 C[i; j] = A[i; j] + B[i; j] 的次数为单位) b.如何修改这个程序以减少缺页中断出现的频率? c.修改后的程序缺页中断出现的频率是多少?-笔试面试资料

这是qklbishe.com第6197 篇笔试面试资料
提供答案分析,通过本文《考虑以下程序: #define Size 64 int A[Size; Size], B[Size; Size], C[Size; Size]; int register i, j; for(j = 0; j < Size; j++) for(i = 0; i < Size; i++) C[i; j] = A[i; j] + B[i; j] 假设该程序在使用请求分页的系统上运行,页尺寸为 1 KB。每个整数为 4B。显然每个数组需要 16 页。例如,A[0, 0]~A[0,63]、A[1, 0]~A[1, 63]、A[2, 0]一A[2, 63]和A[3, 0]~A[3, 63] 将存储在第一个数据页中。以此类推,可知数组 A 的其他部分和数组 B、C 如何存储。假设系统给这个进程分配了 4页尺寸的工作集,其中 1 页用于代码,3 页用于数据。系统给 i , j 分配了两个寄存器(使用这两个变量时不需要访问内存)。 a.  缺页中断出现的频率是多少?(以执行 C[i; j] = A[i; j] + B[i; j] 的次数为单位) b.如何修改这个程序以减少缺页中断出现的频率? c.修改后的程序缺页中断出现的频率是多少?-笔试面试资料》可以理解其中的代码原理,这是一篇很好的求职学习资料
本站提供程序员计算机面试经验学习,笔试经验,包括字节跳动/头条,腾讯,阿里,美团,滴滴出行,网易,百度,京东,小米,华为,微软等互联网大厂真题学习背诵。

答案:
考虑以下程序:

#define Size 64 int A[Size; Size], B[Size; Size], C[Size; Size]; int register i, j; for(j = 0; j < Size; j++) for(i = 0; i < Size; i++) C[i; j] = A[i; j] + B[i; j]
假设该程序在使用请求分页的系统上运行,页尺寸为 1 KB。每个整数为 4B。显然每个数组需要 16 页。例如,A[0, 0]~A[0,63]、A[1, 0]~A[1, 63]、A[2, 0]一A[2, 63]和A[3, 0]~A[3, 63] 将存储在第一个数据页中。以此类推,可知数组 A 的其他部分和数组 B、C 如何存储。假设系统给这个进程分配了 4页尺寸的工作集,其中 1 页用于代码,3 页用于数据。系统给 i , j 分配了两个寄存器(使用这两个变量时不需要访问内存)。
a.  缺页中断出现的频率是多少?(以执行 C[i; j] = A[i; j] + B[i; j] 的次数为单位)
b.如何修改这个程序以减少缺页中断出现的频率?
c.修改后的程序缺页中断出现的频率是多少?
考虑以下程序: #define Size 64 int A[Size; Size], B[Size; Size], C[Size; Size]; int register i, j; for(j = 0; j &lt; Size; j++) for(i = 0; i &lt; Size; i++) C[i; j] = A[i; j] + B[i; j]   假设该程序在使用请求分页的系统上运行,页尺寸为 1 KB。每个整数为 4B。显然每个数组需要 16 页。例如,A[0, 0]~A[0,63]、A[1, 0]~A[1, 63]、A[2, 0]一A[2, 63]和A[3, 0]~A[3, 63] 将存储在第一个数据页中。以此类推,可知数组 A 的其他部分和数组 B、C 如何存储。假设系统给这个进程分配了 4页尺寸的工作集,其中 1 页用于代码,3 页用于数据。系统给 i , j 分配了两个寄存器(使用这两个变量时不需要访问内存)。    a.  缺页中断出现的频率是多少?(以执行 C[i; j] = A[i; j] + B[i; j] 的次数为单位)    b.如何修改这个程序以减少缺页中断出现的频率?    c.修改后的程序缺页中断出现的频率是多少? 区块链毕设学生84130156号
a。由进程读出,每进行四次语句,就会产生一个读取的缺页中断,有三个数组,所以缺页频率=64*64*1/4*3=2304次
b.修改for循环语句i和j的位置
c。修改后,每64*4次循环产生中断,有三个数组,所以缺页频率为64*64*1/(64*4)*3=48次

今天 20:50:18 回复(0)

文章部分来自互联网,侵权联系删除
www.qklbishe.com

区块链毕设网(www.qklbishe.com)全网最靠谱的原创区块链毕设代做网站
部分资料来自网络,侵权联系删除!
资源收费仅为搬运整理打赏费用,用户自愿支付 !
qklbishe.com区块链毕设代做网专注|以太坊fabric-计算机|java|毕业设计|代做平台 » 考虑以下程序: #define Size 64 int A[Size; Size], B[Size; Size], C[Size; Size]; int register i, j; for(j = 0; j < Size; j++) for(i = 0; i < Size; i++) C[i; j] = A[i; j] + B[i; j] 假设该程序在使用请求分页的系统上运行,页尺寸为 1 KB。每个整数为 4B。显然每个数组需要 16 页。例如,A[0, 0]~A[0,63]、A[1, 0]~A[1, 63]、A[2, 0]一A[2, 63]和A[3, 0]~A[3, 63] 将存储在第一个数据页中。以此类推,可知数组 A 的其他部分和数组 B、C 如何存储。假设系统给这个进程分配了 4页尺寸的工作集,其中 1 页用于代码,3 页用于数据。系统给 i , j 分配了两个寄存器(使用这两个变量时不需要访问内存)。 a.  缺页中断出现的频率是多少?(以执行 C[i; j] = A[i; j] + B[i; j] 的次数为单位) b.如何修改这个程序以减少缺页中断出现的频率? c.修改后的程序缺页中断出现的频率是多少?-笔试面试资料

提供最优质的资源集合

立即查看 了解详情