导航:首页 > 物理学科 > 怎么把逻辑地址转换成物理地址

怎么把逻辑地址转换成物理地址

发布时间:2023-07-29 00:39:09

Ⅰ 如何检查是否越界逻辑地址转为物理地址

1. 基本地址变换机构
定义:用于实现逻辑地址到物理地址转换的一组硬件机构

基本地址变换机构可以借助进程的页表将逻辑地址转换为物理地址。

通常会在系统中设置一个页表寄存器(PTR),存放页表在内存中的起始地址F和页表长度M(就相当于一个数组),进程未执行时,F和M放在进程控制块(PCB)中,当进程被调度时,操作系统内核会把他们放到页表寄存器(PTR)中。

过程描述:
进程被调度后,操作系统从PCB中取得页表始址F和页表长度M,放入到页表寄存器PTR中。当程序想访问一个逻辑地址A的时候,根据页表大小,就可以自动算出页号P和页内偏移量W。

首先检查页号P是否合法,如果不合法,就产生一个越界中断。如果合法,就去页表中查询对应的帧号b,再根据偏移量,计算出物理地址(直接把b和W按二进制拼起来就是物理地地址)
页表长度:页表内有多少表项。
页表项长度:每个页表项占多大的内存空间。
页面大小:一个页面占多大的存储空间,页面大小是2的整数次幂。这也确定了一个逻辑地址中,偏移量最多有多少位。
页表项:页表中的一个元素,PTR。
页表在内存中的存储,与数组类似,但不完全一样 ,可能出现跨页存储的情况。


打开APP



行仔ovo
关注
操作系统学习 - 逻辑地址转物理地址 原创
2021-06-28 15:13:35
3点赞

行仔ovo

码龄9年

关注
文章目录
1. 基本地址变换机构
2. 具有快表的地址变换机构
局部性原理
快表
引入快表后,地址变换过程
1. 基本地址变换机构
定义:用于实现逻辑地址到物理地址转换的一组硬件机构

基本地址变换机构可以借助进程的页表将逻辑地址转换为物理地址。

通常会在系统中设置一个页表寄存器(PTR),存放页表在内存中的起始地址F和页表长度M(就相当于一个数组),进程未执行时,F和M放在进程控制块(PCB)中,当进程被调度时,操作系统内核会把他们放到页表寄存器(PTR)中。

过程描述:
进程被调度后,操作系统从PCB中取得页表始址F和页表长度M,放入到页表寄存器PTR中。当程序想访问一个逻辑地址A的时候,根据页表大小,就可以自动算出页号P和页内偏移量W。

首先检查页号P是否合法,如果不合法,就产生一个越界中断。如果合法,就去页表中查询对应的帧号b,再根据偏移量,计算出物理地址(直接把b和W按二进制拼起来就是物理地址)。


页表长度:页表内有多少表项。
页表项长度:每个页表项占多大的内存空间。
页面大小:一个页面占多大的存储空间,页面大小是2的整数次幂。这也确定了一个逻辑地址中,偏移量最多有多少位。
页表项:页表中的一个元素,PTR。
页表在内存中的存储,与数组类似,但不完全一样 ,可能出现跨页存储的情况。

所以,最好用一个Byte把一个页表项补齐成4Byte。这样,一般情况下都不会产生碎片。
结论:理论上,页表项长度为3Byte即可表示页帧号的范围了,但是,为了方便页表的查询,尝尝会让一个页表项占更多的Byte,使得每个页面恰好可以装得下整数个页表项。

2. 具有快表的地址变换机构
局部性原理
时间局部性
执行了程序中的某条指令,那么不久后这条指令很可能再次执行。如果某个数据刚刚访问过,那么不久后,该数据很可能再次被访问。(因为程序中存在大量的循环)

空间局部性
程序访问了某个内存单元,在不久之后,该内存单元附近的存储单元也很有可能被访问。(因为很多数据在内存中都是连续存放的)

快表
在基本地址变换机构中,每次想访问一个物理地址,都需要到内存中去先查一下页表,再去访问物理地址。由于局部性的原理,这个页表项可能很快就被再次访问到,既然如此,能否利用局部性的原理减少页表查询的次数呢?

