易学笔记-系统分析师考试-第3章 操作系统基本原理/3.3 内存管理/3.3.1 地址变换

  • 几种程序
  1. 源程序:用户用开发语言编写的程序
  2. 编译程序(汇编程序):专门编译源程序的程序
  3. 目标程序:编译后的程序
  • 地址
  1. 逻辑地址
    1. 概念:指的是目标程序使用的地址,也称为相对地址或者虚拟地址
    2. 格式:一般以0为基地址进行编址
  2. 逻辑地址空间
    1. 一个目标程序所有的逻辑地址
    2. 格式:
      1. 一维地址:从0开始依次编码;
      2. 二维地址,把目标程序分成若干块,每段有不同的段号,段内地址也是从0开始
  3. 物理地址:目标程序被装载在内存中后对应的地址
  4. 物理地址空间:目标程序所有的物理地址的总和,由存储器提供,大小取决于目标程序所需的内存大小
  5. 地址转换
    1. 概念:逻辑地址到目标地址的转换
    2. 公式:物理地址 = 起始的物理地址 + 逻辑地址
    3. 分类
      1. 静态重定位
        1. 概念:在目标程序装入内存时,由内存一次性完成地址转换,也即是目标程度的逻辑地址加上内存分配的起始物理地址
        2. 优点:地址转换简单,容易实现
        3. 缺点:
          1. 需要分配一段连续的地址块,而且在程序执行期间不能移动
          2. 不能程序和数据的共享,内存利用率低
      2. 动态重定位
        1. 概念:在CPU访问程序和数据之前实现地址变换
        2. 原理:借助硬件地址的转换机构来实现,通过选择重定位寄存器实现,具体步骤:
          1. 程序开始执行时,操作系统把程序在内存中的起始地址放入重定位寄存器
          2. 每次访问时,重定位寄存器的地址+当前逻辑地址就可得出物理地址,然后CPU就可以访问该物理地址
        3. 优点
          1. 程序可以移动,移动后只需要把新的起始地址放入重定位寄存器即可
          2. 容易实现程序共享、可提供虚拟存储空间

猜你喜欢

转载自blog.csdn.net/u011830122/article/details/84135903