20145317 《信息安全系统设计基础》第七周学习总结2

20145317 《信息安全系统设计基础》第七周学习总结2

课后作业中的问题和解决过程

习题6.2

计算这样一个磁盘的容量。它有2个盘片,10 000个柱面,每条磁道平均有400个扇区,每个扇区平均有512个字节

磁盘容量 = (512/400)*400*10000*2*2= 8 192 000 000 字节 = 8.192GB

习题6.3

估计访问下面的一个磁盘上的一个扇区需要的时间(以ms为单位)。旋转速率:15000RPM;Taveseek = 8ms;每条磁道的平均扇区数:500

访问时间 = Taveseek+Taverotation+Tavetransfer = 8ms+0.51/15000RPM60secs.min1000ms/s+1/15000RPM1/50060secs/min1000ms/s=8ms+2ms+0.008ms=10.008ms

习题6.4

假设1MB的文件由512字节的逻辑块组成,存储在有如下特性的磁盘驱动器上(旋转速率:10 000RPM,Taveseek=5ms,平均扇区/磁道 = 1000)。
(1)最好的情况:给定逻辑块到磁盘扇区的最好的可能的映射(即,顺序的),估计读这个文件需要的最优时间
(2)随机的情况:如果块是随机地映射到磁盘扇区的,估计读这个文件需要的时间

(1)T=Taveseek+Taverotation+2Tmaxrotation=5ms+3ms+26ms=20ms

(2)在这种情况下,块被随机的映射到扇区上,读2000块的每一块都需要Taveseek+Tavgrotation=8ms。所以读这个文件的总时间为T = 8ms*2000=16000ms=16s

习题6.11

在前面dotprod的例子中,在我们对数组x做了填充之后,所有对x和y的引用的命中率是多少? 在填充了之后,对于x和y数组,只有在引用第0个和第4个元素的时候发生不命中。因而命中率为75%

习题6.8
【改变下面函数中的循环顺序,使得它以步长为1的引用模式扫描三维数组a】
int sumarray3d(int a[N][N][N])
{
int i,j,k,sum=0;
for(i=0;i<N;i++)
{
for(j =0;j<N;j++)
{
for(k=0;k<N;k++)
{
sum+=a[k][i][j];
}
}
}
return sum;
}
只需要对三层嵌套循环体的顺序进行调整即可:
int sumarray3d(int a[N][N][N])
{
int i,j,k,sum=0;
for(i=0;k<N;i++)
{
for(j =0;i<N;j++)
{
for(k=0;j<N;k++)
{
sum+=a[k][i][j];
}
}
}
return sum;
}

习题6.13


有两个低位是块偏移(CO),然后是三位的组索引(CI),剩下的位作为标记(CT)

 
posted @ 2016-10-30 20:27  20145317彭垚  阅读(311)  评论(2编辑  收藏  举报