操作系统第九章作业paging-multileveltranslate
来源:互联网 发布:ubuntu输入法无法使用 编辑:程序博客网 时间:2024/05/19 14:51
操作系统第九章作业 paging-multileveltranslate
第一次来写博客,计算机专业的废渣一枚,主要分享一些湖大的作业实验及平时一些敲代码的心得
本次作业和第八章作业类似,需要在ubantu环境下运行一个多级页表的程序,加深对多级页表的理解
压缩包下载网址
http://pages.cs.wisc.edu/~remzi/OSTEP/Homework/HW-Paging-MultiLevelTranslate.tgz
使用win10自带的浏览器下载这个压缩包的时候,解压出来不知道是什么鬼,建议换个pdf浏览器,亲测使用adobe下载正常,同实验八一样,是一个.py文件和一个readme文本。
在运行的时候,室友都能够使用./进行运行,但是我在使用时会出现权限不够的问题
经过多次尝试,使用python指令可以解决这一问题
(1)With a linear page table, you need a single register to locate the page table, assuming that hardware does the lookup upon a TLB miss. How many registers do you need to locate a two-level page table?A three-level table?
虚拟地址的长度固定了,页的大小也固定了,VPN的长度也就固定了,线性页表和多级页表的区别也就是页表的大小会有变化,但只需要一个寄存器保存。
(2)Use the simulator to perform translations given random seeds 0,1, and 2, and check your answers using the -c flag. How many memory references are needed to perform each lookup?
S=0
所需要求的虚拟地址转换
对于第二个地址0x3da8转化为二进制 011110110101000(只有十五位,去掉高位)
对虚拟地址进行划分01111 01101 01000
PDRB为108
Page 108:
01111转化为10进制为15,所以取页中的第十六位d6
转化为二进制为11010110
根据readme文档中的提示
有效位为1,页号为1010110
转化为10进制为86号页
01101转化为10进制为13,取页中的第14个元素7f
转化为二进制为01111111
有效位为0,返回fault。
查看答案验证:
(3)Given your understanding of how cache memory works, how do you think memory references to the page table will behave in the cache? Will they lead to lots of cache hits (and thus fast accesses?)Or lots of misses (and thus slow accesses)?
catch memory 缓存。用来存储近期或者常用的指令或者数据,在多级页表的内存管理中,catch memory和TLB的作用很相似。我们知道从内存中去数据比从缓存中取数据话费的时间要多得多,那么如果对于近期HIT命中的或者使用频率高页表,我们很可能在接下来会申请。把这些页表存放在TLB即缓存(catch memory)中,可以大大减少再次访问内存的次数,从而降低时间。如果是连续访问相邻的内存地址,这样会增加cache hits。如果连续访问的内存地址相隔比较大,就会增加cache miss。
- 操作系统第九章作业paging-multileveltranslate
- HW-Paging-MultiLevelTranslate
- Java第九章作业
- 第九章 作业.
- 第九章 作业
- 第九章作业
- 第九章作业~
- 数据库第九章作业
- 第九章作业
- 第九章作业
- 第九章 操作系统引论
- 操作系统 第九章 死锁
- 操作系统 第九章
- 第九章作业 (公鸡母鸡)
- 第九章 嵌入式实时操作系统
- 操作系统思考 第九章 线程
- 操作系统第二章作业
- java作业第九章9_5
- 递归法寻找链表后面第i个元素
- js自调用匿名函数与内部实例化封装插件
- 光流法目标跟踪原理(不带公式)
- ES7与ES8特性
- 成为一个软件测试工程师,你需要知道
- 操作系统第九章作业paging-multileveltranslate
- js中对象的复制,浅复制(浅拷贝)和深复制(深拷贝)
- 《JAVA编程技巧1001条》第335条:数学函数 SQRT.
- 当配置systemctl restart nfs-server.service时,不能正确重启服务该怎么办?
- 为什么要用工厂方法模式
- 言论丨李开复:中国在AI领域的优势与机会,现阶段AI领域的挑战
- 求助大神,这个代码该怎么写
- Python得到当前时间
- Effective Java -- 重写equals方法的通用约定(一)