收藏 分享(赏)

第七章 主存管理.ppt

上传人:hwpkd79526 文档编号:10069607 上传时间:2019-10-05 格式:PPT 页数:62 大小:334.50KB
下载 相关 举报
第七章 主存管理.ppt_第1页
第1页 / 共62页
第七章 主存管理.ppt_第2页
第2页 / 共62页
第七章 主存管理.ppt_第3页
第3页 / 共62页
第七章 主存管理.ppt_第4页
第4页 / 共62页
第七章 主存管理.ppt_第5页
第5页 / 共62页
点击查看更多>>
资源描述

1、第七章 存储器管理,7.1 概述 7.2 程序的装入和链接 7.3 存储器的连续分配方式 7.4 覆盖和对换技术 7.5 分页存储器管理方式 7.6 分段存储管理方式 7.7 段页式存储管理方式,7.1 概述,1.主存储器的物理组织 信息在主存中是按“位”存放的。 主存一般按字编址,并且,不同计算机的字长不同。 2.多级存储器 高速缓存 主存 外部存储器 3.主存管理功能,主存分配 地址转换和重定位 存储保护和主存共享 存储扩充(虚拟存储技术),7.1 概述,7.2 程序的装入和链接,1.程序的装入 绝对装入方式 静态重定位装入方式 动态运行时装入方式,源程序,目标模块,装入模块,编译,链接,

2、装入,内存,图示如下:,绝 对 装 入 方 式,静 态 重 定 位 装 入 方 式,(1)静态链接,2.程序的链接程序的连接方式有三种:静态链接、装入时动态链接 和运行时链接。,如: CALL B JSR”L”,需要解决的问题: 相对地址的修改; 外部调用符号的变换,(2)装入时动态链接目标模块在装入内存的过程中链接,即边装入边链接。 优点: 便于修改和更新 便于实现目标模块的共享 (3)运行时动态链接将某些目标模块的链接延迟到运行该模块时才进行。 即采用部分装入运行方式。 优点: 节省内存空间 便于实现目标模块的共享,7.2 程序的装入和链接,连续分配方式是指为一个用户程序分配一个连续的内存

3、空间。可 分成单一连续分配、固定分区分配、动态分区分配和动态重定位 分区分配四种方式。 1.单一连续分配方式,内存,系统区,用户区,问:该分区方式能否应用在多用户和多任务环境?,只适用于单用户、单任务的环境中。,7.3 连续分配的主存管理方式,(1)划分分区的方法 分区大小相等 分区大小不相等,2.固定分区分配管理方式,(2)分配方法数据结构:存储分块表MBT(如下表:),特点:分区数和分区大小固定。 优点:简单、易实现。 缺点:存在内部碎片,主存利用率不高。,3.可变分区多道管理技术,(1)概念主存事先并未划分成一块块分区,当作业进入主存时,按作业的实际大小建立和分配分区。 (2)特点 分区

4、数可变 分区大小不固定 可能存在大小不等的空闲分区或碎片,3.可变分区多道管理技术,(3)数据结构 常用的数据结构有以下两种: 存储分块表 空闲分区表或空闲分区链,3.可变分区多道管理技术,空闲分区表,已使用分区表,存储分块表(表的维护较困难) 已使用分区表UBT(分区状态为忙) 空闲分区表FBT(分区状态为可用),28k,4k,18k,头指针,18k,已分配,未分配,空闲分区链(单向链),空闲分区链(双向链),表示分区的大小,1)首次适应算法 以空闲分区链为例,每次从链首开始顺序查找,直到找 到一个大小能满足要求的空闲分区为止。(一般要求空 闲分区链以某种顺序链接,如地址递增。) 缺点:低地

5、址端留下许多很小的、难以利用的空闲分区。运行一段时间后,使得查找的开销增加。 优点:内存的高地址端保留了较大的空间。,通常有三种分配算法:,(4)存储分配算法,首次适应算法的内存分配过程,从空闲分区表的开始 或空闲分区链的链首查找。 置空白分区号F=1,空闲分区表(链) 检索完?,F.sizeXk?,F.size-Xksize?,F=F+1,从分区中划出Xk 大小的分区,修改空闲分区表 和已使用分区表,返回,失败返回,yes,将分区分配给请求 的进程,size为事先规定不再划分的剩余分区的大小。,当前进程申请一 Xk大小的内存分区,2)循环首次适应算法设置查找指针,每次分配内存时,从查找指针开

