第4章存储管理1.ppt

上传人:本田雅阁 文档编号:2082721 上传时间:2019-02-11 格式:PPT 页数:35 大小:131.51KB
返回 下载 相关 举报
第4章存储管理1.ppt_第1页
第1页 / 共35页
第4章存储管理1.ppt_第2页
第2页 / 共35页
第4章存储管理1.ppt_第3页
第3页 / 共35页
亲,该文档总共35页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《第4章存储管理1.ppt》由会员分享,可在线阅读,更多相关《第4章存储管理1.ppt(35页珍藏版)》请在三一文库上搜索。

1、第四章 存储器管理,存储器是计算机系统的重要资源, 虽然存储器的容量迅速增加, 但软件的需求也同样在急剧膨胀, 存储器仍然是紧俏资源。存储器管理是操作系统的最重要部分。 “瓶颈”:关键、紧张 帕金森定律(你用的人多,你需要的人员更多) 内存多大,程序多长,4.1 概述 4.1.1 存储体系,Cache,主存,磁盘,存储器的层次结构:,高速缓存Cache: 数百K字节、非常快速、昂贵、易变 内存RAM: 数M到数百M字节、中等速度、中等价格、易变 磁盘: 数M到数百G字节、低速、价廉、断电仍保存,内存空间: 是由存储单元(字节或字)组成的一维连续的地址空间; 内存空间用来存放当前正在运行程序的代

2、码及数据, 是程序中指令本身地址所指的存储器、亦即程序计数器所指的存储器。 内存的要求: 能直接存取, 访问速度尽量快, 应与CPU 取指速度相匹配, 足够大, 能装下当前运行的程序和数据, 否则CPU执行速度就会受到内存速度和容量的影响而得不到充分发挥。 内存可以分为: 系统区:用于存放操作系统 用户区:用于装入并存放用户程序和数据。,4.1.2 存储管理目的,1. 充分利用内存, 为多道程序并发执行提供存储基础 2. 尽可能方便用户使用 自动装入用户程序 用户程序中不必考虑硬件细节 3. 系统能够解决程序空间比实际内存空间大的问题 4. 程序在执行时可以动态伸缩 5. 存储保护与安全 6.

3、 共享与通信 7. 了解有关资源的使用状况 8. 实现的性能和代价, 性能高时空开销小,4.1.3 存储管理的内容,1. 内存空间的管理、分配与回收 记录内存的使用情况(内存分配回收的依据) 设置相应的内存分配表 内存空间划分: 等长或不等长 确定分配算法, 实施内存分配 回收内存 分配回收方式: 静态分配与动态分配,2. 存储共享 内存共享:两个或多个进程共用内存中相同区域 目的:节省内存空间,提高内存利用率 实现进程通信(数据共享) 共享内容: 代码共享,要求代码为纯代码 数据共享 3. 存储保护与安全 为多个程序共享内存提供保障,使内存中的各道程序只能访问它自己的区域, 避免各道程序间相

4、互干拢, 特别是当一道程序发生错误时, 不致于影响其他程序的运行。通常由硬件完成保护功能, 由软件辅助实现。,保护范围 保护系统程序区不被用户侵犯(有意或无意的) 不允许用户程序读写不属于自己地址空间的数据 (系统区地址空间, 其他用户程序的地址空间) 保护方法防止地址越界 每个进程都有自己的地址空间, 应防止发生地址越界; 当程序要访问某内存单元时, 由硬件检查是否越界, 如未越界则执行, 否则产生地址越界中断。 硬件提供一对寄存器: (上界寄存器/下界寄存器) 基址寄存器: 存起始地址。 限长寄存器: 存长度 权限保护: 对于多进程共享的存储区域, 各进程都有自己的访问权限; 如果越权访问

5、, 则发生读写保护。,4. 内存“扩充” 通过虚拟存储技术实现 用户在编制程序时,不应该受内存容量限制,所以要采用一定技术来“扩充“内存的容量,使用户得到比实际内存容量大的多的内存空间。 具体实现是在硬件支持下,软硬件相互协作,将内存和外存结合起来统一使用。通过这种方法把内存扩充,使用户在编制程序时不受内存限制。 5. 程序的装入 创建进程的第一件事, 就是将程序和数据装入内存。对不同的地址映射方式对应有多种装入方式,4.2 程序的装入和链接,源程序,编译程序 或汇编程序,目标 模块,链接程序,装入 模块,装入程序,装入阶段,编译阶段,内存中 可执行 代码,链接阶段,对用户程序的处理过程,4.

