操作系统存储管理ppt课件.ppt

上传人:牧羊曲112 文档编号:2156911 上传时间:2023-01-20 格式:PPT 页数:54 大小:1.04MB
返回 下载 相关 举报
操作系统存储管理ppt课件.ppt_第1页
第1页 / 共54页
操作系统存储管理ppt课件.ppt_第2页
第2页 / 共54页
操作系统存储管理ppt课件.ppt_第3页
第3页 / 共54页
操作系统存储管理ppt课件.ppt_第4页
第4页 / 共54页
操作系统存储管理ppt课件.ppt_第5页
第5页 / 共54页
点击查看更多>>
资源描述

《操作系统存储管理ppt课件.ppt》由会员分享,可在线阅读,更多相关《操作系统存储管理ppt课件.ppt(54页珍藏版)》请在三一办公上搜索。

1、第四章 存储器管理,本章主要内容,程序的装入和链接 连续分配方式 基本分页存储管理方式 基本分段存储管理方式 虚拟存储器的基本概念 请求分页存储管理方式 页面置换算法 请求分段存储管理方式,存储器概述及相关概念,1 存储体系 存储器的层次结构:,Cache,主存,磁盘,高速缓存Cache:少量的、非常快速、昂贵、易变的内存RAM:若干兆字节、中等速度、中等价格、易变的 磁盘:数百兆或数千兆字节、低速、价廉、不易变的,由操作系统协调这些存储器的使用 重要性:直接存取要求内存速度尽量快到与CPU取指速度相匹配,大到能装下当前运行的程序与数据,否则CPU执行速度就会受到内存速度和容量的影响而得不到充

2、分发挥,内存:是由存储单元(字节或字)组成的一维连续的地址空间,简称内存空间。用来存放当前正在运行程序的代码及数据,是程序中指令本身地址所指的、亦即程序计数器所指的存储器,内存可以分为:系统区:用于存放操作系统 用户区:用于装入并存放用户程序和数据,2 地址映射(地址重定位,地址变换),(1)逻辑地址(相对地址,虚地址)(2)物理地址(绝对地址,实地址)(3)地址映射,地址映射,Load A 200 3456。,1200,物理地址空间,Load A data1data1 3456,源程序,Load A 200 3456,0,100,200,编译连接,逻辑地址空间,BA=1000,(1)逻辑地址

3、(相对地址,虚地址),用户的程序经过汇编或编译后形成目标代码,目标代码通常采用相对地址的形式,其首地址为0,其余指令中的地址都相对于首地址而编址 不能用逻辑地址在内存中读取信息,(2)物理地址(绝对地址,实地址)内存中存储单元的地址,可直接寻址,(3)地址映射,为了保证CPU执行指令时可正确访问存储单元,需将用户程序中的逻辑地址转换为运行时由机器直接寻址的物理地址,这一过程称为地址映射,1200,3456,.,.,.,.,.,.,LOAD A 200,.,.,.,.,.,.,0,100,200,300,.,.,.,.,.,.,.,.,.,LOAD A 200,3456,逻辑地址空间,1300,

4、1400,1500,物理地址空间,200,偏移,+,1000,基址,原因:当程序装入内存时,操作系统要为该程序分配一个合适的内存空间,由于程序的逻辑地址与分配到内存物理地址不一致,而CPU执行指令时,是按物理地址进行的,所以要进行地址转换,3、存储扩充,4、存储保护,4.1 程序的装入和链接,图 4-1 对用户程序的处理步骤,4.1.1 程序的装入,1.绝对装入方式(Absolute Loading Mode),程序中所使用的绝对地址,既可在编译或汇编时给出,也可由程序员直接赋予。但在由程序员直接给出绝对地址时,不仅要求程序员熟悉内存的使用情况,而且一旦程序或数据被修改后,可能要改变程序中的所

5、有地址。因此,通常是宁可在程序中采用符号地址,然后在编译或汇编时,再将这些符号地址转换为绝对地址。,2.可重定位装入方式(Relocation Loading Mode),图 4-2 作业装入内存时的情况,3.动态运行时装入方式(Denamle Run-time Loading),动态运行时的装入程序,在把装入模块装入内存后,并不立即把装入模块中的相对地址转换为绝对地址,而是把这种地址转换推迟到程序真正要执行时才进行。因此,装入内存后的所有地址都仍是相对地址。,4.1.2 程序的链接,1.静态链接方式(Static Linking),图 4-3 程序链接示意图,在将这几个目标模块装配成一个装入

6、模块时,须解决以下两个问题:(1)对相对地址进行修改。(2)变换外部调用符号。,2.装入时动态链接(Loadtime Dynamic Linking),装入时动态链接方式有以下优点:便于修改和更新。(2)便于实现对目标模块的共享。,3.运行时动态链接(Run-time Dynamic Linking),近几年流行起来的运行时动态链接方式,是对上述在装入时链接方式的一种改进。这种链接方式是将对某些模块的链接推迟到执行时才执行,亦即,在执行过程中,当发现一个被调用模块尚未装入内存时,立即由OS去找到该模块并将之装入内存,把它链接到调用者模块上。凡在执行过程中未被用到的目标模块,都不会被调入内存和被

7、链接到装入模块上,这样不仅可加快程序的装入过程,而且可节省大量的内存空间。,4.2 连续分配方式,4.2.1 单一连续分配,这是最简单的一种存储管理方式,但只能用于单用户、单任务的操作系统中。采用这种存储管理方式时,可把内存分为系统区和用户区两部分,系统区仅提供给OS使用,通常是放在内存的低址部分;用户区是指除系统区以外的全部内存空间,提供给用户使用。,4.2.2 固定分区分配,1.划分分区的方法,分区大小相等,即使所有的内存分区大小相等。(2)分区大小不等。每个分区装一个且只能装一个作业,2.内存分配,图 4-4 固定分区使用表,固定分区的管理设置内存分配表内存分配:单一直接内存回收:简单缺