快表TLB,是一种访问速度比内存快很多的高速缓冲存储器,用来存放当前访问的若干页表项,以加速地址变换的过程。与此对应,内存中的页表常被称为慢表。
引入快表后,地址变换过程
每次访问逻辑地址时,先到快表中看一下有没有对应的帧号,如果有的话,就直接用,如果没有,再去慢表中查询。查询到(命中)以后,回头更新一下快表。再去访问物理地址。因为快表的访问速度比慢表的速度要快得多。所以这样一来,效率得以提高。
(页表寄存器PTR是个寄存器,速度也很快)

如果快表命中的话,则访问某个逻辑地址仅需一次访存即可(原来需要两次,第一次是访问页表,页表在内存中;第二次是访问目标物理地址去读数据。)。
如果快表未命中的话,仍然按照原来的方式,需要两次访存。
若快表已满,则需要按照一定的算法对旧的页表项进行替换。
要注意的是,有的系统支持快表和慢表同时查找。

Ⅱ 8086如何将逻辑地址转换为物理地址写出存储器地址1200H:3400H的段地址、偏移地址和物理地址。

实模式下,每个存储单元分配一个惟一的20位二进制数(5位十六进制数)的存储器地址,称为物理地址。逻辑地址由16位二进制数(4位十六进制数)的段地址和偏移地址组成。
段首地址:5位十六进制数中的末尾1位十六进制数为0的地址,即可作为段首地址
段地址是指每一段的段首地址的高4位十六进制数,通常被保存在某个段寄存器中。
偏移地址则是指在段内相对于段首地址的偏移值,也取4位十六进制数。
所以,物理地址=段地址*10H+偏移地址

Ⅲ 逻辑地址怎么转化为物理地址

物理地址:加载到内存地址寄存器中的地址,内存单元的真正地址。在前端总线上传输的内存地址都是物理内存地址,编号从0开始一直到可用物理内存的最高端。

程序的逻辑地址空间变换成内存中的实际物理地址空间的过程,也就是说在装入时对目标程序中指令和数据的修改过程。他是实现多道程序在内存中同时运行的基础。重定位有两种,分别是动态重定位与静态重定位。

线性地址:

一个逻辑地址由两部份组成,段标识符和段内偏移量。段标识符是由一个16位长的字段组成,称为段选择符。其中前13位是一个索引号。这就是“段描述符(segment descriptor)”,段描述符具体地址描述了一个段(对于“段”这个字眼的理解:我们可以理解为把虚拟内存分为一个一个的段。

比如一个存储器有1024个字节,可以把它分成4段,每段有256个字节)。这样,很多个段描述符,就组了一个数组,叫“段描述符表”。

Ⅳ 逻辑地址转换成物理地址的计算题

页表可以实现从页号到物理块号的地址映射。通过逻辑地址的页号来寻找页表,从而获得物理块号;在将页内地址直接送入物理地址寄存器的块内地址字段中。将块号和块内地址拼接成实际访问地址,即可得到物理地址。

物理地址的计算公式为:物理地址=块的大小(即页的大小L)* 块号f+页内地址d

代入本题解答:

页号=int(2500/1024)=2;页内位移=2500mod1024=452;假设页号2对应块号1,则物理地址为:

物理地址=1024*1+452=1476

(4)怎么把逻辑地址转换成物理地址扩展阅读:

逻辑地址(LogicalAddress)即通过电脑程序产生的与段相关的偏移地址部分,也叫做相对地址;

物理地址,即计算机中每一个字节单元的唯一存储地址,也叫做实际地址或绝对地址。

利用所给的逻辑地址首先找到在页表中的那一页,即页号,再者利用所给的逻辑地址计算出在页表的页偏移量,从而利用页表所对应的物理块计算出块号,再利用块号的基础上计算出所给的偏移量。(一般只针对于动态重定位的变化使用)

Ⅳ 逻辑地址如何转换成物理地址的

首先我们知道,逻辑地址=段地址:偏移地址

