操作系统复习4_存储器管理

上传人:cl****1 文档编号:457791699 上传时间:2023-09-18 格式:DOC 页数:15 大小:177KB
返回 下载 相关 举报
操作系统复习4_存储器管理_第1页
第1页 / 共15页
操作系统复习4_存储器管理_第2页
第2页 / 共15页
操作系统复习4_存储器管理_第3页
第3页 / 共15页
操作系统复习4_存储器管理_第4页
第4页 / 共15页
操作系统复习4_存储器管理_第5页
第5页 / 共15页
点击查看更多>>
资源描述

《操作系统复习4_存储器管理》由会员分享,可在线阅读,更多相关《操作系统复习4_存储器管理(15页珍藏版)》请在金锄头文库上搜索。

1、第一章 存储器管理4.1 存储器的层次结构存储器应容量大,便宜,速度跟上处理器4.1.1 多级存储器结构通常有三层,细分为六层,如图4-1,越往上,速度越快,容量越小,价格越贵。寄存器和主存又称可执行存储器,进程可直接用指令访问,辅存只能用I/O访问.4。1.2 主存储器与寄存器 1.主存储器-内存,保存进程运行时的程序和数据。CPU与外围设备交换的信息一般也依托于主存储器地址空间。为缓和访存速度远低于CPU执行指令的速度,在计算机系统中引入了寄存器和高速缓存。2.寄存器-与CPU协调工作,用于加速存储器的访问速度,如用寄存器存放操作数,或用地址寄存器加快地址转换速度等。4.1。3 高速缓存和

2、磁盘缓存1.高速缓存-根据程序执行的局部性原理将主存中一些经常访问的信息(程序、数据、指令等)存放在高速缓存中,减少访问主存储器的次数,可大幅度提高程序执行速度。2。磁盘缓存-将频繁使用的一部分磁盘数据和信息,暂时存放在磁盘缓存中,可减少访问磁盘的次数。它依托于固定磁盘,提供对主存储器存储空间的扩充,即利用主存中的存储空间,来暂存从磁盘中读/写入的信息。4。2 程序的装入和链接多道程序运行,需先创建进程。而创建进程第一步是将程序和数据装入内存。将源程序变为可在内存中执行的程序,通常都要经过以下几个步骤:编译若干个目标模块;链接-链接目标模块和库函数,形成装入模块;装入-将装入模块装入内存。图

3、4-2 对用户程序的处理步骤4.2。1 程序的装入无需连接的单目标模块装入(理解装入方式)1. 绝对装入方式(Absolute Loading Mode) 只适用单道程序环境如果知道程序的内存位置,编译将产生绝对地址的目标代码,按照绝对地址将程序和数据装入内存。由于程序的逻辑地址与实际内存地址完全相同,故不须对程序和数据的地址进行修改。绝对地址:可在编译时给出或由程序员直接赋予。若由程序员直接给出,不利于程序或数据修改,因此,通常是在程序中采用符号地址,然后在编译或汇编时转换为绝对地址。2. 可重定位装入方式(Relocation Loading Mode) -适于多道程序环境多道程序环境下,

4、编译程序不能预知目标模块在内存的位置。目标模块的起始地址是0,其它地址也都是相对于0计算的。此时应采用可重定位装入方式,根据内存情况,将模块装入到内存的适当位置,如图43作业装入内存时的情况 。3. 动态运行时装入方式(Dynamic Run-time Loading) -适于多道程序环境可重定位装入方式并不允许程序运行时在内存中移动位置.但是,在运行过程中它在内存中的位置可能经常要改变,此时就应采用动态运行时装入方式。动态运行时的装入程序,在把装入模块装入内存后,并不立即把装入模块中的相对地址转换为绝对地址,而是把这种地址转换推迟到程序真正执行时才进行。因此,装入内存后的所有地址都仍是相对地

