段式存储管理

进程分段

把进程按逻辑意义划分为多个,每段有段名,长度不定,进程由多段组成

例:一个具有代码段、数据段和堆栈段的进程

【av68676164(p54)】段式和段页式虚拟存储-LMLPHP

段式内存管理系统的内存分配

  • 以段为的单位装入,每段分配连续的内存
  • 到那时段和段之间不要求响铃

段式系统的虚拟地址

  • 段式虚拟地址VA包含段号S和段内偏移W

  • VA:(S, W)

【av68676164(p54)】段式和段页式虚拟存储-LMLPHP

段式地址的映射基址

段表(SMT,Segment Memory Table)

记录每段在内存中映射的位置

【av68676164(p54)】段式和段页式虚拟存储-LMLPHP

段号S:段的编号(唯一的)

段长L:该段的长度

基地址B:该段在内存中的首地址

段式地址映射过程

  1. 由逻辑地址VA分离出(S, W)

  2. 查询段表

    • 检索段号S, 查询该段及地址B和长度L
  3. 物理地址MA = B + W

【av68676164(p54)】段式和段页式虚拟存储-LMLPHP

段表的扩充

基本字段:段号,长度,基址

扩展字段:中断位,访问位,修改位,R/W/X

段的共享

  • 共享段在内存中只有一份存储
  • 共享段被多个进程映射到各自段表
  • 需要共享的模块可以设置为段都的段

段式系统的缺点

  • 段需要连续的存储空间
  • 段的最大尺寸收到内存大小的限制
  • 在辅存中管理可变尺寸的段的比较困难

段式系统vs页式系统

地址空间的区别

  • 页式系统:一维地址空间
  • 段式系统:二位地址空间

段与页的区别

  • 段长可变,页面大小固定
  • 段的划分有意义,页面无意义
  • 段方便共享,页面不方便共享
  • 段用户可见,页面用户不可见
  • 段偏移有一处,页面偏移无溢出

段页式存储管理

在段式存储管理中结合页式存储管理计时

在段中划分页面

【av68676164(p54)】段式和段页式虚拟存储-LMLPHP

段页式系统的地址构成:段号 页号 页内偏移

【av68676164(p54)】段式和段页式虚拟存储-LMLPHP

  • 逻辑地址:段号S,页号P和页内偏移W
  • 内存按页划分,按页装入

段页式地址的映射机构

同时采用段表和页表实现地址映射

  • 系统为每个进程建立一个段表
  • 系统为每个段建立一个页表
  • 段表给出每段的页表及地址以及页表长度(段长)
  • 页表给出每页对应的页框

【av68676164(p54)】段式和段页式虚拟存储-LMLPHP

05-11 15:23