操作系统概念第八章部分作业题答案

操作系统概念第八章部分作业题答案题目一:试说明内部碎片和外部碎片之间的差别解答:内部碎片是指进程所分配的内存可能比进程所需要的大外部碎片是指由于进程的大小不一导致内存被分成小片段且不连续,造成空间浪费。题目二:考虑一个页表在内存中的内存分页系统:(1)如果内存访问的时间为200ns,试问访问页表中的一个数据需要多长时间?(2)如果增加TLB,其中90%的页引用被TLB命中,TLB的访问时间为10n…

大家好,又见面了,我是你们的朋友全栈君。

题目一:

试说明内部碎片和外部碎片之间的差别
解答:
内部碎片是指进程所分配的内存可能比进程所需要的大
外部碎片是指由于进程的大小不一导致内存被分成小片段且不连续,造成空间浪费。

题目二:

考虑一个页表在内存中的内存分页系统:
(1)如果内存访问的时间为 200ns,试问访问页表中的一个数据需要多长时间?
(2)如果增加 TLB,其中 90% 的页引用被 TLB 命中,TLB 的访问时间为 10ns,请问有效内存访问时间是多少?。
解答:
(1)由于内存访问的时间为200ns,访问数据首先需要访问页表,页表在内存中,也就是说需要200ns的时间;而从页表中找到物理地址后,再去找到数据,又需要访问一次内存,也就是需要200ns的时间,总共为200+200=400ns。
(2)首先,TLB的使用方法有两种:
①TLB与页表同时进行访问,这个时候,如果TLB命中,那么就可以终止对页表的访问,而通过TLB找到的物理地址去找数据,相当于一次TLB访问+一次内存访问=10+200=210ns;如果TLB不命中,那么继续对页表进行访问,再通过物理地址去找数据,仍旧是两次内存访问的时间,为400ns。此时,再计算命中率,可以得到公式:21090%+40010%=229ns
②TLB先于页表进行访问,这个时候,会有10ns的时间,如果TLB命中,就只需要一次内存访问的时间,为200ns;如果TLB不命中,那么需要对页表进行访问,再通过物理地址去找数据,需要400ns,此时,我们可以得到公式:10+20090%+40010%=230ns。

题目三:

考虑表1中所示段表:
请给出下列逻辑地址对应的物理地址。
(1)0,120
(2)1,120
(3)2,120
(4)3,120
(5)4,120
在这里插入图片描述
解答:
(1):通过段号0找到第0段,此时的基址219,这一段的长度为600,我们想要第120位的地址,在段内,由此得到对应的物理地址为219+120=339
(2):通过段号1找到第1段,此时的基址2300,这一段的长度为14,我们想要第120位的地址,不在段内,非法
(3):通过段号2找到第2段,此时的基址90,这一段的长度为100,我们想要第120位的地址,不在段内,非法
(4):通过段号3找到第3段,此时的基址1327,这一段的长度为580,我们想要第120位的地址,在段内,由此得到对应的物理地址为580+120=700
(5):通过段号4找到第4段,此时的基址1952,这一段的长度为96,我们想要第120位的地址,不在段内,非法

题目四:

试按要求设计多级分页系统:(1)逻辑地址为 48 位;(2)物理地址为 48 位;(3)页大小为 1M;(4)各级页表中的页表项均不得超过 1K 项;
请给出设计的要点,包括地址划分,各级页表项数,逻辑地址到物理地址的转换方法等。
解答:
通过页大小为1M,我们可以得到页偏移d=20
我们可以得到逻辑地址为:p=48-20=28,d=20
我们可以得到物理地址为:f=48-20=28,d=20
此时我们如果直接进行分页,我们的页表将会包含2^28项,远远超过1K
所以,我们需要进行层次化
由于我们页表项最大为1K,所以我们至少需要三级页表,如:10,10,8,效果如下:
在这里插入图片描述
而同样的,我们此时的逻辑地址会划分为:p1=10,p2=10,p3=8,d=20
首先,通过第二级外部页表的第p1项,找到相应的外部页表的指针(或者说首地址,这里需要根据实现方法,总之是找到外部页表)
然后,通过找到的外部页表的第p2项,找到相应的内部页表的指针(或者说首地址,这里需要根据实现方法,总之是找到内部页表)
最后,通过找到的内部页表的第p3项,找到相应的物理地址的f片段,再根据找到的f片段与页偏移d片段组合,得到我们的物理地址。
这种三级页表方法,第二级外部页表有210项,每一项对应一个外部页表;每一个外部页表有210项,每一项对应一个内部页表;每一个内部页表有2^8项,每一项对应一个帧的首地址的物理地址的f片段
转换方法如上所示。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/159060.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • pytest skipif_pytest失败重跑

    pytest skipif_pytest失败重跑前言pytest.mark.skip可以标记无法在某些平台上运行的测试功能,或者您希望失败的测试功能Skip和xfail:处理那些不会成功的测试用例你可以对那些在某些特定平台上不能运行的测试用

  • go语言goquery下载图片实例「建议收藏」

    crawl.gopackagemainimport(“fmt””strings””strconv””net/http””net/url””io/ioutil””os””log””runtime””flag””github.com/PuerkitoBio/goquery”)constH

  • 挖矿区块链_什么是挖矿 带你详细了解挖矿基础知识[通俗易懂]

    挖矿区块链_什么是挖矿 带你详细了解挖矿基础知识[通俗易懂]在信息更迭快速的时代下,人们对于一件事物的新鲜感也是很短暂的,比特币和区块链火了,但是人们对于比特币和区块链的热情一直高涨,为了获得比特币奖励,人们加入到挖矿的大军中,什么是挖矿?也许有些小白对于这个词语还不是很了解,那么下面我们就一起来学习下吧!在进行挖矿之前,我们应该首先知道什么是矿,先举个例子吧,我们在用人民币的时候,都可以发现在每一张人民币上都是有编号的,那么谁可以最先猜出人民币上的编号,…

  • tomcat是否有必要配置环境变量[通俗易懂]

    tomcat是否有必要配置环境变量[通俗易懂]答案:否好多环境都需要配置环境变量,有时候都搞不清楚哪些需要哪些不需要,今天特地查了一下tomcat是否需要配置环境变量。又涨知识了,原来可以配置也可以不配置。既然能不配置,本着懒懒的毛病,当然是不配置了哈哈…但这里还是说明一下为啥不需要配置吧!1、Tomcat解压完成后,直接在bin目录下运行startup.bat,是可以启动Tomcat的!2、但是如果不是在bin目录下运行star…

  • Ubuntu16.04 Caffe 安装步骤记录(超详尽)

    历时一周终于在ubuntu16.04系统成功安装caffe并编译,网上有很多教程,但是某些步骤并没有讲解详尽,导致配置过程总是出现各种各样匪夷所思的问题,尤其对于新手而言更是欲哭无泪,在我饱受折磨后决定把安装步骤记录下来,尽量详尽清楚明白,避免后来小白重蹈覆辙。安装硬件:inteli5+NVIDIA740M安装流程细分为如下10个步骤,细化步骤粒度更易避免出错

  • C# 互斥锁 Mutex

    C# 互斥锁 Mutex当两个或更多线程需要同时访问一个共享资源时,系统需要使用同步机制来确保一次只有一个线程使用该资源。Mutex 是同步基元,它只向一个线程授予对共享资源的独占访问权。如果一个线程获取了互斥体,则要获取该互斥体的第二个线程将被挂起,直到第一个线程释放该互斥体。privatestaticMutexmut=newMutex();两个线程访问资源需要互斥时,两个线程都要用互斥锁。

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号