基本分段和段页式内存管理

为什么要引入分段存储管理方式?

分段存储管理方式的引入是为了满足用户的要求。

  1. 方便编程:通常一个作业是由多个程序段和数据段组成的,一般情况下,用户希望按逻辑关系对作业分段,并能根据名字来访问程序段和数据段
  2. 信息共享
    • 共享是以信息的逻辑单位为基础的。页是存储信息的物理单位,段却是信息的逻辑单位。
    • 页式管理中地址空间是一维的,主程序,子程序都顺序排列,共享公用子程序比较困难,一个共享过程可能需要几十个页面。
  3. 信息保护
    • 页式管理中,一个页面中可能装有 2 个不同的子程序段的指令代码,不能通过页面共享实现共享一个逻辑上完整的子程序或数据块。
    • 段式管理中,可以以信息的逻辑单位进行保护。
  4. 动态增长:实际应用中,某些段(数据段)会不断增长,前面的存储管理方法均难以实现。
  5. 动态链接:动态链接在程序运行时才把主程序和要用到的目标程序(程序段)链接起来。

分段

  • 作业地址空间被划分为若干段,每个段定义了一组逻辑 信息,如主程序MAIN、子程序段X、数据段D及栈段S, 各段均有自己的名字(段号)
  • 每个段都从0开始编址,并采用一段连续的地址空间,且 段的长度取决于相应的逻辑信息组的长度,因而各段长 度可不等
  • 整个作业的地址空间是二维的,(也就是说一个作业的所有段号合在一起是不连续的),其逻辑地址有段号 (名) 和段内地址所组成

为什么分段中整个作业的地址空间是二维的?

在分页中,整个作业的地址空间是一维的,也就是说一个作业的所有段合在一起是连续的。如下图所示(观察逻辑地址):

而分段由于它各段长度可不等,一个作业的所有段合在一起不可能像分页一样是连续的,所以分段整个作业的地址空间是二维的。

利用段表实现地址映射示意图

分段系统地址变换机构

注:由于各段长度不等,也就是说各段长度无法确定,所以还要判断段长是否越界。

信息共享

可重入代码(纯代码)

一种允许多个迚程同时访问的代码

为使各个迚程所执行的代码完全相同,绝对不允 许可重入代码在执行中有任何改变,所以它是一 种不允许任何进程对其进行修改的代码

但事实上,大多数代码在执行时都有可能发生改 变,例如其中用于控制程序执行次数的变量及指 针、信号量及数组等。为此,在每个进程中都必 须配备局部数据区,并把在执行中可能改变的部 分都拷贝到该数据区。这样,在程序执行时,只 去对属于特定进程私有的数据区中的内容进行修 改,而不去改变共享的代码,这时的可共享代码 即成为可重入代码

例:多个用户对文本编辑程序的共享

某多用户系统,可同时接纳40个用户,假设 均在执行Editor进行文本编辑。若该文本编辑 程序含有160KB的代码区和40KB的数据区,如果不共享,则总共需有8000KB的内存空间来支持40个用 户。

如果该文本编辑程序代码是可重入的,则 无论分页系统还是分段系统该程序代码都能被 共享,即内存中只需保留一份文本编辑程序的 副本,因而所需内存空间仅为 40×40+160=1760KB

分页系统的共享

分段系统的共享

上述两张图可知,在分段系统中,实现共享容易得多,只需在每个进程的段表中为文本编辑程序设置一个段表项。

分页与分段的主要区别

  1. 页是信息的物理单位,分页仅仅是由于系统管理的需要,对用户透明的。段是信息的逻辑单位,分段的目的是为了能更好的满足用户的需要。
  2. 页的大小固定且由系统确定,把逻辑地址划分为页号和页内地址两部分。段的长度却不固定,决定于用户所编写的程序。
  3. 分页的作业地址空间是一维的,分段的作业地址空间是二维的。
  4. 页和段都有存储保护机制。但存取权限不同:段有读、写和执行三种权限;而页只有读和写两种权限。

段页式内存管理方式

分页/段内存管理有机结合,既具有分段系统便于实现、分段可共享、易于保护、可动态链接等一系列优点;又能像 分页系统那样很好地解决内存的外部碎片问 题以及为各个分段离散地分配内存等问题 。

基本原理

  • 段页式存储管理是分段和分页原理的结合,即先将用户程序分成若干个段(段式) ,并为每一个段赋一个段名,再把每个段分成若干个页(页式) 。
  • 其地址结构由段号、段内页号、及页内位移三部分所组成。

  • 系统中设段表和页表,均存放于内存中。读一字节的指令或数据须访问内存三次。为提高执行速度可增设高速缓冲寄存器(快表)。
  • 每个进程一张段表,每个段一张页表,段表可以有多级段表,页表也可以有多级页表。
  • 段表含段号、页表始址和页表大小。页表含页号和物理块号。

利用段表和页表实现地址映射

段页式系统的地址变换结构

posted @ 2020-05-03 12:27  Hhhighway  阅读(1537)  评论(0编辑  收藏  举报