当前位置: 首页 > news >正文

分段存储管理方式学习总结

分段存储管理方式不会产生内部碎片,但其会产生外部碎片(与动态分区分配同理)。在该分配方式中,程序按照自身的逻辑关系划分为若干个段,操作系统以段为单位为这些段分配内存空间,这些段之间可以不相邻。
在程序的逻辑空间中,它的每个段都各自从 0 开始编址,互不相干。而操作系统则是通过段表为进程的段和物理地址之间进行映射。
与分页管理方式相同,当进程需要访问内存时,它给出目标内存单元的逻辑地址,这个地址将被地址变换机构转换为具体的物理地址然后访问目标内存单元。 同样的,它也需要两次访存操作才能完成对目标内存单元的访问。这个问题也可以通过引入快表来优化。

分段存储管理方式使得程序能够根据自己的逻辑划分模块来分开处理特定信息。它还有利于实现信息的共享, 只需要将待共享的信息放入共享段中,然后让各进程指向该段即可,共享的区间可自由决定。同样,基于可自由定义区间的特点,它能够实现段的动态增长和动态载入以及信息的保护,比如将一些敏感的信息放在 较高权限的段中。

与分页存储管理方式相比,分页存储管理方式是基于物理单位来划分的,其由系统单独执行,对用户来说不可见。 而分段存储管理方式是基于逻辑单位来划分的,其由用户来决定段的划分,由系统来执行分配。

一些概念:


  • 程序按照自身的逻辑关系划分成若干个分区,这些分区称为段。每个段都有一个段名,在低级语言中,程序员使用段名来编程。

  • 段表
    每个进程都有一张段表,它以段号作为下标来记录进程的段在内存中的起始物理地址和段的长度。段表由段表项构成,段表项是按顺序连续存放在内存中的,这使得段号可以被隐式包含而不需要实际存储。
    段基址大小 = 必须足以表示最大物理地址,如果有 4G 内存那么需要 4B 大小。
    段长度大小 = 2 ^ 段内偏移量所占位数。
    段表项大小 = 段基址大小 + 段长度大小。
    段表大小 = 段表中段表项个数 × 段表项大小。

  • 逻辑地址
    进程中使用的地址都是逻辑地址。逻辑地址由段号和段内偏移量构成,其中,段号和段内偏移量所占的位数视实现而定(段号在左,偏移在右),其需要确保的是段号和段内偏移量的大小必须足以表示内存的最大地址。 比如,在一个 32 位 4G 的操作系统中,段号和段内偏移量可能都用 16 位表示(即逻辑地址使用 4B 表示)。 段号的位数决定了每个进程最多可以分几个段。 段内偏移量的位数决定了每个段的最大长度。

逻辑地址到物理地址变换的过程:

  1. 根据逻辑地址计算段号 P 和段内偏移量 W。

  2. 比较段号 P 和段表长度 M,如果 P >= M 则触发越界中断。

  3. 从段表中取出段号所对应的段基址与段长度。(段表中段号 P 对应的段表项地址 = 段表始址 + 段号 * 段表项大小)

  4. 检查段内偏移量是否超过段长度,超过则触发越界中断。(虽然正常情况下不应该出现该情况,但段内偏移量的值可能超过段长度所以需要进行判断)

  5. 计算实际物理地址 = 段基址 + 段内偏移量 W。

http://www.jsqmd.com/news/139895/

相关文章:

  • 浅析为什么要用Cursor Commands及在日常开发中如何使用的最佳实践
  • 5、索引的数据结构(b+树,hash)
  • 毕业项目推荐:87-基于yolov8/yolov5/yolo11的血红细胞检测计数系统(Python+卷积神经网络)
  • 元推理框架一次完美的“框架内机器证明”:对莱布尼茨级数的解析
  • 高德地图红绿灯倒计时之实现原理
  • 6、索引算法有哪些?
  • 毕业项目推荐:88-基于yolov8/yolov5/yolo11的昆虫检测识别系统(Python+卷积神经网络)
  • 根据日期编码
  • 如何用Lupa 为Python应用添加脚本支持,以及如何在游戏引擎中调用逻辑
  • LINQ:SelectMany
  • Slabify-et 安装使用(https://github.com/CellArchLab/slabify-et)
  • ARC103B(abc101D)
  • 链表的基本操作,用链表实现线性表
  • 12/25
  • 如何进行 Python 和 Lua 之间的复杂数据交换
  • 游戏手柄电池没电了?靠谱供应商看这里 - 工业品网
  • 物联网智能灯具推荐:五大独家精选深度推荐 - 品牌测评家
  • 解码STM32F4环境搭建、工程搭建与烧录
  • (新卷,200分)- 找单词(Java JS Python)
  • 抽象圣诞树3
  • 段页式管理方式学习总结
  • 游戏手柄电池批发厂家哪里找?聚电新能源 - 工业品网
  • 一天面了6个前端开发,水平真的令人堪忧啊 - 教程
  • 游戏手柄电池选购指南:性价比、性能与环保面面观 - 工业品网
  • 物联网智能灯具哪家品质好:最新官方排名品质测评 - 品牌测评家
  • Intel CPU搭配NVIDIA显卡!Serpent Lake曝光:直指AMD超级APU
  • 实验七
  • 基于深度学习的水面垃圾检测系统演示与介绍(YOLOv12/v11/v8/v5模型+Pyqt5界面+训练代码+数据集)
  • 游戏手柄电池选购指南:行业优势、品牌推荐与聚电新能源实力展现 - 工业设备
  • 游戏手柄电池选购指南:好用、靠谱又性价比高 - 工业设备