导航:首页 > 物理学科 > 如何转换为物理地址

如何转换为物理地址

发布时间:2023-01-22 08:03:05

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

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

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

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

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

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

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

p=int[A/L]d=AmodL

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

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

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是个寄存器,速度也很快)

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

C. 虚拟地址到物理地址的转换

对于一个虚拟地址,我们如何能够实现到物理地址的转换呢?

我们知道,虚拟地址 = 高10位在页目录表中的偏移量(页目录项pde)+中间10位在页表中的偏移量(页表项pte)+物理页的偏移,因此,如果我们能够获取到虚拟地址所对应的pte的物理地址,那么根据该物理地址和虚拟地址中物理页的偏移量进行结合,就能够得到虚拟地址所对应的真实物理地址。

因为我们起初设计的时候,在页目录项的第1023项中存放的是页目录表的物理地址,我们可以根据此特定来构造出虚拟地址所对应的pte的物理地址。

uint32_t* pte = (uint32_t*)(0xffc00000 + ((vaddr & 0xffc00000) >> 10) + ((vddr & 0x003ff000) >> 12) * 4);
其中的第一部分0xffc00000是通过虚拟地址的高10位进行回环,回到自身页目录表的地址,第二项vaddr & 0xffc00000) >> 10是再用页目录项pde(页目录内页表的索引)做为pte的索引访问到页表,((vddr & 0x003ff000) >> 12)再用pte的索引做为页内偏移。

这样我们就得到的虚拟地址对应的页表项的物理地址,最后我们根据 ((*pte & 0xfffff000) + (vaddr & 0x00000fff)),来找到物理页中所对应的那、个内存地址
.

D. 逻辑地址怎么转化为物理地址

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

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

线性地址:

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

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

E. 现代CPU如何自动把虚拟地址转换成物理地址的硬件电路

虚拟内存是一个由存放在磁盘上的N个连续的字节大小的单元组成的数组。
每个字节都有一个唯一的地址,就是虚拟地址。通常,虚拟地址由页号和偏移量组成,页号就是抽象的虚拟页的编号,偏移量用于计算实际的物理地址。
虚拟地址和物理地址的关系。进程虽然使用虚拟地址,但是用数据时还是要到实际的物理地址去取数据。这就存在一个虚拟地址到物理地址的转化运算,这是由CPU芯片上一个叫做内存管理单元(MMU)的专用硬件来实现的。
通常,物理地址=页号*页大小+页内偏移量。虚拟寻址CPU通过虚拟地址来访问主存,访问内存使用的物理地址,MMU通过将虚拟地址进行翻译,转化为物理地址,然后再用这个物理地址去访问内存数据。

F. IP地址如何转化成物理地址

arp是一种将ip转化成以ip对应的网卡的物理地址的一种协议,或者说ARP协议是一种将ip地址转化成MAC地址的一种协议。它靠维持在内存中保存的一张表来使ip得以在网络上被目标机器应答。

为什么要将ip转化成mac呢?简单的说,这是因为在tcp网络环境下,一个ip包走到哪里,要怎么走是靠路由表定义。但是,当ip包到达该网络后,哪台机器响应这个ip包却是靠该ip包中所包含的mac地址来识别。也就是说,只有机器的mac地址和该ip包中的mac地址相同的机器才会应答这个ip 包。因为在网络中,每一台主机都会有发送ip包的时候。所以,在每台主机的内存中,都有一个 arp--> mac 的转换表。通常是动态的转换表(注意在路由中,该arp表可以被设置成静态)。也就是说,该对应表会被主机在需要的时候刷新。这是由于以太网在子网层上的传输是靠48位的mac地址而决定的。

G. 逻辑地址转换物理地址公式

物理地址是明确的、最终用在总线上的编号。那么逻辑地址转物理地址怎么转?我为大家介绍逻辑地址转物理地址的解决 方法 。希望大家喜欢。

逻辑地址转换物理地址公式参考如下

1. 物理地址和逻辑地址

物理地址:加载到内存地址寄存器中的地址,内存单元的真正地址。在前端总线上传输的内存地址都是物理内存地址,编号从0开始一直到可用物理内存的最高端。这些数字被北桥(Nortbridge chip)映射到实际的内存条上。物理地址是明确的、最终用在总线上的编号,不必转换,不必分页,也没有特权级检查(no translation, no paging, no privilege checks)。

