CSAPP第六章家庭作业参考答案
(CSAPP第三版系列)导航篇传送门
6.24
这个文件由4000个逻辑块组成,并且对于磁盘,Tavg seek = 4ms, Tmax rotation = 4ms, 而Tavgrotatioin = 2ms。
A. 最好情况是块被映射到连续的扇区,在同一柱面上这样就可以不移动读写头来一块接一块地读。一旦读写头定位到了第一个扇区,需要磁盘转4整圈(平均每个磁道上1000扇区)。
所以读这个文件的总时间为:4ms + 2ms + 4*Tmaxrotationi = 22ms。
B. 随机的情况:在这种情况中,块被随机地映射到扇区上,读4000块中的每一块都需要Tavg seek + Tavg rotation。
所以读这个文件的总时间为:4000*(4ms + 2ms) = 24000ms。
6.28 这个问题是关于练习题6.12中的高速缓存的
A. 所有会在组2中命中的十六进制内存地址:无,因为组2中所有行的有效位标记均为0。
B. 所有会在组4中命中的十六进制内存地址:0x18F0,0x18F1,0x18F2,0x18F3,0x00B0,0x00B1,0x00B2,0x00B3。
C. 所有会在组5中命中的十六进制内存地址:0x0E34,0x0E35,0x0E36,0x0E37。
D. 所有会在组7中命中的十六进制内存地址:0x1BDC,0x1BDD,0x1BDE,0x1BDF。
6.32对于内存地址0x16E8重复作业6.31
A. 地址格式(每个小框表示一位):
B. 内存引用:
参数 |
值 |
高速缓存块偏移(CO) |
0x0 |
高速缓存组索引(CI) |
0x2 |
高速缓存标记(CT) |
0xB7 |
高速缓存命中?(是/否) |
否 |
返回的高速缓存字节 |
0x- |
6.36
A. 情况1不命中率是100%。
原因:这种情况下,高速缓存大小只能容纳该二维数组的一行,并且x[0][i]和x[1][i]总是映射到同一个高速缓存行,所以对一个数组的引用总是驱逐出另一个数组的有用的行,即每个操作都会不命中。
B. 情况2不命中率是25%。
原因:这种情况下,高速缓存可以正好容纳下这个数组,因此所有的不命中都是开始时的冷不命中。不命中率 = sizeof(int) / BlockSize = 4/16 = 25%。
C. 情况3不命中率是25%。
原因:这种情况下,高速缓存只能保存数组的1/2,扫描数组的第二部分会驱逐扫描第一部分时加载进来的那一行。并且由于使用了两路组相连,扫描数组的两部分的过程中,不命中率都是sizeof(int)/BlockSize = 25%,则总不命中率 = 25%。
D. 对情况3,更大的高速缓存大小不会帮助降低不命中率。
原因:根据对情况三的分析,缓存的总大小不是限制因素,限制因素是块的大小。(miss_rate= sizeof(int)/BlockSize)。
E. 对情况3,更大的块大小会帮助降低不命中率。
原因:根据对情况三的分析,缓存不命中的限制因素就是块的大小(miss_rate= sizeof(int)/BlockSize),所以更大的块会减低不命中率。
6.40
A. 写总数为16*16*4 = 1024次。
B. 根据6.38中的假设,每个块可以存放2个结构体元素,且整个高速缓存的大小为square数组大小的一半。在给出的程序代码中,前一个循环的写次数是256次,其中不命中率为50%,则不命中数为128次;后一个循环的写次数是256*3次,不命中数仍为128次。即总的不命中数为256次。
C. 由A和B结果可知,不命中率是25%。
6.44
mountain程序在本机运行结果如下图所示:
可以重点观察s5及以后的列上的数据(前面数据受到预取的影响),不难看出数据在32k, 256k和4m-8m之间均有明显突变。所以可以估计本机cache大小:L1:32K,L2:256K,L3:4MB-8M。且与CPU-Z检测结果相符合。
CSAPP第六章家庭作业参考答案相关推荐
- CSAPP第7章家庭作业参考答案
7.6 buf 有 m.o 外部 .data bufp0 有 swap.o 全局 .data bufp1 有 swap.o 局部 .bss incr 有 swap.o 局部 .text count 有 ...
- CSAPP第五章家庭作业参考答案
(CSAPP第三版系列)导航篇传送门 5.14编写5.13的6*1循环展开版本 代码如下: /* Inner product. Accumulate in temporary */ void inne ...
- CSAPP第4章家庭作业参考答案
4.45 不正确 push %rsp的指令会将rsp减8之前的old value压栈 应该是如下代码: movq REG, -8(%rsp) sub $8, %rsp 4.46 不正确 应该改为 ad ...
- CSAPP第二章家庭作业参考答案
(CSAPP第三版系列)导航篇传送门 2.56 用不同的示例值运行show_bytes的代码. #include <stdio.h>typedef unsigned char *byte_ ...
- 《软件工程教程》(第2版) 主编:吴迪 马宏茹 丁万宁 第六章课后习题参考答案
第6章 软件编码和测试 课后习题参考答案 一.选择题 (1)为了提高测试的效率,应该(D). A.随机地选取测试数据 B.取一切可能的输入数据作为测试数据 C.在完成编码以后制定软件的测试计划 ...
- [第六章] 深入理解计算机系统第三版 家庭作业参考答案
6.22 磁道数 d 与 r - x * r 成正比 设 d = k(r - x * r) = kr(1 - x) 总容量 c = 2πxk(r^2)(1 - x) = 2πk(r^2)(x - x^ ...
- [第三章] 深入理解计算机系统第三版 家庭作业参考答案
人非圣贤孰能无过,欢迎大家提问与纠错 3.58 long decode2(long x, long y, long z) {y -= z;x *= y;return ((y << 63) ...
- [第五章] 深入理解计算机系统第三版 家庭作业参考答案
5.13 A. 画图: 关键路径为第三幅图加粗部分 B. 下界为浮点加法的延迟界限,CPE 为 3.00 C. 整数加法的延迟界限,CPE 为 1.00 D. 关键路径上只有浮点加法 5.14 voi ...
- CSAPP第89章家庭作业(部分)
画出进程图: 原则如下: (1) 遇到fork函数就分支,每个水平的箭头对应于从 左到右执行指令的进程,而每个垂直的箭头对应于 fork 函数的执行 (2) 分支的时候专注于父进程执行完,再处理另一个 ...
- CSAPP第七章家庭作业(原书第二版)
7.6 buf前加了extern是外部符号,由main.c定义,故定义符号的模块是main.o,是int型变量,属于.data节:bufp0和swap函数前未加extern和static,故是全局符号 ...
最新文章
- 图文详解什么是快速排序
- android百度地图更换定位图标,android百度地图定位,改变MyLocationOverlay默认图标(原始为蓝色点)(两种方法)...
- 全球32家人工智能独角兽公司
- python中try_python中try...excpet多种使用方法
- 《需求工程——软件建模与分析》阅读笔记二
- JavaWeb(六)——HttpServletResponse、HttpServletRequest
- Java重载遇到泛型
- 什么是LAMP?LAMP有什么优势?
- Linux启动tomcat带控制台
- IDEA导出jar包步骤
- IoT黑板报0220:三星5G商用关键设备开发完成
- 数据产品经理新人的工作笔记学习
- 魔百和CM311-1a_YST代工_安卓9_S905L3A_没无线版线刷包(可救砖)
- ubuntu搜狗输入法显示简体中文,输入却是繁体中文解决方案
- linux系统软路由软件,Linux软路由配置
- SpringOAuth2-启动网关Factory method ‘jwtTokenEnhancer‘ threw exception;
- 图像处理——gamma矫正
- 电脑重装系统蓝屏详细解决方法分享
- 20221219 圣诞节,音乐圣诞树
- Birthday Paradox(生日悖论)(概率)