第四章存储器管理教程.pptx

  1. 1、本文档共95页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第四章存储器管理教程

第四章 存储器管理 ;4.1 存储器的层次结构 ;图4-1 完整 计算机系统存储层次示意 ;4.1.2 主存储器与寄存器 1.主存储器\内存\主存\可执行存储器 用于保存进程运行时的程序和数据。 微机系统一般为数百MB到数GB,嵌入式计算机系统一般仅有几十KB到几MB。 CPU只能从主存储器中取得指令和数据。 主存访问速度远低于CPU执行指令的速度,为缓和这一矛盾,引入了寄存器和高速缓存。 ; 2.寄存器(CPU寄存器) 寄存器访问速度最快,完全能与CPU同步,价格十分昂贵,容量很小。 寄存器的长度一般以字(word)为单位。 微机系统,寄存器可能有几十个甚至上百个;而嵌入式计算机系统一般仅有几个到几十个。 寄存器用于加速存储器的访问速度,如用地址寄存器加快地址转换速度等。 ; 4.1.3 高速缓存和磁盘缓存 1.高速缓存 容量和访问速度都介于寄存器和内存之间。   程序执行的局部性原理:程序在执行时在一较短的时间内,程序的执行仅局限于某个部分。 根据局部性原理可将主存中一些经常访问的信息存放在高速缓存中,从而减少访问主存储器的次数,提高程序执行速度。 高速缓存分L1,L2,L3级。 思考:靠近CPU的是哪一级?多级CACHE的容量哪个大、速度哪个快?; 2.磁盘缓存 磁盘访问速度远低于主存的访问速度,因此将频繁使用的一部分磁盘数据和信息,暂时存放在磁盘缓存中,可减少访问磁盘的次数。 磁盘缓存本身并不是一种实际存在的存储介质。 主存也可以看做是辅存的高速缓存:辅存中的数据必须复制到主存方能使用;反之,数据也必须先存在主存中,才能输出到辅存。 思考:1.磁盘缓存到底是硬盘的一部分还是内存的一部分? 2.判断对错:一个文件的数据可能出现在存储器层次的不同级别中。;4.2 程序的装入和链接 ;图4-2 对用户程序的处理步骤 ;4.2.1 程序的装入; 1.绝对装入方式(Absolute Loading Mode) 前提条件:知道程序将驻留在内存的什么位置。 过程:编译程序直接产生绝对地址的目标代码 即程序中的逻辑地址与实际内存地址完全相同。 思考:采用该方式还需要对程序和数据的地址进行修改吗? 程序中所使用的绝对地址,既可在编译或汇编时给出,也可由程序员直接赋予。 绝对装入方式只适用于单道程序环境。 ; 2.可重定位装入方式(Relocation Loading Mode)   多道程序环境下,不可能预知目标模块应放在内存的何处,因此目标模块的起始地址是从0开始的,程序中的其它地址也都是相对于起始地址。 此时应根据内存的当前情况采用可重定位装入方式,将装入模块装入到内存的适当位置。 重定位:装入时对目标程序中指令和数据的修改过程。 地址变换通常是在装入时一次完成的,以后不再改变。 优点:可将装入模块装入到内存中任何允许的位置 缺点:一旦装入则不允许程序再移动位置。;图4-3 作业装入内存时的情况;3.动态运行时装入方式(Dynamic Run-time Loading) 由于运行过程中目标模块在内存中的位置可能要经常改变,此时就应采用动态运行时装入的方式。 装入时不转换地址而是在运行时才转换。 硬件机制:重定位寄存器。 优点:1.装入内存时地址不做任何修改,因而装入后可以再搬迁。如进程挂起、激活。 2.可实现多个目标模块存放在不连续的内存中。 动态运行时装入+动态运行时链接 ;4.2.2 程序的链接;1.静态链接方式(Static Linking) (1) 修改相对地址。 每个目标模块中使用的都是相对地址即其起始地址都为0。链接成一个装入模块时,原模块起始地址不再是0,须修改相对地址。 (2)变换外部调用符号。 将每个模块的外部调用符号变换为相对地址。 事先进行链接所形成的一个完整的装入模块,称为可执行文件。 装入模块不再拆开,要运行时一次性装入内存。;图 4-4 程序链接示意图 ;2.装入时动态链接(Load-time Dynamic Linking) 目标模块装入内存时边装入边链接:装入目标模块时,若发生一个外部模块调用事件,将找出相应的外部目标模块装入内存,并修改相对地址。装入时动态链接方式有以下优点: (1) 便于修改和更新。 未装入内存前,修改或更新目标模块较为容易。 (2)便于实现对目标模块的共享。 OS很容易将一个目标模块链接到几个应用模块上,实现多个应用程序对该模块的共享。   ;静态链接、装入

文档评论(0)

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

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

1亿VIP精品文档

相关文档