6、始查 找空闲分区表或空闲分区链。 优点:内存的空闲分区利用均匀 3)最佳适应算法将满足需求的最小空闲分区分配给请求内存分配的进 程。(一般要求空闲分区按由小到大的顺序排列) 缺点:将在内存中留下许多碎片(内部碎片)。,(4)存储分配算法,4)最坏适应算法 在所有未分配的分区中挑选最大的,且满足作业主存要 求的分区分配给当前作业。 优点:能使分配后的剩余分区足够大,内部碎片减少 缺点:运行一段时间后,难以找到用户程序需要的较大空闲分区。,(4)存储分配算法,(5)内存分配操作,主要的操作有:分配内存和回收内存。1)分配内存 选择一种分配算法将满足条件的内存分区分配给当前申请的进程。 2)内存回收

7、 待回收的分区可能存在的情况有以下四种: 回收区不与任何空闲分区邻(如图(1); 回收区与插入点的前一个空闲分区相邻(如图(2); 回收区与插入点的后一分区相邻(如图(3); 回收区与插入点的前、后两个分区同时相邻(如图(4)。,图(1),图(2),图(3),图(4),回收过程的流程图:,申请回收分区R,SIZE=R的大小 LOC=R的始址 置R的状态为空表目,R与F2相邻?,R与F1相邻?,在空闲分区表中 找一空表目,该分区的大小=SIZE 始址=LOC 状态=可用,SIZE=SIZE +F2的大小,R与F1相邻?,置F2的状态为 空表目,F1的大小=F1的大小 +SIZE,F2的大小=SI

8、ZE F2的始址=LOC,返回,no,(1)紧凑通过移动的方法,把内存中分散的各小存储分区拼凑成大存储区的 过程。,4. 动态重定位的可变分区分配,紧凑,紧凑后需要对移动了的数据和程序进行重定位。,基本概念: 物理地址/绝对地址:是指实际访问的主存地址。 逻辑地址:指目标程序所限定的地址集合中的地址。由于逻辑地址通常是相对于某个基准量(通常为零)编址时所使用的地址,因此,也称相对地址。 相对地址空间:是指相对地址的全体。也称逻辑地址空间或用户地址空间。,4. 动态重定位的可变分区分配,重定位:是指逻辑地址到物理地址的变换过程。 静态重定位:程序装入内存时,由装入链接程序在程序执行前进行的重定位

9、。静态重定位是由专门设计的重定位装配程序完成。 动态重定位:地址变换是在程序执行期间,随着对每条 指令或数据的访问进行的重定位。动态重定位的特点: 动态重定位由硬件机构完成,硬件机构包括重定位寄存器和加法器。 在程序执行的过程中进行地址变换。 目标程序可以在内存中移动且可以不连续。,4. 动态重定位的可变分区分配,(绝对地址 或物理地址),地址空间 (相对地址 或逻辑地址),(2)动态重定位的过程如下:,重定位硬件,(3)动态重定位分区分配算法,请求分配 u.size分区,检查空闲分区表(链),找到u.size的 空闲分区?,按动态分区 方式进行分配,修改相关数据结构,返回分区号 和始址,空闲

10、分区 总和u.size?,进行紧凑,修改相关数据结构,失败 返回,否,1.覆盖技术 原理:将程序划分为若干个功能上独立的逻辑段,根据程序的逻辑结构,让那些不会并行执行的逻辑段共享同一块存储区。 例:某进程的程序段正文由A,B,C,D,E,F等6个程序段组成,调用关系如图所示:,7.4 覆盖和对换技术,A 20K,C 30K,E 40K,F 30K,B 50K,覆盖技术是早期扩大内存容量的一种技术,并在单一连续 存储管理中使用。覆盖顺序和结构由程序员规定。,1.覆盖技术,对换:是指将内存中暂不能运行的进程,或暂不用程序和数据换到外存对换区,再把具备运行条件的进程,或其所需要的程序或数据换入内存的

11、过程。,2.对换技术,(1)对换的形式 进程对换(即整体对换,以进程问对换单位) 部分对换 (页面对换、分段对换),(2)对换空间的管理,1)目标:提高换进、换出的速度。 2)数据结构:对换区的空闲分区表(或链),每个表项应包括分区的首址和大小。(即开始盘块号和盘块数),3)对换区的分配和回收对换区的分配一般采用连续分配方式,与动态分区的内 存分配与回收基本相同。,2.对换技术,(3)进程的换进与换出 1)进程的换进从交换区中寻找处于“就绪”状态且换出时间最长的进 程换进。,2.对换技术,2)进程的换出 选择处于阻塞或挂起状态且优先级最低的进程换出。(注:正在被共享的程序段或数据不能换出),2