6、2.1 地址映射,地址映射有称为地址重定位, 地址变换 逻辑地址 地址映射 物理地址 (相对地址, 虚地址) (绝对地址, 实地址),(1)逻辑地址(相对地址,虚地址) 用户的程序经过汇编或编译后形成目标代码, 目标代码通常采用相对地址的形式, 其首地址为0, 其余指令中的地址都相对于首地址而编址。 不能用逻辑地址直接在内存中读取信息。 (2)物理地址(绝对地址,实地址) 内存中存储单元的地址, 可直接寻址。 (3)地址映射 为了保证 CPU执行指令时可正确访问存储单元, 需将用户程序中的逻辑地址, 转换为运行时由机器直接寻址的物理地址, 这一过程称为地址映射。,地址重定位,地址映射的原因 当

7、程序装入内存时, 操作系统要为该程序分配一个合适的内存空间, 由于程序的逻辑地址与分配到内存物理地址不一致, 而CPU执行指令时, 是按物理地址进行的, 所以要进行地址转换。 静态重定位 当用户程序被装入内存时,一次性实现逻辑地址到物理地址的转换,以后不再转换(一般在装入内存时由软件完成)。 动态重定位 在程序运行过程中要访问数据时再进行地址变换(在逐条指令执行时完成地址映射; 为了提高效率, 此工作一般由硬件地址映射机制来完成; 硬件支持,软硬件结合完成), 硬件上需要一对寄存器的支持。,程序的装入方式 绝对装入方式:编译产生的是绝对地址, 按此绝对地址装入程序和数据。 可重定位装入方式:将

8、逻辑地址映射为物理地址装入, 一次地址变换不再改变称静态重定位。地址变换在装入阶段完成。 动态运行时装入方式:程序运行过程中, 在内存中的位置可以改变, 因此边运行, 边装入。称动态重定位。地址变换在运行阶段完成。,4.2.2 程序的装入,程序的链接方式 静态链接方式:装入前进行链接, 将所有模块的相对地址链接起来, 形成整个程序的连续的逻辑地址。 装入时动态链接:边装入、边链接, 各模块独立分开装入内存的不同位置, 便于修改, 便于共享。 运行时动态链接:边运行、边装入, 有些模块往往不会运行到(如错误处理), 不必装入,效率高节省内存。,4.2.3 程序的链接,4.3 各种存储管理方案,单

9、用户(连续区)存储管理: 单用户系统在一段时间内, 只有一个进程在内存, 故内存分配管理十分简单, 内存利用率低。内存分为两个区域, 一个供操作系统使用, 一个供用户使用。,4.3.1 分区存储管理方案,系统把内存用户区划分为若干分区, 分区大小可以相等, 也可以不等。一个进程占据一个分区。 固定分区: 预先把可分配的主存储器空间分割成若干个连续区域, 称为一个分区; 每个分区的大小可以相同也可以不同, 但固定不变, 每个分区装一个作业。 存储分配:如果有一个空闲区, 则分配给进程。 内存管理:设置内存分配表 内存分配: 查找分配表, 找到合适的分区; 回收:简单 缺点:内存利用率不高,4.3

10、.2 可变分区,1、基本思想 内存不是预先划分好的,而是当作业装入时,根据作业的需求和内存空间的使用情况来决定是否分配。若有足够的空间,则按需要分割一部分分区给该进程;否则令其等待主存空间,可变式分区的使用情况,其中,阴影部分为空闲区,(a)已分配区表 (b)未分配区表,2、内存管理的数据结构 1)可变分区分区表 分区说明表由两张表格组成,2) 空闲分区链 (P 108 图 4-5) 将分区分配信息附加在分区中, 记录存贮空间的使用情况。将表格信息放在每个分区的首尾两个字中, 利用表格自己管理自己。表格存放如下一些信息: (1) 状态信息: “0”表示该区空闲, “1”表示已分配。 (2) 该

