把逻辑地址转换为内存物理地址的过程称为重定位

重定位编辑

本词条缺少信息栏名片图,补充相关内容使词条更完整,还能快速升级,赶紧来编辑吧!

重定位就是把程序的逻辑地址空间变换成内存中的实际物理地址空间的过程,也就是说在装入时对目标程序中指令和数据的修改过程。他是实现多道程序在内存中同时运行的基础。重定位有两种,分别是动态重定位与静态重定位。

目录

1分类编辑

1、静态重定位:即在程序装入内存的过程中完成,是指在程序开始运行前,程序中的各个地址有关的项均已完成重定位,地址变换通常是在装入时一次完成的,以后不再改变,故成为静态重定位。

2、动态重定位:它不是在程序装入内存时完成的,而是CPU每次访问内存时由动态地址变换机构(硬件)自动进行把相对地址转换为绝对地址。动态重定位需要软件和硬件相互配合完成。

2时机编辑

将逻辑地址空间重定位到物理地址空间的时机有三种:

1、程序编译连接时。

2、程序装入内存时。

3、程序执行时。

3扩展阅读:编辑

重定位是由操作系统安排的。

在装入程序前,系统会计算未使用的内存,然后将程序装入,并记下开始地址。在执行有相对地址的指令时,会将所有的地址加个刚才记下的开始地址,就叫重定位。

重定位与EXE文件无关,它是程序装入时的一种方式。利用重定位可提高内存空间的使用率。

对于重定位我该如何理解??相关推荐

  1. 基于liosam先验地图与NDT配准的全局重定位的一些个人理解

    全局重定位:在有先验地图的前提条件下,将机器人重新投入先验地图对应的环境中时,通过采集实时点云,与先验地图做配准,从而知道机器人在全局地图下自身的位姿. 首先,我们做全局重定位第一步就是需要得到先验地 ...

  2. 【软件开发底层知识修炼】九 链接器-可重定位文件与可执行文件

    上几篇文章学习了Binutils辅助工具里面的几个实用的工具,那些工具对于以后的学习都是非常有帮助的,尤其是C语.C++语言的学习以及调试是非常有帮助的.点击链接查看上一篇文章:点击查看 本篇文章开始 ...

  3. 共享可写节包含重定位_理解重定位

    一.段的概念 段是程序的组成元素.将整个程序分成一个一个段,并且给每个段起一个名字,然后在链接时就可以用这个名字来指示这些段,使得这些段排布在合适的位置. 一个程序通常包含以下五个段: 代码段(.te ...

  4. 重定向与重定位的理解

    重定向: 百度百科的解释为:重定向(Redirect)就是通过各种方法将各种网络请求重新定个方向转到其它位置(如:网页重定向.域名的重定向.路由选择的变化也是对数据报文经由路径的一种重定向). 我的理 ...

  5. Linux从头学06:16张结构图,彻底理解【代码重定位】的底层原理

    作 者:道哥,10+年的嵌入式开发老兵. 转 载:欢迎转载文章,转载需注明出处. 文章目录 程序的结构 1. 程序头(Header)的描述信息 2. 关于汇编地址 bootloader 把程序从硬盘读 ...

  6. Nat. Biotech. | AI、药物重定位和同行评审

    传统的计算分析和机器学习是否可以弥补在信息泛滥的情况下对药物重定位论文进行同行评审的不足? COVID-19的流行改变了科学和临床成果的分享和传播方式.根据最近的一项分析,平均每周有367篇COVID ...

  7. Windows PE第6章 栈与重定位表

    第六章 栈与重定位表 本章主要介绍栈和代码重定位.站和重定位表两者并没有必然的联系,但都和代码有关.栈描述的是代码运行过程中,操作系统为调度程序之间相互调用关系,或临时存放操作数而设置的一种数据结构. ...

  8. uboot2012(一)分析重定位

    目录 引入 环境配置 编译体验 入口查找 代码分析 board_init_f pie 内存分布分析 SP设置 board_init_f 重定位 代码段重定位实现 变量地址修改 参考 引入 关于移植,搜 ...

  9. uboot重定位代码分析(转)

    概述 重定位(relocate)代码将BootLoader自身由Flash复制到SDRAM,以便跳转到SDRAM执行.之所以需要进行重定位是因为在Flash中执行速度比较慢,而系统复位后总是从0x00 ...

最新文章

  1. SAP 获取采购订单表头长文本
  2. 【Groovy】Groovy 扩展方法 ( Groovy 扩展方法引入 | 分析 Groovy 中 Thread 类的 start 扩展方法 )
  3. Qt中的QLineEdit、QTextEdit、QPlainTextEdit
  4. UVa 11971 - Polygon(几何概型 + 问题转换)
  5. GT_HEADERGUID_LIST
  6. SQL关键字Pivot(行变列)
  7. sql语法中u‘‘ n‘‘详解
  8. yocto添加登录用户和密码
  9. 喂不饱的滴滴,也要撇开腾讯另立门户了
  10. jQuery DataTables 插件使用笔记
  11. SetMutableGraph
  12. Nginx漏洞扫描及修复
  13. 【AppScan闪退】
  14. 产品分析之美团_米米米米粒口红_新浪博客
  15. [转] 串、并行加法器
  16. html广告代码自适应,很实用的对联广告代码(自适应高度)
  17. 用了三星Dex,我已经快一个月回家没开过电脑了
  18. day16 Java 集合
  19. 波士顿大学计算机硕士排名,波士顿大学计算机工程硕士排名第28(2020年TFE Times排名)...
  20. 获取注册表信息-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography的MachineGuid的值

热门文章

  1. leetcode 剑指 Offer 35. 复杂链表的复制
  2. 【瑞萨RA_FSP】DMAC/DTC编程实战
  3. clear在c语言中用法,C++ map::clear()用法及代码示例
  4. struts filter
  5. 电力系统 | 信息间隙决策理论 / (理论讲解)
  6. Nginx攻击防护、CC防护、防止SQL注入、防XSS的实践配置方法
  7. python随笔(类和对象)
  8. 量产 教你如何把U盘做成CD-ROM,以后装机可以不用带光盘和光驱0
  9. Caught exception while allowing TestExecutionListener
  10. Latin方及Hadamard矩阵