导航:首页 > 物理学科 > 物理地址与虚拟地址有什么区别

物理地址与虚拟地址有什么区别

发布时间:2022-06-12 14:13:53

Ⅰ 操作系统课程设计物理地址和虚拟地址的联系及区别

CPU通过地址来访问内存中的单元,地址有虚拟地址和物理地址之分,如果CPU没有MMU(Memory Management Unit,内存管理单元),或者有MMU但没有启用,CPU核在取指令或访问内存时发出的地址将直接传到CPU芯片的外部地址引脚上,直接被内存芯片(以下称为物理内存,以便与虚拟内存区分)接收,这称为物理地址(Physical Address,以下简称PA),如下图所示。

MMU将虚拟地址映射到物理地址是以页(Page)为单位的,对于32位CPU通常一页为4K。例如,虚拟地址0xb700 1000~0xb700 1fff是一个页,可能被MMU映射到物理地址0x2000~0x2fff,物理内存中的一个物理页面也称为一个页框(Page Frame)。

物理地址(physical address)
用于内存芯片级的单元寻址,与处理器和CPU连接的地址总线相对应。
——这个概念应该是这几个概念中最好理解的一个,但是值得一提的是,虽然可以直接把物理地址理解成插在机器上那根内存本身,把内存看成一个从0字节一直到最大空量逐字节的编号的大数组,然后把这个数组叫做物理地址,但是事实上,这只是一个硬件提供给软件的抽像,内存的寻址方式并不是这样。所以,说它是“与地址总线相对应”,是更贴切一些,不过抛开对物理内存寻址方式的考虑,直接把物理地址与物理的内存一一对应,也是可以接受的。也许错误的理解更利于形而上的抽像。

虚拟内存(virtual memory)
这是对整个内存(不要与机器上插那条对上号)的抽像描述。它是相对于物理内存来讲的,可以直接理解成“不直实的”,“假的”内存,例如,一个0x08000000内存地址,它并不对就物理地址上那个大数组中0x08000000 - 1那个地址元素;
之所以是这样,是因为现代操作系统都提供了一种内存管理的抽像,即虚拟内存(virtual memory)。进程使用虚拟内存中的地址,由操作系统协助相关硬件,把它“转换”成真正的物理地址。这个“转换”,是所有问题讨论的关键。
有了这样的抽像,一个程序,就可以使用比真实物理地址大得多的地址空间。(拆东墙,补西墙,银行也是这样子做的),甚至多个进程可以使用相同的地址。不奇怪,因为转换后的物理地址并非相同的。
——可以把连接后的程序反编译看一下,发现连接器已经为程序分配了一个地址,例如,要调用某个函数A,代码不是call A,而是call 0x0811111111 ,也就是说,函数A的地址已经被定下来了。没有这样的“转换”,没有虚拟地址的概念,这样做是根本行不通的。
打住了,这个问题再说下去,就收不住了。

逻辑地址(logical address)
Intel为了兼容,将远古时代的段式内存管理方式保留了下来。逻辑地址指的是机器语言指令中,用来指定一个操作数或者是一条指令的地址。以上例,我们说的连接器为A分配的0x08111111这个地址就是逻辑地址。
——不过不好意思,这样说,好像又违背了Intel中段式管理中,对逻辑地址要求,“一个逻辑地址,是由一个段标识符加上一个指定段内相对地址的偏移量,表示为 [段标识符:段内偏移量],也就是说,上例中那个0x08111111,应该表示为[A的代码段标识符: 0x08111111],这样,才完整一些”

线性地址(linear address)或也叫虚拟地址(virtual address)
跟逻辑地址类似,它也是一个不真实的地址,如果逻辑地址是对应的硬件平台段式管理转换前地址的话,那么线性地址则对应了硬件页式内存的转换前地址。

Ⅱ 逻辑地址和物理地址的区别是什么

物理地址是内存的实际地址,如RAM,虚拟地址只是缓存和RAM之间的逻辑地址映射。在操作系统中,每当我们谈论代码或其部分的地址或地址空间时,我们指的是该部分代码所在的内存位置。让我们通过一个现实生活中的异常来了解操作系统中的寻址。

逻辑地址和物理地址的特点

