chapter4存储器管理讲解.ppt

  1. 1、本文档共84页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第四章 存储器管理 ;主要内容;*;CPU的控制部件只能从主存储器中取得指令和数据 主存储器的访问速度远低于CPU执行指令的速度;将用户源程序变为可在内存中执行的程序的步骤: 编译:由编译程序将用户源代码编译成若干个目标模块 链接:由链接程序将编译后形成的一组目标模块,以及它们所需要的库函数链接在一起,形成一个完整的装入模块 装入:由装入程序将装入模块装入内存,构造PCB,形成进程(使用物理地址);;1.绝对装入方式(Absolute Loading Mode)   在编译时,编译程序将产生绝对地址的目标代码-绝对装入。 2.可重定位装入方式(Relocation Loading Mode)   在多道程序环境下,所得到的目标模块的起始地址通常是从0开始的,程序中的其它地址也都是相对于起始地址0计算的。此时应采用可重定位装入方式。 ;3.动态运行时装入方式(Dynamic Run-time Loading) 在运行???程中它在内存中的位置可能经常要改变,此时就应采用动态运行时装入的方式。 装入内存的所有地址都仍是相对地址,地址变换在运行时才执行 BR=10000 ;4.2.2 程序的链接(一组目标模块) 程序经过编译后得到一组目标模块,再利用链接程序将目标模块链接,形成装入模块。根据链接时间的不同,把链接分成三种 静态链接:在程序运行前,将目标模块及所需的库函数链接成一个完整的装配模块,以后不再拆开。 装入时动态链接:指将用户源程序编译后所得的一组目标模块,在装入内存时,采用边装入边链接的链接方式。 运行时动态链接:指对某些目标模块的链接,是在程序执行中需要该目标模块时,才对它进行链接。;1、静态链接(static-linking);2. 装入时动态链接 (Load-time Dynamic Linking) 边装入边链接。 优点: (1) 便于修改和更新 (2) 便于实现对目标模块的共享 3. 运行时动态链接(Run-time Dynamic Linking) 部分模块运行,边执行边链接! 优点: 加快装入过程、节省内存空间,未用到的模块不会调入内存;4.3 连续分配存储管理方式;*;4.3.2 固定分区分配(多道) ;*;*;1) 分配内存 设请求的分区大小为u.size,表中每个空闲分区的大小可表示为m.size。若m.size-u.size≤size(size是事先规定的不再切割的剩余分区的大小),说明多余部分太小,可不再切割,将整个分区分配给请求者; 否则(即多余部分超过size),从该分区中按请求的大小划分出一块内存空间分配出去,余下的部分仍留在空闲分区链(表)中。然后,将分配区的首址返回给调用者。;2) 回收内存 当进程运行完毕释放内存时,系统根据回收区的首址,从空闲区链(表)中找到相应的插入点,此时可能出现以下四种情况之一: 回收区与插入点的前一个空闲分区F1相邻接 回收分区与插入点的后一空闲分区F2相邻接。 回收区同时与插入点的前、后两个分区邻接 回收区既不与F1邻接,又不与F2邻接。这时应为回收区单独建立一新表项,填写回收区的首址和大小,并根据其首址插入到空闲链中的适当位置。 ;*;要求空闲区按首址递增的次序组成空闲区表(链),头开始查找。 ;内存;30K;优点: 优先利用低地址空间,从而保证高址空间有较大的空闲区 缺点: 低址部分被不断划分,留下许多难以利用的、很小的空闲分区 每次都从低址开始,查找开销大; 基于首次使用算法FF 为进程分配内存,从上次找到的空闲区的下一个空闲区开始查找. A 18, B 10;要求按空闲区大小从小到大的次序组成空闲区表(链)。 每次把能满足作业要求,并且是最小的空闲分区分配给作业 ;内存;优点: 在系统中若存在一个与申请分区大小相等的空闲区,必定会被选中,而首次适应法则不一定。 若系统中不存在与申请分区大小相等的空闲区,则选中的空闲区是满足要求的最小空闲区,而不致于毁掉较大的空闲区。 缺点: 空闲区的大小一般与申请分区大小不相等,因此将其一分为二,留下来的空闲区总是最小的,以致无法使用。随着时间的推移,系统中的小空闲区会越来越多,从而造成存储区的大量浪费。 ;每次把能满足作业要求,并且是最大的空闲分区分配给作业 要求空闲区按大小递减的顺序组织空闲区表(或链)。 ;内存;最坏适应法看起来似乎有些荒唐,但在严密地考察后,还是有它的优点: 当程序装入内存中最大的空闲区后,剩下的空闲区还可能相当大,还能装下较大的程序。 另一方面分配时每次仅作一次查询工作。;上述三种放置策略各有利弊,到底哪种最好不能一概而论,而应针对具体作业序列来分析。 对于某一作业序列来说,某种算法能将该作业序列中所有作业安置完

文档评论(0)

shuwkb + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档