逻辑地址:CPU所生成的地址。逻辑地址是内部和编程使用的、并不唯一。例如,你在进行C语言指针编程中,可以读取指针变量本身值(&操作),实际上这个值就是逻辑地址,它是相对于你当前进程数据段的地址(偏移地址),不和绝对物理地址相干。

(具体步骤 共三步)

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

例如:假设页面大小1KB,共32页。(页面:逻辑地址 页框:物理地址)

由32(KB)=32×1024(B) 即等于32×1024 字节

二进制用多少位能有效表示这么多字节呢——答是:15位 因为32×1024=2^5×2^10=2^15

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

还是以上假设,那么页面大小为1KB=1024字节 同样的方法计算出表示位数:10位

如果给你逻辑地址:0000 1111 1000 0000

那么由:011+11100000000(相当于 页号+页面(10位))推得出页号011=3

3.根据页号找出对应的页框号

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

根据上面 物理地址=页框号×1024B + 1110000000 ( 这里的相加是指位置上而言)

例如:110+110=110110(即高地址+低地址)

提问:在一分页存储管理系统中,逻辑地址长度为16位,页面大小为4096B,现有一逻辑地址为2F6AH,且第0、1、2页依次存放在物理块5、10、11中,问相应的物理地址为多少?

答:4096B=2^12B

16位寻址一共2^16B

分页存储。共分的页:2^16/2^12=2^4=16 共分16页。

第0页的地址范围 0 - FFFH

第1页的地址范围 1000H - 1FFFH

第2页得地址范围 2000H - 2FFFH

.....

第11页 B000H - BFFFH

第15页 F000H - FFFFH

2F6AH=10 1111 0110 1010 在2页的范围对应物理块11

所以物理地址为:

2F6AH - 2000H + B000H = F6AH + B000H= BF6AH

H. 逻辑地址如何转换为物理地址

如果是16进制的话 将段地址移一位 加上偏移地址就是了如果是二进制的话 是将段地址移4位 加上偏移量

I. 已知逻辑地址求物理地址

J. 怎样把逻辑地址转化为物理地址

大多数局域网通过为网卡分配一个硬件地址来标识一个联网的计算机或其他设备.所谓物理地址是指固化在网卡EPROM中的地址,这个地址应该保证在全网是唯一的.IEEE注册委员会为每一个生产厂商分配物理地址的前三字节,即公司标识.后面三字节由厂商自行分配.即一个厂商获得一个前三字节的地址可以生产的网卡数量是16777216块.即一块网卡对应一个物理地址.也就是说对应物理地址的前三字节可以知道他的生产厂商.
如果固化在网卡中的地址为002514895423,那么这块网卡插到主机A中,主机A的地址就是002514895423,不管主机A是连接在局域网1上还是在局域网2上,也不管这台计算机移到什么位置,主机A的物理地址就是002514895423 .它是不变的,而且不会和世界上任何一台计算机相同.当主机A发送一帧时,网卡执行发送程序时,直接将这个地址作为源地址写入该帧.当主机A接收一帧时,直接将这个地址与接收帧目的地址比较,以决定是否接收.
物理地址一般记作00-25-14-89-54-2

阅读全文

与如何转换为物理地址相关的资料

热点内容
word中化学式的数字怎么打出来 浏览:736
乙酸乙酯化学式怎么算 浏览:1401
沈阳初中的数学是什么版本的 浏览:1347
华为手机家人共享如何查看地理位置 浏览:1039
一氧化碳还原氧化铝化学方程式怎么配平 浏览:881
数学c什么意思是什么意思是什么 浏览:1405
中考初中地理如何补 浏览:1296
360浏览器历史在哪里下载迅雷下载 浏览:698
数学奥数卡怎么办 浏览:1384
如何回答地理是什么 浏览:1020
win7如何删除电脑文件浏览历史 浏览:1052
大学物理实验干什么用的到 浏览:1481
二年级上册数学框框怎么填 浏览:1696
西安瑞禧生物科技有限公司怎么样 浏览:962
武大的分析化学怎么样 浏览:1244
ige电化学发光偏高怎么办 浏览:1334
学而思初中英语和语文怎么样 浏览:1647
下列哪个水飞蓟素化学结构 浏览:1420
化学理学哪些专业好 浏览:1483
数学中的棱的意思是什么 浏览:1054