- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
操作系统源第10讲
操作系统概念 第十讲 内存管理(2) 本课总体纲要 分页 基本原理 页表结构 分段 基本方法 硬件 保护与共享 回顾 上次课讲过的内存管理方法 对于动态分区中的空闲空间的分配方法有几种? 举例说明内存碎片有几种? 分区管理的问题 简单但存在严重的碎片问题 分区内作业或进程连续存放,进程大小仍受分区大小和内存空间的限制 不利于程序段和数据共享 分页-定义 分页(Paging):各个进程的虚拟空间被划分成若干个长度相等的页。 基本方法: 将物理内存分为固定大小的块,称为帧(Frame)。 逻辑内存也分为固定大小的块,称为页(page)。 页的大小通常为2的幂,根据计算机结构分为512B到16M字节不等。页与帧的大小一样。 跟踪所有空闲的帧 如果要允许具有n 页的程序,需要定位n 帧物理内存,然后将程序调入内存。 建立页表,将逻辑地址转换成物理地址 分页会产生内部碎片 分页-硬件支持 分页-举例 分页-TLB硬件实现 分页-实现页表 大多数操作系统为每个进程分配一个页表。 页表的硬件实现方法: 专用快速寄存器 页表基寄存器(PTBR) 页表长寄存器(PTLR) 出现的问题: 采用这种方法,访问一个字节需要两次内存访问(一次访问页表,一次访问字节) 解决方法: 采用小而专用快捷的硬件缓冲,称为翻译后备缓冲器(TLB:translation look-aside buffer) 分页-有效访问时间(EAT) 查找TLB所用时间t 命中率:特定页码在TLB中被查找到的百分比-α。 访问内存所用的时间是T。 有效访问时间(EAT): EAT=(T+t)× α+(2×T+t)×(1- α ) 分页-地址转换 地址转换方法: 页码 页偏移 m-n n 页码:作为页表的索引 页偏移:作为页的偏移 页地址转换 例题: 假定页面大小为1k,某程序逻辑地址为2500,页表为下图所示,请问该程序所对应的物理地址是多少(画出地址转换图)? 分页-页表结构 层次化分页 哈希页表 反向页表 分页-层次化分页 人们并不希望在内存中连续的分配这个页表。 可以将页表划分为更小的部分。 简单的划分使用两层分页算法 一个逻辑地址(32位CPU,4K页)可以划分为: 页码=20bit 页偏移量=12bit 因为要对页表再分页,所以该页码可分为10bit页码与10bit页偏移量。 10 10 12 分页-地址转换方法 分页-哈希页表 处理超过32bit地址空间的常用方法是哈希页表 以虚拟页码作为哈希值。哈希页表的每一个条目都包括一个链接组的元素,这些元素哈希成同一位置 元素的三个域: 虚拟页码 所映射的帧码 指向链表的下一个元素的指针 分页-哈希页表 分页-反向页表 问题:进程中页表跟踪消耗大量物理内存 反向页表:对于每个真正的内存页或帧才有一个条目。每个条目包含保存在真正内存位置的页的虚拟地址,以及拥有该页的进程信息。 优点:减少了存储每个页表所需要的内存空间 缺点:当引用页时增加了查找页表所需要的时间。 分页-反向页表 本课总体纲要 分页 基本原理 页表结构 分段 基本方法 硬件 保护与共享 分段 分段:支持用户观点的内存管理方法 在编译用户程序时,编译器会自动根据输入程序来构造段。 一个段是一个逻辑单元: 主程序 过程 函数 方法 对象 局部变量,全局变量 堆栈 数组 分段-层次结构 逻辑地址包括: 段号,偏移 段表:映射到2维物理空间,每个表条目包括: 基码:段的物理空间起始地址 临界码:段的长度 段表基寄存器(STBR) 段表长寄存器(STLR) 段码必须小于STLR 分段-举例 分段-地址转换 分段-地址转换 设有一个主程序段号为2,段内偏移为200。段表如下,求其物理地址,要求画出地址转换图。 分段管理优缺点 分配 首次适应 最佳适应 分段的优点: 实现内外存统一管理,虚存每次交换的是一段有意义的信息 动态重定位 便于实现动态链接 代码与数据共享 分段管理的缺点: 碎片问题比分页管理严重 每段的长度受内存可用区大小限制 分段-共享与保护 分段-共享与保护 分段共享:通过两个作业的段表中相应表项指向被共享分段的同一个物理副本来实现的 不能修改的代码或数据是可以共享的,可修改的数据是不能共享的。 分段管理保护: 地址越界保护法 存取控制保护法 分页与分段的区别 总结 分页 基本原理 页表结构 分段 基本方法 硬件 保护与共享 作业 分段式和分页式内存管理的主要差别? 设有一级页式存储管理系统,向用户提供的逻辑空间为16页,每页大小为2k,物理内存为8个存储帧块,试问逻辑地址至少应为二进制多少位,内存空间多大? Davidfu p d 10 3 8 2 3 1 2 0 帧号 页号 p1 p2 d
文档评论(0)