第21讲 第四章 内存管理(七).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文档。上传文档
查看更多
第21讲 第四章 内存管理(七).ppt

第六章 存储管理 操 作 系 统 第二十一讲 第4章 内存管理 4.1 内存管理功能 4.2 分区管理 4.3 页式管理 4.4 段式管理 4.5 段页式管理 页式虚存管理 在静态页式管理的基础上,增加了请求调页功能和页面置换功能来实现虚拟存储器功能。 页式虚存管理中,进程开始运行之前,不是装入全部页面,而是只装入立即使用的那部分页面,其余的页面在外存中。 在进程运行过程中,当需要访问的页面不在内存中时,则将它们从外存调入内存,动态的装入这些页面。 如果此时内存已满,则需要根据某种算法,淘汰某个页面,以便装入需要的页面。 页面置换算法 1.最佳置换算法(OPT算法) 2.先进先出页面置换算法(FIFO算法) 3.最近最少使用页面置换算法(LRU算法) 4.Clock置换算法(LRU近似算法) 1.最佳置换算法(OPT算法) 思想:置换以后不再被访问或在以后最迟才会访问的页。 特点:本算法可以保证最低的缺页率,但由于无法预知哪一个页面是未来最长时间内不再被访问的。因而该算法是无法实现的。 但是,可把它作为一种评价标准,比较其他实用方法的优劣,所以,最优算法只具有理论上的意义。 2.先进先出算法(FIFO算法) 思想:总是先淘汰最先进入内存的页面即选择内存中驻时间最长的页面予以淘汰;即先进入内存的页面先被置换掉。 理由:最先进入内存的页面不再被访问的可能性最大。 特点:算法简单,容易实现,只要把内存中的页面,按进入内存的先后次序排成一个队列,新进入的页面排在队尾,淘汰页面时,总是从队首进行。但它会淘汰经常访问的页面,不适应进程实际运行的规律。很少使用。 3.最近最少使用页面置换算法(LRU算法) 思想:根据页面调入内存后的使用情况进行决策,当需要置换一页时,选择最近一段时间最长时间没有被访问的页面予以淘汰。 这种算法考虑了程序设计的局部性原理。 如果某一页被访问了,那么它很可能马上又被访问;反之,如果某一页很长时间没有被访问,那么最近也不太可能会被访问。 由于无法预测各页面将来的使用情况,只能利用“最近的过去”作为“最近的将来”的近似,选择最近最久未使用的页面予以淘汰。 4.Clock转换算法(LRU近似算法) 思想: 每页设置一位访问位。在进程的页表中增加一个指针项,将内存中的页面链接成一个循环队列,并用一个指针指向循环队列中下一个将被置换的页面。 当把一个页面调入内存,或访问某页时,将该页面对应页表中的访问位置为1。 在淘汰页面时,从指针所指的当前位置开始,扫描循环队列: 若访问位为1,则重新置为0,跳过该页; 若访问位是0,则淘汰该页,指针推进一个位置; 若循环队列中所有页面的访问位均为1,则把它们全部重置为0,指针重新指向起始位置,并淘汰该页,然后指针推进一个位置。 5、改进的clock置换算法 淘汰页面时,由于内存中的每一页在外存上都有一份副本,所以,若淘汰页未被修改过,则不需要再将该页写到外存上; 否则,必须将该页重新写回到磁盘。这样淘汰未被修改的页面,可以减少系统的开销和启动磁盘的次数; 因此,可以同时使用页表中的访问位和修改位来对clock转换算法进行改进。 选择未使用过的页同时又是未修改过的页面。 (A=0、M=0) 4.4 段式管理 页式管理的主要目的是为了提高内存空间的利用率,在页式管理中,逻辑地址空间是一维的,且页面的划分在逻辑上没有完整的意义,这对于模块化程序,难以实现以模块为单位的分配、共享和保护。 而现代高级语言通常采用模块化程序设计,因此,用户希望能根据逻辑关系来划分源程序。从而引入了段式管理。 4.4.1 段式管理概述 4.4.2 地址转换 4.4.3 段的共享和保护 4.4.4 段式虚存管理 1、 分段 以段为单位进行存储管理的,首先要把用户程序按一定的逻辑关系划分成若干个段,且每个段具有完整的逻辑意义。 每个程序段都有一个段名,每一段段内也从0开始编址,段内地址是连续的,而段与段的地址不一定连续,且各段长度也不一定相等。 2、逻辑地址结构 在用户程序中,可通过段名和段内符号名来确定一个地址。例如,给出(A,X)可确定一个地址。 程序经过编译之后,段名用一个段号来代替,段内符号名转换成段内地址。 所以,逻辑地址由段号和段内地址两部分组成,是一个二维地址结构。描述如下: 分页与分段的地址结构区别 一维地址结构:分页是从0号页开始,每一页是按顺序进行编号; 二维地址结构:而分段时每个段有段名,段与段之间是平等的、并列的关系,不是顺序排列的关系。 3、内存分配 内存分配 以段为单位分配内存,每一个段在内存中占据连续空间(内存随机分割,需要多少分配多少),但一个程序的各段可以装入不连续的内存分区中。 与可变分区区别 可变分区是以整个程序

文档评论(0)

好文精选 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档