存储管理方案分类主要包括段式管理、页式管理和段页式管理,它们各自有不同的特点和适用场景

存储管理方案分类主要包括段式管理、页式管理和段页式管理,它们各自有不同的特点和适用场景:

  1. 段式管理
    按照程序的逻辑结构(如主程序、子程序、数据段、堆栈段等)将程序划分为若干个“段”,每个段有独立的名字和地址空间,支持按段进行共享和保护。由于各段长度不同,导致内存分配时容易产生外部碎片,且内存利用率较低。地址由“段号 + 段内偏移”构成,通过段表实现地址映射。

  2. 页式管理
    将逻辑地址空间和物理内存都划分为固定大小的“页”(Page)和“页框”(Frame),通过页表将虚拟页号映射到物理页框号。优点是消除了外部碎片,内存利用率高;缺点是页没有逻辑意义,不利于程序的模块化保护与共享。地址由“页号 + 页内地址”组成。

  3. 段页式管理
    结合段式和页式的优点,先将程序按逻辑结构划分为多个段,再在每个段内部划分为固定大小的页。段表中每一项指向一个页表,页表完成页到物理帧的映射。这样既保持了程序的逻辑独立性,又提高了内存利用率,但地址变换过程更复杂,系统开销较大。


页式虚拟存储的地址变换流程如下:

  • 虚拟地址被划分为两部分:

    • 虚页号(Virtual Page Number)
    • 页内地址(Offset)
  • 利用虚页号查找页表中的对应项,获取对应的物理页框号(Frame Number)

  • 若该页不在内存中(装入位为0),则触发缺页中断(页面失效中断),操作系统从磁盘调入该页到内存,并更新页表。

  • 若页在内存中,则将物理页框号与页内地址拼接,形成实际的物理地址。

页表项通常包含以下控制位:

  • 装入位(Valid/Invalid bit):表示该页是否已在内存。
  • 修改位(Dirty bit):表示该页是否被写过,决定换出时是否需要回写磁盘。
  • 访问位(Referenced bit):用于页面置换算法(如LRU)。
  • 保护位:控制读/写/执行权限。

加速地址变换的优化技术:

  • 转换检测缓冲器(TLB, Translation Lookaside Buffer)
    是一种位于CPU中的高速缓存,用于缓存最近使用的页表项。当进行地址变换时,首先查找TLB,命中则直接获得物理页框号,避免访问主存中的页表,显著提升速度。若未命中,则需查页表,并将新条目加入TLB(可能替换旧条目)。

    TLB采用全相联或组相联方式组织,容量小但速度快,是提高虚拟内存性能的关键机制。


段式管理和页式管理在地址映射上的主要区别体现在地址结构、映射机制、逻辑意义以及碎片问题等方面。具体对比如下:

对比维度段式管理(Segmentation)页式管理(Paging)
地址结构二维地址:(段号,段内偏移)一维地址:(页号,页内偏移)
划分方式按程序的逻辑单位划分(如代码段、数据段、堆栈段等),段长可变按固定大小划分(如4KB/页),页长固定
映射机制通过段表进行映射:
段表项包含:段基址、段长度、访问权限等
通过页表进行映射:
页表项包含:物理页框号、装入位、修改位等
逻辑独立性高。每一段具有明确的程序语义,便于共享与保护低。页是物理划分单位,无逻辑意义
内存碎片外部碎片严重(因段长度不一,回收后留下分散空洞)无外部碎片,仅有少量内部碎片(最后一页未用满)
地址变换过程根据段号查段表 → 得到段基址 → 基址 + 段内偏移 = 物理地址根据页号查页表 → 得到物理页框号 → 拼接页内偏移 = 物理地址
支持虚拟存储支持(段可调入调出)广泛用于虚拟存储系统(按页换入换出)

示例说明:

  • 段式地址映射示例
    虚拟地址 (2, 50) 表示第2段的第50个字节。
    查段表第2项,得基址为 1000,段长为 200(合法)。
    则物理地址为:1000 + 50 = 1050

  • 页式地址映射示例
    设页面大小为 1KB,虚拟地址 3072 → 页号 = 3,页内偏移 = 5(因为 3072 ÷ 1024 = 3 余 0)
    查页表第3项,得物理页框号为 7,则物理地址 = 7 × 1024 + 0 = 7168


在这里插入图片描述

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Bol5261

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值