8、点:内存利用率不高,分区号,起始地址,长度,状态,进程名,基本思想 内存不是预先划分好的,而是当作业装入时,根据作业的需求和内存空间的使用情况来决定是否分配。若有足够的空间,则按需要分割一部分分区给该进程;否则令其等待主存空间,4.2.3 动态分区分配,1.分区分配中的数据结构,空闲分区表。记录了空闲区起始地址和长度(2)空闲分区链。,图 4-5 空闲链结构,2.分区分配算法,首次适应算法FF。(2)循环首次适应算法,该算法是由首次适应算法演变而成的。(3)最佳适应算法。,首先适配算法:当接到内存申请时,从头开始查空闲块表,找到第一个不小于请求的空块,将其分割并分配(特点:简单、快速分配)演变

9、:循环首次适应算法。分配时不在从头开始扫描,而是从上一次分配的位置开始向后扫描,循环往复。,最佳适配算法:,接到内存申请时,在空闲块表中找到一个不小于请求的最小空块进行分配(特点:用最小空间满足要求),最坏适配算法:,接到内存申请时,在空闲块表中找到一个不小于请求的最大空块进行分配(特点:当分割后空闲块仍为较大空块),0K,15K,38K,48K,68K,80K,110K,120K,空闲区表,已分配区表,0K,15K,38K,48K,68K,80K,110K,120K,空闲区表,已分配区表,85K,98K,空闲区按从小到大排列时,最先适用分配算法能尽可能使用低地址区,从而高地址空间有较大的空闲

10、区容纳大的作业。最优适应分配算法的主存利用率最好,但可能会导致空闲区分割下来的部分很小。最坏适应分配算法:它选择最大空闲区,使得分配后剩余下来的空闲区不会太小,仍能用于再分配。,分配算法比较,分配算法比较,搜索空闲区速度及主存利用率:最先适应分配、最佳适应算法比最坏适应算法性能好。如果空闲区按从小到大排列,则最先适用分配算法等于最优适应分配算法。如果空闲区按从大到小排列,则最先适用分配算法等于最坏适应分配算法。,最先适应算法简单、快速,在实际的操作系统中用得较多;其次是最佳适应算法。,回收算法,(1)其邻近都有进程(A和B)上下不相邻(2)一边有进程(A或B)上邻、下邻(3)两边均为空闲区上下

11、相邻,A X B,A B,A X,A,X B,B,x,变为,变为,变为,变为,X终止前,X终止后,3.分区分配操作,1)分配内存,图 4-6 内存分配流程,碎片问题:,经过一段时间的分配回收后,内存中存在很多很小的空闲块。它们每一个都很小,不足以满足分配要求;但其总和满足分配要求。这些空闲块被称为碎片 造成存储资源的浪费,4.2.4 可重定位分区分配,碎片问题的解决:,紧凑技术:通过在内存移动程序,将所有小的空闲区域合并为大的空闲区域(紧缩技术,紧致技术,浮动技术,搬家技术)问题:开销大;移动时机,动态重定位的引入 由于有大量的内存空间碎片,如果要将他们进行合并操作,以使新作业得以装入内存执行

12、,那么原来装入的作业就要被移动,而不再停留在原来的位置了。即每次移动后,需要对移动了的程序或数据进行重定位。,图 4-8 紧凑的示意,2.动态重定位的实现,图 4-9 动态重定位示意图,增加一个重定位寄存器,用来存放程序的起始地址。,3.动态重定位分区分配算法,图 4-10 动态分区分配算法流程图,4.2.5 交换技术(swapping),当内存空间紧张时,系统将内存中某些进程暂时移到外存,把外存中某些进程换进内存,占据前者所占用的区域,这种技术是进程在内存与外存之间的动态调度。,交换技术实现中的几个问题:1、选择原则 即:将哪个进程换出/换入内存?例子:分时系统,时间片轮转法或基于优先数的调

13、度算法,在选择换出进程时,要确定换出的进程是要长时间等待的,(1)进程的换出。每当一进程由于创建子进程而需要更多的内存空间,但又无足够的内存空间等情况发生时,系统应将某进程换出。其过程是:系统首先选择处于阻塞状态且优先级最低的进程作为换出进程,然后启动盘块,将该进程的程序和数据传送到磁盘的对换区上。若传送过程未出现错误,便可回收该进程所占用的内存空间,并对该进程的进程控制块做相应的修改。,(2)进程的换入。系统应定时地查看所有进程的状态,从中找出“就绪”状态但已换出的进程,将其中换出时间(换出到磁盘上)最久的进程作为换入进程,将之换入,直至已无可换入的进程或无可换出的进程为止。,2、交换时机的

14、确定 何时需发生交换?例子:只要不用就换出(很少再用)只在内存空间不够或有不够的危险时换出,3、交换时需要做哪些工作?需要一个盘交换区:必须足够大以存放所有用户程序的所有内存映像的拷贝;必须对这些内存映像的直接存取4、换入回内存时位置的确定 换出后再换入的内存位置一定要在换出前的原来位置上吗?受地址“绑定”技术的影响,即绝对地址产生时机的限制.,2.对换空间的管理,采用连续空间的分配方式,以提高进程换入/换出的速度。为了能对对换区中的空闲盘块进行管理,在系统中应配置相应的数据结构,以记录外存的使用情况。用空闲分区表或空闲分区链。在空闲分区表中的每个表目中应包含两项,即对换区的首址及其大小,它们的单位是盘块号和盘块数。,

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

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号