op第四章1

上传人:今*** 文档编号:106908265 上传时间:2019-10-16 格式:PPT 页数:57 大小:2.57MB
返回 下载 相关 举报
op第四章1_第1页
第1页 / 共57页
op第四章1_第2页
第2页 / 共57页
op第四章1_第3页
第3页 / 共57页
op第四章1_第4页
第4页 / 共57页
op第四章1_第5页
第5页 / 共57页
点击查看更多>>
资源描述

《op第四章1》由会员分享,可在线阅读,更多相关《op第四章1(57页珍藏版)》请在金锄头文库上搜索。

1、第四章 存储器管理,4.1 存储器的层次结构 4.2 程序的装入和链接 4.3 连续存储管理方案,第四章 存储器管理 4.1 存储器的层次结构,概述,计算机的存储体系结构,计算机为什么要使用存储器?,冯诺依曼原理,为什么要进行存储管理?,存储器一直以来都是较为珍贵的 系统资源,需要合理使用。,程序的逻辑空间和实际的物理空 间不甚相同,需要进行映射。,4.1.1 存储器的层次结构,1. 存储器的层次结构 在现代计算机系统 中,存储器是信息外理 的来源与归宿,占据重 要位置。但是,在现有 技术条件下,任何一种 存储装置,都无法同时 从速度与容量两方面, 满足用户的需求。实际 上它们组成了一个速度

2、由快到慢,容量由小到 大的存储装置层次。,访问、速度、频度,成本、容量,2.各种存储器,高速缓存Cache: 少量的、非常快速、昂贵、易变的,内存RAM: 若干兆字节、中等速度、中等价格、 易变的,磁盘: 数百兆或数千兆字节、低速、价廉、不易变的,由操作系统协调这些存储器的使用,4.1.2 存储管理的目的,1.使得用户和用户程序不涉及内存物理的细节。 2.自动完成用户程序的装入。 3.提高内存的利用率。 4.解决内存速度与CPU速度不匹配的问题。 5.实现内存共享。,方便使用者,有效利用存储资源,提高系统工作效率。,4.1.2 存储管理的任务 在现代操作系统中,存储管理的主要任务 有以下几个方

3、面:,地址变换(地址再定位),存储资源的分配和回收,存储共享和保护,存储器扩充,覆盖技术 交换技术,4.1.2 存储管理的任务,1)主存的分配、管理与回收:当用户需要内存时,系统为之分配相应的存储空间;不需要时,及时回收,以供其它用户使用。,2)内存共享:两个或多个进程共用内存中相同区域 目的:节省内存空间,提高内存利用率 实现进程通信(数据共享) 共享内容: 代码共享,要求代码为纯代码 数据共享,3)存储保护与安全: 确保多道程序都在各自分配到存储区域内操作,互不干扰, 防止一道程序破坏其它作业或系统文件的信息。 保护目的: 保护系统程序区不被用户侵犯 (有意或无意的) 不允许用户程序读写不

4、属于自己地址空间的数据 (系统区地址空间,其他用户程序的地址空间) 保护过程-防止地址越界 每个进程都有自己独立的进程空间,如果一个进程在运行时所产生的地址在其地址空间之外,则发生地址越界。即当程序要访问某个内存单元时,由硬件检查是否允许,如果允许则执行,否则产生地址越界中断,由操作系统进行相应处理。,4)“扩充”主存容量:为用户提供比主存物理空间大得多的地址空间,以至使用户感觉他的作业是在这样一个大的存储器中运行。,通过虚拟存储技术实现 用户在编制程序时,不应该受内存容量限制,所以要采用一定技术来“扩充”内存的容量,使用户得到比实际内存容量大的多的内存空间 具体实现是在硬件支持下,软硬件相互

5、协作,将内存和外存结合起来统一使用。通过这种方法把内存扩充,使用户在编制程序时不受内存限制,1.定位(存储分配):为具体的程序和数据等分配存储单元或存储区工作。 2.映射:把逻辑地址转换为相应的物理地址的过程。 3.隔离:按存取权限把合法区与非法区分隔,实现存储保护。 4.物理地址(绝对地址,实地址): 内存中存储单元的地址,可直接寻址,5) 地址重定位基本概念,5.逻辑地址(相对地址,虚地址):用户的程序经过汇编或 编译后形成目标代码,目标代码通常采用相对地址的形式, 其首地址为0,其余指令中的地址都相对于首地址而编址。 不能用逻辑地址在内存中读取信息. 6.存储空间:主存中物理单元的集合,

