第五章-存储管理..ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
如果内存和外存之间数据交换频繁,会对输入输出设备造成巨大压力,机器主要开销大多用在反复调入调出数据和程序段上,无法完成用户所要求的工作。 因此,段式、页式以及段页式虚存实现方法都要求在内存中存放一个不小于最低限度的程序段或数据,而且它们必须是那些正在被调用,或那些即将被调用的部分。使内外存之间的数据交换减少到最低限度。 由模拟实验知道,在几乎所有的程序的执行中,在一段时间内,CPU总是集中地访问程序中的某一个部分而不是随机地对程序所有部分具有平均访问概率。这种现象称为局部性原理。与CPU访问该局部内的程序和数据的次数相比,该局部段的移动速率是相当慢的。这就使页式管理、段式管理以及段页式管理所实现的虚存系统成为可能。 如果不能正确地将那些系统所需要的局部段放入内存的话,则系统的效率会大大降低,甚至无法有效工作。 试验表明,任何程序在局部性放入时,都有一个临界值要求。当内存分配小于这个临界值时,内存和外存之间的交换频率将会急剧增加,而内存分配大于这个临界值时,再增加内存分配也不能显著减少交换次数。这个内存要求的临界值被称为工作集。 5.6局部性原理和抖动问题 图5.35内存与交换次数的关系 一个进程执行过程中缺页的发生有两种可能。 并发进程所要求的工作集总和大于内存可提供的可用区。这时,系统将无法正常工作,因为缺乏足够的空间装入所需要的程序和数据。 虽然存储管理程序为每个并发进程分配了足够的工作集,但系统无法在开始执行前选择适当的程序段和数据进入内存。这时只能依靠执行过程中,当CPU发现所要访问的指令或数据不在内存时,由硬件中断后转入中断处理程序,将所需要的程序段和数据调入。 当给进程分配的内存小于所要求的工作集时,由于内存外存之间交换频繁,访问外存时间和输入输出处理时间大大增加,反而造成CPU因等待数据空转,使得整个系统性能大大下降,这就造成了系统抖动。 图5.36 各种存储方法比较 5.5.1 段式管理的基本思想 段式管理的基本思想 把程序按内容或过程(函数)分成段,每段有自己的名字。 段式管理程序以段为单位分配内存。通过地址映射机构把段式虚拟地址?实际的内存物理地址。 经常访问的段驻留内存,在将来一段时间内不被访问的段放入外存,待需要时自动调入。 5.5.1 段式管理的基本思想 分页与分段的区别: (1)页是信息的物理单位,段是逻辑单位 (2)页长度固定(由系统确定),段长度不固定(由用户指定) (3)页是一维地址空间,段是二维地址空间 5.5.2 段式管理的实现原理 1. 段式虚存空间 每个段是一个首地址为零的、连续的一维线性空间。段可动态增长。对段式虚地址空间的访问包括两个部分:段名,段内地址。 页式管理中,被划分的页号按顺序编号递增排列,而段式管理中的段名之间无顺序关系。 段长度不固定。 CALL [X]|Y 转向段名为X的子程序的入口点Y。 段号 段内地址 31 16 15 0 2. 段式管理的内存分配与释放 以段为单位分配内存,每段分配一个连续的内存区。同一进程所包含的各段之间不要求连续。 在进程的执行过程中动态进行。首先,分配部分内存,执行时,根据需要随时申请调入新段和释放老段。 进程对内存区的申请和释放 当进程要求调入某一段时,内存中有足够的空闲区满足该段的内存要求。 内存中没有足够的空闲区满足该段的内存要求。 2. 段式管理的内存分配与释放 系统要用相应的表格或数据结构来管理内部空闲区,以便内存分配和回收。 和动态分区管理相似,可把内存空闲区按物理地址从低到高排列,或按空闲区大小从小到大、从大到小排列。 最先适应法、最佳适应法、最坏适应法都可用来进行空闲区分配。 分区式管理时用到的内存回收方法也可以在段式管理中使用。 2. 段式管理的内存分配与释放 当内存中没有足够空闲区时,段式管理程序根据给定的置换算法淘汰内存中在今后一段时间内不再被CPU访问的段,即那些访问概率最低的段。 可采用动态页式管理中的淘汰算法,如FIFO置换算法、LRU算法及其近似算法等。 需要调入的某段长度可能大于被淘汰的段长度,仅淘汰一段可能无法满足要求。此时应再淘汰另外的段,直到满足内存要求时为止。 任何一个段的段长都不允许超过内存可用区长度,否则将会造成内存分配出错。 X代表所缺段段号。 在CPU访问执行时,地址变换机构发现该段不在内存,而由硬件发出缺段中断信号后被调用。 2. 段式管理的内存分配与释放 3. 段式管理的地址变换 CPU如何感知到所要访问的段不在内存而启动中断处理程序? 二维空间的虚拟地址怎样变换为一个一维的线性物理地址? 在进行初始内存分配之前,首先根据用户要求的内存大小为进程建立一个段表,以实现动态地址变换、

文档评论(0)

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

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

1亿VIP精品文档

相关文档