关闭

重定位----操作系统做的事情

1210人阅读 评论(0) 收藏 举报
1.逻辑地址空间
  
  在多道程序设计中,往往会有多个作业同时存放在内存中,而每个用户预先无法知道他的作业被装在主存的什么位置,为了方便编程,每个用户可以认为自己的程序和数据放在从O地址开始的一组连续地址空间中,该地址空间就是逻辑地址空间。
  
  2.逻辑地址
  
  逻辑地址空间中,地址单元的编号称为逻辑地址。
  
  3.绝时地址空间
  
  绝对地址空间就是主存中一系列连续存储信息的物理单元的集合,也称存储地址空间或物理地址空间。
  
  4.绝对地址
  
  绝对地址空间中物理单元的编一号称为绝对地址。
  
  5.重定位
  
  由于程序中的逻辑地址和实际分配后主存储器的绝对地址不一致,为使处理器能按实际地址正确地访问主存,必须进行地址转换。逻辑地址转换成绝对地址的过程称为重定位,也称为地址转换。
  
  重定位的方式有静态定位和动态定位两种。
  
  (1)静态重定位。所谓静态重定位是在装入一个作业的时候,把作业中的指令地址和数据地址全部一次性地转换成绝对地址,由于地址转换是在作业执行一次完成的,装入主存中的作业信息已经是用绝对地址指示的,所以作业在执行过程中,无需再进行地址转换,且不能移动位置。
  
  (2)动态重定位。所谓动态重定位是指在装入作业时,不进行地址转换,而是直接把作业装入到分配的主存区域中。在作业执行过程中,每当执行一条指令时由硬件的地址转换机构将指令中的逻辑地址转换成绝对地址。动态重定位是由软件和硬件相配合来实现的,硬件有一个地址转换机构,该机构有一个基址寄存器和一个地址转换线路组成。基地址寄存器中存放作业所占主存的起始地址,所以地址转换公式为:
  
  绝对地址=基地址寄存器的值+逻辑地址
  
  动态重定位的优点是:
  
  ·程序可在内存中移动,当程序移动后,只要将新的主存区域的首地址放进基址寄存器中就可以了;
  ·易实现程序共享;
  ·有可能提供虚拟存储空间。
  
  采用动态重定位的系统支持程序浮动,而采用静态重定位的系统不支持程序浮动。
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:117192次
    • 积分:3477
    • 等级:
    • 排名:第9913名
    • 原创:245篇
    • 转载:3篇
    • 译文:2篇
    • 评论:7条
    收藏
    http://my.csdn.net/my/favorite
    最新评论