范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

Linux内存管理机制

  从硬件看内存纸带上内存存储器动态分区法分段机制分页机制
  从内核看内存为什么区分内核空间和用户空间什么是用户态和内核态如何从用户空间进入内核空间进程上下文和中断上下文
  一、从硬件看内存
  1、纸带上
  计算机读取一张纸带就运行一条指令,从外部存储介质上直接运行指令的方法很低效
  2、内存存储器
  程序存在内存存储器上,首先要加载程序到内存,然后执行。开启了存储程序的新大陆,也开启了操作系统的新大陆。
  3、动态分区法
  操作系统将内存分成一段一段的,只要有程序来就有合适的内存大小就优先安排上,若内存大小不够时易产生程序的换入换出过程(内存地址交换),同时还产生内存碎片。
  缺陷:进程地址空间保护问题、内存使用率底、程序运行地址重定位问题
  4、分段机制
  增加了虚拟内存。将程序所需内存空间的虚拟地址映射到某个物理地址空间。它解决了地址空间保护问题。进程运行时看到的地址是虚拟地址,需要CPU提供的地址映射方法才能找到实际的物理地址。因此每个进程的虚拟内存空间都是相互隔离的。需要操作系统维护映射关系。
  分段机制将程序分成若干段,一个进程可以分成(代码段、数据段、堆段)等。有点类似动态分区法。它们在物理地址可以是不连续的,这样可以解决内存碎片问题,但是会产生外部碎片。
  缺陷:分段机制对虚拟内存到物理内存的映射仍旧是以进程为单位,若某块物理内存不足时,会把进程的所有段都换出到磁盘。因此,会产生大量的磁盘访问,从而影响性能。按照局部性原理可以优化一下,不用将不常用的程序段换出到磁盘,只换出那些一直在使用的程序段即可。这样会少一些磁盘和系统带宽。
  5、分页机制
  解决分段地址映射粒度大 的问题,将进程地址空间细分为固定大小的页面,进程的虚拟地址空间也按页面分割,这样常用的数据和代码就可以以页的方式存储在内存中,而不常用的页面可以交换到磁盘中,从而节省物理内存。
  物理内存也是以页为单位来管理,简称"物理页面"或"页帧"。进程的虚拟地址空间中的页面称"虚拟页面"。操作系统为了管理这些页帧按物理地址给每个页帧编号,简称页帧号 。
  Intel的处理器支持以2MB和1GB为单位的大页面。分页机制离不开硬件支持,CPU内部有个硬件单元来负责虚拟页到物理页面的转换,称MMU 的硬件单元。ARM处理器的MMU包括TLB 和页表遍历 单元两个部件。
  TLB是一个高速缓存 ,用于缓存页表转换的结果,从而减少页表查询的时间。
  一个完整的页表翻译和查找的过程叫作页表查询 ,页表的查询是由硬件自动完成的,但是页表的维护需要软件来完成。当TLB没有命中时,MMU才会查询页表(例如AArch64页表分成4级页表,遍历就比较耗时),从而得到翻译后的物理地址。而页表通常存储在主存储器中,得到物理地址后,首先需要查询该物理地址的内容是否在高速缓存中有最新的副本,如果没有,则说明高速缓存未命中,需要访问主存储器。
  总结 :对于多任务操作系统,每个进程都拥有独立的进程地址空间。这些进程地址空间在虚拟地址空间内是相互隔离的,但是在物理地址空间可能映射同一个物理页面。它们的映射关系主要是靠处理器的MMU提供页表映射和管理的功能
  进程地址空间 又分为内核空间 和用户空间 。它们都可以通过处理器提供的页表机制映射到实际的物理地址。
  二、从内核看内存
  内存管理是一个非常复杂的系统,如果用分层来描述,内存空间可以分成为三个层次,分别是用户空间 、内核空间 、硬件层 。其中操作系统和驱动程序运行在内核空间,而应用程序运行在用户空间。
  用户空间:0x0000 0000 0000 0000 ~ 0x0000 FFFF FFFF FFFF 内核空间:0xFFFF 0000 0000 0000 ~ 0xFFFF FFFF FFFF FFFF
  底位的虚拟地址空间 位于0x0000 0000 0000 0000 ~ 0x0000 FFFF FFFF FFFF 如果虚拟地址的最高位等于0 ,就使用这个虚拟地址空间,并使用TTBR0_BLx来存放页表的基地址。
  高位的虚拟地址空间 位于0xFFFF 0000 0000 0000 ~ 0xFFFF FFFF FFFF FFFF 如果虚拟地址的最高位等于1 ,就使用这个虚拟地址空间,并且使用TTBR1_ELx来存放页表的基地址。
  例如在AArch64架构中,因为地址总线位宽最多支持48位,所以虚拟地址(VA)被划分为两个空间(用户空间、内核空间),每个空间最多支持256TB。
  AArch64架构中的MMU支持单一阶段的页表转换也支持虚拟化扩展中两阶段的页表转换。 单一阶段的页表转换:把虚拟地址(VA)翻译成物理地址(PA) 两阶段的页表转换:1)把虚拟地址翻译成中间物理地址(IPA) 2)把IPA翻译成最终PA
  在32位的linux系统中,一共能使用的虚拟地址空间是4GB。空间划分0-3GB为用户空间,3-4GB为内核空间。通常是按照3:1来划分的,当然也可以2:2来划分。
  1、为什么区分内核空间和用户空间
  在CPU的所有指令中,有些指令比较危险容易导致系统崩溃,譬如清理内存、设置时钟等。对于那些危险的指令只允许操作系统内核自己有权限操作,普通的应用程序只能使用那些不会造成灾难的指令。
  例如Intel的CPU将特权等级划分为四个级别Ring0-Ring3。其实linux系统只使用了Ring0 和 Ring3两个运行级别。当运行Ring3级别 时被称为运行在用户态 ,运行在Ring0级别 时称之为运行在内核态 。
  2、什么是用户态和内核态
  当一个进程发起系统调用时,进程在内核代码中执行时,称进程处于内核态 。此时处理器处于特权最高的(Ring0级) 。当进程处于内核态时,执行的内核代码会使用当前进程的内核栈 ,每个进程都有自己的内核栈 。
  当一个进程在用户空间执行时,称进程处于用户态 。此时处理器在特权级最低的(Ring3级) 。当进程处于用户态时,执行的程序代码都会使用当前进程的用户空间的用户栈 ,每个进程都有自己的用户栈 。
  注意 :当正在执行的用户程序突然被中断程序中断时,此时用户程序也可以象征地被称为处于进程的内核态。因为中断处理程序将使用当前进程的内核栈。 内核态下:进程运行在内核地址空间中,此时CPU可以执行任何指令,运行的代码也不受任何限制,可以访问任何有效地址,也可以进行端口访问。 用户态下:进程运行在用户地址空间中,此时被执行的代码受到CPU的诸多检查,它们只能访问其他地址空间的页表项中规定在用户态下可访问页面的虚拟地址,只能对任务状态段(TSS)中I/O许可位图中规定的可访问端口进行直接访问。
  注意 :对于以前的DOS操作系统而言是没有内核空间、用户空间、内核态、用户态这些概念的,统一认为代码都是运行在内核态下的,所以操作系统很容易崩溃掉。而对于Linux来说,通过区分内核空间和用户空间设计,隔离了操作系统代码与应用程序代码,使得操作系统更健壮、更具有稳定性和可用性以及安全性。
  3、如何从用户空间进入内核空间
  用户空间进入内核空间触发的三种场景分别是系统调用 (软中断)、异常 、硬件中断 。
  进程在被创建的时候都会产生两个栈,分别是用户栈,内核栈 。用户栈位于用户地址空间,内核栈位于内核地址空间。 当进程在用户空间执行时,使用用户栈,此时CPU堆栈指针寄存器中存放的是用户栈的地址。 当进程在内核空间执行时,使用内核栈,此时CPU堆栈指针寄存器中存放的是内核栈的地址。
  1)系统调用案例
  当一个进程需要读取磁盘上某一资源,它会向操作系统发起一个系统调用指令,例如(Open()、Read()、Write()、Close())开放接口等。此时会发生一些CPU上下文切换动作。 保存当前CPU寄存器里原来用户态的指令位 为了执行内核态代码,CPU寄存器需要更新为内核态指令的新位置 跳转到内核态运行内核任务,例如从调用磁盘IO,读取资源存储到内核态内核缓存区中 待磁盘IO结束后,再从内核空间的内核缓存区 拷贝数据到用户空间的用户缓存区  当系统调用结束,CPU寄存器恢复到原来的用户态指令位 最后切换到用户空间,继续运行进程
  总的来说 ,在内核空间中代码控制了硬件层资源的使用权,在用户空间中的代码它只能通过内核对外开放的系统调用接口来调用系统中的硬件资源。
  4、进程上下文和中断上下文
  处理器总处于以下三种状态之一 内核态,运行于进程上下文 ,内核代表进程运行于内核空间 内核态,运行于中断上下文 ,内核代表硬件运行于内核空间 用户态,运行于用户空间
  用户空间的应用程序,通过系统调用,进入内核空间。这个时候用户空间的进程要传递很多变量、参数的值给内核,内核态运行的时候也要保存用户进程的一些寄存器值、变量等。所谓的"进程上下文" ,可以看作是用户进程传递给内核的这些参数以及内核要保存的那一整套的变量和寄存器值和当时的环境等。
  硬件通过触发信号,导致内核调用中断 处理程序,进入内核空间。这个过程中,硬件的 一些变量和参数也要传递给内核,内核通过这些参数进行中断处理。所谓的"中断上下文" ,其实也可以看作是硬件传递过来的这些参数和内核需要保存的一些其他环境(主要是当前被打断执行的进程环境)。
  三、参考来源
  《奔跑吧linux内核》
  https://zhuanlan.zhihu.com/p/52845869
  https://www.cnblogs.com/hustcat/articles/1505618.html
  https://www.cnblogs.com/sparkdev/p/8410350.html

