- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第4章 存储管理 重要内容 存储器 连续存储空间管理 分页存储管理 分段存储管理 虚拟存储管理 Intel x86分段和分页存储结构 Linux虚拟存储管理 Windows 2003虚拟存储管理 存储管理的功能 分配和去配 请求和释放主存空间 抽象和映射 抽象成一维数组或二维地址空间 地址转换 隔离和共享 隔离实现存储保护功能 超越隔离机制,提高主存利用率 存储扩充 虚拟,允许进程虚拟地址空间大于主存空间 4.1 存储器 4.1.1 存储器的层次 4.1.2 地址转换与存储保护 4.1.1 存储器的层次 4.1.2 地址转换与存储保护(1) 地址转换与存储保护(2) 逻辑地址(虚地址):CPU所生成的地址 物理地址(实地址):内存单元所看到的地址 逻辑地址空间:由程序所生成的所有逻辑地址的集合 物理地址空间:由逻辑地址所对应的所有物理地址的集合 地址转换或重定位:把逻辑地址转换为物理地址 例:使用重定位寄存器的动态重定位 4.2 连续存储空间管理 4.2.1 固定分区存储管理 4.2.2 可变分区存储管理 4.2.3 伙伴系统 4.2.4 主存不足的存储管理技术 4.2.1 固定分区存储管理 固定分区存储管理的基本思想 主存空间被分成数目固定不变的分区,各分区的大小不等,每个分区只装入一个作业。 固定分区存储管理的数据结构 主存分配表:指出各分区的起始地址和长度; 占用标志:指示此分区是否被使用。 作业进入固定分区排队策略 每个分区有单独的作业等待队列; 所有等待处理的作业排成一个等待队列。 固定分区存储管理的地址转换和存储保护 固定分区的优缺点 优点 能够解决单道程序运行在并发环境下不能与CPU速度匹配的问题 解决了单道程序运行时主存空间利用率低的问题 实现简单 缺点 大作业可能无法装入 主存空间利用率不高,会出现内碎片 扩充困难 限制多道运行程序的个数 4.2.2 可变分区存储管理 可变分区存储管理是按作业的实际大小来划分分区,且分区个数也是随机的,实现多个作业对主存的共享,进一步提高主存资源利用率。 可变分区方式主存分配示例 可变分区存储管理数据结构 可变分区主存分配表可由两张表格组成, 已分配区表 未分配区表 可变分区回收算法 链表空闲区管理方法 空闲区开头单元存放本空闲区长度及下个空闲区起始地址,把所有空闲区都链接起来,设置第一块空闲区地址指针,让它指向第一块空闲区地址。 申请空闲区:沿链查找并取一个长度能满足要求的空闲区; 归还空闲区:把此空闲区链入空闲区链表的相应位置。 可变分区管理分配算法 1)最先适应分配算法 空闲区通常按地址从小到大排列,分配第一个满足长度要求的空闲区; 优点:分配从低地址开始,使高地址部分比较少用,以保持一个大空闲区,有利于大作业的装入; 缺点:分区利用不均衡,回收分区比较麻烦。 可变分区地址转换与存储保护 多对基址/限长寄存器 4.2.3 伙伴系统 伙伴原理 伙伴系统是一种固定分区和可变分区折中的主存管理算法,基本原理:任何尺寸为2i的空闲块可以被分为两个尺寸为2i-1的空闲块,这两个空闲块称为伙伴。 伙伴通过对大块的物理主存划分而获得 假如从第0个页面开始到第3个页面结束的主存 每次都对半划分,那么第一次划分获得大小为2页的伙伴,如0、1和2、3 进一步划分,可以获得大小为1页的伙伴,例如0和1,2和3 伙伴系统原理 2.Linux伙伴系统 1) 以page结构为数组元素的mem_map[ ]数组 2) 以free_area_struct结构为数组元素的free_area数组 3) 位图数组(bitmap) 3.Linux基于伙伴的slab分配器(1) 为什么要使用slab分配器? 缓冲机制,能够提高效率 slab的结构 见下页图 slab的操作 kmem-cache-create() kmem-cache-aloc() 与kmem-cache-free() kmem-cache-grow() 与kmem-cache-reap() kmalloc()kfree() kmem-getpages() 与kmem-frepages() Linux基于伙伴的slab分配器(2) 4.2.4 主存不足的存储管理技术 有关移动问题讨论 移动条件 在可变分区算法中,随着进程不断的装入和撤销,导致主存中常常出现分散的小空闲区,称为碎片。 当在未分配区中找不到足够大的空闲区来装入新进程时,可采用移动技术,将分散的空闲空闲区汇集成片。 移动时机 进程撤销之后释放分区时,如果它不与空闲区邻接,立即实施移动。 进程装入分区时,如果它不与空闲区邻接,立即实施引动。 移动算法(假设进程A请求分配x KB主存) 步骤1:查主存分配表,若有大于x KB
您可能关注的文档
最近下载
- 低压作业实操科目三安全隐患图片题库(10页).pdf VIP
- 2024年广西国际商务职业技术学院单招职业适应性测试试题及答案解析.docx VIP
- 2024年广西机电职业技术学院单招职业适应性测试试题及答案解析.docx VIP
- 2024-2025学年上海市杨浦区九年级上学期期中考试数学试卷含详解.docx VIP
- 出院患者随访话术培训.pptx VIP
- 2024年江西机电职业技术学院单招职业适应性测试试题及答案解析.docx VIP
- 2024年广西理工职业技术学院单招职业适应性测试试题及答案解析.docx VIP
- 中国地理空白图(政区、分省轮廓、地形铁路空白图.doc VIP
- 2025至2030中国智慧停车系统行业城市级平台建设及运营维护分析研究报告.docx
- 单基因遗传病.pptx VIP
原创力文档


文档评论(0)