第七章__实存管理技术.pptVIP

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

由于页表是驻留在内存的某个固定区域中,而取数据或指令又必须经过页表变换才能得到实际物理地址。因此,取一个数据或指令至少要访问内存两次以上。一次访问页表以确定所取数据或指令的物理地址,另一次是根据地址取数据或指令。这比通常执行指令的速度慢了一倍。 提高查找速度一个最快的办法就是把页表放在寄存器中而不是内存中,但由于寄存器价格太贵,这样做是不可取的。另一种办法是在地址变换机构中加入一个高速联想存储器,构成一张快表。在快表中,存入那些当前执行进程中最常用的页号与所对应的块号,从而以提高查找速度。 (2)快表的地址转换 由于在某段时间内执行程序时,是在一个范围内逐条顺序执行指令;数组一类数据结构在内存占据一片连续存储空间,访问数组时也是在数组范围内访问,所以快表的命中率可达到80%到90%。CPU存取一个数据的平均时间为: T=命中率×(访内时间+访cache时间)+非命中率×(2 ×访内时间+访cache时间) 例:访内时间是100ns,访cache时间是20ns,访cache命中率是85%计算CPU存取一个数据的平均时间。 T=0.85*(100+20)+0.15*(200+20)=135ns 页的共享和保护 分页存储管理技术使每个进程分别存储在内存的不连续的存储块中,这种灵活性允许两个和多个进程共享程序库中的例程或公共数据段的同一副本,共享的方法是使这些相关进程的逻辑空间中的页指向相同的内存块。 共享页面是有条件的,故实现信息共享的前提是提供附加的保护措施,对共享信息加以保护。 页共享与保护 进程1 页表1 ed1 ed2 … ed40 data1 data10 … ed1 ed2 … ed40 data1 data10 … 21 22 … 60 61 70 … 21 22 … 60 71 80 … 进程2 页表2 ed1 ed2 … ed40 data1 data10 … 主存 data1 data10 … … 21 22 60 61 70 0 71 80 分页系统中共享editor示意图 7.3.2 分段式存储管理方式 其实程序在逻辑上是分成不同段的,每个段具有其独特的性质,例如一个代码段是只执行的,一个数据段只允许读,另一个数据段可允许读和写。显然,如以段作为内存分配的最小单位,这便于对各个段实施控制和保护。这些段的长度可以不同,段和段在内存中也可以不连续。每个段在内存占据一片连续的空间。 分段基本原理 内存分配与回收 分段管理中,内存的最小分配对象是段,特别地是为每个段分配各自的连续空间,在内存里段和段之间可以不连续。 分配算法与可变分区的分配算法相似,可以采用最佳适应法、最坏适应法和首次适应法等分配算法。显然仍然要解决外碎片的问题。 分段基本原理 内存分配的数据结构要采用空闲区链表,为了提高内存的利用率,必须实施内存碎片拼接的方案,内存碎片拼接的时机可以在分配时刻或回收时刻。 可以理解分段管理技术继承了可变分区管理技术,但管理上要比可变分区更复杂。例如可变分区管理以进程为内存分配的最小对象,为一个进程只进行一次分配工作;而分段管理以段为内存分配的最小对象,为一个进程的每个段要进行一次分配工作。 分段基本原理 地址映射 从前面论述中,知道进程被分成若干个逻辑段,每个段在内存中占据一片连续的空间,内存分配可以按可变分区的算法,必须进行外碎片拼接。那么采用静态地址映射还是动态地址映射呢? 答案显然是必须采用动态地址映射。否则无法实施外碎片拼接。 地址映射是将逻辑地址转换为物理地址,先研究逻辑地址的构成。 分段基本原理 进程的逻辑地址空间 在分段存储管理方式中,段是一组相关的逻辑信息的集合。 每个段都有自己的名字和长度,通常用一个段号来代替段名,每个段都从0 开始编址,并采用一段连续的地址空间,段的长度由相应的逻辑信息组的长度决定。 分段系统中的逻辑地址由段号 s和段内地址 d 组成, 是一个二维地址( s , d )。是程序员负责安排的地址。 由于分段的进程逻辑地址空间是二维的,所以分段的地址映射在于如何把二维段地址结构动态地变成一维的内存地址结构。 内存分配时,是为任何一个段分配一个连续的内存片,一个段内的所有逻辑地址在该内存片中的顺序仍然不变。假设段的物理起始地址是 a,由于段的起始逻辑地址是 0,逻辑地址中作为偏移地址,加上段物理起始地址就是所求的物理地址。所以逻辑地址为 x的单元其物理地址为 a+x 。 现在已知逻辑地址(s,d),怎样计算它在内存的物理地址?与分页管理的分析一样,关键是找到逻辑地址与物理地址之间的映射关系。 由于每个段在内存是连续的,可以将段的物理地址看成是由基址和偏移地址( a,d)组成,根据前面分析,偏移地址又等于段内地址,关键要找 s 和 a 的联系。分配内存时,是

文档评论(0)

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

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

1亿VIP精品文档

相关文档