数据库系统工程师—4.2存储管理

存储管理

基本概念

存储器的层次结构

地址

  • 逻辑地址(虚拟地址、相对地址):程序员使用的地址只是用符号命名的一个地址,称为符号名地址,这个地址并不是主存中真实存在的地址
  • 物理地址(绝对地址):是主存中真实存在的地址。

地址重定向

定义

  • 程序未运行时,存储在外存运行时,需要装载到内存中。
  • 把程序中的指令和数据的逻辑地址转换为对应的物理地址,这个转换的过程称为地址重定位

静态重定位:在程序装入主存时已经完成了逻辑地址到物理地址的变化,在程序的执行期间不会再发生变化。

动态重定位:在程序运行期间完成逻辑地址到物理地址的变换

分区存储管理

分区存储管理:把主存划分成若干个区域,每个区域分配给一个作业使用。这就是分区存储管理方式

  • 固定分区:系统生成时已经分好区
  • 可变分区:是一种动态分区方式,存储空间的划分是在作业装入时进行的,故分区的个数是可变的,分区的大小刚好等于作业的大小
  • 可重定位分区:分配好的区域可以移动

分页存储管理

分页原理

  • 页:将进程地址空间划分为若干个大小相等的区域
  • 块(页框):将主存的空间也划分成与页相同大小的若干个物理块
  • 在为进程分配主存时,将进程中若干页分别装入多个不相邻接(离散)的块中

地址结构:页号 | 页内地址

页表

系统为每个进程建立了一张页面映射表,保证在主存中找到进程要访问的页面所对应的物理块

地址变换过程

分段存储管理

分段原理

将用户程序或作业的地址空间按内容划分为段

  • 比如主程序一段,子程序一段,数据专门放一段,每个段的长度是不等的,但是每个段占用一个连续的分区

地址结构:段号 | 段内地址

段表

进程中的各个段可以离散地分配到主存的不同分区中。在系统中为每个进程建立一张段映射表,简称为“段表”。

地址变换过程

段页式存储管理

段页式原理

  • 先将整个主存划分成大小相等的存储块
  • 将用户程序按程序的逻辑关系先分为若干个段,然后再将段划分成页

地址:段号 页号 | 页内地址

段页式存储管理同时拥有段表和页表

地址变换过程

虚拟存储管理

时间局限性

程序中的某条指令一旦执行,则不久的将来很有可能再次被访问;某个存储单元如果被访问,不久的将来它很可能再次被访问。

空间局限性

一旦程序访问了某个存储单元,则不久的将来,其附近的存储单元也最有可能被访问。

如果我们运行程序的时候,允许将作业的一部分装入主存即可运行程序,而其余部分可以暂时留在磁盘上,等需要的时候再装入主存。这样一来,一个小的主存空间就可以运行比它大的一个作业。从用户角度看,系统具有的主存容量比实际的主存容量要大得多,称为虚拟存储器。

页面置换算法

  • 最佳置换算法:选择那些是永不使用的,或者是在最长时间内不再被访问的页面置换出去。
  • 先进先出置换算法(FIFO):优先淘汰内存中停留时间最长的页面
  • 最近最少未使用算法(LRU):优先淘汰最近这段时间用得最少的页面
  • 最近未用置换算法(NUR):优先淘汰最近一段时间未引用过的页面

页面链接:http://www.datazzh.top/archives/2012/2025/04/07/
上一篇
下一篇