为您找到与物理地址和逻辑地址是指什么相关的共160个结果:
逻辑地址和物理地址是什么?逻辑地址如何转换成物理地址?看到很多人都在问这个问题,小编为大家分享了逻辑地址如何转换成物理地址的方法,下面大家跟着读文网小编一起来了解一下吧。
在对硬盘进行故障维护或者进行相关软件开发时,不仅需要将硬盘的物理地址转换成逻辑地址,有时还需要知道逻辑地址转换为物理地址的方法。
根据计算机中符号的常用法则,我们用“div”表示除法运算,用“mod”表示取余数运算,其他参数如C、H、S依然表示硬盘当前的柱面、磁头和扇区号,C1、H1、S1、NS和NH含义也和上面一致。在已知硬盘逻辑地址即逻辑扇区号LS的情况下,求硬盘对应的物理地址的柱面号C、磁头号H和扇区号S的方法如下:
C=((Ls div NS)div NH)+ C1
H=((Ls div NS)mod NH)+ H1
S=(Ls mod NH)+ S1
实例:设硬盘的磁头号为4,每磁道17个扇区,其中逻辑硬盘D的第一个扇区在硬盘的柱面120、磁头1、扇区1上,求逻辑D盘上逻辑扇区为2757编号对应的物理地址是多少?
分析:根据上面的已知条件,我们可知C1=120, H1=1,S1=1,NS=17,NH=4,Ls=2757,则将这些数据代入上面的公式可得:
C=((2757 div 17)div 4)+120=160
H=((2757 div 17)mod 4)+1=3
S=(2757 mod 17)+1=4
即逻辑扇区号Ls为2757的硬盘对应的物理地址为柱面号是160、磁头号是3和扇区号为4。
看过“ 逻辑地址如何转换成物理地址”
浏览量:3
下载量:0
时间:
有网友问到小编:什么是逻辑地址和物理地址?怎么转换?针对此问题,读文网小编为大家分享了具体的操作方法,希望对你有帮助!
存储器中每一个单元的地址可以用两种方法表示:
1.逻辑地址:其表达形式为“段地址:段内偏移地址”。
2.物理地址:CPU与存储器进行数据交换时在地址总线上
提供的20位地址信息称为物理地址。
物理地址=段地址×10H+段内偏移量
CPU一次处理的数据是16位,地址总线实际上代表CPU的寻址能力,地址线为20条那么CPU实际的寻址能力就是2的20次方就是1M。实际的物理地址是这样形成的:
段地址*10H+偏移地址,偏移地址用IP指向,IP是16位的。
例如段地址是1234H,偏移地址是4321H
那么实际的物理地址怎么算呢:1234H*10H+4321H=12340H+4321H=16661H
实际上可以这么来理解,就是段地址左移一位后加上偏移地址就得出实际的物理地址。
这里逻辑地址和物理地址的关系又可以用一个比喻来说明:
比如你的学号是0102,这是你的真实地址亦即物理地址,那么又假如01表示你的班级名称,02表示你相对整个班级的位置,这就是逻辑地址,道理是一样的,只不过在实际由逻辑地址合成物理地址的时候需要将物理地址左移一位,再加上偏移地址。
浏览量:3
下载量:0
时间:
物理地址是明确的、最终用在总线上的编号。那么逻辑地址转物理地址怎么转?读文网小编为大家介绍逻辑地址转物理地址的解决方法。希望大家喜欢。
物理地址:加载到内存地址寄存器中的地址,内存单元的真正地址。在前端总线上传输的内存地址都是物理内存地址,编号从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
看过“ 逻辑地址转换物理地址公式 ”
浏览量:2
下载量:0
时间:
在计算机科学中,逻辑地址是什么?线性地址是什么?物理地址优势什么?逻辑地址线性地址物理地址三个地址有什么联系?读文网小编整理了逻辑地址,线性地址以及物理地址的相关资料,下面大家跟着读文网小编一起去了解一下吧。
前面说了Linux中逻辑地址等于线性地址,那么线性地址怎么对应到物理地址呢?这个大家都知道,那就是通过分页机制,具体的说,就是通过页表查找来对应物理地址。
准确的说分页是CPU提供的一种机制,Linux只是根据这种机制的规则,利用它实现了内存管理。
在保护模式下,控制寄存器CR0的最高位PG位控制着分页管理机制是否生效,如果PG=1,分页机制生效,需通过页表查找才能把线性地址转换物理地址。如果PG=0,则分页机制无效,线性地址就直接做为物理地址。
分页的基本原理是把内存划分成大小固定的若干单元,每个单元称为一页(page),每页包含4k字节的地址空间(为简化分析,我们不考虑扩展分页的情况)。这样每一页的起始地址都是4k字节对齐的。为了能转换成物理地址,我们需要给CPU提供当前任务的线性地址转物理地址的查找表,即页表(page table)。注意,为了实现每个任务的平坦的虚拟内存,每个任务都有自己的页目录表和页表。
为了节约页表占用的内存空间,x86将线性地址通过页目录表和页表两级查找转换成物理地址。
32位的线性地址被分成3个部分:
最高10位 Directory 页目录表偏移量,中间10位 Table是页表偏移量,最低12位Offset是物理页内的字节偏移量。
页目录表的大小为4k(刚好是一个页的大小),包含1024项,每个项4字节(32位),项目里存储的内容就是页表的物理地址。如果页目录表中的页表尚未分配,则物理地址填0。
页表的大小也是4k,同样包含1024项,每个项4字节,内容为最终物理页的物理内存起始地址。
每个活动的任务,必须要先分配给它一个页目录表,并把页目录表的物理地址存入cr3寄存器。页表可以提前分配好,也可以在用到的时候再分配。
还是以 mov 0x80495b0, %eax 中的地址为例分析一下线性地址转物理地址的过程。
前面说到Linux中逻辑地址等于线性地址,那么我们要转换的线性地址就是0x80495b0。转换的过程是由CPU自动完成的,Linux所要做的就是准备好转换所需的页目录表和页表(假设已经准备好,给页目录表和页表分配物理内存的过程很复杂,后面再分析)。
内核先将当前任务的页目录表的物理地址填入cr3寄存器。
线性地址 0x80495b0 转换成二进制后是 0000 1000 0000 0100 1001 0101 1011 0000,最高10位0000 1000 00的十进制是32,CPU查看页目录表第32项,里面存放的是页表的物理地址。线性地址中间10位00 0100 1001 的十进制是73,页表的第73项存储的是最终物理页的物理起始地址。物理页基地址加上线性地址中最低12位的偏移量,CPU就找到了线性地址最终对应的物理内存单元。
我们知道Linux中用户进程线性地址能寻址的范围是0 - 3G,那么是不是需要提前先把这3G虚拟内存的页表都建立好呢?一般情况下,物理内存是远远小于3G的,加上同时有很多进程都在运行,根本无法给每个进程提前建立3G的线性地址页表。Linux利用CPU的一个机制解决了这个问题。进程创建后我们可以给页目录表的表项值都填0,CPU在查找页表时,如果表项的内容为0,则会引发一个缺页异常,进程暂停执行,Linux内核这时候可以通过一系列复杂的算法给分配一个物理页,并把物理页的地址填入表项中,进程再恢复执行。当然进程在这个过程中是被蒙蔽的,它自己的感觉还是正常访问到了物理内存。
看过“ 逻辑地址线性地址物理地址三个地址有什么联系”
浏览量:4
下载量:0
时间:
最近不少朋友问到关于物理地址到逻辑地址这样的问题,那么物理地址到逻辑地址是什么呢?读文网小编整理了物理地址到逻辑地址的相关资料,下面大家跟着读文网小编一起去了解一下吧。
存储器中每一个单元的地址可以用两种方法表示:
1.逻辑地址:其表达形式为“段地址:段内偏移地址”。
2.物理地址:CPU与存储器进行数据交换时在地址总线上
提供的20位地址信息称为物理地址。
物理地址=段地址×10H+段内偏移量
CPU一次处理的数据是16位,地址总线实际上代表CPU的寻址能力,地址线为20条那么CPU实际的寻址能力就是2的20次方就是1M。实际的物理地址是这样形成的:
段地址*10H+偏移地址,偏移地址用IP指向,IP是16位的。
例如段地址是1234H,偏移地址是4321H
那么实际的物理地址怎么算呢:1234H*10H+4321H=12340H+4321H=16661H
实际上可以这么来理解,就是段地址左移一位后加上偏移地址就得出实际的物理地址。
这里逻辑地址和物理地址的关系又可以用一个比喻来说明:
比如你的学号是0102,这是你的真实地址亦即物理地址,那么又假如01表示你的班级名称,02表示你相对整个班级的位置,这就是逻辑地址,道理是一样的,只不过在实际由逻辑地址合成物理地址的时候需要将物理地址左移一位,再加上偏移地址。
逻辑地址: 机器语言指令,用于指定一个操作数或一条指令的地址
表示为[段标识符:段内偏移量]
偏移量:段开始的地方到实际地址之间的距离
线性地址:也称虚拟地址,32位,0x00000000—0xffffffff
物理地址:用于内存芯片级的单元寻址,与处理器和cpu连接的地址总线相对应(与实物内存相联系)
逻辑地址转换物理地址:
内存控制单元(MMU)通过分段单元把逻辑地址转换成线性地址;接着分页单元把线性地址转换成物理地址。
看过“ 物理地址到逻辑地址”
浏览量:2
下载量:0
时间:
物理地址是明确的、最终用在总线上的编号。那么逻辑地址转物理地址怎么转?读文网小编为大家介绍逻辑地址转物理地址的解决方法。希望大家喜欢。
1. 物理地址和逻辑地址
物理地址:加载到内存地址寄存器中的地址,内存单元的真正地址。在前端总线上传输的内存地址都是物理内存地址,编号从0开始一直到可用物理内存的最高端。这些数字被北桥(Nortbridge chip)映射到实际的内存条上。物理地址是明确的、最终用在总线上的编号,不必转换,不必分页,也没有特权级检查(no translation, no paging, no privilege checks)。
逻辑地址:CPU所生成的地址。逻辑地址是内部和编程使用的、并不唯一。例如,你在进行C语言指针编程中,可以读取指针变量本身值(&操作),实际上这个值就是逻辑地址,它是相对于你当前进程数据段的地址(偏移地址),不和绝对物理地址相干。
为什么会有这两种地址?
个人觉的原因在于逻辑地址分配更加灵活,可以允许不唯一,看起来也较为直观,例如,一段代码中分配数组,逻辑地址上是连续的,然而在物理地址上,这个数组所占用的页可能分散开来,物理地址上就是不连续的,这样对程序的可理解性上有影响。另外,有了逻辑地址这个概念,才能使用虚拟内存技术。
CPU将一个虚拟内存空间中的地址转换为物理地址,需要进行两步:首先将给定一个逻辑地址(其实是段内偏移量,这个一定要理解!!!),CPU要利用其段式内存管理单元,先将为个逻辑地址转换成一个线程地址,再利用其页式内存管理单元,转换为最终物理地址。
物理地址(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)
跟逻辑地址类似,它也是一个不真实的地址,如果逻辑地址是对应的硬件平台段式管理转换前地址的话,那么线性地址则对应了硬件页式内存的转换前地址。
浏览量:2
下载量:0
时间:
今天读文网小编给大家介绍一下物理地址和逻辑地址的区别。供大家参考!
参考如下
MAC地址也叫物理地址、硬件地址或链路地址,由网络设备制造商生产时写在硬件内部。IP地址与MAC地址在计算机里都是以二进制表示的,IP地址是32位的,而MAC地址则是48位的。MAC地址的长度为48位(6个字节),通常表示为12个16进制数,每2个16进制数之间用冒号隔开,
1.MAC地址
网卡MAC地址不是随便定义的,它的组成结构如图所示。
1>后3个字节代表该制造商所制造的某个网络产品(如网卡)的系列号,前3个字节表示代表网络硬件制造商的编号,它由IEEE(电气与电子工程师协会)分配
2>以太网的地址为48位,由IEEE统一分配给网卡制造商,每个网卡的地址都必须是全球唯一的。共6个字节的长度。FF:FF:FF:FF:FF:FF为广播地址,只能用在目的地址段,不能作为源地址段。目的地址为广播地址的数据包,可以被一个局域网内的所有网卡接收到。合法的以太网地址第32位组播标志必须为0。作为组播地址时,只能作为目的地址,不能作为源地址。组播地址可以被支持该组播地址的一组网卡接收到。组播地址主要用在视频广播,远程唤醒(通过发一个特殊的数据包使网卡产生一个中断信号,启动电脑),游戏(多个人在局域网里联机打游戏)里等。
逻辑地址(Logical Address) 是指由程序产生的与段相关的偏移地址部分。例如,你在进行C语言指针编程中,可以读取指针变量本身值(&操作),实际上这个值就是逻辑地址,它是相对于你当前进程数据段的地址,不和绝对物理地址相干。只有在Intel实模式下,逻辑地址才和物理地址相等(因为实模式没有分段或分页机制,Cpu不进行自动地址转换);逻辑也就是在Intel 保护模式下程序执行代码段限长内的偏移地址(假定代码段、数据段如果完全一样)。应用程序员仅需与逻辑地址打交道,而分段和分页机制对您来说是完全透明的,仅由系统编程人员涉及。应用程序员虽然自己可以直接操作内存,那也只能在操作系统给你分配的内存段操作。
虚拟内存(Virtual Memory) 是指计算机呈现出要比实际拥有的内存大得多的内存量。因此它允许程序员编制并运行比实际系统拥有的内存大得多的程序。这使得许多大型项目也能够在具有有限内存资源的系统上实现。一个很恰当的比喻是:你不需要很长的轨道就可以让一列火车从上海开到北京。你只需要足够长的铁轨(比如说3公里)就可以完成这个任务。采取的方法是把后面的铁轨立刻铺到火车的前面,只要你的操作足够快并能满足要求,列车就能象在一条完整的轨道上运行。这也就是虚拟内存管理需要完成的任务。在Linux 0.11内核中,给每个程序(进程)都划分了总容量为64MB的虚拟内存空间。因此程序的逻辑地址范围是0x0000000到0x4000000。
有时我们也把逻辑地址称为虚拟地址。因为与虚拟内存空间的概念类似,逻辑地址也是与实际物理内存容量无关的。
逻辑地址与物理地址的“差距”是0xC0000000,是由于虚拟地址->线性地址->物理地址映射正好差这个值。这个值是由操作系统指定的。
读文网小编介绍了物理地址和逻辑地址区别的相关知识,希望你喜欢。
浏览量:2
下载量:0
时间:
什么是8086逻辑地址和物理地址?估计很多用户都不清楚!所以下面就由读文网小编为大家介绍下什么是8086逻辑地址和物理地址。
"逻辑地址" 英文对照
logical address; logic address;
"逻辑地址"
1、在有地址变换功能的计算机中,访问指令给出的地址 (操作数) 叫逻辑地址,也叫相对地址。要经过寻址方式的计算或变换才得到内存储器中的物理地址。
2、把用户程序中使用的地址称为相对地址即逻辑地址。
3、逻辑地址由两个16位的地址分量构成,一个为段基值,另一个为偏移量。两个分量均为无符号数编码。
"逻辑地址" 在学术文献中的解释
1、这样该存储单元的地址就可以用段基址(段地址)和段内偏移量(偏移地址)来表示,段基址确定它所在的段居于整个存储空间的位置,偏移量确定它在段内的位置,这种地址表示方式称为逻辑地址,通常表示为段地址:偏移地址的形式。
2、所谓逻辑地址是指按数据的逻辑块号给出的磁盘的位置(l块=512字l字=64位)而物理地址则是由磁盘的柱面、头、段等物理位置所确定的地址。
逻辑地址的产生背景
追根求源,Intel的8位机8080CPU,数据总线(DB)为8位,地址总线(AB)为16位。那么这个16位地址信息也是要通过8位数据总线来传送,也是要在数据通道中的暂存器,以及在CPU中的寄存器和内存中存放的,但由于AB正好是DB的整数倍,故不会产生矛盾!
但当上升到16位机后,Intel8086/8088CPU的设计由于当年IC集成技术和外封装及引脚技术的限制,不能超过40个引脚。但又感觉到8位机原来的地址寻址能力2^16=64KB太少了,但直接增加到16的整数倍即令AB=32位又是达不到的。故而只能把AB暂时增加4条成为20条。则2^20=1MB的寻址能力已经增加了16倍。但此举却造成了AB的20位和DB的16位之间的矛盾,20位地址信息既无法在DB上传送,又无法在16位的CPU寄存器和内存单元中存放。于是应运而生就产生了CPU段结构的原理。
浏览量:2
下载量:0
时间:
Mac地址就是在媒体接入层上使用的地址,通俗点说就是网卡的物理地址,现在的Mac地址一般都采用6字节48bit(在早期还有2字节16bit的Mac地址)。 今天读文网小编给大家介绍一下物理地址和逻辑地址。供大家参考!
参考如下
MAC地址也叫物理地址、硬件地址或链路地址,由网络设备制造商生产时写在硬件内部。IP地址与MAC地址在计算机里都是以二进制表示的,IP地址是32位的,而MAC地址则是48位的。MAC地址的长度为48位(6个字节),通常表示为12个16进制数,每2个16进制数之间用冒号隔开,
1.MAC地址
网卡MAC地址不是随便定义的,它的组成结构如图所示。
1>后3个字节代表该制造商所制造的某个网络产品(如网卡)的系列号,前3个字节表示代表网络硬件制造商的编号,它由IEEE(电气与电子工程师协会)分配
2>以太网的地址为48位,由IEEE统一分配给网卡制造商,每个网卡的地址都必须是全球唯一的。共6个字节的长度。FF:FF:FF:FF:FF:FF为广播地址,只能用在目的地址段,不能作为源地址段。目的地址为广播地址的数据包,可以被一个局域网内的所有网卡接收到。合法的以太网地址第32位组播标志必须为0。例如:
X0:XX:XX:XX:XX:XX
X2:XX:XX:XX:XX:XX
X4:XX:XX:XX:XX:XX
X6:XX:XX:XX:XX:XX
X8:XX:XX:XX:XX:XX
XA:XX:XX:XX:XX:XX
XC:XX:XX:XX:XX:XX
XE:XX:XX:XX:XX:XX
为合法以太网地址。上面的X代表0-F中的任一个。
地址
X1:XX:XX:XX:XX:XX
X3:XX:XX:XX:XX:XX
X5:XX:XX:XX:XX:XX
X7:XX:XX:XX:XX:XX
X9:XX:XX:XX:XX:XX
XB:XX:XX:XX:XX:XX
XD:XX:XX:XX:XX:XX
XF:XX:XX:XX:XX:XX
为组播地址,只能作为目的地址,不能作为源地址。组播地址可以被支持该组播地址的一组网卡接收到。组播地址主要用在视频广播,远程唤醒(通过发一个特殊的数据包使网卡产生一个中断信号,启动电脑),游戏(多个人在局域网里联机打游戏)里等。
逻辑地址(Logical Address) 是指由程序产生的与段相关的偏移地址部分。例如,你在进行C语言指针编程中,可以读取指针变量本身值(&操作),实际上这个值就是逻辑地址,它是相对于你当前进程数据段的地址,不和绝对物理地址相干。只有在Intel实模式下,逻辑地址才和物理地址相等(因为实模式没有分段或分页机制,Cpu不进行自动地址转换);逻辑也就是在Intel 保护模式下程序执行代码段限长内的偏移地址(假定代码段、数据段如果完全一样)。应用程序员仅需与逻辑地址打交道,而分段和分页机制对您来说是完全透明的,仅由系统编程人员涉及。应用程序员虽然自己可以直接操作内存,那也只能在操作系统给你分配的内存段操作。
线性地址(Linear Address) 是逻辑地址到物理地址变换之间的中间层。程序代码会产生逻辑地址,或者说是段中的偏移地址,加上相应段的基地址就生成了一个线性地址。如果启用了分页机制,那么线性地址可以再经变换以产生一个物理地址。若没有启用分页机制,那么线性地址直接就是物理地址。Intel 80386的线性地址空间容量为4G(2的32次方即32根地址总线寻址)。
物理地址(Physical Address) 是指出现在CPU外部地址总线上的寻址物理内存的地址信号,是地址变换的最终结果地址。如果启用了分页机制,那么线性地址会使用页目录和页表中的项变换成物理地址。如果没有启用分页机制,那么线性地址就直接成为物理地址了。
虚拟内存(Virtual Memory) 是指计算机呈现出要比实际拥有的内存大得多的内存量。因此它允许程序员编制并运行比实际系统拥有的内存大得多的程序。这使得许多大型项目也能够在具有有限内存资源的系统上实现。一个很恰当的比喻是:你不需要很长的轨道就可以让一列火车从上海开到北京。你只需要足够长的铁轨(比如说3公里)就可以完成这个任务。采取的方法是把后面的铁轨立刻铺到火车的前面,只要你的操作足够快并能满足要求,列车就能象在一条完整的轨道上运行。这也就是虚拟内存管理需要完成的任务。在Linux 0.11内核中,给每个程序(进程)都划分了总容量为64MB的虚拟内存空间。因此程序的逻辑地址范围是0x0000000到0x4000000。
有时我们也把逻辑地址称为虚拟地址。因为与虚拟内存空间的概念类似,逻辑地址也是与实际物理内存容量无关的。
逻辑地址与物理地址的“差距”是0xC0000000,是由于虚拟地址->线性地址->物理地址映射正好差这个值。这个值是由操作系统指定的。
读文网小编介绍了物理地址和逻辑地址的相关知识,希望你喜欢。
浏览量:2
下载量:0
时间:
物理地址就是windows系统自行的对用户的位置进行定位的,大家知道怎么样修改物理地址吗?今天读文网小编与大家分享下修改物理地址的具体操作步骤,有需要的朋友不妨了解下。
1、在任务栏右下角单击“网络”图标,选择“打开网络和共享中心”选择“更改适配器设置”。
2、对于有线网卡的MAC地址,请右键点击“本地连接”并选择“属性”。
3、点击“配置”,找到“高级”选项卡,在左边的栏中找到“网络地址”或者“Network Address”,找到“值”。
4、在输入框内输入要修改的物理地址,点击“确定”即可。
看过“怎么样修改物理地址”
浏览量:3
下载量:0
时间:
换网卡,网卡的物理地址重复或者需要某台机子临时登陆一下你的网络,那么这时候就需要更改电脑的物理地址了,那么Xp如何修改更改物理地址呢?下面跟着读文网小编来一起了解下吧。
1、首先是电脑物理地址的查看,不同连接方式对应不同的物理地址。包括本地连接和无线连接等。按win+R组合键打开“运行”。输入 cmd。即可进入命令窗口。
2、在命令窗口中输入ipcongfig/all .图中看到的physcial address就是物理地址。这是物理地址的查看方式。
3、下面是物理地址的更改步骤。首先打开网络连接。选择要使用的连接方式。右键选择“属性”。
4、更改配置,在属性窗口,点击“配置”按钮,其实这个连接使用的硬件就是我们的网卡。
5、点击【配置】后,选择【高级】。选择“本地管理的地址”,正常情况下,是如图所示的情况,物理地址也就是我们电脑本身的物理地址。
6、如果要更改物理地址,点击“值”,输入你要使用的物理地址即可。连续输入即可,注意数字和字母的正确区分,比如数字0和字母O。
浏览量:2
下载量:0
时间:
网卡物理地址存储器中存储单元对应实际地址称物理地址,那么我们怎么知道物理地址呢?接下来大家跟着读文网小编一起来了解一下知道物理地址的解决方法吧。
用鼠标右键点击“网上邻居”,选择“属性”,会出现下面的窗口。
再双击Internet协议(TCP/IP),在出现的对话框中就可以看到本机的IP地址。这种方法也是最常用的一个方法。
看过“怎么知道物理地址”
浏览量:5
下载量:0
时间:
直接修改网卡ROM信息来实现修改地址可以修改网卡物理MAC地址,那么到底怎样更改物理地址呢?就让读文网小编来告诉大家更改物理地址的方法吧,希望对大家有所帮助。
更改物理地址方法一1、在任务栏右下角单击“网络”图标,选择“打开网络和共享中心”选择“更改适配器设置”。
2、对于有线网卡的MAC地址,请右键点击“本地连接”并选择“属性”。
3、点击“配置”,找到“高级”选项卡,在左边的栏中找到“网络地址”或者“Network
Address”,找到“值”。
4、在输入框内输入要修改的物理地址,点击“确定”即可。
如更换新网卡,网卡的物理地址重复或者让笔记本电脑临时登陆一下网络等情况。更改网卡MAC地址的文章网络中有很多,但大都说的不够详细,下面笔者试着以Windows XP操作系统为例介绍两种网卡MAC地址的修改方法,希望对大家有所帮助。
简单的修改方法
读者可以在桌面上的“网上邻居”图标上单击右键,选择“属性”,在弹出的“网络连接”的对话框中,在“本地连接”图标上单击右键,选择“属性”,会弹出一个“本地连接属性”的对话框,单击“配置”按钮,选择“高级”,选中左栏“属性”中“Network Address”(其实,并非所有的网卡,对物理地址的描述都用“Network Address”,如Intel的网卡便用“Locally Administered Address”来描述,只要在右栏框中可以找到“值”这个选项就可以了),然后选中右栏框“值”中的上面一个单选项(非“不存在”),此时便可在右边的框中输入想改的网卡MAC地址,形式如“000B6AF6F4F9”。点击“确定”按钮,修改就完成了。
注册表修改方法
第1步,单击“开始”,选中“运行”,键入“regedit”调出注册表。
第2步,在HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlClass{4D36E972-E325-11CE-BFC1-08002BE10318}000、0001、0002 等主键下,查找 DriverDesc ,内容为要修改的网卡的描述,如Intel的网卡会被描述成“Intel(R) PRO/100+ Management Adapter”,3Com的网卡会被描述成“3Com EtherLink XL 10/100 PCI For Complete PC Management NIC (3C905C-TX)”等。
注:上面提到的关于网卡描述的选项出现的位置,和网卡本身以及操作系统有关。不同的网卡可能出现在不同的主键下,而同一网卡用不同版本的操作系统(如OEM版,VOL或者VLK等)也会出现在不同的位置。而这一步的任务就是找到含有网卡描述的主键。
第3步,选中在第二步找到的主键,在右栏框中添加一个字符串,命名为“Network Address”,其值设为要改的MAC 地址,形式如“000B6AF6F4F9”。
注:到这一步,修改网卡物理地址的任务可以说是完成了,有的网卡需要重启以下才能正常的工作,而有的只需一点点的时间“反应”一下而已。下面的几步是为了以后再修改物理地址方便用的,如果读者不再需要再次修改,到这里可以止步了。
第4步,在“第一步选中的主键”Ndiparams下添加一项名为“NetworkAddress”的主键,此时一般都会随着在右栏框中产生一个“(默认)”的字符串,将其值设置为最终想要修改的MAC地址,形式如“000B6AF6F4F9”。如果没有此字符串,读者也可自行添加此字符串。
注:此步骤就是为网卡设置一个初始MAC地址。
第5步,在“NetworkAddress”的主键下继续添加名为“ParamDesc”的字符串,其作用为指定“NetworkAddress”主键的描述,其值可自己命名,如“Network Address”,这样在网卡的高级属性中就会出现“Network Address”选项,就是刚在注册表中加的新项“NetworkAddress”,以后只要在此修改MAC地址就可以了。
第6步,在“NetworkAddress”的主键下继续添加名为“Optional”的字符串,其值设为“1”,则以后在网卡的高级属性中选择“Network Address”项时,右边会出现“不存在”选项。
第7步,重新启动计算机(不是一定要重新启动,但要视不同网卡的要求而定,不过,重启没有任何差错。),按照第一种方法找到“高级”选项就可发现此时“属性”栏中已有“Network Address”的选项,现在读者可以用来直接修改MAC地址或恢复原来的地址。
以上两种修改方法保证读者可以修改任何网卡的物理地址,希望笔者的这点总结和心得可以帮助到你。
看过“怎样更改物理地址”
浏览量:2
下载量:0
时间:
虚拟机用的人越来越多,在使用过程中有很多新人,对于如何修改VMware虚拟机中的网卡MAC地址很陌生,那么虚拟机怎么改物理地址呢?今天读文网小编与大家分享下虚拟机改物理地址的具体操作步骤,有需要的朋友不妨了解下。
最实用,快速的更改方法:
右击 我的电脑->Device Manager->Network adapters->选中某网卡,右击属性->Advanced->Locally Administered Address-> 输入想要设定的mac value->OK
转:
1、修改虚拟机的*.vmx文件.
这种方法最值得推荐,因为这样就类似于重新“烧录”了VMware虚拟机的“物理网卡ROM”。方法是:
分两种情况:
a:
ethernet0.addressType = "static"
ethernet0.Address = "00:50:56:0A:0B:0C"
"static"说明VM的"物理网卡"的MAC是静态设定的,你可以改成一个以005056开头的另外一个MAC即可。改完启动VM时如果问你SSID的话,选择“Keep Always”。
b:
ethernet0.addressType = "generated"
uuid.location = "56 4d dc f1 ff aa 75 ea-f1 b9 ee 0d 68 9c 65 5c"
uuid.bios = "56 4d ed 23 13 8c 96 91-7c 68 b2 09 8b aa bb cc"
ethernet0.generatedAddress = "00:0c:29:aa:bb:cc"
"generated"说明VM的"物理网卡"的MAC是系统随机动态设定的,你可以通过将uuid.bios后六位及ethernet0.generatedAddress后六位改成你想要改成的以000c29开头的MAC即可。
2、修改Linux系统里相关 /etc/sysconfig/network-scripts/ifcfg-eth0文件MAC值.
vi /etc/sysconfig/network-scripts/ifcfg-eth0
MACADDR=xx:xx:xx:xx:xx:xx
:wq 保存退出
reboot
3、修改Linux系统里相关rc.local文件MAC值.
可以通过改启动脚本/etc/rc.d/rc.local:
ifconfig eth0 down
ifconfig eth0 hw ether quduwenxxxxx
ifconfig eth0 up
/sbin/route add default gw x.x.x.x eth0
:wq 保存退出
reboot
看过“虚拟机怎么改物理地址”
浏览量:3
下载量:0
时间:
很多人不知道其实物理地址是可以改的,换电脑也同样可以上网。那么怎么可以改变物理地址呢?今天读文网小编与大家分享下改变物理地址的具体操作步骤,有需要的朋友不妨了解下。
只适用于windows7系统的网卡MAC地址修改。XP的可用。
部分windows7下的无线网卡地址无法修改,也可以使用本软件修改。
修改MAC地址前,先在开始菜单-运行,输入cmd打开控制台,输入getmac获取原来网卡MAC并记下来,用于以后可改回来。
只需在下拉列表选择所要修改的网卡,然后在文本框里面输入一个新的MAC地址,如EF2d32BC6525(不要加横杠),然后点击修改按钮即可修改。
个性后开始,运行输入cmd打开控制台,输入getmac查看是否修改成功。
浏览量:3
下载量:0
时间:
时候说的mac地址也就是物理地址,手机像电脑一样也有mac地址,那么怎么修改手机物理地址呢?接下来大家跟着读文网小编一起来了解一下修改手机物理地址的解决方法吧。
1、手机先root
2、安装RE文件管理器
3、把/data/etc/wifi/fw复制到电脑里
4、电脑事先安装好16位编辑器,同时先记下你的MAC地址
5、用16为编辑器打开复制出来的文件,
6、按照事先记号得MAC地址数据,寻找相对应的数据,然后要怎么改就是你自己的事了!
7、改好后把文件再拷回手机替换原来的文件!
注意请备份好原来的哪些数据,要是改乱了就麻烦了!
看过“怎么修改手机物理地址”
浏览量:3
下载量:0
时间:
MAC地址为网卡的物理地址,在Windows系统下非常容易修改,那么虚拟机的物理地址怎么改呢?今天读文网小编与大家分享下改虚拟机的物理地址的具体操作步骤,有需要的朋友不妨了解下。
修改Linux系统里相关/etc/sysconfig/network-scripts/ifcfg-eth0文件MAC值.
vi/etc/sysconfig/network-scripts/ifcfg-eth0
MACADDR=xx:xx:xx:xx:xx:xx
:wq保存退出
reboot
以上为VMware虚拟机中修改Linux MAC地址的三种方法,非常简单易行。
看过“虚拟机的物理地址怎么改”
浏览量:2
下载量:0
时间:
查看电脑的网卡的物理地址 mac地址我们都知道,也很简单 ,那么大家知道小米手机怎么查看物理地址吗?今天读文网小编与大家分享下小米手机查看物理地址的具体操作步骤,有需要的朋友不妨了解下。
点击菜单,打开系统设置,如图。
在系统设置里,点击WLAN,如图。
然后点击高级设置,如图。
在高级设置页面,你会发现有mac地址,如图所示,其它IP地址等信息也可以在这里查看。
浏览量:15
下载量:0
时间:
在确保访问的数据已在物理内存中后,还需要先将虚拟地址转换为物理地址,即"地址映射",那么虚拟地址映射到物理地址怎么做呢?今天读文网小编与大家分享下虚拟地址映射到物理地的具体操作步骤,有需要的朋友不妨了解下。
Win32通过一个两层的表结构来实现地址映射,因为每个进程都拥有私有的4G的虚拟内存空间,相应的,每个进程都有自己的层次表结构来实现其地址映射。
第一层称为页目录,实际就是一个内存页,Win32的内存页有4KB大小,这个内存页以4个字节分为1024项,每一项称为“页目录项”(PDE);
第二层称为页表,这一层共有1024个页表,页表结构与页目录相似,每个页表也都是一个内存页,这个内存页以4KB的大小被分为1024项,页表的每一项被称为页表项(PTE),易知共有1024×1024个页表项。每一个页表项对应一个物理内存中的某一个“内存页”,即共有1024×1024个物理内存页,每个物理内存页为4KB,这样就可以索引到4G大小的虚拟物理内存。
如下图所示(注下图中的页目录项的大小应该是4个字节,而不是4kB):
Win32提供了4GB大小的虚拟地址空间。因此每个虚拟地址都是一个32位的整数值,也就是我们平时所说的指针,即指针的大小为4B。它由三部分组成,如下图:
这三个部分的第一部分,即前10位为页目录下标,用来寻址页目录项,页目录项刚好1024个。找到页目录项后,找对页目录项对应的的页表。第二部分则是用来在页表内寻址,用来找到页表项,共有1024个页表项,通过页表项找到物理内存页。第三部分用来在物理内存页中找到对应的字节,一个页的大小是4KB,12位刚好可以满足寻址要求。
具体的例子:
假设一个线程正在访问一个指针(Win32的指针指的就是虚拟地址)指向的数据,此指针指为0x2A8E317F,下图表示了这一个过程:
0x2A8E317F的二进制写法为0010101010_0011100011_000101111111,为了方便我们把它分为三个部分。
首先按照0010101010寻址,找到页目录项。因为一个页目录项为4KB,那么先将0010101010左移两位,001010101000(0x2A8),用此下标找到页目录项,然后根据此页目录项定位到下一层的某个页表。
然后按照0011100011寻址,在上一步找到页表中寻找页表项。寻址方法与上述方法类似。找到页表项后,就可以找到对应的物理内存页。
最后按照000101111111寻址,寻找页内偏移。
上面的假设的是此数据已在物理内存中,其实判断访问的数据是否在内存中也是在地址映射过程中完成的。Win32系统总是假设数据已在物理内存中,并进行地址映射。页表项中有一位标志位,用来标识包含此数据的页是否在物理内存中,如果在的话,就直接做地址映射,否则,抛出缺页中断,此时页表项也可标识包含此数据的页是否在调页文件中(外存),如果不在则访问违例,程序将会退出,如果在,页表项会查出此数据页在哪个调页文件中,然后将此数据页调入物理内存,再继续进行地址映射。为了实现每个进程拥有私有4G的虚拟地址空间,也就是说每个进程都拥有自己的页目录和页表结构,对不同进程而言,即使是相同的指针(虚拟地址)被不同的进程映射到的物理地址也是不同的,这也意味着在进程之间传递指针是没有意义的。
浏览量:3
下载量:0
时间: