虚拟地址由链接器产生;
链接器的作用吧多个代码模块组装在一起,并解决模块之间的应用,即处理程序代码间的地址引用,形成程序运行的静态内存空间视图。
物理地址
通过地址总线选择内存单元的地址
虚拟地址到物理地址的转换
软件和硬件结合实现这个转换–>MMU(内存管理单元)。MMU可以接受软件给出的地址对应关系数据,进行地址转换。
MMU通过地址转换关系表将虚拟地址转换为物理地址,而地址转换关系表本身就存储在物理内存中。

把虚拟地址空间和物理地址空间都分成大小同等的块,即页,按照虚拟页和物理页进行转换。
页的大小可设置为4KB、2MB、4MB、1GB
现代内存管理模式--------------分页模型。
一个虚拟页可以对应到一个物理页,由于页大小一经配置就是固定的,所以在地址关系转换表中,只要存放虚拟页地址对应的物理页地址就行了。

MMU

MMU即内存管理单元,是用硬件电路逻辑实现的一个地址转换器件,它负责接受虚拟地址和地址关系转换表,并输出物理地址。
根据实现方式不同,MMU可以是独立的芯片,也可以是集成在cpu核心。
X86 CPU想开启MMU必须开启保护模式或者长模式,实模式下不能开启MMU。

MMU页表

地址转换关系表–页表。
虚拟地址到物理地址的转换关系,或者映射关系。
页表并不存放虚拟地址和物理地址的对应关系,只存放物理页面的地址,MMU以虚拟地址为索引去查表返回物理页面地址,页表是分级的,总共分为三个部分:一个顶级页目录,多个中级页目录,最后才是页表。
顶级页目录存放中级页目录地址,中级页目录存放页表地址,页表中存放物理页地址。
保护模式下的分页:
4KB 102410244KB
4MB 1024*4MB
长模式下的分页:
4KB
2MB

程序中的地址转换(虚拟地址-物理地址)相关推荐

  1. 实验四 获取C程序中一个逻辑地址对应的物理地址

    实验四 获取C程序中一个逻辑地址对应的物理地址 目录 实验四 获取C程序中一个逻辑地址对应的物理地址 实验环境 一.实验目的 二.实验内容 三.实验步骤 四.实验总结 实验环境 操作系统版本:ubun ...

  2. 线性地址转换成物理地址

    上篇文章介绍了如何查看内核使用的分页模式,笔者电脑上内核使用的分页模式是 4-level paging,这篇文章讲解 4-level paging分页模式如何将线性地址转换成物理地址. 先思考2个问题 ...

  3. 在程序中集成地址簿、电子邮件和地图功能

    地址簿 iOS通过两个框架提供了全面的地址簿数据库访问功能:Address Book和Address Book UI. Address Book UI框架是一组用户界面类,封装了Address Boo ...

  4. Java实现pdf转tex_使用Free Spire.PDF在Java程序中创建和转换PDF文件

    在这篇文章中,我将举例说明如何创建一个包含标题,段落,图像,编号列表和表格的简单的PDF文件,以及如何使用Free Spire.PDF将PDF转换为其他文件格式. 概述 Free Spire.PDF ...

  5. 在Java程序中创建和转换PDF文件

    点击上方关注 "终端研发部" 设为"星标",和你一起掌握更多数据库知识 作者: Codingqi123 来源: jianshu.com/p/db15232987 ...

  6. 微信小程序之base64地址转换本地图片地址

    1.新建base64src.js文件 const fsm = wx.getFileSystemManager(); const FILE_BASE_NAME = 'tmp_base64src'; // ...

  7. 小程序 中文和utf-8转换

    /** 中文转换utf-8 */ function encodeUTF8(str) { return str.replace(/[^\u0000-\u00FF]/g, function ($0) { ...

  8. 三菱je -c中映射表的作用_linux内核页表映射机制:线性地址如何转为物理地址?...

    关注"技术简说"(13站同名),带你由浅入深学习linux内核源码.linux内核开发100讲免费教程,每天晚上9点准时更新,敬请收看.进我主页点"视频"栏目即 ...

  9. php地址选择插件,微信小程序中关于三级联动地址选择器的实例分享

    本文介绍了微信小程序三级联动地址选择器的实例代码,分享给大家,有需要的可以一起了解一下 在一些电商类的小程序中,地址选择这个功能一般是必备的,一般的收货信息都需要有一个能选择省市县的控件,当然也有些人 ...

最新文章

  1. python selenium --调用js
  2. mfc中ado上传image到sql数据库
  3. MongoDB学习笔记~MongoDB实体中的值对象
  4. Linux redhat下安装jdk-6u45-linux-x64.bin
  5. 无锁链表的c++实现
  6. 详解vector容器(应用+模拟实现,vector相关练习题)
  7. 《Effective C#》Item 7:推荐使用不可改变的原子值类型
  8. sklearn.metrics —— 混淆矩阵及其绘制、Accuracy/Precision/Recall/F1-score
  9. java动作触发声音_关于鼠标动作的声音如何添加
  10. java——base64 加密和解密
  11. HTML 空格转义符的用法
  12. 浏览器内核(引擎)及css前缀
  13. Centos挂载iscsi存储(浪潮存储)
  14. 电子取证之服务器取证,本人小白第一次从pc取证到服务器,这里有一套例题分享给大家,所有解析我都尽可能全面具体,希望与各位同仁一起学习。(非常推荐!)
  15. php 除法,php中如何除法取整
  16. mysql mediumint是什么类型_MySQL 数据类型一览
  17. 5G LAN是什么?5G LAN商用实现工业物联网5G无线接入
  18. 点播 构造自己的播放器 用户调用获取视频播放地址接口
  19. 别害怕犯错:科学怎样服务好社会?
  20. 【基于mini2440开发板的交叉编译环境及内核树配置.

热门文章

  1. 岁月温柔-12 妈妈害怕去医院-疑似有医院恐惧症
  2. 2019电赛纸张计数仪分析——————致敬“谢谢惠顾”
  3. vue大数据可视化【数字滚动效果】
  4. 监听器和简单邮件发送
  5. 小程序疑难杂症破解(一)
  6. 逆天的APP,不得不提到 “一个木函”
  7. linux-c之函数(函数指针、函数传参、命令行参数)
  8. KVM虚拟化之(1):CPU技术
  9. java与jdk版本号的区别
  10. 基于匹配点集对单应性矩阵进行估计