9.11 A、虚拟地址格式:00001001 111100

B、

参数
VPN 0x09
TLB索引 0x1
TLB标记 0x02
TLB命中?(是/否)
缺页?(是/否)
PPN 0x17

C、物理地址格式:010111 111100

D、

参数
字节偏移 0x0
缓存索引 0xF
缓存标记 0x17
缓存命中?(是/否)
返回的缓存字节

9.12 A、虚拟地址格式:00001110 101001

B、

参数
VPN 0x0E
TLB索引 0x2
TLB标记 0x03
TLB命中?(是/否)
缺页?(是/否)
PPN 0x11

C、物理地址格式:010001 101001

D、

参数
字节偏移 0x1
缓存索引 0xA
缓存标记 0x11
缓存命中?(是/否)
返回的缓存字节

9.13 A、虚拟地址格式:00000001 000000

B、

参数
VPN 0x01
TLB索 0x1
TLB标记 0x00
TLB命中?(是/否)
缺页?(是/否)
PPN

9.14

#include "csapp.h"int main(int argc, char const *argv[])
{int fd;if ((fd = open("hello.txt", O_RDWR)) == -1){perror("Failed to open hello.txt");exit(EXIT_FAILURE);}struct stat stat_of_file;if (fstat(fd, &stat_of_file) == -1){perror("Failed to get stat of hello.txt");exit(EXIT_FAILURE);}char *p;if ((p = mmap(NULL, stat_of_file.st_size, PROT_WRITE, MAP_SHARED,fd, 0)) == (void *)-1){perror("Failed to mmap");exit(EXIT_FAILURE);}p[0] = 'J';return 0;
}

9.15

请求 块大小(十进制字节) 块头部(十六进制)
malloc(3) 8 0x09
malloc(11) 16 0x11
malloc(20) 24 0x19
malloc(21) 32 0x21

9.16

对齐要求 已分配块 空闲块 最小块大小(字节)
单字 头部和脚部 头部和脚部 16
单字 头部,但没有脚部 头部和脚部 16
双字 头部和脚部 头部和脚部 16
双字 头部,但没有脚部 头部和脚部 16

9.17 罗列下修改的要点:

1、新增一个静态全局变量rover,保存上一次搜索的结果地址;在mm_init函数里初始化为堆的起始地址heap_listp

2、修改find_fit,从rover开始到堆尾,再从heap_listp到rover,搜索合适的空闲块。

3、修改mm_malloc,正确分配块后,将rover置为下一个空闲块。

4、mm_free需修改,修改coalesce,在合并时更新rover。
9.18 说明:用Header的倒数第二位表示是否为空闲位。如010表示上一个块已分配,000表示未分配。由于只在合并块时需要使用上一个块的大小。所以取消已分配块的Footer不影响算法的实现。由于细节的修改比较多,此处略过。

9.19 1)a:正确,假设申请一个大小的块,实际会分配,所以最高约有50%的空间浪费;

b:错误,无论是考虑平均,还是最差情况,两种算法的复杂度都与块数量呈线性关系;

c:错误,比如伙伴系统就不需要使用边界标记,空闲链表也不一定需要按地址递增排序;

d:错误,任何分配器都会有外部碎片。

2)a:错误,空闲块递减排列使得首次适配算法的匹配复杂度为O(1),性能是提升了;且不能避免外部碎片;

b:错误:最佳适配无论如何都要搜索整个链表,顺序安排无所谓;

c:错误:请求的是最接近请求大小的适配块;

d:正确:两者找到的肯定是同一个块,所以等价 。

3)b:正确,保守是说会将垃圾当成可达块,而原因正是将一些非指针值,如int当作指针值,而错误地将一些垃圾标记位可达块,而不回收它。a)c)不保守的垃圾收集器也是可以这么做的,d)循环链表的垃圾块也是可能被回收的。

9.20 略

