现代操作系统第三章存储管理PPT.ppt

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

* 小结 为了使分页系统很好地工作,选择一个算法是不够的;需要注意的问题有:决定工作集、内存分配策略以及页面尺寸。 分段有助于处理运行期间变化的数据结构,并且简化链接和共享。它还有助于为不同的段提供不同的保护。有时,分段和分页组合在一起提供一个2维的虚拟存储器。MULTICS系统和Intel Pentium支持分段和分页。 * 分段内存允许每个表独立于其他表增大或减小。 分段(Segmentation) * 分段(Segmentation)基本原理 分段 程序划分为若干个段,每个段定义了一组逻辑信息,可以是一张表,一个堆栈等 每个段从0编址,段长度不等 整个程序的地址空间由多个段组成,是二维的。即逻辑地址由段号和段内地址组成 * 分段(Segmentation)基本原理 分段系统的地址结构 上例的地址结构中,允许每个段的最大长度是216B(64KB),一个程序最多允许有216 (64K)个段 段号 段内地址 31 16 15 0 * 分段(Segmentation)基本原理 段表 可变分区(交换):系统为整个进程分配一个连续的内存空间 分段:系统为每个段分配一个连续的分区,而进程中的各个段可以离散地放在内存不同的分区中 段表:记录每个段在内存的起始地址及段长 * 分段(Segmentation)基本原理 地址变换机构 类似于分页 根据逻辑地址中的段号查找段表 找到该段的起始地址+段内地址,即物理地址 * 分段(Segmentation) 优点: 能简化伸缩的数据结构 允许程序修改并独立重新编译,不需整个程序集重新链接,链接例程的操作就可以大大地简化 有助于在几个进程之间共享例程和数据 不同的段可以有不同种类的保护 * 分段(Segmentation) 分段与分页的比较 页是物理单位而段是逻辑单位 页大小固定且由系统确定,对用户是透明的;段大小不固定,取决于用户编写的程序,对用户是不透明的。 分页的目的是提高内存利用率,而分段是为了满足用户的需要(即分段的优点) 分页系统的地址空间是一维,而分段是两维。 * 分页和分段的比较 分段(Segmentation) 为了使得程序和数据划分到逻辑独立的地址空间,以有助于共享和保护 为了得到大的线性地址空间而又不用买更多的物理存储器(省钱) 为什么发明这个技术? 是 否 有助于在用户间共享例程吗? 能 不能 能够很容易地容纳长度变化的表吗? 能 不能 例程和数据可以区分并单独保护吗? 可以 可以 全部地址空间可以超过物理存储器的大小吗? 多个 1 有多少个线性地址空间? 需要 不需要 需要程序员知道正在使用该项技术吗? 分段 分页 理由 * 纯分段的实现 分段和分页的实现有着本质的区别:页是定长的,而段不是。 在系统运行一段时间后,内存被划分为许多块,一些包含段,一些包含空洞,这种现象被称为棋盘(checkerboarding)或者外碎片(external fragmentation)。 它在空闲区上浪费了内存,而这可以通过压缩来解决。 * (a)-(d)棋盘的生长 (e)通过压缩消除棋盘 纯分段的实现 * 分段和分页结合——段页式系统 基本原理 用户程序分段,每个段再分页 地址结构: 段号 段内页号 页内地址 * 分段和分页结合——段页式系统 数据结构 页表:每个段一张页表 段表:与纯分段不同,记录的是页表始址和页表长度 * 分段和分页结合——段页式系统 地址变换过程 根据逻辑地址中的段号查找段表得到页表地址 根据页表地址找到相应页表,根据页号查找页表,得到页框号 页框号+页内地址,得到物理地址 * 分段和分页结合:MULTICS 如果段比较大,把它整个保存在内存中可能不方便,甚至是不可能的。这导致了对它进行分页的想法,这样,只有那些实际需要的页才被载入。 MULTICS的设计者决定把每个段当成一个虚拟存储器并对它进行分页,以结合分页的优点(统一的页面尺寸以及在只使用一部分时不用把整个段全部保存在内存)和分段的优点(易于编程、模块化、保护和共享)。 * MULTICS的虚拟存储器 (a)描述符段指向页表 (b)—个段描述符,其中数字为域的长度。 分段和分页结合:MULTICS * 分段和分页结合:MULTICS MULTICS的地址由两部分构成:段和段内地址。段内地址又进一步分为页号和页内地址,进行发生内存引用时,算法如下: 使用段号找到段描述符。 检查该段的页表是否在内存中。如果在,定位其位置;如果不在,就发出一个缺段。如果违反了段的保护要求,发出一个错误(陷阱)。 检查所请求虚页的页表项。如果页面不在内存中,则发出一个缺页;如果在内存中,就从页表项中提取该页在内存中的起始地

文档评论(0)

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

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

1亿VIP精品文档

相关文档