热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

第三章、连续式内存分配

操作系统的内存管理:3.1计算机体系结构及内存分层体系操作系统的内存层次:操作系统在内存管理方面需要完成的目标:抽象:逻

操作系统的内存管理:


3.1 计算机体系结构及内存分层体系

在这里插入图片描述

在这里插入图片描述


操作系统的内存层次:

在这里插入图片描述


操作系统在内存管理方面需要完成的目标:


  1. 抽象: 逻辑地址空间
  2. 保护: 独立地址空间(保证多个进程间不会相互干扰)
  3. 共享: 访问共同的地址空间(当多个进程需要操作同一块操作地址时,需要共享地址空间)
  4. 虚拟化: 由于缓存及寄存器的存储空间有限,当存储大量数据时,就需要使用虚拟空间在这里插入图片描述

操作系统管理内存的不同方法:


  • 程序重定位
  • 分段
  • 分页
  • 虚拟内存
  • 按需分页虚拟内存

操作系统在完成内存管理操作同时还需要高度依赖于硬件


  • 必须知道内存架构
  • MMU(内存管理单元):硬件组件负责处理CPU的内存访问请求

3.2 地址空间及地址生成


① 地址空间的定义:


物理地址空间:

物理地址空间是指一些硬件支持的地址空间,比如硬盘和内存条、高速缓存…


逻辑地址空间:

逻辑地址空间是指一个运行程序所拥有的内存范围,它的结构很简单,就是一条线性的地址空间

但是最终逻辑地址空间还是会指向物理地址空间,操作系统需要协调这二者的关系,通过映射来使得逻辑地址指向物理地址。


② 逻辑地址的生成:

在这里插入图片描述


③ 物理地址的生成:

=>CPU方面

a. CPU执行指令时,它的ALU部件会需要指令的某个内容,它发出的请求中的参数会携带逻辑地址;

b. CPU的内存管理单元MMU 寻找逻辑地址的映射表中是否存在物理地址。如果没有找到,那么就会产生一个处理过程,去内存中找。如果最终找着了,那么CPU的控制器从总线发送在物理地址的内存内容的请求;

=>内存方面

a. 内存发送物理地址内存内容给CPU(CPU开始处理对应的指令)

=>操作系统方面

a. 建立逻辑地址和物理地址之间的映射关系,该关系可以放在内存中由CPU缓存来加快进程(确保程序不相互干扰)

在这里插入图片描述


④ 地址安全检查:

在这里插入图片描述


3.3 连续内存分配:内存碎片与分区的动态分配


内存碎片问题:

碎片是指内存空闲不能被利用,碎片分为内部碎片和外部碎片,外部碎片是指分配单元之间不能被使用;内部碎片是指分配单元中不能被使用。


简单的内存管理方法:

操作系统管理内存的简单方法:当一个程序准许运行在内存中时分配一个连续的空间;分配一个连续的内存空间给运行的程序以访问数据。


分区的动态分配策略:


1、首次适配:

概念:现在想要分配n 字节,那么就会从低地址开始查找,当查找到第一个空间大于n字节就结束返回。

需求:


  • 存在一个按照地址排序的空闲块列表
  • 分配需要寻找一个合适的分区
  • 重分配需要检查,看是否自由分区能够合并于相邻的空闲分区(回收)

优点:


  • 简单、易于操作
  • 便于生成更大的空间块,向着空间地址的结尾(如果在前边找到后就结束,那么不会破坏之后的空间块)

缺点:


  • 易于产生外部碎片(前后两个可利用空间块之间的小块不能被使用,会被忽视)
  • 不确定性

2、最优适配:

概念:会在空闲块间查找最适合的空间块,为了避免分割大的空闲块,同时为了最小化外部碎片产生的尺寸

需求:


  • 按照尺寸排列的空闲块列表
  • 分配需要查找一个合适的分区
  • 重分配需要搜索合并于相邻的空闲分区

