分页管理、分段管理、段页式管理

1. 分页存储管理

  1. 用户程序的地址空间被划分为若干个固定大小的区域,称为页,对应的物理内存也被分为同样大小的帧,
  2. 逻辑地址由两部分组成:页号,页内偏移量
  3. 为每一个进程建立一个页表,用于记录页(逻辑地址)和帧(物理地址)之间的对应关系,实现从页号到帧号的映射。
  4. 分页系统中,CPU每次要存取一个数据,都要两次访问内存:
    1. 访问页表,找到对应的帧号,并加上页内偏移找到实际的物理地址
    2. 访问物理地址对应的指令或数据。

      2. 分段存储管理

  5. 段是按照程序的自然分界划分的长度可以动态改变的去取,通常程序员将子程序、操作数、常数等不同类型的数据放在不同的段中,并且每个程序中可以有多个相同类型的段。
  6. 段表本身也是一个段,可以存在辅存中,但是一般驻留在主存中。
  7. 将用户程序地址空间分成若干个大小不等的段,每段可以定义一组相对完整的逻辑信息。存储分配时,以段为单位,段与段在内存中可以不相邻接,也实现了离散分配。
  8. 分段地址结构
    1. 作业的地址空间被划分为若干个段,每个段定义了一组逻辑信息。每个段都从0开始编址,并采用一段连续的地址空间。
    2. 段的长度由相应的逻辑信息组的长度决定,因此各段长度不等,整个作业的地址空间是二维的。
    3. 段表的每一个表项对应一个短,每个表项至少包括三个字段:有效位(指明该段是否已调入主存)、段起始地址(该段在物理内存中的首地址)、段长(该段的实际长度)
  9. 优缺点:
    1. 优点:
      • 分页对程序员来说是不可见的,但是分段通常对程序员而言是可见的。
      • 段的逻辑独立性使其易于编译、管理、修改和保护,也便于多道程序共享概念股。
      • 段长可以根据需要动态改变,允许自由调度,以便有效利用主存空间。
    2. 缺点:
      • 主存空间分配比较麻烦
      • 容易在段间留下许多碎片,造成存储空间利用率降低

        3. 段页式存储:

  10. 用分段方法来管理和分配虚拟存储器,程序的地址空间按照逻辑单位分成若干个基本独立的段,而每一个段有独立的段名,然后将每一段分成固定大小的若干页。
  11. 用分页方法来分配和管理物理内存,即把整个主存分成与页大小相等的存储块。程序对内存的调入或调出是按页进行的,但是又按段实现共享和保护
  12. 逻辑地址结构: 段号, 页号 ,页内地址
  13. 为了进行地址转换,系统为每个作业建立一个段表,并且要为该作业段表中的每一个段建立一个页表
  14. 要获得一条指令或数据,需要三次访问内存:
    1. 第一次访问是访问内存中的段表,获取页表的起始地址
    2. 访问内存中的页表,从中取出该页所在的物理块号,并将该块号与页内地址一起形成指令或数据的物理地址
    3. 真正地从二次地址访问的地址中,取出指令或数据。
  15. 优缺点:
    1. 优点:
      • 提供了大量的虚拟存储空间
      • 有效地利用主存
    2. 缺点:
      • 增加了系统的复杂性,存在内部碎片
      • 各种表格要占用内存空间
Table of Contents