⑴ 页储存管理中,已知一个逻辑地址长度为16位,页面大小为4096B,地址为2F6AH,怎么知道这个地址的页号啊
例3 若在一分页存储管理系统中,某作业的页表如下所示。已知页面大小为1024字节,试将逻辑地址1011,2148,4000,5012转化为相应的物理地址。
页号
物理块号
0
2
1
3
2
1
3
6
【分析】 页式存储管理的地址结构是一维的,即逻辑地址(或物理地址)只用一个数值即可表示。若给定逻辑地址A,页面的大小为L,则页号p和页内地址d可按照下式求得:
p=int [A/L] d=A mod L
其中,int是取整函数(取数值的整数部分),mod是取余函数(取数值的余数部分)。
下图显示了页式管理系统的地址转换机构。
页表的作用是实现从页号到物理块号的地址映射。以逻辑地址的页号检索页表,得到该页的物理块号;同时将页内地址d直接送入物理地址寄存器的块内地址字段中。这样物理块号和块内地址拼接成了实际访问内存的地址,从而完成了从逻辑地址到物理地址的转换。
所以物理地址的计算公式为:
物理地址=块的大小(即页的大小L)*块号f+页内地址d
解 本题中,为了描述方便,设页号为p,页内位移为d,则:
(1)对于逻辑地址1011,p=int(1011/1024)=0,d=1011 mod 1024=1011。查页表第0页在第2块,所以物理地址为1024*2+1011=3059。
(2)对于逻辑地址2148,p=int(2148/1024)=2,d=2148 mod 1024=100。查页表第2页在第1块,所以物理地址为1024+100=1124。
(3)对于逻辑地址4000,p=int(4000/1024)=3,d=4000 mod 1024=928。查页表第3页在第6块,所以物理地址为1024*6+928=7072。
(4)对于逻辑地址5012,p=int(5012/1024)=4,d=5012 mod 1024=916。因页号超过页表长度,该逻辑地址非法。
⑵ 页表的物理地址怎么确定
逻辑地址:CPU所生成的地址。CPU产生的逻辑地址被分为 :p (页号) 它包含每个页在物理内存中的基址,用来作为页表的索引;d (页偏移),同基址相结合,用来确定送入内存设备的物理内存地址。
物理地址:内存单元所看到的地址。逻辑地址空间为2^m,且页大小为2^n,那么逻辑地址的高m-n位表示页号,低n位表示页偏移。
逻辑地址空间:由程序所生成的所有逻辑地址的集合。
⑶ 请求页式存储管理求物理地址
页大小为2KB=2的11次方B,页内偏移量为11bit逻辑地址:1CDBH 转换成二进制:00011100110110112C1DH 转换成二进制:0010110000011101取低11位为页内偏移量,剩余高位为页号。内存空间32KB=2的15次方B,物理地址15bit.1CDBH 页号为00011,值为3.如表,块号为9.9 转换成二进制 10011CDBH 物理地址为1001100110110112C1DH 物理地址同上
⑷ 什么是逻辑地址什么是物理地址在实模式下,如何求存储器的物理地址假设一个
逻辑地址和物理地址的区别是:
逻辑地址(Logical Address) 是指由程序产生的与段相关的偏移地址部分。例如,你在进行C语言指针编程中,可以读取指针变量本身值(&操作),实际上这个值就是逻辑地址,它是相对于你当前进程数据段的地址,不和绝对物理地址相干。只有在Intel实模式下,逻辑地址才和物理地址相等(因为实模式没有分段或分页机制,Cpu不进行自动地址转换);逻辑也就是在Intel 保护模式下程序执行代码段限长内的偏移地址(假定代码段、数据段如果完全一样)。应用程序员仅需与逻辑地址打交道,而分段和分页机制对您来说是完全透明的,仅由系统编程人员涉及。应用程序员虽然自己可以直接操作内存,那也只能在操作系统给你分配的内存段操作。
物理地址(Physical Address) 是指出现在CPU外部地址总线上的寻址物理内存的地址信号,是地址变换的最终结果地址。如果启用了分页机制,那么线性地址会使用页目录和页表中的项变换成物理地址。如果没有启用分页机制,那么线性地址就直接成为物理地址了。
虚拟内存(Virtual Memory)是指计算机呈现出要比实际拥有的内存大得多的内存量。因此它允许程序员编制并运行比实际系统拥有的内存大得多的程序。这使得许多大型项目也能够在具有有限内存资源的系统上实现。一个很恰当的比喻是:你不需要很长的轨道就可以让一列火车从上海开到北京。你只需要足够长的铁轨(比如说3公里)就可以完成这个任务。采取的方法是把后面的铁轨立刻铺到火车的前面,只要你的操作足够快并能满足要求,列车就能象在一条完整的轨道上运行。这也就是虚拟内存管理需要完成的任务。在Linux 0.11内核中,给每个程序(进程)都划分了总容量为64MB的虚拟内存空间。因此程序的逻辑地址范围是0x0000000到0x4000000。有时我们也把逻辑地址称为虚拟地址。因为与虚拟内存空间的概念类似,逻辑地址也是与实际物理内存容量无关的。 逻辑地址与物理地址的“差距”是0xC0000000,是由于虚拟地址->线性地址->物理地址映射正好差这个值。这个值是由操作系统指定的。
⑸ 在二级页表分页存储管理中怎样由十进制的逻辑地址计算相对应的物理地址
1)092b(H)转换成二进制就是0000 1001 0010 1011 前6位为页号p得先转换成10进制为2 ,对应的块号为5,用5*1024加上后10位(0100101011转换成10进制为1+2+8+32+256=299)为5419即为物理地址
2)2A12转换成二进制为0010 1010 0001 0010 页号为001010就是10 而页号中缺页了 溢出
3)2A5C十进制就是10844再除以1024等于 10余604 10为块号 而题目中没有 也是溢出
不知道算对没.
⑹ 如果知道了页表寄存器的地址和虚页号,如何知道PTE的地址
一 页面与页表
1 页面
分页存储管理是将作业的逻辑地址划分为一系列同等大小的部分,称为页。并为各页加以编号,每个作业的页的编号都是从0开始的。与之类似,把可用的物理内存也划分为同样大小的连续的部分,称为块或页框。同样为块也进行标号,从0#开始。在为进程分配内存空间时,以页为单位,每个内存中的块存放一页用户作业。只要内存中有足够多的块,这些块可以相邻也可以不相邻,就可以存放整个作业了。
页面的大小对于内存利用和系统开销来说非常重要,页面太大,在作业的最后一页必然会剩余较大不能利用的空间--内碎片。页面太小,虽然可以减小内碎片的大小,但是一个作业的页太多,会使得作业页表太长而占用内存,同时系统频繁地进行页面转化,加重系统开销。因此,页面的大小应该适中,通常为512B - 8KB,windows系统的页面大小为4KB。
2 地址结构
分页系统中的地址结构由两部分组成,页号和页内偏移量。可以解释为一个二元组(p,w),其中p是页号,w是页面p中的偏移量或者相对于p页开始的位置。下图(a) 中的地址长度为32位,其中0 - 9位为页内偏移量,每页的大小为2的10次方 = 1k;10 - 31位为页号,共计2的22次方 = 4M页。在图(b)中,地址长度同样为32位,其中0 - 11位页内偏移量,每页的大小为2的12次方 = 4k;12 - 31位为页号,共计2的20次方 = 1M页,由此可知不同的系统页的大小是不一样的。
2 采用大小不等的段,逻辑地址和物理地址之间不再是简单的对应关系。考虑一个 n+m 位的地址,左边的n位为段号,右边的m位为段内地址。当进程进入运行状态时,它的段表地址被装入到段表寄存器中。
⑺ 分页,虚拟地址是怎么转换成物理地址的
虚拟地址(即图中的逻辑地址)的高位表示页号,由计算机硬件将页号取出,且和页表寄存器中的页表始址一起送加法器,就可以得到该页对应的页表项的地址,根据此地址到内存读出对应的块号,最后将块号和页内地址拼接得到对应的物理地址。
⑻ 在分页系统中页面大小由谁决定页表的作用是什么如何将逻辑地址转换成物理地址
答:
在分页系统中页面大小由硬件决定。页表的作用是实现从页号到物理块号的地址映射。逻辑地址转换成物理地址的过程是:用页号p去检索页表,从页表中得到该页的物理块号,把它装人物理地址寄存器中。同时,将页内地址d直接送人物理地址寄存器的块内地址字段中。这样,物理地址寄存器中的内容就是由二者拼接成的实际访问内存的地址,从而完成了从逻辑地址到物理地址的转换。
⑼ 求物理地址,拜托详细一点的解答过程,谢谢!
页式存储管理的逻辑地址分为两部分:页号和页内地址。由已知条件“用户编程空间共32个页面”,可知页号部分占5位,由“每页为2KB”,可知页内地址占11位。由“内存为16KB”,可知有8块,块号为3位。逻辑地址1A5C(H)所对应的二进制表示形式是:0001 1(010 0101 1100) ,根据上面的分析,()内的为页内地址,编码“0001 1”为页号,表示该逻辑地址对应的页号为3。查页表,得到物理块号是7(十进制),即物理块地址为:01 11 ,拼接页内地址10 0101 1100,得01 1110 0101 1100,即1E5C(H)
⑽ 操作系统的物理地址怎么计算
其实第一条回答是正确的,我在这里为网友们追加一个解释:
按照书上定义,在页式存储系统中,
绝对地址 = 块号 x块长 +业内偏移地址。
相对地址 由一段内存的高bit位作为页号,低bit位作为页内偏移地址
那重要的一点是,如果找出这三个变量。且看该题:
每页1KB,说明了,业内偏移地址的范围是0~1023byte 换句话说,页内偏移地址占16bit中的 0-9bit, 那按照相对地址的概念,那10-15 bit就该为页号地址了。
那么, 0x0A5C <=> 0000 1010 0101 1100
则前面 0000 10 这6个bit 表示页号,换算成十进制为 2,也即是页号为2,再按照页表推算,即物理块号就为4, 而4再换算成16进制,即是0001 00;而后面 10 0101 1100 这10个bit位,理所当然的为页内偏移地址了。 则物理地址就该为0001 00 (占据10-15bit)+ 10 0101 1100 (占据0-9bit) = 0001 0010 0101 1100
他的所谓凭接,其实就是让0001 00 占用bit 10-15.