当我们谈论逻辑地址时,我们指的是CPU分配给每个进程的地址,正如我们已经讨论过的,一个进程在内存中所处的实际地址与进程认为它所处的地址是不一样的,这种地址映射基本上是在进程共享内存时所必需的,而不需要让进程知道它们彼此共享相同的内存空间。

物理地址是进程及其内容放置在主内存或硬盘中的地址,每当我们运行一个进程或将一些数据存储在计算机的主存储设备或辅助存储设备中时,我们总是将其存储起来以备将来随时访问。比如我在电脑的D盘存了一个word文件,我想访问它,以后怎么访问,当然是去D盘打开word文件。

但是如果我将一个进程保存在主存中的某个存储单元或内存单元中,并希望将来访问它,该怎么办,就我们在本教程中研究过的地址而言,我们知道每当一个进程被创建时,CPU 都会生成它的虚拟地址,但又是一团糟。虚拟地址与进程实际放置在内存中的地址不同。

然而,内存单元存储在由物理地址(用户未知)访问的主内存中,我们所知道的只是进程的逻辑地址,那么当我们需要访问进程的时候我们将如何访问物理地址呢,到目前为止,这似乎是不可能的,但这当然不是因为我们从计算机诞生到现在一直在访问创建的进程。

因此,我们需要详细讨论这个问题,在进程创建时,CPU 不仅会生成虚拟地址,还会使用一些硬件支持将(先前生成的)虚拟地址映射到实际存储它的物理地址,这在下面的地址映射部分进行了讨论。

因此,当我们尝试访问内存中已经保存的进程时,CPU 将虚拟地址返回给硬件,硬件将虚拟/逻辑地址映射到物理地址上,并间接访问进程的内存空间。

Ⅲ 什么是物理ip和虚拟ip。电脑不联网有ip没

物理ip:即物理地址(MAC)。网卡物理地址存储器中存储单元对应实际地址称物理地址,与逻辑地址相对应。MAC(Media Access Control,介质访问控制)地址是识别LAN(局域网)节点的标识。网卡的物理地址通常是由网卡生产厂家烧入网卡的EPROM(一种闪存芯片,通常可以通过程序擦写),它存储的是传输数据时真正赖以标识发出数据的电脑和接收数据的主机的地址。
虚拟IP:指虚拟IP地址(VIP) 。虚拟IP地址是一个不与特定计算机或一个计算机中的网络接口卡(NIC)相连的IP地址。数据包被发送到这个VIP地址,但是所有的数据还是经过真实的网络接口。VIPs大部分用于连接冗余;一个VIP地址也可能在一台计算机或NIC发生故障时可用,交由另一个可选计算机或NIC响应连接。虚拟IP地址的例子如:一个Loopback(无电路IP地址)作为不与在主机或路由器中任何一个特定接口(或电路)相关的IP地址。虚拟IP可以理解为电脑上的网络适匹器为了某种需要而另外设置的IP。
电脑中只要安装有网络适匹器,就可以为其指定IP,不管有没有连接到网络。Windows系统都有一个虚拟IP,即使电脑中没有安装网络适匹器,该IP都存在。

Ⅳ 物理地址和虚拟地址关系

这个不是多此一举,纯粹是为了编程和阅读方便罢了。物理地址相对是不变的,但是因为存储、删除、再存储的需要,我们非要找合适的物理地址非常麻烦,也会影响寻址速度。所以,引入虚拟地址,就可以通过程序自动寻找,随时变换,方便使用。

Ⅳ 物理IP地址和虚拟IP地址啥区别啥关系谢谢

不是一样的,虚拟机的联网方式采用的是桥连方式,所以虚拟机的IP和物理地址不一样,物理地址也就是我们通常意义的上的MAC地址,和IP不是同一概念... ..

Ⅵ 地址空间的物理地址与虚拟地址

物理地址 (physical address): 放在寻址总线上的地址。放在寻址总线上,如果是读,电路根据这个地址每位的值就将相应地址的物理内存中的数据放到数据总线中传输。如果是写,电路根据这个地址每位的值就将相应地址的物理内存中放入数据总线上的内容。物理内存是以字节(8位)为单位编址的。
虚拟地址 (virtual address): CPU启动保护模式后,程序运行在虚拟地址空间中。注意,并不是所有的“程序”都是运行在虚拟地址中。CPU在启动的时候是运行在实模式的,内核在初始化页表之前并不使用虚拟地址,而是直接使用物理地址的。

