)
第一部分基本分段存储管理一、分段基本概念1.划分规则进程地址空间依照程序逻辑功能模块划分若干段每一段是一个完整逻辑单元如main主函数段、子函数段、局部变量段编程时用户使用段名标识各段编译后段名转为段号供CPU使用。2.编址规则每个段独立从0开始编址各段长度不统一操作系统以段为单位分配内存单段占用内存连续空间不同段在内存中离散存放、地址可不相邻。3.分段优势贴合程序逻辑程序可读性高用户编程便捷可通过段名段内地址精准访问指定模块数据。4.逻辑地址结构二维地址逻辑地址 段号 段内地址段内偏移段号位数决定单个进程最大分段数量N位→最多2N个段段内地址位数决定单个段最大长度M位→单段最大2M字节按字节编址。举例段号16位→最多21664K个段段内地址16位→单段最大64KB。编译行为源代码段名→段号变量符号A单元/B单元→段内地址。二、段表类比分页的页表1.作用记录进程每个逻辑段在物理内存中的起始位置建立逻辑段→物理内存地址映射操作系统为每个进程单独创建段表。2.段表项组成段号隐含、段长、段基址段内存起始物理地址和页表核心区别段表额外保存段长各段长度不等分页页面大小固定页表无需记录页长所有段表项占用存储空间长度固定段号依靠下标隐含存储不额外占用存储空间。3.段表项寻址公式目标段表项内存地址 段表起始地址 段号×单个段表项字节大小。三、分段地址变换流程逻辑地址→物理地址1.硬件支持进程调度时PCB中存放的段表起始地址、段表总长载入段表寄存器进程运行全程依靠该寄存器获取段表信息。2.五步地址转换①拆分逻辑地址拆分为段号S、段内地址W②段号越界检查若S≥段表长度触发越界中断合法则继续③查找段表项依据段表基址段号×段表项长度读出对应段表项段基址、段长④段内地址越界检查若W≥当前段段长触发越界中断分页无此步骤页面长度固定⑤计算物理地址物理地址 段基址 段内地址W。3.访存次数无快表时2次访存第1次查内存段表第2次访问目标数据。4.快表优化将常用段表项存入快表命中仅需1次访存。四、分页VS分段详细对比补充共享前提仅纯可重入代码不可修改支持多进程共享带可修改变量的代码段不能共享。第二部分段页式存储管理分段分页结合方案一、诞生背景取长补短1.分页优点内存利用率高无外部碎片仅少量内部碎片缺点不方便按逻辑模块共享、保护。2.分段优点便于逻辑段共享保护缺点需要连续内存空间产生大量外部碎片紧凑整理耗时。3.段页式思路进程先按逻辑分段每个段内部再分页内存划分为固定大小页框和页面等大页面离散装入页框。二、逻辑地址结构段号页号页内偏移1.地址拆分说明用户编程仅需给出段号段内地址二维操作系统自动把段内地址拆分为【页号页内偏移】分页过程对用户透明。2.位数作用段号位数进程最大分段数2段号位数页号位数单个段最大页数2页号位数页内偏移位数页面/页框大小2偏移位数按字节编址。三、段表与页表结构1.段表每个进程1张段表项段号(隐含)页表长度页表所在内存块号区别于纯分段段表纯分段存「段长段起始地址」段页式存「页表长度页表块号」。2.页表每个段单独1张页表项页号(隐含)物理内存块号结构和分页页表完全一致。四、段页式地址变换流程1.硬件进程运行前PCB的段表基址、段表总长载入段表寄存器。2.转换步骤①拆分逻辑地址段号S、页号P、页内偏移W②段号越界S≥段表长度→越界中断③查段表定位段表项获取该段页表所在内存块号、页表总长④页号越界P≥页表长度→越界中断⑤查页表根据页表物理地址页号获取页面对应的物理块号⑥物理地址物理块号拼接页内偏移W。3.访存次数无快表3次访存1查段表→2查页表→3访问数据引入快表关键字段号页号命中仅需1次访存。第三部分虚拟内存基础原理一、传统存储管理的两大弊端基本分页/分段/分区管理1.一次性作业必须全部装入内存才能运行问题1作业总大小物理内存大作业无法运行问题2多作业总容量超内存并发进程数量受限。2.驻留性作业装入内存后全程常驻内存直至运行结束大量暂时不用的数据长期占用内存浪费内存资源。二、局部性原理虚拟内存理论基石1.时间局部性刚被访问的指令/数据短期内大概率重复访问成因程序循环结构。2.空间局部性访问某内存单元其相邻单元不久也大概率被访问成因指令顺序存储、数组等数据连续存放。核心思想程序运行仅使用自身一小部分代码数据无需全量载入内存。三、虚拟内存定义与三大特征1.原理作业仅把即将使用的部分调入内存剩余数据存外存缺数据时OS自动从外存调入内存不足时换出闲置数据至外存物理内存容量不变逻辑上扩充内存OS虚拟性体现。2.三大特性对应抵消传统管理一次性、驻留性多次性作业分多次分批调入内存对换性运行中数据可在内存、外存换入换出虚拟性逻辑内存远大于物理内存。四、虚拟内存实现前提与分类1.实现基础必须基于离散分配存储连续分配难以分次调入衍生三种实现请求分页存储管理主流、请求分段存储管理、请求段页式存储管理。2.OS必备两大核心功能①请求调页调段访问内容不在内存时自动从外存调入对应页/段②页面段置换内存空间已满淘汰暂时闲置页/段写入外存腾出空间加载新内容。整体总结1.分段按逻辑划分、二维地址、易共享、有外碎片分页按物理划分、一维地址、内存利用率高、难共享段页式融合二者优点。2.访存汇总分页/分段无快表2次访存段页式无快表3次访存各类方案快表命中均只需1次访存。3.虚拟内存依托局部性原理打破传统内存一次性、驻留性约束依靠请求调入页面置换实现逻辑扩容。