游戏电视苹果数码历史美丽
投稿投诉
美丽时装
彩妆资讯
历史明星
乐活安卓
数码常识
驾车健康
苹果问答
网络发型
电视车载
室内电影
游戏科学
音乐整形

Linux内存管理机制

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

小米王腾RedmiK30Pro憾失高刷,全系三星屏感谢IT之家网友软媒用户1809981的线索投递!据IT之家网友投稿,小米公司Redmi产品总监王腾Thomas今晚发微博爆料RedmiK30Pro有关屏幕的信息。……白百何太懂时尚了,平淡灰都被她穿出了时髦感,学到就是赚到头条创作挑战赛在无色彩中,黑色代表了极致的暗,白色象征着极致的光明,但这个世界本身并不是非黑即白,由很多模糊的边缘地带构成即为灰色地带,灰色是黑与白的中和,不像黑白那么的……RedmiK30Pro白色版官方渲染图公布江天一色无纤尘IT之家3月18日消息今日上午,Redmi红米手机官方公布了RedmiK30Pro白色版渲染图,并配有唐代诗人张若虚《春江花月夜》的诗句江天一色无纤尘,皎皎空中孤月轮。I……颜值即正义盘点那些年女孩们追过的女性手机又到了一年好几度的情人节了,朋友圈纷纷晒起了恩爱,一周前我们做了一个小调查,你们准备好情人节的礼物了嘛没想到出了一大波单身狗之外,竟还有一大半的男生没有准备好礼物,不过毕……卡米拉王后穿大红色,气色超好!网友抢凯特风头?关注我,看王室穿搭!最近英国王室的卡米拉王后出席一场公务活动时,选择了一件大红色的连衣裙,非常亮眼!卡米拉王后年逾70,不管是年轻时还是上了年纪以后,穿这么靓丽的服……一加8Lite最新渲染图曝光IT之家1月7日消息近日曝光的真机照显示,一加8Lite手机配备后置三摄,与此前的爆料信息有所不同。随后,Onleaks基于当前爆料,放出了一加8Lite的最新渲染图。渲……误入原始森林如何走出来,比如云南省的哀牢山和湖北省的神农架原始,这两个字多少都有点神秘色彩,自然而然就会让人想到古老的或者无人的地方,凡是带有原始的大山或者森林还是湖泊,多少都会流传着神秘的故事或者诡异的传说。原始森林,顾名思义……受损的联盟MS22号飞船将迎来新转机,美俄合作能否改变现状俄罗斯国家航天集团发布消息称,在受损的联盟MS22号飞船即将以无人模式返回地球之前,俄宇航员在国际空间站对其系统开展了热试验。俄国家航天集团称,在3月底该飞船以无人模式返……微软全新OfficeApp已适配安卓双屏手机IT之家2月28日消息昨天LG发布了其最新的旗舰智能手机V60ThinQ5G,带有LGDualScreen双屏幕。LGDualScreen将可用屏幕空间增加了一倍,使消费者更加……转行跑外卖的丽江金牌导游回归了!没想到首单接的是丈母娘团送了一年外卖后,董书学又回去当导游了。春节过后,旅游市场复苏。在游客不断涌入丽江的同时,由头部主播董宇辉在东方甄选看世界带来的旅行直播,给丽江旅游市场带来了一场不小的地震……799元起,华为畅享9e推出摩登黑配色IT之家6月7日消息日前,华为畅享9e推出了全新的摩登黑配色,3GB32GB版本售价799元。华为畅享9e于2019年3月发布,采用6。09英寸珍珠屏,搭载联发科MT67……华为畅享9S畅享9e正式发布售价999元起IT之家3月25日消息今天下午,华为在西安举办了华为畅享系列新品发布会,正式发布了畅享9S手机,畅享9S采用了6。21英寸珍珠屏的设计,拥有89的屏占比,屏幕分辨率为2340x……
天天吃阿托伐他汀,一定要知道这6点,用药更安全,降低心脑风险高血脂是个大问题,它不但是导致动脉粥样硬化的病理基础,也是引发心脑血管疾病的独立危险因素,如果出现血脂异常,特别是总胆固醇和低密度脂蛋白胆固醇升高的问题,在生活调理干预不能有效……小米卢伟冰深夜发问价格一样,你选择8GBLPDDR5还是12IT之家3月15日消息今年2月份发布的小米10手机全系搭载了骁龙865处理器LPDDR5,小米曾号称是骁龙865LPDDR5内存UFS3。0存储是旗舰机绝配。3月份,小米的独立……维尔纳回归莱比锡,从卢卡库到维尔纳,切尔西为何连续成为冤大头8月10日,切尔西前锋维尔纳正式转会莱比锡,签约至2026年,转会费为2000万欧外加浮动奖金。2020年夏窗切尔西花费5300万欧元从莱比锡签下维尔纳。两个赛季以来,维……小米相机部门招聘,雷军自荐称手机相册有5。5万张照片IT之家3月14日消息今天小米相机部产品总监在微博发布招聘信息,其中要求相册产品经理手机相册里的照片至少超过3万张,对此雷军转发该微博称,我相册中有5。5万张照片,我可以吗?……柬埔寨的不夜城,堪称是富人的天堂,却也是年轻女孩的噩梦拉斯维加斯、澳门,都是大家耳熟能详的不夜城,但实际上,还有很多的不夜城,比较有名的有我国的上海,泰国的芭提雅等等。(此处已添加小程序,请到今日头条客户端查看)其实,还有一……揭秘怀孕2个月?刘嘉玲我不会生孩子但梁朝伟确实要当爸爸了娱乐圈是个最擅于捕风捉影的地方,这是人尽皆知的事实。上至国际巨星,下至十八线开外的不知名演员,他们的身边总是会存在着许多流言蜚语。有的是为了增加热度,有的是为了增加曝光率……随记飞蛾与穿搭时常感叹大自然的造物能力,那些恍然飞过的一只小蛾子,也许就是你穿衣搭配的灵感来源。五彩斑斓的黑铺底,点缀以不规则的白色斑点,复古的配色带着漫不经心的慵懒。永不过时的……小米49元换电池活动不支持小米6,雷军发话IT之家3月11日消息小米官方近日宣布在3月开启安心服务月活动,3月11日至3月17日服务再次升级,仅需49元即可换新电池,据悉此次换电池服务仅收取规定费用,人工费以及其他费用……中老年该怎么补钙?天然补钙产品,值得拥有近几年,随着健康意识的提高,中老年人群对于补钙的需求越来越大。目前市面上的补钙产品琳琅满目,其中驼奶是一种备受推崇的天然补钙饮品。驼奶含有丰富的营养成分,能够全面保卫身体……一加88Pro获工信部认证,发布在即IT之家3月12日消息一加8标准版和Pro版已经现身工信部,暗示新机即将发布并上市。IT之家了解到,目前工信部还未公布新机的外观和具体配置,两款新机的代号分别为IN201……三星支付钱包在海外已支持存储新冠疫苗数字接种卡IT之家8月22日消息据外媒TheVerge消息,三星支付服务SamsungPay如今已经可以存储用户的新冠疫苗电子接种卡,方便在出行时进行展示。该功能是三星与医疗保健非营利机……黑莓手机将重返市场今年有望推出5G新机,配实体键盘IT之家2月12日消息外媒日经新闻近日采访了目前运营黑莓手机的公司OnwardMobility的CEOPeterFranklin(彼得富兰克林)。他表示将于今年推出黑莓5G手机……
友情链接:易事利快生活快传网聚热点七猫云快好知快百科中准网快好找文好找中准网快软网