分享好友 最新动态首页 最新动态分类 切换频道
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换到物理内存中;如果物理内存已经没有多余的页,则会根据算法将某些暂时用不到的物理页先换到磁盘中,腾出空间来将磁盘中新的页换进来

最新文章
绵羊漫画app免费版下载
绝对好看的漫画都在这里。《绵羊漫画 免费版》是一款非常不错的漫画阅读软件。在绵羊漫画软件内,拥有着海量的漫画资源,各种类型的漫画,超全的漫画种类,只要是你想看的漫画,都能轻松的在这里搜索的到,而且所有的漫画,免费任你尽情的
给排水CAD入门学习之排水斜弯的绘制技巧
有些刚开始进行的小伙伴在使用正版CAD软件绘制图纸的过程中,有些时候会需要绘制排水斜弯,那么浩辰软件中怎么绘制排水斜弯呢?接下来的给排水CAD入门学习教程就让小编来给大家介绍一下正版CAD软件——浩辰CAD给排水软件中绘制排水斜弯的相
高清美女写真生成神器:AI画出你心中的完美女神!
限时免费,点击体验最近超火的AI生图神器,坐拥3000美女的大男主就是你! https://ai.sohu.com/pc/generate/textToImg?_trans_=030001_yljdaimn 在这个科技飞速发展的时代,AI技术已经渗透到我们生活的各个角落。想像一下,宝子们,今天你
闲置8年后更名,沈阳一大型商场将重新开业!
来自中国房地产报消息,闲置8年之久,沈阳市北于洪地区最大的社区商业综合体——恒大都市广场B馆终于有了新动作。业内人士透露,该商业项目已经全权委托柏利城商业管理(苏州)有限公司展开全面升级改造与招商工作,与此同时,该商业体也已
直播软件搭建要求有哪些-从技术到硬件配置全方位解析!
直播软件搭建的要求是一个多方面的问题,涵盖了技术、硬件、软件以及网络等多个领域。搭建直播平台不仅需要考虑到用户体验的流畅性,还要确保平台的安全性和可扩展性。为了确保直播软件的成功搭建,开发者需要满足一定的技术要求,合理配置
科技早报|谷歌深夜发布最新大模型;马斯克成身家超4000亿美元“第一人”
12月11日,据媒体援引知情人士消息报道,苹果正在研发专门为人工智能设计的服务器芯片,并正与博通合作开发该芯片的网络技术。新芯片的内部代号为Baltra,预计到2026年可量产。这也标志着苹果芯片团队一个新的里程碑,该团队最初为iPhone设
日常TikToK达人邀约,第三方工具靠不靠谱?
目前做的卖家在经历过1-3个月以后都会面临瓶颈期,手动达人逐个邀约每天大约也就50个左右已经无法满足经营需求,所以卖家朋友会选择第三方达人建联工具实现突破,相比于手动建联,确实极大的提高了建联效率,但是是不是使用了第三方建联工
笔记本电脑功率详解:影响因素、计算方式与应用场景
一、笔记本电脑功率概述笔记本电脑功率是指笔记本在运行过程中所需的能量,通常以瓦(W)为单位表示。功率是影响笔记本电脑性能的重要因素之一,了解笔记本功率可以帮助我们更好地选择适合自己需求的电脑。二、影响笔记本电脑功率的因素1.
运营干货|| 亚马逊广告关键词匹配方式及使用场景,让你的流量更精准 Keyboards 2
一谈到广告,关键词就是一个绕不开的话题,也是我们在广告运营中的重中之重。所以,我打算将亚马逊上关键词的内容,分成8篇的更新,从0-1带你全方位的了解亚马逊关键词的基础概念到高阶运营中的用法。在之前的文章中已经更新了亚马逊关键词
郑州企业专属网络名片定制专家,助力品牌飞跃
郑州专业网站搭建团队,专注于为企业量身定制专属网络名片,助力品牌形象提升与市场拓展,推动企业腾飞。郑州专业网站搭建团队的核心优势挑选郑州专业网站搭建团队的策略塑造企业独特的网络形象在互联网迅猛发展的今天,网络营销日益成为企
相关文章
推荐文章
发表评论
0评