6、物理(绝对)地址 的集合,由装配程序等生成. 7.地址空间:程序用来访问信息所用地址单元的集合,逻辑 (相对)地址的集合,由编译程序生成,5) 地址重定位基本概念,5) 地址重定位,基本概念,符号地址 /名地址,逻辑地址/相对地址 虚拟地址/程序地址,物理地址 /绝对地址,目标文件,定义:当程序被装入内存时,程序的逻辑地址被转换成内存的物理地址,这一过程称为地址重定位(由内存管理单元(MMU)完成)。,地址映射,Load A 200 3456 。 。,1200,物理地址空间,Load A data1 data1 3456,源程序,Load A 200 3456,0,100,200,编译 连接,

7、逻辑地址空间,BA=1000,图41名空间、地址空间、存储空间,常见的地址重定位技术,1.绝对装入(Absolute loading) / 固定地址再定位 程序的地址再定位是在程序执行之前被确定的,也就是在编译连接时直接生成实际存储器地址(物理地址)。在此,程序地址空间和内存地址空间是一一对应的。,逻辑地址,物理地址,一一对应,例如:单片机,MS-DOS中.com格式程序,优点:装入过程简单。缺点:与硬件的结构过于密切,缺乏灵活性。,优点:无需硬件支持,容易实现。早期的操作系统中大多数都采用这种方法。 缺点:必须分配连续的存储区域;执行期间不能扩充存储空间,也不能在内存中移动,内存利用率低,不

8、便于共享。,地址重定位,优点: 程序在执行期间可以换入和换出内存,可以解决内存紧张状态; 可以在内存中移动把内存中的碎片集中起来,可以充分利用空间; 不必给程序分配连续的内存空间,可以较好的利用较小的内存块; 若干用户可以共享同一程序,实现共享。 缺点:需要附加的硬件支持,实现存储管理的软件算法比较复杂。,第四章 存储器管理 4.2 程序的装入和链接,4.2 程序的装入和链接,图 4-2-1 对用户程序的处理步骤,4.2.1 程序的装入,1. 绝对装入方式,程序中所使用的绝对地址,可在编译或汇编时给出, 也可由程序员直接赋予。 但在由程序员直接给出绝对地址时,不仅要求程序员熟悉内存的使用情况,

9、而且一旦程序或数据被修改后,可能要改变程序中的所有地址。因此,通常是宁可在程序中采用符号地址,然后在编译或汇编时,再将这些符号地址转换为绝对地址。,图 4-2-2 作业装入内存时的情况,2. 可重定位装入方式,3. 动态运行时装入方式,动态运行时的装入程序,在把装入模块装入内存后,并不立即把装入模块中的相对地址转换为绝对地址,而是把这种地址转换推迟到程序真正要执行时才进行。因此, 装入内存后的所有地址都仍是相对地址。,图 4-2-3 程序链接示意图,1.静态链接方式,4.2.2 程序的链接,2.装入时动态链接,装入时动态链接方式有以下优点: 便于修改和更新。 (2)便于实现对目标模块的共享。,

10、3.运行时动态链接,这种链接方式是将对某些模块的链接推迟到执行时才执行,即,在执行过程中,当发现一个被调用模块尚未装入内存时,立即由OS去找到该模块并将之装入内存, 把它链接到调用者模块上。凡在执行过程中未被用到的目标模块,都不会被调入内存和被链接到装入模块上,这样不仅可加快程序的装入过程,而且可节省大量的内存空间。,第四章 存储器管理 4.3 连续存储管理方案,从操作系统的发展历史来看,存储管理主要有以下几种方案:,存储管理方案分类,分区存储管理方案:要求连续分配存储空间,且程序要一次性全部装入内存。简单,但是有比较严重的内碎块和外碎块。,段式存储管理方案。不要求连续分配存储空间,段和段之间

11、可以不连续,但程序需要一次性全部装入内存。有比较严重的外碎块。,页式存储管理方案。是一种不连续存储管理方案,也需要一次性全部装入内存。在逻辑地址空间和物理地址空间都采用分页的思想。缺点是每一个作业的最后一页有内碎块。,段页式存储管理方案:是一种不连续存储方案,段式存储管理和页式存储管理的结合。克服了纯分页和纯分段存储管理思想的缺点。,存储管理方案分类,交换技术和覆盖技术。,虚拟存储管理方案。,分区存储管理方案,分区存储管理: 是一种连续分配存储空间的管理方式。曾被广泛地应用于19601970年代的操作系统中。 思想:把内存分为一些大小相等或不等的分区(Partition),装入时每个应用程序占

