<操作系统导论>第十六章作业

1.先让我们用一个小地址空间来转换一些地址。这里有一组简单的参数和几个不同的随机种子。你可以转换这些地址吗?
segmentation.py -a 128 -p 512 -b 0 -l 20 -B 512 -L 20 -s 0
segmentation.py -a 128 -p 512 -b 0 -l 20 -B 512 -L 20 -s 1
segmentation.py -a 128 -p 512 -b 0 -l 20 -B 512 -L 20 -s 2

随机种子0:

在这里插入图片描述

这里可以看到逻辑地址空间是128(2的7次方),划分成了两段,所以第一位为段选位
第一段:0~64 正向增长,第二段65~128 反向增长,Limit都是20

VA0:位于段1 偏移量为108-128=-20 物理地址为:512-20=492
VA1:位于段1 偏移量为 97-128=-31 31>20 超出限制
VA2:位于段0 偏移量为53 53>20 超出限制
VA3:位于段0 偏移量为33 33>20 超出限制
VA4:位于段1 偏移量为65-128=-63 63>20 超出限制

这里查看答案
在这里插入图片描述

随机种子1:

在这里插入图片描述

这里可以看到逻辑地址空间是128(2的7次方),划分成了两段,所以第一位为段选位
第一段:0~64 正向增长,第二段65~128 反向增长,Limit都是20

VA0:位于段0 偏移量为 17 物理地址为:0+17=17
VA1:位于段1 偏移量为 108-128=-20 物理地址为:512-20=492
VA2:位于段1 偏移量为 97-128=-31 31>20 超出限制
VA3:位于段0 偏移量为 32 32>20 超出限制
VA4:位于段0 偏移量为 63 63>20 超出限制

这里查看答案

在这里插入图片描述

随机种子2:

在这里插入图片描述

这里可以看到逻辑地址空间是128(2的7次方),划分成了两段,所以第一位为段选位
第一段:0~64 正向增长,第二段65~128 反向增长,Limit都是20

VA0:位于段1 偏移量为 122-128=-6 物理地址为:512-6=506
VA1:位于段1 偏移量为 121-128=-7 物理地址为:512-7=505
VA2:位于段0 偏移量为 7 物理地址为:0+7=7
VA3:位于段0 偏移量为10 物理地址为:0+10=10
VA4:位于段1 偏移量为106-128=-22 22>20 超出限制

这里查看答案

在这里插入图片描述

2.现在,让我们看看是否理解了这个构建的小地址空间(使用上面问题的参数)。段 0 中最高的合法虚拟地址是什么?段 1 中最低的合法虚拟地址是什么?在整个地址空间中,最低和最高的非法地址是什么?最后,如何运行带有-A 标志的 segmentation.py 来测试你是否正确?

在这里插入图片描述
段0最高的合法虚拟地址是20-1=19;段1最低的合法虚拟地址是128-20=108
整个地址空间中,最低的合法地址是0,最高的合法地址是127;

用-A验证:
在这里插入图片描述
在这里插入图片描述

3.假设我们在一个 128 字节的物理内存中有一个很小的 16 字节地址空间。你会设置什么样的基址和界限,以便让模拟器为指定的地址流生成以下转换结果:有效,有效,违规…违规,有效,有效?假设用以下参数:
segmentation.py -a 16 -p 128 -A 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15
–b0 ? --l0 ? --b1 ? --l1 ?

有了前两道题的铺垫,可知分两段即可,第一段正向增长,第二段反向增长
0,1有效;14,15有效,其他都是违规,所以说两段的limit都是2

在这里插入图片描述
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值