网站大量收购独家精品文档,联系QQ:2885784924

中国计量大学计算机操作系统第4章[2016-2017-1].pptVIP

中国计量大学计算机操作系统第4章[2016-2017-1].ppt

  1. 1、本文档共64页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
中国计量大学计算机操作系统第4章[2016-2017-1]

第四章 存储器管理 ;4.1 存储器的层次结构 ;图4-1 计算机系统存储层次示意 ; 4.1.2 主存储器与寄存器   1.主存储器 简称内存或主存,用于保存进程运行时的程序和数据。 CPU的控制部件只能从主存储器中取得指令和数据,数据能够从主存储器读取并将它们装入到寄存器中,或者从寄存器存入到主存储器。;  2.寄存器   寄存器访问速度最快,完全能与CPU协调工作,但容量不大。寄存器的数目,对于当前的微机系统和大中型机,可能有几十个甚至上百个;而嵌入式计算机系统一般仅有几个到几十个。寄存器用于加速存储器的访问速度。寄存器的长度一般以字(word)为单位。;  1.高速缓存  介于寄存器和存储器之间,主要用于备份主存中较常用的数据,以减少处理机对主存的访问次数。高速缓存的容量大于或远大于寄存器,访问速度快于主存储器。  ; 由于磁盘的I/O速度远低于对主存的访问速度,因此将频繁使用的一部分磁盘数据和信息,暂时存放在磁盘缓存中。;4.2 程序的装入和链接 ;图4-2 对用户程序的处理步骤 ;  1.绝对装入方式(Absolute Loading Mode)  在编译时,编译程序产生绝对地址(即物理地址)的目标代码(即装入模块)。装入程序按照装入模块中的地址,将程序和数据装入内存。这时,逻辑地址与实际内存地址完全相同。 ; 2.可重定位装入方式(Relocation Loading Mode) 在多道程序环境下,编译程序产生从0开始编址的目标模块,并由链接程序链接成一个从0开始编址的、完整的装入模块。根据内存的当前情况,将装入模块装入到内存的适当位置。 ; 3.动态运行时装入方式(Dynamic Run-time Loading)  可重定位装入方式不允许程序运行时在内存中移动位置。然而,程序在运行过程中,它在内存中的位置可能经常要改变,此时就应采用动态运行时装入的方式。 ;4.2.2 程序的链接; 1.静态链接方式(Static Linking) (1)对相对地址进行修改。在由编译程序所产生的所有目标模块中,使用的都是相对地址,其起始地址都为0,每个模块中的地址都是相对于起始地址计算的。;图 4-4 程序链接示意图 ;  2.装入时动态链接(Load-time Dynamic Linking)  用户源程序经编译后所得的目标模块,是在装入内存时边装入边链接的,即在装入一个目标模块时,若发生一个外部模块调用事件,将引起装入程序去找出相应的外部目标模块,并将它装入内存,同时修改目标模块中的相对地址。; 3.运行时动态链接(Run-time Dynamic Linking)  这种链接方式是将对某些模块的链接推迟到程序执行时才进行链接,亦即,在执行过程中,当发现一个被调用模块尚未装入内存时,立即由OS去找到该模块并将之装入内存,把它链接到调用者模块上。凡在执行过程中未被用到的目标模块,都不会被调入内存和被链接到装入模块上,这样不仅可加快程序的装入过程,而且可节省大量的内存空间。;4.3 连续分配存储管理方式 ;4.3.2 固定分区分配 将整个用户空间划分为若干个固定大小的区域。  1.划分分区的方法   (1) 分区大小相等,即使所有的内存分区大小相等。; 2.内存分配 通常将分区按大小进行排队,并为之建立一张分区使用表,其中各表项包括每个分区的起始地址、大小及状态。;4.3.3 动态分区分配  动态分区分配是根据进程的实际需要,动态地为之分配内存空间。 1.动态分区分配中的数据结构 ; 3.分区分配操作   ; 2) 回收内存 当进程运行完毕释放内存时,系统根据回收区的首址,从空闲区链(表)中找到相应的插入点,此时进行四种情况的回收:;4.3.4 基于顺序搜索的动态分区分配算法; FF算法要求空闲分区链以地址递增的次序链接。在分配内存时,从链首开始顺序查找,直至找到一个大小能满足要求的空闲分区为止;然后再按照作业的大小,从该分区中划出一块内存空间分配给请求者,余下的空闲分区仍留在空闲链中。若从链首直至链尾都不能找到一个能满足要求的分区,则此次内存分配失败,返回。; 在为进程分配内存空间时,不再是每次都从链首开始查找,而是从上次找到的空闲分区的下一个空闲分区开始查找,直至找到一个能满足要求的空闲分区,从中划出一块与请求大小相等的内存空间分配给作业。该算法应设置一起始查寻指针,用于指示下一次起始查寻的空闲分区,并采用循环查找方式。 ; 每次为作业分配内存时,总是把能满足要求、又是最小的空闲分区分配给作业。为了加速寻找,该算法要求将所有的空闲分区按其容量以从小到大的顺序形成一空闲分区链。; 该算法扫描整个空闲分区表或链表,总是挑选一个最大的空闲区分割给作业使用,要求将所有的空闲分区按其容

您可能关注的文档

文档评论(0)

shaoye348 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档