预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共126页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

第四章存储器管理4.1存储管理概述提高内存利用率“扩充”内存容量信息保护内外存数据传输的控制用户程序控制操作系统控制交换(Swapping):由OS把那在内存中处于等待状态的进程换出内存,就绪进程换入内存。请求调入(Ondemand)和预调入(Onprefetch)内存管理的内容分配结构:放置策略:交换策略:调入策略:回收策略:内存信息的共享与保护上下界保护法保护键法为每个被保护存储块分配一个单独的保护键,在程序状态字中设置相应的开关字段,不同的进程值不一样,匹配时,方可进行访问。界限寄存器与CPU的用户态和核心态工作方式相结合用户态进程只能访问在界限寄存器所规定范围内的内存部分,而核心态进程则可访问整个内存地址空间。4.2程序的装入和链接程序的装入绝对装入方式(AbsoluteLoadingMode)编译程序产生绝对地址目标代码,由装入程序根据装入模块中的地址,将程序和数据装入内存。2.可重定位装入方式(RelocatableLoadingMode)重定位:在装入时对目标程序中的指令和数据地址的修改过程。静态地址重定位:是指作业在装入时随即进行的地址变换方式,这一工作由装配程序完成。优点:无需增加硬件地址变换机构;实现简单。缺点:程序经地址定位后就不能再移动了;程序在存储空间中只能连续分配;多个用户难以共享存于内存中的同一程序。3.动态运行时装入方式(DynamicRun-TimeLoading)程序执行过程中,当访问指令或数据时,才进行的地址变换方法,称为动态重定位。靠硬件地址变换机构实现的。基地址寄存器(重定位寄存器)BR程序虚地址寄存器VR地址MA=(BR)+(VR)优点:可对内存进行非连续分配;提供了实现虚存的基础;有利于程序段的共享。4.2程序的装入和链接程序的链接静态链接:将各模块及库函数链接成一个装配模块,以后不再拆开。装入时动态链接:各目标模块装入内存时,边装入边链接。运行时动态链接:对模块的链接,是在程序执行中,才进行链接。4.3连续分配存储管理方式缺点存储器利用率低缺乏灵活性,程序所需应小于内存,否则提供覆盖。某些系统中安全性差。信息不共享CPU利用率低,周转时间长。固定分区工作原理在系统生成时,将内存划分为若干各分区,每个分区的大小可以不等,一经划分,不能更改。系统对内存的管理和控制通过分区说明表说明各区的区号,大小,起始地址及状态。特点可使多个作业共享内存,但管理简单,内存利用率太低,对工作负荷明确的作业比较合适。4.3连续分配存储管理方式4.3连续分配存储管理方式动态分区工作原理存储空间的划分是在装入作业时进行的,且使分区大小正好适应作业的需要。数据结构空闲分区表:序号,大小,起址,状态空闲分区链:在每个分区中附上一个表格信息,状态(0,1),大小,指针(空白分区才有)4.3连续分配存储管理方式4.3连续分配存储管理方式最佳适应算法空白区按大小递增的顺序链在一起。变量FREE中的始端指针总指向最小的空白区。特点:平均而言,查找时间较少;选择最适合的空白区。形成很多小碎片;找一个大空白区时较慢;回收时费时;先拼接,再把该区插入适当位置。最差适应算法空白区按容量递减次序排列。特点:分配时间快;剩下的空白分区仍可用;各空白区比较均匀地减少,工作一段时间后,就不能满足大空白区的要求;回收麻烦。算法分析特点:有助于多道程序设计;只需要界限地址寄存器,用于存储保护;算法简单,易于实现。但会产生碎片,降低存储器的利用效率;分区的大小,受内存容量限制。几种算法比较:搜索速度,释放速度,空闲区的利用。分区的分配在未分配表中找出一个足够大的空白分区;如比进程要求的大,则分为两部分;分区的回收检查回收的分区是否与空白区邻接,如有则加以合并,上邻接,下邻接,上下邻接。伙伴系统可重定位分区分配原理:内存紧凑地址映射地址空间:在编译后,一个目标程序所限定的地址,即地址空间仅仅是指程序用来访问信息所用的一系列地址单元的集合,这些单元编号称为逻辑地址(相对地址)。存储空间:指主存中一系列存储信息的物理单元的集合,这些单元的编号称为物理地址或绝对地址。实现动态重定位技术:访问指令或数据时,通过重定位寄存器来自动修改访问存储器的地址。2007-8-1515:2615:2615:26动态重定位分区分配算法:内存紧凑两种时机在某个分区被回收时,如不与空白区邻接,则立即进行内存紧凑。在为作业分配而找不到足够大的空白区时再进行内存紧凑。对换技术对换(Swapping)把内存中的暂不运行的进程或暂不使用的数据,换出到外存,把已具备运行条件的进程、或进程所需要的数据和程序,换入内存,并将控制转给它。整体对换(进程对换):用于分时系统,解决内存紧张问题。部份对换(页面对换、分段对换):以请求分页和请求分段存储管理为基础,用于支持虚拟存储系统。交换空