5、址。问题:程序装入内存后修改地址的时机是什么?4.3 连续分配方式4。3.3 动态分区分配根据进程需要动态分配内存1. 分区分配中的数据结构 (1) 空闲分区表用若干表目记录每个空闲分区的分区序号、分区始址及分区的大小等数据项。(2) 空闲分区链-为实现对空闲分区的分配和链接,在每分区起始部分,设置前向指针,尾部则设置一后向指针。为检索方便,在分区前、后向指针中,重复设置状态位和分区大小表目。当分区被分配后,把状态位由“0”改为“1”时,前、后向指针失去意义.图 45 空闲链结构2. 分区分配算法(P123)1)首次适应算法(firstfit)空闲分区链以地址递增次序链接每次按分区链的次序从头

6、查找,找到符合要求的第一个分区。2) 循环首次适应算法FF算法的变种从上次找到的空闲分区位置开始循环查找,找到后,修改起始查找指针.3) 最佳适应算法-空闲分区按容量从小到大排序把能满足要求的、最小的空闲分区分配给作业4) 最坏适应算法空闲分区按容量从大到小排序挑选最大的空闲区分给作业使用;5) 快速适应算法根据容量大小设立多个空闲分区链表3. 分区分配操作1.分配内存请求分区u。size;空闲分区m。size;m。sizeu。sizesize,说明多余部分太小, 不再切割,将整个分区分配给请求者;否则从该分区中划分一块请求大小的内存空间,余下部分仍留在空闲分区链。如图4-6 内存分配流程。2

7、.回收内存(1) 回收区与插入点的前一空闲分区F1相邻:合并,修改F1大小。(2) 回收区与后一空闲分区F2相邻:合并,修改首地址和大小。 (3) 回收区同时与前、后两个分区邻接:合并,修改F1大小,取消F2。(4) 回收区不邻接:新建表项,填写首地址和大小,并插入链表。如图 图 46 内存分配流程4.3。6 可重定位分区分配1 动态重定位的引入例:在内存中有四个互不邻接的小分区,容量分别为10KB、30KB、14KB和26KB。若现有一作业要获得40KB的内存空间,因连续空间不足作业无法装入。可采用的一种解决方法是:通过移动内存中作业的位置,以把原来多个分散的小分区拼接成一个大分区的方法,称

8、为“拼接或“紧凑.由于用户程序在内存中位置的变化,在每次“紧凑”后,都必须对移动了的程序或数据进行重定位。图 4-8 紧凑的示意4.3.7 对换(即中级调度)1. 对换(Swapping)的引入“活动阻塞”进程占用内存空间;外存上的就绪作业不能进入内存运行。所谓“对换”,是指把内存中暂时不能运行的进程或者暂时不用的程序和数据,调出到外存上,以便腾出足够的内存空间;再把已具备运行条件的进程或所需要的程序和数据,调入内存。对换是提高内存利用率的有效措施。根据对换单位可分为:进程对换、页面对换和分段对换。为了能实现对换,系统应具备以下三方面功能:对换空间的管理、进程的换出与换入 2. 进程的换出与换

9、入(1)进程的换出选择阻塞且优先级最低的进程,将它的程序和数据传送到磁盘对换区上。回收该进程所占用的内存空间,并对该进程的进程控制块做相应的修改。 (2)进程的换入找出“就绪” 但已换出到磁盘上时间最久的进程作为换入进程,将之换入,直至已无可换入的进程.4.4 基本分页存储管理方式前面的连续分配方案会形成许多“碎片”,“紧凑”方法可以解决碎片但开销大。是否允许进程离散装入?离散单位不同,称分页式存储和分段式存储。不具备对换功能称为“基本分页式”,支持虚拟存储器功能称为“请求基本分页式”.4。4.1 页面与页表1。 页面1) 页面和物理块-将进程的逻辑地址空间分成若干个大小相等的片,称为页面,并

