重定位----操作系统做的事情
1.逻辑地址空间
在多道程序设计中,往往会有多个作业同时存放在内存中,而每个用户预先无法知道他的作业被装在主存的什么位置,为了方便编程,每个用户可以认为自己的程序和数据放在从O地址开始的一组连续地址空间中,该地址空间就是逻辑地址空间。
2.逻辑地址
逻辑地址空间中,地址单元的编号称为逻辑地址。
3.绝时地址空间
绝对地址空间就是主存中一系列连续存储信息的物理单元的集合,也称存储地址空间或物理地址空间。
4.绝对地址
绝对地址空间中物理单元的编一号称为绝对地址。
5.重定位
由于程序中的逻辑地址和实际分配后主存储器的绝对地址不一致,为使处理器能按实际地址正确地访问主存,必须进行地址转换。逻辑地址转换成绝对地址的过程称为重定位,也称为地址转换。
重定位的方式有静态定位和动态定位两种。
(1)静态重定位。所谓静态重定位是在装入一个作业的时候,把作业中的指令地址和数据地址全部一次性地转换成绝对地址,由于地址转换是在作业执行一次完成的,装入主存中的作业信息已经是用绝对地址指示的,所以作业在执行过程中,无需再进行地址转换,且不能移动位置。
(2)动态重定位。所谓动态重定位是指在装入作业时,不进行地址转换,而是直接把作业装入到分配的主存区域中。在作业执行过程中,每当执行一条指令时由硬件的地址转换机构将指令中的逻辑地址转换成绝对地址。动态重定位是由软件和硬件相配合来实现的,硬件有一个地址转换机构,该机构有一个基址寄存器和一个地址转换线路组成。基地址寄存器中存放作业所占主存的起始地址,所以地址转换公式为:
绝对地址=基地址寄存器的值+逻辑地址
动态重定位的优点是:
·程序可在内存中移动,当程序移动后,只要将新的主存区域的首地址放进基址寄存器中就可以了;
·易实现程序共享;
·有可能提供虚拟存储空间。
采用动态重定位的系统支持程序浮动,而采用静态重定位的系统不支持程序浮动。
重定位----操作系统做的事情相关推荐
- 操作系统是如何使用重定位表的
一.重定位表的结构 重定位表是数据目录中第6项,它的结构如图示: 重定位表由多个块(block)组成,每个块内部由三部分组成--VirtualAddress.SizeOfBlock 和若干个2字节偏移 ...
- 共享可写节包含重定位_理解重定位
一.段的概念 段是程序的组成元素.将整个程序分成一个一个段,并且给每个段起一个名字,然后在链接时就可以用这个名字来指示这些段,使得这些段排布在合适的位置. 一个程序通常包含以下五个段: 代码段(.te ...
- 符号引用重定位 重定位PC相对引用 简单讲解
目录 链接符号引用重定位 简介 例子 重定位条目 简介 offset type symbol addend 重定位PC相对引用 重定位PC绝对引用 链接符号引用重定位 简介 我们知道一个.c文件可以被 ...
- 操作系统---页式地址重定位
页式地址重定位 要求: 一.实验目的: 1. 用高级语言编写和调试模拟实现页式地址重定位. 2. 加深理解页式地址重定位技术在多道程序设计中的作用和意义. 二.实验原理: 当进程在CPU上运行时,如指 ...
- 操作系统实验3 页式地址重定位模拟
[实验名称]页式地址重定位模拟 [实验目的] 1.掌握和理解页式地址重定位模拟的基本思路和实现过程: 2. 理解页式地址重定位技术在多道程序设计中的作用和意义. [实验原理] 页式管理是一种内存空间存 ...
- 共享可写节包含重定位_深度探索win32可执行文件格式
深度探索win32可执行文件格式 Matt Pietrek 翻译:姜庆东 摘要:对可执行文件的深入认识将带你深入到系统深处.如果你知道你的exe/dll里是些什么东东,你就是一个更有知识的程序员.作为 ...
- Linux从头学06:16张结构图,彻底理解【代码重定位】的底层原理
作 者:道哥,10+年的嵌入式开发老兵. 转 载:欢迎转载文章,转载需注明出处. 文章目录 程序的结构 1. 程序头(Header)的描述信息 2. 关于汇编地址 bootloader 把程序从硬盘读 ...
- S5PV210体系结构与接口04:代码重定位 SDRAM初始化
目录 1. C语言环境初始化 1.1 C语言运行所需环境 1.2 初始化栈 1.2.1 栈的概念 1.2.2 栈的作用 1.2.3 如何初始化 1.3 初始化bss段 1.3.1 bss段的作用 1. ...
- 跟踪线程 深度 双目初始化位姿 运动模型 关键帧模式 重定位 局部地图跟踪 关键帧
/** * This file is part of ORB-SLAM2. * * * mpMap就是我们整个位姿与地图(可以想象成ORB-SLAM运行时的那个界面世界), * MapPoint和Ke ...
最新文章
- AI 开发指南:机器学习产品是什么?
- Win32汇编笔记-消息基础
- Python入门100题 | 第021题
- Altiris 7.1 安装
- Vue 单文件中的数据传递
- 关于Resnet50和ResNeXt50的参数量的简单计算(只考虑卷积层和全连接层)
- 迄今以来在硅谷的最大押注:摩根大通雇超千人专注金融科技
- picasa csdn_使用Picasa网络相册开发PHP应用程序
- Wincc语音报警 Wincc真人声音报警
- 詹克团为“夺权”动作频频 引发比特大陆员工不满
- C++实现DNS域名解析
- C#开启路由器upnp功能
- ctab提取dna流程图_DNA提取(CTAB法)
- 2022年最新浙江机动车签字授权人模拟试题及答案
- 使用Python对文件进行批量改名
- Basler驱动如何彩色相机白平衡说明
- 订货宝 html源码,订货宝新功能,代客下单等一大波移动管理端功能
- 如何设定打开页面的大小
- 运用 DRM 对流媒体文件加密
- 详解计算机主板各部分的功能(附图)
热门文章
- android viewholder里面不执行控件_ViewHolder的MVVM实现
- java中static和this_理解Java中this和static的含义
- 理解R-CNN、SPP-NET、Fast R-CNN、Faster R-CNN、FPN博文整理
- 什么是fine-tuning
- ubuntu16.04 TLS安装java
- 转自:拜小白教你OpenCV3.2.0+VS2017开发环境配置
- Yarn篇--搭建yarn集群
- 一个核物理学霸为何两次收到BlackHat的邀请
- M283-bsp包问题
- sC#进阶系列——WebApi 接口参数不再困惑:传参详解