资源描述
第七章 实存管理技术存管理。存管理。第七章 实存管理技术 7.1 存储管理的基本概念 7.2 连续分配存储管理方式 7.3 离散分配存储管理方式 7.4 交换技术 7.5 覆盖技术7.1 存储管理的基本概念 7.1.1 存储管理要解决的问题 7.1.2 存储管理的分类 7.1.3 地址映射(重定位)7.1.1 存储管理要解决的问题7.1.2 存储管理的分类7.1.3 地址映射(重定位)Load#1,450 35000100450 Load#1,2450 3500 2100操作系统20002450逻辑地址物理地址图 7-2 静态地址映射Load#1,450 35000100450 Load#1,450 3500 2100操作系统20002450逻辑地址物理地址图 7-3 动态地址映射基址寄存器20007.2 连续分配方式 7.2.1 单一连续分配方式 7.2.2 固定分区内存管理方式 7.2.3 可变分区内存管理方式7.2.1 单一连续分配方式操作系统区用户区 7.2.2 固定分区内存管理方式 内存管理:分区号分区号起始地址起始地址长度长度状态状态进程名进程名管理数据结构:设置内存分配表管理数据结构:设置内存分配表内存分配:每个区分配一个进程内存分配:每个区分配一个进程内存回收:简单内存回收:简单缺点:内存利用率不高缺点:内存利用率不高如何记录系统的状况呢?如何记录系统的状况呢?分配策略 分区分区4分区分区3分区分区2分区分区1操作系统操作系统0100K200K400K700K1300K多个输入队列多个输入队列分区分区4分区分区3分区分区2分区分区1操作系统操作系统0100K200K400K700K1300K单个输入队列单个输入队列(a)唯一最佳分配算法)唯一最佳分配算法(b)其他分配算法)其他分配算法固定分区 分区号分区长度分区首址分区状态 120KB20KB已分配 232KB40KB已分配 364KB72KB已分配 4128KB138KB未分配内存分区管理表7.2.3 可变分区内存管理方式动态分区举例外碎片外碎片 进程外的内存空间碎片化 能用压缩方法解决 OS 移动进程使进程和进程相连。消耗CPU时间OS(8M)P1(20M)P2(14M)P3(18M)Empty(56M)Empty(4M)P4(8M)Empty(6M)P2(14M)Empty(6M)Refer to Figure 7.4 伙伴系统 全部可用空间被分成一个长度是2U的块 如请求分配长度s符合2U-1 s=2U 全部空间分配给它 否则块被分成两个相等的伙伴。这个过程一直持续直到找到符合长度=n n x ;q=&a00;B=0;当 x 0 *q=0(未分配)分配 *q=1,填写页表 记录块号 B,x-,k-修改 q+;B+不分配 页表pdLap=页号 页内位移 +页号 块号 页号 块号 0 1 输入 1 寄存 器 快表 页表 物理地址 N 由于在某段时间内执行程序时,是在一个范围内逐条顺序执行指令;数组一类数据结构在内存占据一片连续存储空间,访问数组时也是在数组范围内访问,所以快表的命中率可达到80%到90%。CPU存取一个数据的平均时间为:T=命中率(访内时间访cache时间)非命中率(2 访内时间访cache时间)例:访内时间是100ns,访cache时间是20ns,访cache命中率是85%计算CPU存取一个数据的平均时间。T=0.85*(100+20)+0.15*(200+20)=135ns 页的共享和保护 页共享与保护进程进程1页表页表1ed1ed2ed40data1data10ed1ed2ed40data1data1021226061702122607180进程进程2页表页表2ed1ed2ed40data1data10主存主存data1data10212260617007180分页系统中共享分页系统中共享editor示意图示意图7.3.2 分段式存储管理方式分段基本原理分段基本原理分段基本原理分段基本原理地址映射 段号段号段内地址段内地址段表始址段表始址逻辑地址逻辑地址(2,100)=段号越界中断段号越界中断 +1K5002006000123基址基址 段号段号段长段长物理地址物理地址8292段式存储的地址变换机构段式存储的地址变换机构2100+6K8K9K4Kyn=yn段内地址越界段内地址越界段表长度段表长度4段的共享和保护段的共享与保护段的共享与保护进程进程1页表页表ed1ed2ed40data1data10ed1ed2ed40data1data1021226061702122607180进程进程2页表页表ed1ed2ed40data1data10主存主存editordata1data1data10212260617007180editordata1段长段长16016040基址基址8080380editordata1data14024080420240280380进程进程1进程进程2段表段表(a)分页系统中共享)分页系统中共享editor示意图示意图(b)分段系统中共享)分段系统中共享editor示意图示意图分页与分段分配方式共享代码段的比较分页与分段分配方式共享代码段的比较进程进程1页表页表ed1ed2ed40data1data10ed1ed2ed40data1data1021226061702122607180进程进程2页表页表ed1ed2ed40data1data10主存主存data1data10212260617007180逻辑地址分页分段7.3.3 段页式存储管理方式7.3.3.1 段页式管理原理7.3.3.1 段页式管理原理7.3.3.1 段页式管理原理7.3.3.1 段页式管理原理7.3.3.1 段页式管理原理 主程序段主程序段04K8K12K15K16K子程序段子程序段04K8K数据段数据段04K8K12K10K(a)一个进程地址空间的结构)一个进程地址空间的结构段号(段号(s)段内页号(段内页号(p)页内偏移量(页内偏移量(d)(b)段页式地址结构的组成)段页式地址结构的组成图图7.2 进程地址空间和地址结构进程地址空间和地址结构段页式分配的地址变换图解=越界中断越界中断 段页式存储的地址变换机构段页式存储的地址变换机构0123基址基址段号段号2页表页表长度长度页表页表+B1块号块号 页号页号0123=块内地址块内地址块号块号段号段号2页号页号2页内地址页内地址d段表地址段表地址 段表长度段表长度段内地址段内地址YNYN7.3.3.1 段页式管理原理7.3.3.1 段页式管理原理7.3.3.2段页式的实例。7.3.3.2段页式的实例15 3 2 1 0索 引0=GDT/1=LDT优先级(优先级(03)7.3.3.2段页式的实例段寄存器段寄存器SSSS表示堆栈段,表示堆栈段,CSCS表示代码段,表示代码段,DS DS 表示数据段,表示数据段,ESES、FSFS、GSGS表示附加数表示附加数据段。据段。基址基址 24-31GX0段长段长 16-19基址基址16-230:16位段位段1:32位段位段0:段长以字节为单位段长以字节为单位1:段长以页长为单位段长以页长为单位基址基址0-15段长段长 0-15TypeSDPLPA0:段不在内存中段不在内存中1:段在内存中段在内存中0:未访问过未访问过1:访问过访问过0:系统段或门系统段或门1:代码段或数据段代码段或数据段段类型和段类型和保护保护 优先级(优先级(03)Pentium段描述符7.3.3.2段页式的实例7.3.3.2段页式的实例段选择符段选择符段描述符表段描述符表段起始地址段起始地址段长度段长度段的其他属性段的其他属性偏移地址偏移地址32位线性地址位线性地址 +逻辑地址转换为线性地址逻辑地址转换为线性地址CSDSSSESFSGS7.3.3.2段页式的实例一级页表页号一级页表页号二级页表页号二级页表页号页内地址页内地址位数位数101012线性地址线性地址(a)1024项项一级号一级号二级号二级号页内地址页内地址一级页表一级页表二级页表二级页表物理块物理块二级页表地址二级页表地址物理块基址物理块基址所选的字所选的字(b)图图7.3 线性地址到物理地址的映射线性地址到物理地址的映射 在实存管理中,会遇到内存不够用的情况。在实存管理中,会遇到内存不够用的情况。人们也想了解决该问题的办法,交换技术人们也想了解决该问题的办法,交换技术和和覆盖技术就是在实存管理中扩充内存的覆盖技术就是在实存管理中扩充内存的方法。方法。这些方法在一定程度上解决了实存管理中这些方法在一定程度上解决了实存管理中用小内存运行大程序的问题。用小内存运行大程序的问题。7.4 交换技术
展开阅读全文