分享好友 最新动态首页 最新动态分类 切换频道
Linux内存管理——段页式访问
2024-12-26 12:14

(1)早期的程序都是直接运行在物理内存上,程序访问的都是物理地址,根本没有虚拟地址的概念
(2)如果计算机同时只运算一个程序,只要程序需要的内存空间不超过实际物理内存空间的大小,则程序可以正常运行
(3)如果计算机同时运行多个程序,不仅要求多个程序加起来需要的内存空间小于实际物理空间的大小,而且程序要求分配到的物理内存必须要连续

(1)假如物理内存有130M, 现在A程序需要10M内存,B程序需要100M内存,C程序需要30M内存。
(2)我们先运行A程序再运行B程序,此时物理内存还剩下20M,如果接下来再运行C程序,因为C程序需要30M内存,此时剩下的物理内存是不够的。
(3)如果按照纯数学计算,我们只需要把A程序换出,刚好空闲30M内存
(4)但是实际这样行不通,因为C程序要求连续的30M内存空间,解决办法只有把100M的B程序换出到外存,很明显这样的效率很低,内存管理方式很粗糙

(1)地址空间不隔离:所有程序都是访问的物理地址,恶意程序可以去访问没有分配分配给它的内存空间,从而导致其他程序崩溃。或者是程序本身有bug,不小心访问其他程序分配到的物理空间,结果就是一个程序崩溃导致全部程序崩溃
(2)内存使用效率低:从上面举例就可以看出来内存效率使用低,并且存在大量的换入换出的情况
(3)程序运行的地址不确定:代码分为位置无关码和位置有关码,对于位置有关码是必须要求程序运行在链接地址处的。由于每次分配到的物理地址都不确定,给编程带来了麻烦,这涉及到代码重定位的问题。
补充:参考博客:《代码重定位》、《位置有关码和位置无关码》

(1)分段管理的思想:把程序需要的内存空间大小的虚拟地址映射到一段同等大小的物理内存地址空间
(2)假设有A程序需要10MB(0x00000000-0x00B00000)的内存大小,程序B需要100MB(0x00000000-0x06400000)的内存大小
(3)按照分段式映射后,虚拟空间和物理空间的映射关系如上图
(4)程序A和程序B在代码中都是从虚拟地址的0x0地址开始去访问,至于虚拟地址到物理地址的转换由操作系统去完成
(5)比如:程序A访问0x00001000地址,实际访问的是物理地址的0x00101000

(1)优点:解决了地址不隔离运行地址不确定这两个问题,但是没有解决内存效率使用不高的问题
(2)缺点:分段的方式对内存管理的单位太粗糙,每个程序需要的内存段大小都不同,对内存划分的颗粒度太大,导致有大量的数据需要换入换出,内存使用效率很低

(1)之前介绍的内存管理方式都是将程序一次性全部装载进内存,但是根据程序的局部性原理(即在一段时间内,整个程序的执行仅限于程序中的某一部分),我们没有必要一次性全部加载,我们只需要加载近期会用到的部分程序就可以正常运行
(2)分段式管理方式已经引入了虚拟地址到物理地址的转换,但是每个程序段的大小不确定,并且段要求映射到连续的物理内存,这导致频繁的换入换出,内存使用效率低
(3)我们结合上面两点:把虚拟地址到物理地址的映射单位从不确定的段大小改为确定的页大小;根据程序局部性原理,只把近期要用到的部分程序加载到内存,暂时未用到的部分还是在外存中,将来用到时发生缺页中断,再加载到内存中

(1)几乎所有的CPU都采用了MMU(Memory Management Unit:内存管理单元)来进行虚拟地址到物理地址的转换
(2)MMU现在都是集成到CPU的内部,ARM架构的CPU中由协处理器来控制MMU单元
(3)在uboot或者内核的启动阶段,设置好转换页表,后续程序使用虚拟地址访问内存时,MMU会自动转换成物理地址,上层的程序不用关心地址转换问题
补充:参考博客:《嵌入式开发(S5PV210)——u-boot中开启MMU》