10、为各页编号。相应地把内存空间分成与页面相同大小的若干个存储块,称为物理块,也同样编号。分配时,将进程中的页装入到物理块中,最后一页经常装不满一块而形成 “页内碎片”。 2) 页面大小-页面的大小应选择适中。页面太小,内存碎片减小,利用率高;但页表过长,占大量内存。页面较大,页表长度小;但页内碎片大。因此,页面的大小应选择得适中,且页面大小应是2的幂,通常为512 B8 KB.2. 地址结构分页地址中的地址结构如下:31 12 11 0页号P位移量W它含有两部分:页号P(1231位,最多有1M页)和页内位移量W(011位,每页的大小4KB) ;对某特定机器,其地址结构是一定的。若给定一个逻辑地址

11、空间中的地址为A,页面的大小为L,则页号P和页内地址d可按下式求得:3. 页表-实现从页号到物理块号的地址映射 4.4。2 地址变换机构任务:将逻辑地址转换为物理地址;页内地址变换:因页内地址与物理地址一一对应, 可直接转换;页号变换:页表可实现从逻辑地址中页号到内存中物理块号的变换;1基本的地址变换机构a。 页表功能可由一组专门的寄存器实现(原理); b. 页表大多驻留内存,系统中只设置一页表寄存器来存放页表在内存的始址和页表长度(实际操作); c。 进程未执行时,页表始址和长度存放在PCB中。执行时才将这两个数据装入页表寄存器中(过程)。图 4-12 分页系统的地址变换机构2. 具有快表的

12、地址变换机构a。 仅用页表寄存器时,CPU每存取一数据要两次访问内存(页表地址变换-数据);b. 为提高地址变换速度,可在地址变换机构中增设一具有并行查寻能力的特殊高速缓冲寄存器用以存放当前访问的那些页表项,称为“快表”. c。 -在CPU给出逻辑地址,将页号P送入快表 页号匹配,读物理块号后送物理地址寄存器 无匹配页号,再访问内存中页表,把从页表项中读出的物理块号送地址寄存器;同时,再将此页表项存入到快表中。 如快表已满,则OS须找到一换出页表项换出。为什么增加“快表?为了提高地址变换速度,可在地址变换机构中增设一个具有并行查寻能力的特殊高速缓冲寄存器,又称为“联想寄存器(Associati

13、ve Memory),或称为“快表“快表”有何缺点?图 4-13 具有快表的地址变换机构4。5 基本分段存储管理方式4.5。1 分段存储管理方式的引入(为什么引入)推动内存从固定分配到动态分配直到分页存储,主要动力是内存利用率,而引入分段存储管理方式,主要是为了满足用户和程序员的下述一系列需要:1)方便编程-把作业按逻辑关系划分为若干段,每段有自己的名字和长度,并从0开始编址。LOAD 1,A|; STORE 1,B|2) 信息共享段是信息的逻辑单位。为实现共享,存储管理应与用户程序分段的组织方式相适应。 3) 信息保护-对信息的逻辑单位进行保护,应分段管理。4) 动态增长-分段存储能解决数据

14、段使用过程中动态增长。 5) 动态链接运行过程中动态调入以段为单位的目标程序。4.5。2 分段系统的基本原理 1。 分段作业划分为若干段,如图416,每个段用段号来代替段名,地址空间连续。段的长度由逻辑信息长度决定,因而各段长度不等.其逻辑地址由段号(段名)和段内地址所组成,结构如下: 31 16 15 0段号段内地址该地址结构中,允许一个作业最多有64K个段,每个段的最大长度为64KB。编译程序能自动根据源程序产生若干个段。2. 段表每个段一个连续分区,各段可以离散存入不同分区。为每个进程建立一张段映射表(段表),其中每段占一个表项,记录该段在内存中的始址(又称为“基址”)和段长度。常将段表放在内存中。图 4-16 利用段表实现地址映射 3. 分页和分段的主要区别(1) 页是信息的物理单位,分页是为提高内存的利用率,是为满足系统管理的需要.段则是信

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 创业/孵化

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号