优点:


  • 当大部分是小尺寸时非常有效
  • 比较简单

缺点:


  • 会产生外部碎片
  • 重分配慢
  • 易于产生很多没用的微小碎片

3、最差适配:

概念:为了分配n字节,使用最大的空闲块,以至块的尺寸比n大

需求:


  • 按尺寸排列的空闲块
  • 分配很快(每次获得最大的分区)
  • 重分配需要合并于相邻的空闲分区

优点:对于分配的是中等尺寸效果最好

缺点:


  • 重分配慢
  • 会产生外部碎片
  • 易于破坏大的空闲块以至于需要分配大分区时无法被分配

3.4 连续内存分配:压缩式与交换式碎片整理


1、压缩式碎片整理(紧致)

在这里插入图片描述


  • 重置程序以合并空洞
  • 要求所有程序是动态可重置的
  • 问题:何时重置,开销大

如图:如果能够将程序占用的内存进行拷贝重分配,那么会产生更多可用的内存空间,但是仅仅靠软件来操作会有很大的开销,对系统的性能会有更大的影响。


2、交换式碎片整理

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LBNh7Kvi-1601035285720)(第三章、连续式内存分配.assets/image-20200919205114421.png)]

如果在运行P3时需要更多的内存,而此时P4正在等待,那么就可以将P4的数据拷贝到磁盘(虚拟内存)中,此时P3就获得了足够多的内存可以运行;当P4需要执行时再从磁盘上拷贝回 memory(主存)中即可。

有很大的开销,对系统的性能会有更大的影响。


2、交换式碎片整理

在这里插入图片描述

如果在运行P3时需要更多的内存,而此时P4正在等待,那么就可以将P4的数据拷贝到磁盘(虚拟内存)中,此时P3就获得了足够多的内存可以运行;当P4需要执行时再从磁盘上拷贝回 memory(主存)中即可。