(1)假设有进程process 1和process 2,两个进程都有8个页大小的虚拟地址空间,有的页映射到物理内存,有的页映射到磁盘空间
(2)虚拟页(VP,virtual page),物理页(PP,physical page),磁盘页(DP,disk page);
(3)物理内存也是8个页,这不是巧合。按照分页式管理,每个进程都认为自己是独享内存的,所以物理内存有多少个页进程的虚拟内存就有多少个页,只是有的页能映射到物理内存,有的页被映射到磁盘空间
(4)按照上面的映射关系,访问进程1的虚拟页vp7,就是访问物理内存的pp3页,具体虚拟页到物理页的转换由MMU完成,以此类推
(5)进程1的vp7和进程2的vp7同时映射到物理页pp3,这种情况下就共享物理页。比如pp3页是存放的共享库,或者是存放的某个文件,并且运行多进程同时操作
(6)进程1的vp3和vp2页映射到磁盘的dp1和dp0,当进程去访问vp3或vp2时,就会发生缺页中断,将磁盘的dp1和dp0换到物理内存中;如果物理内存已经没有多余的页,则会根据算法将某些暂时用不到的物理页先换到磁盘中,腾出空间来将磁盘中新的页换进来

最新文章
科技早报|谷歌深夜发布最新大模型;马斯克成身家超4000亿美元“第一人”
12月11日,据媒体援引知情人士消息报道,苹果正在研发专门为人工智能设计的服务器芯片,并正与博通合作开发该芯片的网络技术。新芯片的内部代号为Baltra,预计到2026年可量产。这也标志着苹果芯片团队一个新的里程碑,该团队最初为iPhone设
日常TikToK达人邀约,第三方工具靠不靠谱?
目前做的卖家在经历过1-3个月以后都会面临瓶颈期,手动达人逐个邀约每天大约也就50个左右已经无法满足经营需求,所以卖家朋友会选择第三方达人建联工具实现突破,相比于手动建联,确实极大的提高了建联效率,但是是不是使用了第三方建联工
笔记本电脑功率详解:影响因素、计算方式与应用场景
一、笔记本电脑功率概述笔记本电脑功率是指笔记本在运行过程中所需的能量,通常以瓦(W)为单位表示。功率是影响笔记本电脑性能的重要因素之一,了解笔记本功率可以帮助我们更好地选择适合自己需求的电脑。二、影响笔记本电脑功率的因素1.
运营干货|| 亚马逊广告关键词匹配方式及使用场景,让你的流量更精准 Keyboards 2
一谈到广告,关键词就是一个绕不开的话题,也是我们在广告运营中的重中之重。所以,我打算将亚马逊上关键词的内容,分成8篇的更新,从0-1带你全方位的了解亚马逊关键词的基础概念到高阶运营中的用法。在之前的文章中已经更新了亚马逊关键词
郑州企业专属网络名片定制专家,助力品牌飞跃
郑州专业网站搭建团队,专注于为企业量身定制专属网络名片,助力品牌形象提升与市场拓展,推动企业腾飞。郑州专业网站搭建团队的核心优势挑选郑州专业网站搭建团队的策略塑造企业独特的网络形象在互联网迅猛发展的今天,网络营销日益成为企
教你如何获取root权限认识ROOT怎么使用教程(图)
手机越用越智能,而系统定制又包含较多无用的应用,对于玩机爱好者来说,这是多么多么郁闷的一件事;更为重要的是,高玩们更喜欢DIY,喜欢那种控制的快感!所以今天就给大家说说Android手机ROOT权限的获取(iOS的越狱、塞班的xx、Meego的RO
郑州电子中专学校专业介绍 学费多少 2024招生简章
在当今信息技术日新月异的时代,职业教育成为连接梦想与现实的桥梁。郑州电子中专学校,作为一所集专业技能培训与理论知识传授于一体的优秀中等专业学校,致力于培养适应市场需求的高素质技能型人才。本文将详细介绍郑州电子中专学校的专业
股票行情快报:华测导航(300627)12月12日主力资金净卖出2432.67万元
证券之星消息,截至2024年12月12日收盘,华测导航(300627)报收于42.01元,下跌0.4%,换手率2.29%,成交量10.38万手,成交额4.35亿元。12月12日的资金流向数据方面,主力资金净流出2432.67万元,占总成交额5.59%,游资资金净流入2430.27万元
白小姐三肖三期必出一期开奖虎年,深度策略应用数据_4K版15.974
白小姐三肖三期必出一期开奖虎年,这一深度策略应用数据_4K版15.974的预测模型,近年来在彩票界引起了广泛关注。该模型以其独特的算法和数据分析能力,为彩民提供了一种全新的彩票预测方式。本文将深入探讨这一模型的工作原理、优势以及其
江苏企业互联网营销新起点,百度优化推广实战教程
江苏百度优化推广教程,专为助力企业互联网营销新起点设计。本教程深入解析百度推广策略,涵盖关键词优化、广告创意、数据分析等关键环节,助您快速提升企业网络曝光度,精准触达潜在客户,实现营销目标。随着互联网的快速发展,越来越多的
相关文章
推荐文章
发表评论
0评