【操作系统】存储管理概述(分区/分页/分段)

📅 发布时间:2026/7/2 23:37:51 👁️ 浏览次数:
【操作系统】存储管理概述(分区/分页/分段)
考点频率★★★★☆选择题常考是理解后续页式/段式存储的基础难度⭐⭐⭐建议重点掌握三种管理方式的核心思想、地址转换方式以及碎片的区别1️⃣ 为什么需要存储管理在多道程序设计环境下多个程序需要共享有限的内存空间。存储管理的主要任务包括内存分配与回收为程序分配运行所需的内存空间运行结束后回收地址转换将程序中的逻辑地址相对地址转换为内存中的物理地址绝对地址内存保护防止一个进程访问其他进程的内存区域内存扩充通过虚拟存储技术让程序感觉拥有比实际内存更大的空间核心概念逻辑地址相对地址程序中使用的地址从0开始编址物理地址绝对地址内存单元的实际地址地址重定位将逻辑地址转换为物理地址的过程2️⃣ 存储管理的发展脉络从早期到现代存储管理方式经历了从简单到复杂、从连续到离散的演变无管理单道 → 分区存储连续分配 → 分页存储离散分配 → 分段存储离散分配逻辑导向 → 段页式存储两者结合演变的核心动机是提高内存利用率和支持多道程序设计。每种新方式都在一定程度上解决了前一种方式的痛点。3️⃣ 分区存储管理连续分配分区存储是最早的多道程序设计存储管理方式将内存划分为若干个连续的区域每个区域装载一个程序。3.1 固定分区原理系统在运行前将内存划分为若干固定大小的分区每个分区装入一道程序优点实现简单管理开销小缺点分区大小固定程序大于分区则无法装入程序小于分区会产生内部碎片分区内部未使用的空间属于分区内部无法被其他程序利用3.2 动态分区原理根据程序的实际需求动态划分内存分区大小等于程序大小优点内存利用率比固定分区高没有内部碎片缺点随着程序的装入和撤离内存中会产生大量不连续的、无法利用的小空闲区 →外部碎片内存中散布的零散空闲块虽然总和可能够大但每个碎片都太小无法满足程序加载需求解决方案通过紧缩Compaction将分散的空闲区合并但紧缩需要消耗大量的CPU时间4️⃣ 分页存储管理非连续分配4.1 核心思想将逻辑地址空间划分为大小相等的页Page将物理内存划分为大小相等的页框Page Frame将程序的若干页装入到内存的若干页框中页可以不连续存放彻底解决了外部碎片问题。用户观点程序看到的是连续的地址空间页号0, 1, 2…物理真相程序的不同页可能分散在内存的不同页框中页表记录每个逻辑页号对应到哪个物理页框号的映射表4.2 地址转换逻辑地址 页号 页内偏移物理地址 页框号 页内偏移偏移量不变4.3 优点与缺点优点无外部碎片因为以固定大小的页为单位分配程序不必连续存放内存利用率高缺点程序的最后一页可能用不满产生内部碎片平均每程序约浪费半页需要维护页表增加存储开销地址转换需要额外时间需查页表5️⃣ 分段存储管理非连续分配5.1 核心思想将程序按逻辑结构划分为若干个段Segment如代码段、数据段、堆栈段等。每个段是一段完整的逻辑单元大小可变程序运行时各个段分散装入内存。5.2 地址结构与地址转换逻辑地址 段号 段内偏移段表每个段在段表中记录该段的物理内存起始地址基址和段长度限长。地址转换步骤根据段号查找段表得到该段的基址和段长检查段内偏移是否小于段长越界保护物理地址 基址 段内偏移5.3 优点与缺点优点反映程序逻辑代码段、数据段等分离便于编译和调试易于共享和保护可以方便地让多个进程共享同一个代码段段内连续段间不连续契合程序的逻辑结构缺点会产生外部碎片各段长度不同内存分配后可能留下无法利用的小空隙内存分配算法复杂需要寻找足够大的连续空间段的长度可变管理难度较大6️⃣ 三种管理方式对比表重点对比项分区存储分页存储分段存储分配单位连续区域分区固定大小的页等长可变大小的段逻辑单位用户视角连续连续通过页表映射连续段内连续段间不连续地址转换基址偏移页表页号→页框号段表段号→基址段长内部碎片固定分区有有最后一页无外部碎片动态分区有无有逻辑结构反映不反映不反映反映代码/数据/堆栈分离共享和保护困难较困难容易段级现代应用已淘汰常用如Linux配合分页使用段页式7️⃣ 经典例题例题1在分页存储管理中逻辑地址到物理地址的转换由 完成。A. CPU的MMU内存管理单元B. 用户程序C. 编译器D. 链接器解析地址转换由CPU中的内存管理单元MMU硬件完成操作系统只需设置好页表基址寄存器。选A。例题2关于分区存储管理的动态分区方式下列说法正确的是 。A. 会产生内部碎片B. 会产生外部碎片C. 不会产生任何碎片D. 只产生内部碎片解析动态分区的程序大小等于分区大小无内部碎片但会产生外部碎片。选B。例题3判断分段存储管理可以消除外部碎片。 解析错误。分段存储中各段长度不等分配和释放会产生外部碎片。消除外部碎片是分页存储而非分段存储的主要优势之一。8️⃣ 记忆口诀分区连续有碎片固定内部动态外。分页等长消外碎最后一页内碎留。分段逻辑易共享段内连续段外散。9️⃣ 小测验评论区对答案某计算机采用分页存储管理页大小为4KB某程序的逻辑地址为0x3F2A页大小为4KB2122^{12}212字节。则该逻辑地址对应的页号和页内偏移分别是多少提示页内偏移占低12位本专栏日更2篇点击头像 → 专栏《软考中级高频考点》订阅第一时间接收新内容#软考中级 #软件设计师 #存储管理 #分区存储 #分页存储 #分段存储 #操作系统