Ⅶ 虚拟地址,逻辑地址,线性地址,物理地址有什么区别

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

Ⅷ 怎么判断一个地址是物理地址还是虚拟地址

物理地址是MAC地址,固化在网卡上的,是48位地址,
虚拟地址是IP地址,分IPV4和IPV6,IPV4是32位地址,IPV6是128位地址。IP化是以后网络的发展趋势,IPV6是解决网络IP化后IP地址不够用的一种方式。

Ⅸ 什么是ip地址什么是物理地址简要说明两者之间的区别与联系

联系:IP地址可以和MAC地址进行绑定以此来确定网络上的唯一的一台电脑。现在计算机都是通过先组建局域网,然后通过交换机和网络连接的。

这就需要IP地址可以和MAC地址两者的配合使用。每个用户先分配固定的IP地址,再使用MAC地址来标志用户,这可以更好的保护电脑上的相应信息。

区别:

一、定义不同

1、IP地址:IP地址(Internet Protocol Address)是指互联网协议地址,又译为网际协议地址。

2、物理地址:网卡物理地址存储器中存储单元对应实际地址称物理地址,与逻辑地址相对应。网卡的物理地址通常是由网卡生产厂家写入网卡的EPROM(一种闪存芯片,通常可以通过程序擦写),它存储的是传输数据时真正赖以标识发出数据的电脑和接收数据的主机的地址。

二、协议不同

1、IP地址:IP协议是为计算机网络相互连接进行通信而设计的协议。在因特网中,它是能使连接到网上的所有计算机网络实现相互通信的一套规则,规定了计算机在因特网上进行通信时应当遵守的规则。任何厂家生产的计算机系统,只要遵守IP协议就可以与因特网互连互通。

2、物理地址:局域网通过为网卡分配一个硬件地址来标识一个联网的计算机或其他设备.所谓物理地址是指固化在网卡EPROM中的地址,这个地址应该保证在全网是唯一的。IEEE注册委员会为每一个生产厂商分配物理地址的前三字节,即公司标识。

后面三字节由厂商自行分配,一个厂商获得一个前三字节的地址可以生产的网卡数量是16777216块。而一块网卡对应一个物理地址。

三、用途不同

1、IP地址:IP地址被用来给Internet上的电脑一个编号每台联网的PC上都需要有IP地址,才能正常通信。可以把“个人电脑”比作“一台电话”,那么“IP地址”就相当于“电话号码”,而Internet中的路由器,就相当于电信局的“程控式交换机”。

IP地址是一个32位的二进制数,通常被分割为4个“8位二进制数”(也就是4个字节)。IP地址通常用“点分十进制”表示成(a.b.c.d)的形式,其中,a,b,c,d都是0~255之间的十进制整数。

例:点分十进IP地址100.4.5.6,实际上是32位二进制01100100.00000100.00000101.00000110。

2、物理地址:在网络底层的物理传输过程中,是通过物理地址来识别主机的,它一般也是全球唯一的。比如,着名的以太网卡,其物理地址大小是48bit(比特位),前24位是厂商编号,后24位为网卡编号,如:44-45-53-54-00-00,以机器可读的方式存入主机接口中。

阅读全文

与物理地址与虚拟地址有什么区别相关的资料

热点内容
word中化学式的数字怎么打出来 浏览:746
乙酸乙酯化学式怎么算 浏览:1411
沈阳初中的数学是什么版本的 浏览:1363
华为手机家人共享如何查看地理位置 浏览:1054
一氧化碳还原氧化铝化学方程式怎么配平 浏览:894
数学c什么意思是什么意思是什么 浏览:1422
中考初中地理如何补 浏览:1312
360浏览器历史在哪里下载迅雷下载 浏览:712
数学奥数卡怎么办 浏览:1402
如何回答地理是什么 浏览:1035
win7如何删除电脑文件浏览历史 浏览:1063
大学物理实验干什么用的到 浏览:1494
二年级上册数学框框怎么填 浏览:1713
西安瑞禧生物科技有限公司怎么样 浏览:1004
武大的分析化学怎么样 浏览:1255
ige电化学发光偏高怎么办 浏览:1345
学而思初中英语和语文怎么样 浏览:1666
下列哪个水飞蓟素化学结构 浏览:1430
化学理学哪些专业好 浏览:1493
数学中的棱的意思是什么 浏览:1071