从最根本的角度来看,地址只分为两类:物理地址、虚拟地址。

1、物理地址

CPU地址总线传来的地址,由硬件电路控制其具体含义。物理地址中很大一部分是留给内存条中的内存的,但也常被映射到其他存储器上(如显存、BIOS等)。在程序指令中的虚拟地址经过段映射和页面映射后,就生成了物理地址,这个物理地址被放到CPU的地址线上。

物理地址空间,一部分给物理RAM(内存)用,一部分给总线用,这是由硬件设计来决定的,因此在32 bits地址线的x86处理器中,物理地址空间是2的32次方,即4GB,但物理RAM一般不能上到4GB,因为还有一部分要给总线用(总线上还挂着别的 许多设备)。在PC机中,一般是把低端物理地址给RAM用,高端物理地址给总线用。

2、虚拟地址

现代操作系统普遍采用虚拟内存管理(Virtual Memory Management)机制,这需要MMU(Memory Management Unit)的支持。MMU通常是CPU的一部分,如果处理器没有MMU,或者有MMU但没有启用,CPU执行单元发出的内存地址将直接传到芯片引脚上,被内存芯片(物理内存)接收,这称为物理地址(Physical Address),如果处理器启用了MMU,CPU执行单元发出的内存地址将被MMU截获,从CPU到MMU的地址称为虚拟地址(Virtual Address),而MMU将这个地址翻译成另一个地址发到CPU芯片的外部地址引脚上,也就是将虚拟地址映射成物理地址。

3、逻辑地址

逻辑地址是指由程序产生的与段相关的偏移地址部分。

4、逻辑地址与物理地址的关系

逻辑地址的形式——段地址:段内偏移地址。

物理地址=段地址 * 10H+段内偏移地址

问:

一个含有16个字节数据的变量,它的逻辑地址为1000H:0100H,那么该变量的最后一个字节数据的物理地址是多少?

答:

逻辑地址1000H:0100H对应的物理地址是10100H;

第1个字节是首地址+0;

第16个字节就是首地址+0FH,即1010FH。

浅谈物理地址、虚拟地址和逻辑地址相关推荐

  1. linux内存管理---虚拟地址、逻辑地址、线性地址、物理地址的区别(一)

    分析linux内存管理机制,离不了上述几个概念,在介绍上述几个概念之前,先从<深入理解linux内核>这本书中摘抄几段关于上述名词的解释: 一.<深入理解linux内核>的解释 ...

  2. CPU中虚拟地址、逻辑地址(有效地址)、线性地址、物理地址

    虚拟地址.逻辑地址(有效地址).线性地址.物理地址 1.虚拟地址 2.逻辑地址(有效地址) 3.线性地址 4.物理地址 5.总结 1.虚拟地址 在实模式下,虚拟地址是指由程序产生的由段选择符和段内偏移 ...

  3. 内存管理:物理地址、虚拟地址、逻辑地址

    内存管理:物理地址.虚拟地址.逻辑地址 1.物理地址.虚拟地址.逻辑地址 1.1 物理地址和虚拟地址 1.2 管理物理地址和虚拟地址之间关系的方式 1.2.1 内存分段 1.2.2 内存分页 1.3 ...

  4. 浅谈Linux内存管理那些事儿

    linux相关视频解析: 5个方面分析linux内核架构,让你对内核不再陌生 手把手带你实现一个Linux内核文件系统 1 前言 内存管理是Linux内核中非常重要的部分,今天和大家一起学习一下. 当 ...

  5. Linux内核之浅谈内存寻址

    Linux内核之浅谈内存寻址 前言 最近在看内存寻址的内容,略有所得,发此文与大家一起交流.我们知道计算机是由硬件和软件组成,硬件主要包括运算器.控制器.存储器.输入设备和输出设备,软件主要是操作系统 ...

  6. 浅谈Service Manager成为Android进程间通信(IPC)机制Binder守护进程之路

    原文地址: http://blog.csdn.net/luoshengyang/article/details/6621566 上一篇文章Android进程间通信(IPC)机制Binder简要介绍和学 ...

  7. 浅谈SQL Server 对于内存的管理

    简介 理解SQL Server对于内存的管理是对于SQL Server问题处理和性能调优的基本,本篇文章讲述SQL Server对于内存管理的内存原理. 二级存储(secondary storage) ...

  8. 嵌入式开发-浅谈嵌入式MCU开发中的三个常见误区

    浅谈嵌入式MCU开发中的三个常见误区 原创 2017-09-30 胡恩伟 汽车电子expert成长之路 目录 (1)嵌入式MCU与MPU的区分 (2)误区一:MCU的程序都是存储在片上Flash上,然 ...

  9. 《浅谈Cache Memory》 学习-第一章

    序 近些年,我在阅读一些和处理器相关的论文与书籍,有很多些体会,留下了若干文字.其中还是有一片领域,我一直不愿意书写,这片领域是处理器系统中的Cache Memory.我最后决定能够写下一段文字,不仅 ...

最新文章

  1. 《科学》盘点2018可能被聚焦的研究领域
  2. 在Android开发中怎样调用系统Email发送邮件
  3. RS232与RS485的功能与区别!
  4. NMS 非极大值抑制
  5. 【TensorFlow-windows】学习笔记五——自编码器
  6. mysql 精度_mysql-笔记 精度
  7. PHP进程1608占用了9012,swoole (ERRNO 9012): worker exit timeout, forced to terminate
  8. 航空机票预订c#代码_航空公司座位预订问题的C ++程序
  9. 关于H5工程师那些日常必需工具
  10. java实现浏览器ui中的收藏夹_谷歌改进Google Chrome浏览器中的PDF浏览器 带来全新UI...
  11. mysql ibtmp1 太大_mysql5.7 ibtmp1文件过大
  12. 1.Nginx 简介
  13. 计算机等级考试数据库三级知识点吐血总结!!!
  14. 完整的元器件选型指南
  15. 关于switch软破“由于发生错误,软件已关闭”无法升级主机系统等问题
  16. Android 隐藏状态栏
  17. 彻底解决Android Studio Minimum supported Gradle version is X.Y.Z. Current version is x.y.z.问题
  18. 抓网页_面包网_javaSE
  19. 几种常用数据库的区别
  20. 高尔顿钉板实验是二项分布吗?

热门文章

  1. Android仿微信朋友圈,全文收起功能,附源码
  2. python fetchall函数_python操作mysql数据库用到的fetchone()函数和fetchall()函数
  3. 河北经贸大学经济管理学院计算机宿舍,2021年河北经贸大学经济管理学院新生宿舍条件和宿舍环境图片...
  4. ADB+Python+STM32 实现 微信跳一跳辅助
  5. 用unity制作一个智能机器人程序
  6. python字典表示摩尔斯电码_试着把莫尔斯电码翻译成英语
  7. 如何用一个U盘中装多个iso安装镜像包让一个U盘当N个启动盘,用U盘做一个虚拟光驱可以选择ISO载入到虚拟光驱,多系统启动U盘解决方案
  8. QT解决MSVC中文乱码问题
  9. 北京办理居住证都需要准备什么材料,跟流程,我来帮你梳理好了
  10. 手机号码验证 js input