导航:首页 > 物理学科 > 段页式怎么算物理地址

段页式怎么算物理地址

发布时间:2023-07-09 15:14:09

‘壹’ 页储存管理中,已知一个逻辑地址长度为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。因页号超过页表长度,该逻辑地址非法。

‘贰’ 操作系统中怎样把逻辑地址转换成物理地址

(1F7B)16=(8059)10=4096*1+3963,即逻辑地址1页中第3963位置
因此应该在物理块10中的第3963位置,因此物理地址为:
10*4096+3963=(44923)10=AF7B

‘叁’ 求教段页式地址映射过程

假设段页式系统有关数据结构如下,
(1)求虚地址69732的物段亩理地址(用十进制表示)
(2)该逻辑地址空间多大?
(3)每段的最大尺寸为多少?

数据结构(由于画出图形不方便,故用文字表示):
逻辑地址结构(s,p,w) 其中s为8位,没燃枝p为4位,w为12位

段表:枯敏0——页表0
1——页表1
2——页表2

页表0:0——0
1——2
2——3

页表1:0——5
1——8
2——9

页表2:0——7
1——4
2——A

‘肆’ 物理地址有什么用

有网友反馈说:我在阅读一些电脑知识的读本时,常常看到“物理地址”这个名词,说实话,我只知道IP地址,从未听说过物理地址。这个物理地址也象IP地址一样重要吗?相信很多用户与这位网友是一样不知道物理地址有什么用的,针对这个情况,我特意分享了物理地址的一些知识,希望可以帮助到大家。

物理地址

在存储器里以字节为单位存储信息,为正确地存放或取得信息,每一个字节单元给以一个唯一的存储器地址,称为物理地址(Physical Address),又叫实际地址或绝对地址。

在x86 CPU中,采用了段页式内存管理机制,分段和分页模型。

分页(Paging)机制

逻辑地址由页号和偏移量组成。

分段(Segment)机制

分段允许程序员把存储器看成由多个地址空间或段组成。程序和相关的数据被划分成一组段(segment),不要求所有程序的所有段都有相同长度。

和分页一样,分段情况下的逻辑地址由两部分组成:段号和偏移量。

分段的优点:

简化不断增长的数据结构处理。

允许程序独立地改变或重新编译,而不要求整个程序集合重新链接和重新加载。

有助于进程间的共享。

有助于保护。由于一个段可以被构造成包含一个明确定义的程序或数据集,程序员或系统管理员可以以一种方便的形式指定访问权限。

虚拟内存

内存的基本思想是程序、数据、堆栈的总大小可以超过可用物理内存的大小, 操作系统 把程序当前使用的那些部分保留在内存中,而其他部分保存在磁盘上。

虚拟内存的实现基于分页技术。

虚拟内存的优点:

在内存中可以同时运行多个进程

进程可以比内存全部空间还大,不再局限于物理内存大小

内存更高效地被使用

2 逻辑地址到线性地址的映射过程

X86 CPU逻辑地址到线性地址映射过程如下图:

逻辑地址到线性地址映射过程如下:

(1)根据指令的性质来确定应该使用哪一个段寄存器(Segment Selector),例如转移指令中的地址在代码段,而取数据指令中的地址在数据段;

(2)根据段存器的内容,找到相应的“地址段描述结构“(Segment Descriptor),段描述结构都放在一个表(Descriptor Table)中(GDT或LDT、TR、IDT),而表的起始地址保存在GDTR、LDTR、IDTR、TR寄存器中。这就是4个内存管理寄存器GDTR、LDTR、IDTR和TR的用途;

(3)从地址段描述结构中找到基地址(Base Address);

(4)将指令发出的地址作为位移(Effective Address),与段描述结构中规定的段长度相比,看看是否越界;

(5)根据指令的性质和段描述符中的访问权限来确定是否越权;

(6)将指令中发出的地址作为位移,与基地址相加而得出线性地址(Linear Address)。

问题: 1、逻辑地址就是CPU指令发出的地址,那么段选择码(Segment Selector)的值在哪里? 2、知道段选择码后,需要从描述符表(Descriptor Table)中找到相应的表项,那怎么知道描述符表在内存中哪个位置?

3 线性地址到物理地址的映射过程

X86 CPU线性地址到物理地址映射过程:

线性地址到物理地址映射过程如下:

(1)从CR3寄存器中获取页面目录表(Page Directory)的基地址;

(2)以线性地址的Directory位段为下标,在目录(Page Directory)中取得相应页面表(Page Table)的基地址;

(3)以线性地址中的Table位段为下标,在所得到的页面表中获得相应的页面描述项;

(4)将页面描述项中给出的页面基地址与线性地址中的offset位段相加得到物理地址。

阅读全文

与段页式怎么算物理地址相关的资料

热点内容
word中化学式的数字怎么打出来 浏览:727
乙酸乙酯化学式怎么算 浏览:1392
沈阳初中的数学是什么版本的 浏览:1338
华为手机家人共享如何查看地理位置 浏览:1030
一氧化碳还原氧化铝化学方程式怎么配平 浏览:872
数学c什么意思是什么意思是什么 浏览:1394
中考初中地理如何补 浏览:1283
360浏览器历史在哪里下载迅雷下载 浏览:688
数学奥数卡怎么办 浏览:1373
如何回答地理是什么 浏览:1008
win7如何删除电脑文件浏览历史 浏览:1041
大学物理实验干什么用的到 浏览:1471
二年级上册数学框框怎么填 浏览:1685
西安瑞禧生物科技有限公司怎么样 浏览:916
武大的分析化学怎么样 浏览:1235
ige电化学发光偏高怎么办 浏览:1324
学而思初中英语和语文怎么样 浏览:1633
下列哪个水飞蓟素化学结构 浏览:1413
化学理学哪些专业好 浏览:1475
数学中的棱的意思是什么 浏览:1041