什么是逻辑地址、物理地址、重定位?

来源:百度知道 编辑:UC知道 时间:2024/06/23 16:27:31

这个问题问的好,很是专业啊
操作系统给每个应用程序都分配了一个4G的虚拟的空间,这个空间的编址就称为“逻辑地址”。每个进程都以为自己独占了4G的内存。但是实际是怎么样,进程自己不知道。
物理地址很好理解。你买了个内存回来,2G的。那么就把8位当作一个单元,即以字节,然后每个字节按顺序从0开始编号。2G的话就是0x00000000到0x7FFFFFFF。为什么是8位16进制的编码呢?因为换算成2进制的正好是32位,一个机器字长。
刚才说了,每个进程都有自己的4G的虚拟的逻辑地址,但是只有这4G中的很少的“重定位”到了真正的物理内存中。需要时再把不用的从物理内存中除去,把要用的拿过来。
重定位,就是给你虚拟的逻辑地址,怎么找到对应的物理地址的过程。这个过程很复杂。不是我一两句能说清楚的。如果楼主有兴趣,你可以搜一搜关于“虚拟地址转译”和“内存分页机制”。这些都是操作系统原理的内容,关于内存管理方面的。