12、用一个或几个分区,操作系统占用其中一个分区。适用于多道程序系统和分时系统,支持多个程序并发执行。 分类 单一连续分区存储管理 固定分区管理 可变分区管理,4.3.1单一连续分区存储管理,在单道环境下,不管是单用户系统还是单道批处理系统,进程(作业)执行时除了系统占用一部分主存外,剩下的主存区域全部归它占用。主存可以划分为三部分: 内存分为两个区域,一个供操作系统使用,一个供用户使用,用户占用区是一个连续的存储区所以又称单一连续区存储管理。,单一连续分区存储管理,特点:一次只能装入一个程序,程序独占整个用户区,如果程序小于用户区,则剩余的空间浪费,如果大于,则无法装入。,优点:简单,适用于单用户

13、、 单任务的操作系统,不需要 复杂的硬件支持。 缺点:一个作业运行时要占 用整个内存地址空间,对内 存造成了很大的浪费,不支 持大作业。,单一连续区分配采用静态分配和静态重定位方式,亦即作业或进程一旦进入主存,就一直等到它运行结束后才能释放主存。如下图所示的主存分配与回收法。并且由装入程序检查其绝对地址是否超越,即可达到保护系统的目的。,工作流程,4.3.2固定分区管理 -支持多道程序技术,初始化内存空间,分区状态表,实现方法:,程序A,内碎片:指占用分区之内未被利用的空间。,下界寄存器,上界寄存器,已分配,分区4 分区3 分区2 分区1 操作系统,多个等待队列,单个等待队列,分区4 分区3

14、分区2 分区1 操作系统,图 4-3-2 固定分区示意图,4.3.2 固定分区管理,思想:预先不划分内存,当作业需要时向系统申请,系统从其中挖出一块给该作业,其大小等于作业所需内存的大小,然后将剩下的部分再作为空表块, 给下一次分配使用。,4.3.3 可变分区(Dynamic Partitioning),OS,Job1,Job2,Job3,Job4,Q: 如何管理这些空闲区?,内存管理:设置内存空闲块表记录了空闲区起始地址和长度 内存分配:动态分配 内存回收:当某一块归还后,前后空间合并,修改内存空闲块表,Q: 如何管理这些空闲区?,1. 分区分配中的数据结构,分区分配表(见图 4-3-5)

15、(2)空闲分区链,图 4-3-4 空闲链结构,0K,15K,38K,48K,68K,80K,110K,120K,空闲区表,已分配区表,分区分配表:,图 4-3-4 分区分配表,分配算法 按空闲块链接的方式不同,可以有以下四种算法:,分区存储管理方案,最佳适应法,最坏适应法,首次适应法,下次适应法(循环首次适应法),最佳适应算法(best-fit) 分配方法: 将所有的空闲分区按照其容量递增的顺序排列,当要求分配一个空白分区时,由小到 大进行查找,找到最合适的分配。 释放方法: 在整个链表上搜索地址相邻的空闲区,合并后,再插入到合适的位置。 优点: 分配后所剩余的空白块会最小,较大的空闲分区会被

16、保留。 平均,只要查找一半的表格便能找到最佳适应的空白区; 如果有一个空白区的容量正好满足要求,则它 必被选中。 缺点:空白区一般不可能恰好满足要求,在分配之后的剩余部分通常非常小,以致小到无法使用,会形成较多外碎片。,最坏适应算法(worst-fit) 分配方法: 与最佳适应算法相反,将所有的空白分区按容量递减的的顺序排列,最前面的最大的空闲分区就是找到的分区。 释放方法:同于最佳适应算法(best-fit) 优点: 分配的时候,只需查找一次,就可以成功,分配的算法很快。 缺点: 最后剩余的分区会越来越小,不会保留较大的空闲分区,无法运行大程序。,首次适应算法(first-fit),分配方法:将所有的空闲分区按照地址递增的顺序排列,按照分区的先后次序,从头开始查找,符合要求的第一个分区就是要找的分区。,os,Job2,Job4,Job5,os,Job2,Job4,Job5,释放方法(回收),规则:相

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

当前位置:首页 > 高等教育 > 大学课件

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