11、区的大小(以字或块为单位)。 (3) 指针信息: 构成空闲区链。,3.分区分配算法: 首先适配算法: (特点:简单、快速分配) 当接到内存申请时, 查空闲块表, 找到第一个不小于请求的空块, 将其分割并分配。 最佳适配算法: (特点:用最小空间满足要求) 接到内存申请时, 在空闲块表中找到一个不小于请求的最小空块进行分配。 最坏适配算法: (特点:分割后空闲块仍较大) 接到内存申请时, 在空闲块表中找到一个不小于请求的最大空块进行分配。,最佳适配算法的实现: 存储区(空白区)的数据结构:空白区按其容量大小递增连接起来 即:X1X2X3. Xn 设请求分配的容量为S,则从X1开始比较,直至SXi

12、,然后,从Xi中减去S,如有剩余,则处于空白区插入适当位置,否则(SSn),则分配失败。 剩余空白区的处理:如果Xi-SG(参数),则Xi全部给作业,否则,Xi-S插入适当位置。 看起来最佳,实际怎么样?,4.分区分配操作 1)分配内存 P 110 图 4-6 自己看 2)回收内存 根据释放的回收区首址,从空闲分区链中找到相应的插入点,按回收区与空闲分区相邻情况分为4种情况分别处理,能合并的则合并,见P 110 图4-7 。,1.动态重定位的引入 碎片问题:经过一段时间的分配回收后, 内存中存在很多很小的空闲块。它们每一个都很小, 不足以满足分配要求, 但其总和满足分配要求; 这些空闲块被称为

13、碎片。 造成存储资源的浪费 碎片问题的解决: 紧凑技术: (紧缩技术, 浮动技术, 搬家技术) 通过在内存移动程序, 将所有小的空闲区域合并为大的空闲区域。问题: 开销大, 移动时机。 2.动态重定位的实现,4.3.3 可重定位分区分配,动态重定位示意图,3.动态重定位分区分配算法 在动态分区分配算法基础上增加了紧凑功能,按动态分区分配 修改有关数据结构,进行紧凑 形成连续分区 修改有关数据结构,检索空闲分区链,空闲和u.size?,找到u.size?,返回分区号,失败返回,请求分配u.size分区,4.3.4 对换技术,1.对换的引入 对换技术是在多道环境下扩充内存采用的方法, 用以解决在较

14、小的存储空间中运行较大程序时遇到的矛盾。 对换技术被广泛用于小型分时系统中, 对换技术的发展导致了虚存技术的出现 当内存空间紧张时, 系统将内存中某些进程暂时移到外存, 把外存中某些进程换进内存,占据前者所占用的区域, 这种技术是进程在内存与外存之间的动态调度; 多用于分时系统中。,2.对换的单位: 进程对换 分段对换 页面对换 3.对换空间的管理 1.外存的划分: 文件区和对换区 2.对换区的管理: 连续分配还是离散分配? 3.内存管理方式是否适合对换区的管理?,1) 换出进程的选择: 处于阻塞状态、 优先级最低且驻留时间最长 2) 换出过程 只换出进程非共享部分,共享部分则将共 享计数减1

15、, 结果为0时再将它换出。 3) 进程的换入 选择换入进程申请内存成功则换入 失败则将某些进程换出腾出空间再换入,4. 进程的换出和换入,PC-DOS的存储管理方式,操作系统,代码段,数据段,栈段段,附加段,CS,DS,SS,ES,存储管理目的 充分利用内存、方便用户使用、程序可比内存空间大、 执行时可动态伸缩、存储保护与安全、共享与通信、 了解有关资源的使用状况、实现性能高时空开销小。 2. 存储管理的内容 内存空间的管理、分配与回收、 存储共享、存储保护与安全、内存“扩充” 3. 地址映射(地址重定位, 地址变换) 逻辑地址(相对,虚地址)物理地址(绝对,实地址) 由硬件实现, 分静态重定位、动态重定位 4. 分区存储管理 固定分区、 可变分区(可变分区分区表、空闲分区链) 5. 分区分配算法 首先适配算法、最佳适配算法、最坏适配算法,6.可重定位分区分配 紧凑技术解决碎片问题,重定位寄存器实现动态重定位 7. 对换技术 在多道环境下扩充内存的方法, 小内存运行大程序。 对换的单位:进程对换、分段对换、页面对换。,作业,P142 1、2、5、6、8 上机安排:院机房二楼 电科: 第七、八周 周一、三. 3-4节 电科: 第九、十周 周一、三. 3-4节 计科: 第七、八周 周一. 5-6节 周三. 1-2节,

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

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1