五分钟读懂内存管理
创作时间:
2025-01-22 02:31:24
作者:
@小白创作中心
五分钟读懂内存管理
内存管理是计算机操作系统中的一个核心功能,它负责管理和分配计算机内存资源,确保系统和应用程序能够高效运行。本文将带你深入了解内存管理的基本概念、工作原理以及常见的内存管理技术。
计算机系统结构
什么是内存
内存(Memory),通常指计算机内存,是计算机系统中的一种存储设备,用于临时存储数据和指令,以便处理器能够快速访问和处理。内存是计算机系统的重要组成部分,主要用于存储正在运行的程序和操作系统的数据,确保系统能够高效地执行任务。内存通常分为两大类:随机存取存储器(RAM)和只读存储器(ROM)。
内存的分类
随机存取存储器(RAM)
- 动态随机存取存储器(DRAM):需要周期性刷新以维持数据,常用于主内存。
- 静态随机存取存储器(SRAM):不需要刷新,速度快,但成本高,通常用于缓存(Cache)。
只读存储器(ROM)
- 存储永久性数据,通常包含系统引导程序和固件,不易修改。
内存的功能
- 存储操作系统、应用程序和数据:内存提供一个临时存储区域,存储当前正在使用的数据和程序。
- 高速访问:内存的读取和写入速度远快于硬盘等存储设备,因此系统能更快地响应用户操作和执行任务。
- 数据交换:内存用于在CPU和其他硬件设备之间传输数据,确保高效的数据处理和系统运行。
内存的工作原理
- 加载数据:当程序或操作系统需要处理数据时,这些数据会从较慢的存储设备(如硬盘)加载到内存中。
- 执行指令:CPU从内存中读取指令和数据进行处理,执行操作。
- 临时存储:处理中间结果和临时数据存储在内存中,以便快速访问和修改。
- 数据交换:内存与CPU、硬盘、输入/输出设备之间进行数据交换。
内存的主要特性
- 易失性:RAM是易失性的,当电源关闭时,存储在其中的数据会丢失。
- 容量和速度:内存的容量和速度决定了系统的性能和多任务处理能力。更多的内存容量和更快的速度可以显著提高系统性能。
- 存取时间:内存的存取时间通常以纳秒(ns)为单位,表示读取或写入数据所需的时间。
内存结构
内存通常以层次结构组织,包括以下层次:
- 寄存器:CPU内部的高速存储单元,存取速度最快,但容量有限。
- 缓存(Cache):位于CPU和主内存之间,分为L1、L2、L3等不同级别,用于加速数据访问。
- 主内存(RAM):主要用于存储正在执行的程序和数据,容量较大,但存取速度相对较慢。
内存的应用
- 操作系统运行:操作系统核心及其服务和驱动程序运行在内存中。
- 应用程序执行:应用程序及其数据加载到内存中执行。
- 数据缓存:临时存储常用数据和指令,提高系统响应速度。
内存管理
连续分配管理(工业使用较多)
- 单一连续分配:只能用于单用户单任务操作系统。作业一旦进入内存,要等结束之后释放。无法实现多个进程共享主存。
- 固定分区分配:将内存分成若干区,不同区可以放不同程序。要先确定,运行就不能改变。通常采用静态重定位方式装内存。
- 动态分区分配:是可变分区分配。根据作业大小动态分配创建分区。
非连续分配管理
页式存储
- 物理内存空间分为块(不一定连续),块大小与页大小相同,从0开始编号
- 逻辑空间等分为页,从0开始编号,页面大小为4KB
- 逻辑地址结构:页号,位移量(页内地址)
- 地址长度为32位,0
11位为页内地址,即,每页大小为4KB;1231位为页号,最多220页 - 逻辑地址/212=页号%212=页内地址
- 物理地址=块号*块大小+偏移量
缺页中断与页面置换算法
- OPT:最优页面置换算法:当发生缺页中断时,对于保存在内存中的每个逻辑页,计算在它的下一次访问之前,还需要等待多长时间,从中选择一个等待时间最长的页,作为被置换的页。
- FIFO:先进先出算法:选择在内存中驻留时间最长的页面作为被置换页
- LRU:最近最久未使用算法:选择最久未使用的页面,作为被置换页
页式存储优缺点
优点:
- 很好的解决外部碎片问题,只会产生内部碎片
- 打破内存分配的连续性需求
- 提高主存的利用率
缺点:
- 程序需要全部装入内存,需要有相应的硬件支持
- 会有内部碎片产生
- 动态的地址变化、方案实施需要耗用额外的系统资源
- 存储扩展问题没有解决一一进程大小受限制,可用块数小于进程需要的块数时需要等待
段式存储
段式存储基本原理:
- 用户编制的程序是由若干段组成的:
- 一个程序可以由一个主程序、若干子程序、符号表、栈以及数据等若于段组成。
- 每一段都有独立、完整的逻辑意义,每一段程序都可独立编制,且每一段的长度可以不同。
- 每一段都可从“0”编址,段与段之间地址不连续,但段内地址是连续的。
- 分段式存储管理为作业的每一个段分配一个连续的内存区域,用来存放该段信息。
段式管理的数据结构
- 逻辑地址结构:段号,位移量(段内地址)
- 段内地址 16位 即段最大大小64KB
- 逻辑地址/216=段号%216=段内地址
物理地址=基址+段内地址
段式存储优缺点
优点:
- 没有内部碎片
- 可以以段为单位编写和编译,隔断程序修改互相不影响
- 可以针对不同类型的段采取不同的保护
- 可以以段为单位进行共享,包括通过动态链接进行代码共享
缺点:
- 会产生外部碎片,不过由于进程被分为多个小块,所以外部碎片也会很小
段页式存储
段页式存储原理:
- 用户程序先分段,每个段内部再分页 (内部原理同基本的分页、分段相同)
- 段页式存储总结
- 1、结合了段式和页式的优点;但是增加了表 (存储表和查询表)开销,只在大型计算
机系统中使用 - 2、段页式存储会产生外部碎片,还会产生内部碎片
段式和页式和段页式存储的比较
- 页式存储 就是说将程序分页时,页的大小是固定的,只根据页面大小强硬的将程序切割开而分段时比较灵活,只有一段程序有了完整的意义才将这一段切割开
- 分页式作业的地址空间是一维的,页间的逻辑地址是连续的,而分段式作业的地址空间则是二维的,段间的逻辑地址是不连续的
- 在页式、段式存储管理中,为获得一条指令或数据,须两次访问内存而段页式则须三次访问内存
内存碎片
内存碎片主要分为,内部内存碎片和外部内存碎片。
内存分页由于内存空间都是预先划分好的,页与页之间是紧密排列的,所以不会有外部碎片。
但是,因为内存分页机制分配内存的最小单位是一页,即使程序不足一页大小,我们最少只能分配一个页,所以页内会出现内存浪费,所以针对内存分页机制会有内部内存碎片的现象。
内存分段管理可以做到段根据实际需求分配内存,所以有多少需求就分配多大的段,所以不会出现内部内存碎片。
但是由于每个段的长度不固定,所以多个段未必能恰好使用所有的内存空间,会产生了多个不连续的小物理内存,导致新的程序无法被装载,所以会出现外部内存碎片的问题。
热门推荐
梅州客家菜:舌尖上的千年传承
桂林本地人总结的攻略,外来游客照着玩就行
2025年立春攻略:四个生肖如何和谐躲春?
春季健康管理全攻略:科学“躲春”指南
2025年双春年,这些属相要躲春!
广州购物攻略:六大品类购物天堂全攻略
黄子麟:广州早茶|花地新苗·一张图读懂广州城
左眼跳动是福是祸?科学解读民间传说
如何通过心态与环境改变运势,迎接美好未来的生活
《冷战余谍》揭秘:那些不为人知的历史细节
安邦:保险业破产清算第一案
元旦抢票大战:网易火车票 vs 高铁管家 vs 携程旅行,谁才是真正的抢票神器?
铁路12306助你轻松应对春运购票难题
22亿投资的张家界古城客流惨淡,文旅的未来在哪?
机器视觉在工业中的应用及其最新技术进展
六盘水梅花山滑雪场:南方人的滑雪天堂
高血压患者运动建议
冬日探秘昭通:酱香、干巴与绿豆糕的美味之旅
昭通油糕饵:金黄酥脆里的乌蒙山味道
航天科技一院牵手长沙,打造军民融合新高地
姓周女孩取名好听气质好:诗词出处与字义分析
科创板股价较高的原因和趋势是什么?这种原因和趋势如何判断?
想做筛查又怕辐射?恩次方全民防癌中心谈如何进行无负担筛查
保山到大理路线怎么走?几公里及详细路线攻略
从34.7%到9%再到39.3%:春晚收视率起伏背后的社会变迁
2024春晚汉服风潮:文化复兴正当时
用心理学技巧攻克高中生物:从62分到95分的提分秘籍
2025年高考生物必背知识点大揭秘!
微信相册加文字,让你的朋友圈更有料!
微信相册整理全攻略:从删除到备份,让照片管理更轻松