操作系统考研复习指导-某分页式虚拟存储系统,用于页面交换的磁盘的平均访问及传输时间是20ms-王道

分页式虚拟存储系统,用于页面交换的磁盘的平均访问及传输时间是20ms。页表保存在主存,访问时间为1μs,即每引用一次指令或数据,需要访问两次内存。为改善性能,可以增设一个关联寄存器,如果页表项在关联寄存器里,则只要访问一次内存就可以。假设80%的访问其页表项在关联寄存器中,剩下的20%中,10%的访问(即总数的2%)会产生缺页。请计算有效访问时间。

今天又看到了这道题,有人在考研群里问,我又仔细想了一下,感觉答案应该是23。

主要的问题集中在是20+2还是20+3。

显然,访问页表需要1,最后实际读取也需要1,磁盘访问需要20,这是没用问题的。

访问页表发现不在内存中后,产生中断,访问磁盘将块写入内存中,写入后,需要修改页表的状态位(有效位)来标记这个块已经在内存中,那这个问题就变成了需要修改的那个状态位到底在哪里。

首先,页表中的页表项肯定是有这一个状态位(有效位)的,而西电的操作系统书中的流程图也说明要修改PMT表,PMT表就是页表,所以额外花了1,因为题中说的20是磁盘时间,并不是缺页中断时间,所以这种情况下是23。但是这个流程图中并没有涉及到TLB。

之后再看王道的书,其中的流程图包含了TLB,其中也明确说了要修改页表,之后再修改页表,所以这种情况下是23。

我又查了机械工业的计组书,其中的TLB结构图中,TLB内和页表内都是有状态位(有效位)的,这看起来似乎和王道的流程图应该是一样的:中断内修改页表有效位,再修改TLB有效位(实际上是把页表项直接复制进TLB的)。

但是往后再翻几页,发现似乎并不是这样。

根据他的描述:1*TLB缺失后,访问页表找到页表项,直接放进TLB内,不检查有效位,不管在不在内存中,都直接复制页表项。2*重新执行指令,发现有效位有问题,页缺失,导致缺页中断。之后就和其他的一样了,先修改页表,再修改TLB。这种情况下应该也是23。

回归到题目,题里并没有说是TLB,只是说关联寄存器,1*他要是没有状态位,只存块号的话,由于缺页中断中要修改页表,所以应该是23。2*他要是有状态位,那似乎对应的就是王道书上的流程图或计组书上的描述,也是23

那根据他答案的解析,他一直在说缺页中断是20,并且只提到了两次1,若按缺页中断是20的话,内部已经包含了修改页表的时间了,这样似乎是22。但是题中只说磁盘的平均访问及传输时间是20ms,我觉得似乎不是缺页中断,应该还得加上修改页表的时间,似乎是23。

这答案和解析完全对不上,我也不知道是个什么情况,这题要是说的更清楚一些就好了,他这解析真实狗屎,断句不清晰,和答案也对不上。

  • 21
    点赞
  • 42
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值