理想L系OTA4。3即将推送新增35项新功能优化17项体验爱卡汽车行业资讯原创理想汽车在2月17日宣布,理想L8与L9车型的OTA4。3即将正式推送,官方将分批次陆续完成推送。4。3系统中增加了35项新功能,优化17项体验。本次OTA更新QQ新功能被爆大量涉黄信息,看完脸红作为最受年轻人青睐的社交App之一,QQ近日进行了系统更新,小范围公测了QQ频道。其实,该功能在去年初就宣布即将公测,但迟迟没有消息,本次更新,也只有部分用户得到使用资格,我们也第到了60岁的人,身体这4种异常不是病了,只是变老了到了一定年纪不服老不行,特别是在60岁后已经进入老年阶段,许多衰老变化相对明显,需根据身体情况选择合适调养方法,在生活中坚持良好习惯,可以延缓器官衰老,激活免疫细胞功能,身体条件越iOS16。4更新,带来一波新功能今天凌晨,苹果发布了iOS16。4的第一个测试版更新,距离上个测试版一月之隔。iOS16。4Beta1的系统版本号为20E5212f。还未删除iOS16测试版描述文件的小伙伴,现在爱编程与工信部青少年信息技术培养工程签约合作2023年2月13日,中国知名少儿编程品牌iCoding爱编程与工信部青少年信息技术培养工程正式签约。双方将在该工程所属的青少年科技素养水平测试进行合作,iCoding爱编程将参与不到一年,慕尼黑会议上西装革履和身着战斗服的泽连斯基让人震撼2022年2月19日,也就是一年前的这个周末,泽连斯基刚愎自用的穿着西装打着领带走上慕尼黑安全会议的舞台,向西方陈述俄罗斯即将发动战争,欧洲将陷入困境。可当天参加会议的西方领导人还春江水暖花初开!2023全国早春赏花地图邀你赴一场花约中国天气网讯春风先发苑中梅,樱杏桃梨次第开。即将进入雨水节气,常年此时,我国春季前沿抵达福建北部江西南部广西北部贵州南部以及重庆一带,眼下,不少地方梅花樱花油菜花等陆续进入佳观赏期LG化学7500万美元入股美国锂业公司锁定电池材料供应出品搜狐汽车2月17日,韩国LG化学公司表示,已投资7500万美元收购了美国皮埃蒙特锂业公司(PiedmontLithium)的股份,以获得这种电动汽车电池的关键材料的稳定供应。L中国篮协通报周琦提出俱乐部涉及违规对新疆广汇作出处罚新京报讯2月17日,中国篮球协会纪律与道德委员会发布关于对新疆广汇篮球俱乐部有限公司的处罚通知。以下为全文新疆广汇篮球俱乐部有限公司基于中国篮球协会仲裁委员会的转报,就运动员周琦提主播说联播丨四问美利坚合众国!7日,外交部发言人汪文斌向美国连发四问。这四个问题,对美国而言恐怕是十分不好回答,但是有的事情做了,就必须要给出个说法。点击视频其中有一个问题是关于北溪。近日,面对美国知名调查记者硬科技公司年报怎么写?上交所下发科创板披露通知划重点当前正值年报披露季,硬科技公司需要注意的事项可不少。第一财经记者获悉,近日上交所向科创板上市公司下发了关于做好科创板上市公司2022年年度报告披露工作的通知(下称年报工作通知),对
最贵边后卫马克库库雷利亚!对于切尔西而言他真的不够好!现年24岁的马克库库雷利亚,于1998年7月22日在巴塞罗那的阿莱利亚出生。在2017首次升至巴塞罗那一线队而为其出赛,后分别在20182019和20192020赛季租借至西甲的埃辽篮最新猛料!莫兰德耍酷遭逼问,官微为中国队站台,弗格赚大了辽篮正争分夺秒地备战第三阶段的比赛,主教练杨鸣还忙里偷闲去辽宁城市联赛总决赛现场为他的前队友廉明所执教的盘锦队加油助威。效果很好,盘锦队在先输一场的情况下,第二场在杨鸣的现场见证下索内斯谈萨比策蹬踏绝对的红牌,如果这不是危险动作那什么是?直播吧2月20日讯英超联赛第24轮,曼联队主场30完胜莱斯特城延续了近期不错的状态。不过比赛中红魔冬窗新援萨比策的一次犯规引起了较大争议,天空体育评论员索内斯在半场评球时批评了他的麦克朗199。8分!韦德我不会给他打9分,他比拉文戈登做的更好今年的新科扣篮王出炉,他就是麦克朗!5049。85050,199。8分的超神表现让韦德震惊!赛后,韦德在社交媒体上点评麦克朗你值得这个冠军,你拯救了扣篮大赛,你比拉文和戈登做的更好冲突升级,关于篮协对新疆队处罚的三点思考法律专栏2023年2月17日,中国篮球协会官网发出处罚通知,认定新疆广汇篮球俱乐部有限公司(以下简称新疆广汇)存在参赛主体混同等问题,构成注册违规,并对新疆广汇作出处罚。经调查,新疆广汇利8种必吃的孕期通便食物膳食纤维是一种重要的营养素,它可以帮助维持肠道健康预防便秘和痔疮控制血糖和血脂帮助控制体重以及降低患妊娠糖尿病和妊娠高血压的风险。因此,孕妇应该特别注意摄入足够的膳食纤维。什么是膳佩林卡竭力签约勒夫让詹姆斯重迎最佳搭档近日,有消息称凯文勒夫将加盟洛杉矶湖人队,这让湖人队的阵容再次受到外界的高度关注。在这支队伍中,勒夫将会成为勒布朗詹姆斯的新的搭档,重新担任最佳大前锋助手的角色。这对组合将再次让人全明星扣篮大赛麦克朗夺冠,3个50分惊艳全场全明星周末第二天,扣篮大赛开始。马克麦克朗以3个50分扣篮毫无悬念夺冠。特雷墨菲上场,他假装被阿尔瓦拉多抢断,后者打板助攻,墨菲高高跃起空中接球,完成转身360转身扣篮,最终得到4美媒列出乔丹与詹姆斯获得的荣誉和奖项37比18,詹姆斯差一倍多最近关于勒布朗詹姆斯是历史最佳的呼声越来越大,特别是在他超越贾巴尔的总得分,成为历史得分最多的球员的时候。现在是时候比较一下迈克尔乔丹和勒布朗詹姆斯的主要成就和奖项了。为此,美媒F退役后的打算?字母哥想当主教练是真的很想当主帅直播吧2月19日讯雄鹿球星字母哥在全明星周末期间接受媒体采访,他表示自己有意退役后转行当主教练。当我退役后,我想成为一名主教练。很多人不了解我,但我想成为一名主教练。我真的很想成为传奇3光通版屠龙决战沙场每周六准时新区,散人首选长久版本传奇3之屠龙决战沙城全新版本如约而至还有全新元素系统惊喜上新不同类型元素搭配还能为各位勇士提升人物属性快来看看吧!职业介绍根据自身选择战士操作比较简单,但是前期需要养成,大佬必选,