12、.对换技术,注意:对换技术没有从逻辑上扩充主存空间给用户使用(即 不提供虚拟地址空间)!,7.5 基本分页存储管理方式(不支持页面对换功能),1.基本概念 页:将进程的逻辑地址空间分成若干大小相等的片,这样的片称为页面,页面从0开始连续编号,如0,1,2, 物理块:将内存地址空间分成与页面大小相同的存储块,称之为物理块或页框。 有效地址:也称“虚拟地址”或“相对地址”,有效地址用一数对 (p,d)表示,结构如下:,有效地址结构:,例如:假设一进程的有效地址空间为A,页面的大小为L, 则:页号: p=INTA/L页内位移量:d=A MOD L 如:A=2748,L=1024 则:P=INT247

13、8/1024=2,d=2478 MOD 1024=430,7.5 基本分页存储管理方式,2.页表 在简单分页系统中,系统以存储块为单位把主存分配给进程,并且, 分配给每一进程的各存储块不一定是相邻和连续的。 进程页表:进程的页面映像表,结构如下:,进程页表,每个进程有一张对应的进程页表。,7.5 基本分页存储管理方式,例如:页面的大小为1KB,求逻辑地址4101的页号和页内位移。,得到页号p=4,页内位移d=5,7.5 基本分页存储管理方式,注意: 页面的大小是由机器的地址机构决定的,即由硬件决定。 对特定的计算机系统,其地址结构是一定的。 为了减少页号和页内位移的计算时间,一般规定页面的 大

14、小为2的幂(与机器内部的二进制数的表示一致), 且长在29212之间,这样可以根据页面的长度方便地计 算出页号和页内位移。,(1)基本地址变换机构,3.地址变换,越界中断,有效地址,物理地址,页表寄存器,页表,页表寄存器PTR:存放页表在内存的首地址和页表的长度。,页 表 一 般 常驻 内 存,问题: CPU在这样的地址变换机构存取一个数据时,需要访问内存几次?,快表:是一组高速缓冲寄存器,用来存放当前访问过的页表项,以减少地址转换过程中的时间花费。 快表的表目结构:系统中快表的表目一般在64256个,快表的访问速度比普通主存要高出一个数量级。一般以并行的方式查找快表中的各表目。,(2)带有快

15、表的地址变换机构,页号,物理块号,进程号,访问权限,(2)带有快表的地址变换机构,有效地址,物理地址,页表,页表寄存器,快表,输 入 寄 存 器,带有快表的地址变换过程如下:,CPU给出 有效地址,将页号P 送入快表,P是否在?,读出物理块号,查找页表,将新页号写入快表 (若快表已满需要进行置换),读出物理块号,P是否越界?,否,是,物理寄存器,查找页表和快表是同时进行的,如快表中有查找的页号,则终止对 页表的查找。,假设:有一个32位的计算机系统,那么它的逻辑地址空间应是232,又假设该系统是一个分页系统,且页面的大小规定为1KB,即210。那么页表长度应是232/ 210=222。再假设每

16、个页表项占4个字节,则页表所占的内存空间就是22222=224个字节,是16MB。,4.两级页表,4.两级页表,(1)原理: 将页表分成与内存物理块大小相等的页,在内存中采用离散方式存放; 只把当前使用的那部分页表项调入内存。,(2)两级页表的逻辑结构,外层页表:将页表进行分页,并为其建立一张页表。每个页表分页在外层页表中占一表项,表项的内容为页表页在内存中对应的物理块号。,0 1 2 3 4 .114 1024,1011,1078,0 1 2 n,第0号,第n号,第1号,外层页表 (页目录),页表,0 1 ,页表分页,(3)两级页表的地址变换,1)逻辑地址结构,2)地址变换过程,外部页表的始