推荐阅读
  • Android中高级面试必知必会,积累总结
    本文介绍了Android中高级面试的必知必会内容,并总结了相关经验。文章指出,如今的Android市场对开发人员的要求更高,需要更专业的人才。同时,文章还给出了针对Android岗位的职责和要求,并提供了简历突出的建议。 ... [详细]
  • [译]技术公司十年经验的职场生涯回顾
    本文是一位在技术公司工作十年的职场人士对自己职业生涯的总结回顾。她的职业规划与众不同,令人深思又有趣。其中涉及到的内容有机器学习、创新创业以及引用了女性主义者在TED演讲中的部分讲义。文章表达了对职业生涯的愿望和希望,认为人类有能力不断改善自己。 ... [详细]
  • t-io 2.0.0发布-法网天眼第一版的回顾和更新说明
    本文回顾了t-io 1.x版本的工程结构和性能数据,并介绍了t-io在码云上的成绩和用户反馈。同时,还提到了@openSeLi同学发布的t-io 30W长连接并发压力测试报告。最后,详细介绍了t-io 2.0.0版本的更新内容,包括更简洁的使用方式和内置的httpsession功能。 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • 一句话解决高并发的核心原则
    本文介绍了解决高并发的核心原则,即将用户访问请求尽量往前推,避免访问CDN、静态服务器、动态服务器、数据库和存储,从而实现高性能、高并发、高可扩展的网站架构。同时提到了Google的成功案例,以及适用于千万级别PV站和亿级PV网站的架构层次。 ... [详细]
  • 本文介绍了新款奇骏的两个让人上瘾的功能,分别是智能互联系统和BOSE音响。通过对新款奇骏的配置和功能进行评测,探讨了这两个新增功能的使用体验和优势。此外,还介绍了新款奇骏的其他配置和改进,如增加的座椅和驾驶辅助系统,以及内饰的舒适性提升。对于喜欢音响的消费者来说,BOSE音响的升级也是一个亮点。最后,文章提到了BOSE音响的数字还原能力,以及7座版无法配备BOSE音响的原因。 ... [详细]
  • 本文介绍了高校天文共享平台的开发过程中的思考和规划。该平台旨在为高校学生提供天象预报、科普知识、观测活动、图片分享等功能。文章分析了项目的技术栈选择、网站前端布局、业务流程、数据库结构等方面,并总结了项目存在的问题,如前后端未分离、代码混乱等。作者表示希望通过记录和规划,能够理清思路,进一步完善该平台。 ... [详细]
  • CentOS 7部署KVM虚拟化环境之一架构介绍
    本文介绍了CentOS 7部署KVM虚拟化环境的架构,详细解释了虚拟化技术的概念和原理,包括全虚拟化和半虚拟化。同时介绍了虚拟机的概念和虚拟化软件的作用。 ... [详细]
  • 数字账号安全与数据资产问题的研究及解决方案
    本文研究了数字账号安全与数据资产问题,并提出了解决方案。近期,大量QQ账号被盗事件引起了广泛关注。欺诈者对数字账号的价值认识超过了账号主人,因此他们不断攻击和盗用账号。然而,平台和账号主人对账号安全问题的态度不正确,只有用户自身意识到问题的严重性并采取行动,才能推动平台优先解决这些问题。本文旨在提醒用户关注账号安全,并呼吁平台承担起更多的责任。令牌云团队对此进行了长期深入的研究,并提出了相应的解决方案。 ... [详细]
  • 众筹商城与传统商城的区别及php众筹网站的程序源码
    本文介绍了众筹商城与传统商城的区别,包括所售产品和玩法不同以及运营方式不同。同时还提到了php众筹网站的程序源码和方维众筹的安装和环境问题。 ... [详细]
  • 在线教育平台的搭建及其优势
    在线教育平台的搭建对于教育发展来说是一次重大进步。未来在线教育市场前景广阔,但许多老师不知道如何入手。本文介绍了在线教育平台的搭建方法以及与传统教育相比的优势,包括时间、地点、空间的灵活性,改善教育不公平现象以及个性化教学的特点。在线教育平台的搭建将为学生提供更好的教育资源,解决教育不公平的问题。 ... [详细]
  • 本文讨论了在手机移动端如何使用HTML5和JavaScript实现视频上传并压缩视频质量,或者降低手机摄像头拍摄质量的问题。作者指出HTML5和JavaScript无法直接压缩视频,只能通过将视频传送到服务器端由后端进行压缩。对于控制相机拍摄质量,只有使用JAVA编写Android客户端才能实现压缩。此外,作者还解释了在交作业时使用zip格式压缩包导致CSS文件和图片音乐丢失的原因,并提供了解决方法。最后,作者还介绍了一个用于处理图片的类,可以实现图片剪裁处理和生成缩略图的功能。 ... [详细]
  • 集成电路企业在进行跨隔离网数据交换时面临着安全性问题,传统的数据交换方式存在安全性堪忧、效率低下等问题。本文以《Ftrans跨网文件安全交换系统》为例,介绍了如何通过丰富的审批流程来满足企业的合规要求,保障数据交换的安全性。 ... [详细]
  • 单点登录原理及实现方案详解
    本文详细介绍了单点登录的原理及实现方案,其中包括共享Session的方式,以及基于Redis的Session共享方案。同时,还分享了作者在应用环境中所遇到的问题和经验,希望对读者有所帮助。 ... [详细]
  • Oracle优化新常态的五大禁止及其性能隐患
    本文介绍了Oracle优化新常态中的五大禁止措施,包括禁止外键、禁止视图、禁止触发器、禁止存储过程和禁止JOB,并分析了这些禁止措施可能带来的性能隐患。文章还讨论了这些禁止措施在C/S架构和B/S架构中的不同应用情况,并提出了解决方案。 ... [详细]
author-avatar
旧眸M_557
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有