某计算机虚拟地址32位,物理内存128MB,页大小4KB。问,页表项共有128mb等于多少字节位?

当前位置: >
已知系统为32位实地址,采用48位虚拟地址,页面大小4KB,页表项大小为8B;每段最大为4GB。假设系统使用纯页式存储,则要采用(),页内偏移为()位。
A.3级页表,12
B.3级页表,14
C.4级页表,12
D.4级页表,14
所属学科:
试题类型:客观题
所属知识点:
试题分数:2.0 分
暂无学习笔记。
&&&&&&&&&&&&&&&希赛网 版权所有 & &&温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!&&|&&
LOFTER精选
网易考拉推荐
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
阅读(3927)|
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
历史上的今天
loftPermalink:'',
id:'fks_',
blogTitle:'计算机组成原理答案',
blogAbstract:'&计算机组成原理(答案)\r\n第一章答案\r\n1. 比较数字计算机和模拟计算机的特点。\r\n解:模拟计算机的特点:数值由连续量来表示,运算过程是连续的;\r\n  数字计算机的特点:数值由数字量(离散量)来表示,运算按位进行。\r\n  两者主要区别见P1 表1.1。\r\n2. 数字计算机如何分类?分类的依据是什么?\r\n解:分类:  数字计算机分为专用计算机和通用计算机。通用计算机又分为巨型机、大型机、中型机、小型机、微型机和单片机六类。\r\n  分类依据:专用和通用是根据计算机的效率、速度、价格、运行的经济性和适应性来划分的。通用机的分类依据主要是体积、简易性、功率损耗、性能指标、数据存储容量、指令系统规模和机器价格等因素。\r\n',
blogTag:'',
blogUrl:'blog/static/',
isPublished:1,
istop:false,
modifyTime:0,
publishTime:6,
permalink:'blog/static/',
commentCount:0,
mainCommentCount:0,
recommendCount:0,
bsrk:-100,
publisherId:0,
recomBlogHome:false,
currentRecomBlog:false,
attachmentsFileIds:[],
groupInfo:{},
friendstatus:'none',
followstatus:'unFollow',
pubSucc:'',
visitorProvince:'',
visitorCity:'',
visitorNewUser:false,
postAddInfo:{},
mset:'000',
remindgoodnightblog:false,
isBlackVisitor:false,
isShowYodaoAd:false,
hostIntro:'',
selfRecomBlogCount:'0',
lofter_single:''
{list a as x}
{if x.moveFrom=='wap'}
{elseif x.moveFrom=='iphone'}
{elseif x.moveFrom=='android'}
{elseif x.moveFrom=='mobile'}
${a.selfIntro|escape}{if great260}${suplement}{/if}
{list a as x}
推荐过这篇日志的人:
{list a as x}
{if !!b&&b.length>0}
他们还推荐了:
{list b as y}
转载记录:
{list d as x}
{list a as x}
{list a as x}
{list a as x}
{list a as x}
{if x_index>4}{break}{/if}
${fn2(x.publishTime,'yyyy-MM-dd HH:mm:ss')}
{list a as x}
{if !!(blogDetail.preBlogPermalink)}
{if !!(blogDetail.nextBlogPermalink)}
{list a as x}
{if defined('newslist')&&newslist.length>0}
{list newslist as x}
{if x_index>7}{break}{/if}
{list a as x}
{var first_option =}
{list x.voteDetailList as voteToOption}
{if voteToOption==1}
{if first_option==false},{/if}&&“${b[voteToOption_index]}”&&
{if (x.role!="-1") },“我是${c[x.role]}”&&{/if}
&&&&&&&&${fn1(x.voteTime)}
{if x.userName==''}{/if}
网易公司版权所有&&
{list x.l as y}
{if defined('wl')}
{list wl as x}{/list}您所在的位置: &
针对大内存的页表
针对大内存的页表
陈向群 马洪兵
机械工业出版社
《现代操作系统》是操作系统领域的经典之作,与第2版相比,增加了关于Linux、Windows Vista和Symbian操作系统的详细介绍。书中集中讨论了操作系统的基本原理。第3章讲的是存储管理。本节说的是针对大内存的页表。
3.3.4&& 针对大内存的页表
在原有的内存页表的方案之上,引入快表(TLB)可以用来加快虚拟地址到物理地址的转换。不过这不是惟一需要解决的问题,另一个问题是怎样处理巨大的虚拟地址空间。下面将讨论两种解决方法。
1. 多级页表
第一种方法是采用多级页表。一个简单的例子如图3-13所示。在图3-13a中,32位的虚拟地址被划分为10位的PT1域、10位的PT2域和12位的Offset(偏移量)域。因为偏移量是12位,所以页面长度是4KB,共有220个页面。
引入多级页表的原因是避免把全部页表一直保存在内存中。特别是那些从不需要的页表就不应该保留。比如一个需要12MB内存的进程,其最底端是4MB的程序正文段,后面是4MB的数据段,顶端是4MB的堆栈段,在数据段上方和堆栈段下方之间是大量根本没有使用的空闲区。
考察图3-13b例子中的二级页表是如何工作的。在左边是顶级页表,它具有1024个表项,对应于10位的PT1域。当一个虚拟地址被送到MMU时,MMU首先提取PT1域并把该值作为访问顶级页表的索引。因为整个4GB(32位)虚拟地址空间已经被分成1024个4MB的块,所以这1024个表项中的每一个都表示4MB的虚拟地址空间。
由索引顶级页表得到的表项中含有二级页表的地址或页框号。顶级页表的表项0指向程序正文的页表,表项1指向数据的页表,表项1023指向堆栈的页表,其他的表项(用阴影表示的)未用。现在把PT2域作为访问选定的二级页表的索引,以便找到该虚拟页面的对应页框号。
下面看一个示例,考虑32位虚拟地址0x(十进制4 206 596)位于数据部分12 292字节处。它的虚拟地址对应PT1=1,PT2=2,Offset=4。MMU首先用PT1作为索引访问顶级页表得到表项1,它对应的地址范围是4M~8M。然后,它用PT2作为索引访问刚刚找到的二级页表并得到表项3,它对应的虚拟地址范围是在它的4M块内的12 288~16 383(即绝对地址4 206 592~4 210 687)。这个表项含有虚拟地址0x所在页面的页框号。如果该页面不在内存中,页表项中的“在/不在”位将是0,引发一次缺页中断。如果该页面在内存中,从二级页表中得到的页框号将与偏移量(4)结合形成物理地址。该地址被放到总线上并送到内存中。
值得注意的是,虽然在图3-13中虚拟地址空间超过100万个页面,实际上只需要四个页表:顶级页表以及0~4M(正文段)、4M~8M(数据段)和顶端4M(堆栈段)的二级页表。顶级页表中1021个表项的“在/不在”位都被设为0,当访问它们时强制产生一个缺页中断。如果发生了这种情况,操作系统将注意到进程正在试图访问一个不希望被访问的地址,并采取适当的行动,比如向进程发出一个信号或杀死进程等。在这个例子中的各种长度选择的都是整数,并且选择PT1与PT2等长,但在实际中也可能是其他的值。
图3-13所示的二级页表可扩充为三级、四级或更多级。级别越多,灵活性就越大,但页表超过三级会带来更大的复杂性,这样做是否值得令人怀疑。
2. 倒排页表
对32位虚拟地址空间,多级页表可以很好地发挥作用。但是,随着64位计算机变得更加普遍,情况发生了彻底的变化。如果现在的地址空间是264字节,页面大小为4KB,我们需要一个有252个表项的页表。如果每一个表项8个字节,那么整个页表就会超过3000万GB(30PB)。仅仅为页表耗费3000万GB不是个好主意(现在不是,可能以后几年也不是)。因而,具有64位分页虚拟地址空间的系统需要一个不同的解决方案。
解决方案之一就是使用倒排页表(inverted page table)。在这种设计中,在实际内存中每一个页框有一个表项,而不是每一个虚拟页面有一个表项。例如,对于64位虚拟地址,4KB的页,1GB的RAM,一个倒排页表仅需要262 144个页表项。表项记录哪一个(进程,虚拟页面)对定位于该页框。
虽然倒排页表节省了大量的空间(至少当虚拟地址空间比物理内存大得多的时候是这样的),但它也有严重的不足:从虚拟地址到物理地址的转换会变得很困难。当进程n访问虚拟页面p时,硬件不再能通过把p当作指向页表的一个索引来查找物理页框。取而代之的是,它必须搜索整个倒排页表来查找某一个表项(n,p)。此外,该搜索必须对每一个内存访问操作都要执行一次,而不仅仅是在发生缺页中断时执行。每一次内存访问操作都要查找一个256K的表是不会让你的机器运行得很快的。
走出这种两难局面的办法是使用TLB。如果TLB能够记录所有频繁使用的页面,地址转换就可能变得像通常的页表一样快。但是,当发生TLB失效时,需要用软件搜索整个倒排页表。一个可行的实现该搜索的方法是建立一张散列表,用虚拟地址来散列。当前所有在内存中的具有相同散列值的虚拟页面被链接在一起,如图3-14所示。如果散列表中的槽数与机器中物理页面数一样多,那么散列表的冲突链的平均长度将会是1个表项,这将会大大提高映射速度。一旦页框号被找到,新的(虚拟页号,物理页框号)对就会被装载到TLB中。
倒排页表在64位机器中很常见,因为在64位机器中即使使用了大页面,页表项的数量还是很庞大的。例如,对于4MB页面和64位虚拟地址,需要242个页表项。处理大虚存的其他方法可参见Talluri等人的论文(1995)。
【责任编辑: TEL:(010)】&&&&&&
关于&&&&&&的更多文章
近日,中国工程院院士倪光南老师在接受国内媒体采访时再次提出国
本书描述了黑客用默默无闻的行动为数字世界照亮了一条道路的故事。
讲师: 15人学习过讲师: 36人学习过讲师: 15人学习过
《Excel 2016表格应用》用于帮助读者真正提高Excel表
ES6(又名 ES2105)是 JavaScript 语言的新标准,2015
《21天学通Visual Basic(第4版)》是Visual Basic 6.
本书是在《网管员必读―网络安全》第1版的基础上修改而成的。新版在保留第1版实用内容的基础上增加了大量新的实用内容,同时删除
51CTO旗下网站京ICP证号&&
京网文[3号&&
Copyright (C) 2017 Baidu页 页表 页表项
页 页表 页表项
计算机操作系统
//操作系统和计算机组成原理里都讲到内存管理的页式管理,但是本人以及很多初次学习分页的时候,都会迷茫页表大小和页表项大小之间的关系,本人仔细分析了后写了这篇blog,仅当学习交流,个人理解之用,如果有错或者分析不够严谨,欢迎指正。
//按字、图结合起来分析,相信还是比较容易看懂。
//一、首先明确几个概念&
逻辑地址:是程序编译后,生成的目标模块进行编址时都是从号单元开始编址,称之为目标模块的相对地址,即为逻辑地址。
页:将进程划分的块,对应的大小就叫页面大小。
页框:将内存划分的块。
页和页框二者一一对应,一个页放入一个页框,(理论上)页的大小和页框的大小相等。
页表:就是一个页和页框一一对应的关系表。【存放在内存中】&关系表只是起到一个索引的作用,说白了就是能根据关系表能查到某一个页面和哪一个页框所对应。
//二、用例子说话【例子出现在:《王道考研操作系统》的内存管理部分】
已知条件:逻辑地址位、页面大小、页表项大小。
分析: & & & &
& & &首先位的虚拟地址可表示的进程大小应该是2^32B = 4GB(暂时别去想页号P占多少位,W占多少位)&
& & & & &&
2.(根据页的定义和页面大小的定义)将进程进行分页:
3.我们已经知道了页面的数目为:2^20页。现在的迷茫点就在于页表项的问题上。
& &上图在页表上已经给出了几个数据:20位,位,位,2^20项。一一解释如下【请结合上图一个一个数据分析】:
&& &2^20项:因为页表的作用是要将页面的页框一一对应起来,所以,每一个页面在页表中都应该有一个页表项:用来表示一个页号对应一页页框号(内存中的块号),故应 & &&
& & & & & & & & & & 该有2^20项。【不应该有问题吧,就好像一个班有50个同学,每个人都应该有一个地址一样】
&&&20位:已经很显然了,需要表示出2^20个页表项,就至少需要位的地址。为什么只取位而不是位,位呢,本人现在还没想这个问题,就暂时定为恰好取位即可。
&&&32位:已知条件里告诉了页表项大小为,那么自然就应该是位了。
&&&12位:位位&位。为什么页框号地址为位,只能表示2^12个页框,要小于2^20个页面呢,因为并不是进程的每一个页面都要调入内存。其实位、位、位这三个数据还是有一定依据的,在二级分页的时候就会发现“哦,原来刚刚好”。此处暂不讨论二级分页。
4.通过上面的分析我们得出了哪些数据:
&&&逻辑地址位,进程大小:。
&&&页面:大小,数量:2^20页。
&&&页表项:,数量:2^20项。所以页表就需要&=&4MB的空间存储(这就是书中说:页表项大小为的由来)进一步,主存的页框大小和页面大小是相等的,也为,所以将页表存在主存就需要占用页(因为页表也是存在主存中的,而主存也是按页框划分的。这的确是一种资源浪费,所以就需要建立二级页面,将其大小控制在页之内,将二级页面存入主存即可)
我的热门文章
即使是一小步也想与你分享

我要回帖

更多关于 128mb是多大 的文章

 

随机推荐