17、址,物理寄存器,P2,P1,问题:若在一个两级页表的存储器管理系统中,某 指令对应的有效地值为(1,10,253),根据下表求该指令的物理地址。,1号页表分页,10,第1205号物理块,第208号物理块,Abdc Int x=20; dfg Asfsdagdhhgj,物理块号为208,块内位移为253 物理地址=1024208+253,问题 :,已知某系统的页面大小为4KB,每个页表项大小占4B,现采用多层分页策略映射64位有效地址空间。请问:若限定最高层页表的大小占1页,应采用几层分页策略?,6层,4.5 分段存储管理方式,1.为什么要引入分段存储管理方式 分段共享和保护 动态链接 动态增长

18、 方便编程 2.分段管理的基本原理 将进程的地址空间划分为若干个逻辑段,段的长度由逻 辑信息本身的长度决定。每一段占一个连续内存分区。,分段一般在编译时由编译程序完成。,3.分段管理的逻辑地址结构,例:,4.分段管理的地址变换和数据结构,(1)段表 系统为每个进程建立一张段映射表,称为段表。,0 1 2 ,段号,段表,内存,(2)分段管理的地址变换机构,0 1 2 ,物理地址(4196),段表寄存器,逻辑地址,5.分页与分段的比较 页是信息的物理单位;而段是信息的逻辑单位 页的大小固定;而段的大小是由它代表的逻辑信息来决定 分页管理的地址空间是一维的,而分段管理的地址空间是二维的,4.5 分段

19、存储管理方式,6.分段管理的共享和保护 (1)段的共享对于那些被多个程序共享的段,在内存中只保留一个副本。副本采用可重入代码。可重入代码:又称“纯代码”,是一种允许多个进程同时访问的代码。可重入代码在被访问过程中不允许任何进程对其进行修改。,4.5 分段存储管理方式,分段共享的示意如下图:,(2)段的保护 段式管理的保护方式主要有两种: 地址越界保护(上、下界寄存器或基址+限长寄存器) 存储保护键法(每个存储块分配一个单独的保护键,每个进入系统的作业也赋予一保护键,相当于钥匙。) 存取控制,4.5 分段存储管理方式,4.6 段页式存储管理方式,1.基本原理首先,将用户程序中所包含的具有独立逻辑

20、功能的程 序或数据分成 若干个段,并拥有各自的段号。然后再将 每个段划分成若干个页,最后不足一页的部分也占一页。 2.数据结构 1、段表 2、段页表 3、段表寄存器 三者的关系如下图:,内存,段表,0号段页表,1号段页表,段表寄存器,4.6 段页式存储管理方式,3.地址变换 (1)逻辑地址结构(2)地址变换过程,4.6 段页式存储管理方式,0 1 2 ,段表,页表,物理地址,逻辑地址,4.6 段页式存储管理方式,问题:1.在段页式存储管理方式下,对一数据或指令的存取至少需要访问几次内存? 2.段页式存储器管理系统的主要缺点是什么?你认为应如何改进?,作业7:,1. P165:8.11 2.某虚

21、拟存储器的用户空间共有32个页面,每页1KB,主存16KB。试问: (1)逻辑地址的有效位是多少? (2)物理地址需要多少位?(3)假定某时刻系统用户的第0,1,2,3页分别分配的物理块号为5,10,4,7,试将虚地址0A5C和093C变换为物理地址 ? 3.说明静态重定位和动态重定位的区别 。,页面大小:2KB=211B,页内位移占11位,逻辑地址空间:16页=24页,页号占4位,内存空间大小:8个物理块=8*2KB=16KB,10K,14K,20K,7K,9K,12K,15K,(1)12KB,(2)10KB,(3)15KB,(4)18KB,(5)12KB,12K,10K,18K,15K,12k,18K,不能分配的处理方法:(1)交换技术 (2) 挂起该进程,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报