深入理解计算机系统(第三版)家庭作业 第九章相关推荐

  1. [第六章] 深入理解计算机系统第三版 家庭作业参考答案

    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^ ...

  2. [第五章] 深入理解计算机系统第三版 家庭作业参考答案

    5.13 A. 画图: 关键路径为第三幅图加粗部分 B. 下界为浮点加法的延迟界限,CPE 为 3.00 C. 整数加法的延迟界限,CPE 为 1.00 D. 关键路径上只有浮点加法 5.14 voi ...

  3. [第三章] 深入理解计算机系统第三版 家庭作业参考答案

    人非圣贤孰能无过,欢迎大家提问与纠错 3.58 long decode2(long x, long y, long z) {y -= z;x *= y;return ((y << 63) ...

  4. 深入理解计算机系统(第二版)第四章知识整理

    深入理解计算机系统(第二版)笔记 第四章 处理器体系结构 4.1 Y86指令集体系结构 4.1.1 程序员可见的状态 4.1.2 Y86指令 4.1.3 指令编码 4.1.4 Y86异常 4.1.5 ...

  5. 《深入理解计算机系统》(原书第三版)家庭作业第三章(3.63)解答

    原题目: **3.63 伪代码分析: x rdi ;n rsi n=n-0x3c(60); if(n>5){-->4005c3 } else{ goto:*(8n+0x4006f8) n= ...

  6. 深入理解计算机系统(第三版)

    300M+ 超级清楚 这本书我觉得很棒 最近在自学它 很基础的东西 百度网盘:https://pan.baidu.com/s/1rUHIzjvPZFbWiia-NUHnhQ passwd: 2gsp ...

  7. 深入理解计算机系统 -资料整理 高清中文版_在所不辞的博客-CSDN博客_深入理解计算机系统第四版pdf

    深入理解计算机系统 -资料整理 高清中文版_在所不辞的博客-CSDN博客_深入理解计算机系统第四版pdf

  8. 深入理解C#第三版部分内容

     最近,粗略的读了<深入理解C#(第三版)>这本技术书,书中介绍了C#不同版本之间的不同以及新的功能. 现在将部分摘录的内容贴在下面,以备查阅. C#语言特性: 1.C#2.0 C#2的主 ...

  9. Timo学习笔记 :Python基础教程(第三版)第四章 当索引行不通时

    第四章 当索引行不通时 Timo学习笔记 :Python基础教程(第三版)第三章 使用字符串 这是word编辑的最后一章笔记,第五章开始将直接用这个模板记录. 本章笔记很少,也很简单.很多方法可以到要 ...

  10. 【C++习题笔记】谭浩强C++程序设计(第三版)第七章

    本文是谭浩强老师c++程序设计(第三版)第七章的习题总结,主要涉及结构体的内容. 1. 定义一个结构体变量(包括年.月.日),编写程序,要求输入年月日,程序能够计算并输出改日是本年中的第几天.注意闰年 ...

最新文章

  1. 自律到极致-人生才精致:第12期
  2. android launchmode singleinstance问题
  3. 交通运输线(LCA)
  4. java intern_java String的intern方法
  5. SAP Spartacus State
  6. linux笔记2.20
  7. 我背着女朋友,用 Python 偷偷抓取了她的行踪
  8. 关于视频光端机调制方式及介质特点的介绍
  9. Hadoop伪分布式配置和搭建,hadoop单机安装,wordcount实例测试,hadoop安装java目录怎么找,问题及问题解决方法
  10. 信息学奥赛一本通(1012:计算多项式的值)
  11. java如何存储一个向量到一个矩阵的一个位置_SIMD数据并行(一)——向量体系结构...
  12. linux sar监控脚本,linux-利用sar进行性能监控
  13. idam oracle_oracle中的wm_concat对应达梦的是什么?
  14. flash 定义主舞台窗口大小
  15. Spring Boot 2.X 如何优雅的解决跨域问题?
  16. 《FLUENT 14流场分析自学手册》——2.4 FLUENT14.5的功能模块和分析过程
  17. 步进电机选型及扭矩的计算(粗略计算)
  18. Echarts柱状图属性设置大全
  19. MongoDb进阶实践之七 MongoDB的索引入门
  20. CompletableFuture模拟复杂场景使用测试。。。

热门文章

  1. 利用red5搭建一个简单的流媒体直播系统(ubuntu 12.10)
  2. 华东理工大学计算机专业研究生,华东理工大学硕士研究生培养方案计算机科学与技术一级学科(学科代码:0812)信息科学与工程学院...
  3. 个人博客百度统计中恶意刷无关关键词解决方案
  4. SOFA Weekly | QA 整理
  5. C++ 条件运算符 (?:)
  6. Duplicate问题
  7. 关于苹果开发者证书的续费问题改动2021
  8. Linux架设Jsp环境
  9. 蓝桥杯 18总决赛 A2 方阵阅兵(暴力)
  10. win7副本不是正版_为什么有人愿意放弃win10,重装成盗版的win7呢原因有三点!...