深入理解计算机系统(第三版)家庭作业 第九章
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 略
深入理解计算机系统(第三版)家庭作业 第九章相关推荐
- [第六章] 深入理解计算机系统第三版 家庭作业参考答案
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^ ...
- [第五章] 深入理解计算机系统第三版 家庭作业参考答案
5.13 A. 画图: 关键路径为第三幅图加粗部分 B. 下界为浮点加法的延迟界限,CPE 为 3.00 C. 整数加法的延迟界限,CPE 为 1.00 D. 关键路径上只有浮点加法 5.14 voi ...
- [第三章] 深入理解计算机系统第三版 家庭作业参考答案
人非圣贤孰能无过,欢迎大家提问与纠错 3.58 long decode2(long x, long y, long z) {y -= z;x *= y;return ((y << 63) ...
- 深入理解计算机系统(第二版)第四章知识整理
深入理解计算机系统(第二版)笔记 第四章 处理器体系结构 4.1 Y86指令集体系结构 4.1.1 程序员可见的状态 4.1.2 Y86指令 4.1.3 指令编码 4.1.4 Y86异常 4.1.5 ...
- 《深入理解计算机系统》(原书第三版)家庭作业第三章(3.63)解答
原题目: **3.63 伪代码分析: x rdi ;n rsi n=n-0x3c(60); if(n>5){-->4005c3 } else{ goto:*(8n+0x4006f8) n= ...
- 深入理解计算机系统(第三版)
300M+ 超级清楚 这本书我觉得很棒 最近在自学它 很基础的东西 百度网盘:https://pan.baidu.com/s/1rUHIzjvPZFbWiia-NUHnhQ passwd: 2gsp ...
- 深入理解计算机系统 -资料整理 高清中文版_在所不辞的博客-CSDN博客_深入理解计算机系统第四版pdf
深入理解计算机系统 -资料整理 高清中文版_在所不辞的博客-CSDN博客_深入理解计算机系统第四版pdf
- 深入理解C#第三版部分内容
最近,粗略的读了<深入理解C#(第三版)>这本技术书,书中介绍了C#不同版本之间的不同以及新的功能. 现在将部分摘录的内容贴在下面,以备查阅. C#语言特性: 1.C#2.0 C#2的主 ...
- Timo学习笔记 :Python基础教程(第三版)第四章 当索引行不通时
第四章 当索引行不通时 Timo学习笔记 :Python基础教程(第三版)第三章 使用字符串 这是word编辑的最后一章笔记,第五章开始将直接用这个模板记录. 本章笔记很少,也很简单.很多方法可以到要 ...
- 【C++习题笔记】谭浩强C++程序设计(第三版)第七章
本文是谭浩强老师c++程序设计(第三版)第七章的习题总结,主要涉及结构体的内容. 1. 定义一个结构体变量(包括年.月.日),编写程序,要求输入年月日,程序能够计算并输出改日是本年中的第几天.注意闰年 ...
最新文章
- 自律到极致-人生才精致:第12期
- android launchmode singleinstance问题
- 交通运输线(LCA)
- java intern_java String的intern方法
- SAP Spartacus State
- linux笔记2.20
- 我背着女朋友,用 Python 偷偷抓取了她的行踪
- 关于视频光端机调制方式及介质特点的介绍
- Hadoop伪分布式配置和搭建,hadoop单机安装,wordcount实例测试,hadoop安装java目录怎么找,问题及问题解决方法
- 信息学奥赛一本通(1012:计算多项式的值)
- java如何存储一个向量到一个矩阵的一个位置_SIMD数据并行(一)——向量体系结构...
- linux sar监控脚本,linux-利用sar进行性能监控
- idam oracle_oracle中的wm_concat对应达梦的是什么?
- flash 定义主舞台窗口大小
- Spring Boot 2.X 如何优雅的解决跨域问题?
- 《FLUENT 14流场分析自学手册》——2.4 FLUENT14.5的功能模块和分析过程
- 步进电机选型及扭矩的计算(粗略计算)
- Echarts柱状图属性设置大全
- MongoDb进阶实践之七 MongoDB的索引入门
- CompletableFuture模拟复杂场景使用测试。。。
热门文章
- 利用red5搭建一个简单的流媒体直播系统(ubuntu 12.10)
- 华东理工大学计算机专业研究生,华东理工大学硕士研究生培养方案计算机科学与技术一级学科(学科代码:0812)信息科学与工程学院...
- 个人博客百度统计中恶意刷无关关键词解决方案
- SOFA Weekly | QA 整理
- C++ 条件运算符 (?:)
- Duplicate问题
- 关于苹果开发者证书的续费问题改动2021
- Linux架设Jsp环境
- 蓝桥杯 18总决赛 A2 方阵阅兵(暴力)
- win7副本不是正版_为什么有人愿意放弃win10,重装成盗版的win7呢原因有三点!...