然后进行运算:段地址×16+偏移地址=物理地址(可以理解为段地址末尾补一个零)

举例:逻辑地址是1000H:1000H

那么物理地址为1000H×16+1000H=11000H

拓展知识:

逻辑地址和物理地址的区别是:

逻辑地址(LogicalAddress)是指由程序产生的与段相关的偏移地址部分。例如,你在进行C语言指针编程中,可以读取指针变量本身值(&操作),实际上这个值就是逻辑地址,它是相对于你当前进程数据段的地址,不和绝对物理地址相干。只有在Intel实模式下,逻辑地址才和物理地址相等(因为实模式没有分段或分页机制,Cpu不进行自动地址转换);逻辑也就是在Intel保护模式下程序执行代码段限长内的偏移地址(假定代码段、数据段如果完全一样)。应用程序员仅需与逻辑地址打交道,而分段和分页机制对您来说是完全透明的,仅由系统编程人员涉及。应用程序员虽然自己可以直接操作内存,那也只能在操作系统给你分配的内存段操作。

物理地址(PhysicalAddress)是指出现在CPU外部地址总线上的寻址物理内存的地址信号,是地址变换的最终结果地址。如果启用了分页机制,那么线性地址会使用页目录和页表中的项变换成物理地址。如果没有启用分页机制,那么线性地址就直接成为物理地址了。

Ⅵ 如果程序中的逻辑地址为3470,怎么转换成物理 地址

页表的作用是实现从页号到物理块号的地址映射。以逻辑地址的页号检索页表,得到该页的物理块号;同时将页内地址d直接送入物理地址寄存器的块内地址字段中。这样物理块号和块内地址拼接成了实际访问内存的地址,从而完成了从逻辑地址到物理地址的转换。所以物理地址的计算公式为:物理地址=块的大小(即页的大小L)′块号f+页内地址d解本题中,为了描述方便,设页号为p,页内位移为d,则:p=int(2500/1024)=2d=2500mod1024=452假设页号2对应块号1那么物理地址=1024*1+452=1476

Ⅶ 操作系统中逻辑地址转物理地址是什么

1、确定虚拟地址(物理地址)的有效位。

2、再次确定逻辑地址页面位数你应该知道:逻辑地址=页号+页面。

3、由物理地址=页框号×页块大小(页块大小是等于页面大小的)+页内位移(即页面逻辑地址)

4、根据上面物理地址=页框号×1024B+1110000000。

5、若在一分页存储管理系统中,某作业的页表如下所示。已知页面大小为1024字节,试将逻辑地址1011,2148,4000,5012转化为相应的物理地址。

分析页式存储管理的地址结构是一维的,即逻辑地址(或物理地址)只用一个数值即可表示。若给定逻辑地址A,页面的大小为L,则页号p和页内地址d可按照下式求得:

p=int[A/L]d=AmodL

其中,int是取整函数(取数值的整数部分),mod是取余函数(取数值的余数部分)。

阅读全文

与怎么把逻辑地址转换成物理地址相关的资料

热点内容
word中化学式的数字怎么打出来 浏览:700
乙酸乙酯化学式怎么算 浏览:1369
沈阳初中的数学是什么版本的 浏览:1315
华为手机家人共享如何查看地理位置 浏览:1007
一氧化碳还原氧化铝化学方程式怎么配平 浏览:845
数学c什么意思是什么意思是什么 浏览:1366
中考初中地理如何补 浏览:1256
360浏览器历史在哪里下载迅雷下载 浏览:667
数学奥数卡怎么办 浏览:1346
如何回答地理是什么 浏览:987
win7如何删除电脑文件浏览历史 浏览:1019
大学物理实验干什么用的到 浏览:1445
二年级上册数学框框怎么填 浏览:1657
西安瑞禧生物科技有限公司怎么样 浏览:818
武大的分析化学怎么样 浏览:1209
ige电化学发光偏高怎么办 浏览:1298
学而思初中英语和语文怎么样 浏览:1603
下列哪个水飞蓟素化学结构 浏览:1384
化学理学哪些专业好 浏览:1449
数学中的棱的意思是什么 浏览:1015