专栏电商日志财经减肥爱情
投稿投诉
爱情常识
搭配分娩
减肥两性
孕期塑形
财经教案
论文美文
日志体育
养生学堂
电商科学
头戴业界
专栏星座
用品音乐

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

澳洲后卫盼来华赚钱提升本国足球,青训是第一要务在去年年底,瓦努阿图队长布莱恩卡尔塔克转会前往澳超中岸水手,迈出了自己职业生涯的重要一步。作为大洋洲岛民球员新的头牌,我们也请到了这位瓦努阿图队长,让他来讲述他对中国足球的看法,以CBA常规赛山东队加时擒鲨鱼中国体育报讯1月15日,CBA常规赛第二阶段继续在浙江诸暨赛区进行。当天结束的一场比赛中,山东队通过加时赛103比99艰难击败上海久事大鲨鱼队。此役上海队刘铮和外援梅洛休战,山东队望岳谈从人均生产总值11万,读懂山东的温度和底气来源烟台日报大小新闻山东省政府工作报告提出,到2027年,综合实力大幅跃升,高质量发展主要指标走在前列,人均生产总值达到11万元。11万元,这是一个怎样的数字?经济学中,人均GDP山东省人大代表潘洁波练好内功,用产品和质量提振汽车消费汽车产业是国民经济重要的支柱产业,产业链长关联度高就业面广,在国民经济和社会发展中发挥着重要作用。1月15日,省人大代表,上汽通用东岳基地党委书记总经理潘洁波接受新黄河记者采访时表下半场已开启,新能源车市将迎来八大新机遇2022年111月,中国新能源汽车产销分别达到625。3万辆和606。7万辆,新能源汽车产销占总体汽车产销的比例分别达到25。4和28。5。2022年11月,新能源汽车销量78。6转会费1亿欧元签约八年半,穆德里克加盟切尔西文羊城晚报全媒体记者徐扬扬英超豪门切尔西俱乐部1月15日晚官方宣布,乌克兰顿涅茨克矿工边锋米哈伊洛穆德里克已正式加盟,双方签约至2031年6月,转会费为7000万欧元3000万欧元OPPOReno9Pro上手体验,握持手感很轻薄,人像拍摄很美虽然我已经体验了许多手机,但是OPPOReno9Pro的轻薄握持手感依然给我留下了很深的印象,可能是我体验这么多手机中,握持手感最好的一款。外观轻薄手感一流OPPOReno9Pro2023中国连迎两场主场赛事经历了北京冬奥会的巅峰对决,新的冬奥周期新的冰雪赛季如约而至。据中国大学生体育协会消息,当地时间1月12日,第31届世界大学生冬季运动会在美国普莱西德湖奥林匹克中心开幕。作为新中国RTX4070Ti显卡评测与RTX40803090Ti性能与游戏测试对比2023年CES电子展,英伟达为我们发布了RTX4070Ti显卡,将于1月5日正式上市,国内上市价格为6499元起。原计划中的RTX4080,会有12G和16G两个版本,由于被吐槽懂球帝必知NBA球星最美娇妻系列(十一)韦德的美丽妻子尤尼恩头号有新人娱乐周周报,篮坛八卦,科普君带您早知道!大家好,笔者是篮坛科普君,今天继续我们的NBA最美娇妻系列,该系列在头条反响不错(读者感兴趣可以点进笔者头像看看该系列的其它文章,JSON格式COCO标注样本生成格式转换与可视化视频加载中GeoLabel已经对DOTAYOLOVOC和glVOC等标注格式提供了完善的支持,其中DOTA和YOLO为TXT格式,VOC和glVOC为XML格式,从GeoLabel
智库圆桌多举措应对全球大宗商品市场波动今年以来,全球大宗商品特别是能源粮食等价格再次创出新高。进入下半年,原油有色农产品等主要商品价格出现大幅波动。基于对海外通胀高企的抑制,美联储11月再次宣布加息75个基点,国际大宗西部发展新产业大有可为云计算和大数据是一场巨大的技术革命,正引领全球经济发展和人们生活方式的转变。在抢抓发展机遇面前,宁夏毫不迟疑,积极发展新科技,成功让西部的黄沙戈壁变成了创新热土,让自身在发展数字经土地供应模式要适应市场变化前不久,湖南长沙宣布调整土地供应模式,不再每年集中供应住宅土地,而将恢复常态化更新。同时,江苏徐州陕西西安江西南昌广东东莞浙江金华和温州等自发集中供地的城市均表示土地供应将恢复常态华尔街集体转向2023年,看空美元华尔街正在扭转之前对美元的看涨押注。此前看多美元的摩根大通和摩根士丹利,如今改变了看法,认为随着物价放缓推动市场减少对美联储收紧政策的押注,美元走强的时代正在结束。这可能为欧洲日本供应趋紧油价收高2美元,金价上涨超1欧元美元欧元兑美元周三上涨0。75,至1。0405美元。11月累计上涨5。34,为2010年9月以来最大月度涨幅。周三的一项欧洲调查显示,欧元区11月通胀率的下降幅度远远超过预期,乌将铁路双线电气化扩能改造工程顺利完工新疆铁路提升通道能力助推新疆经济发展11月30日,一列满载5000吨煤炭的列车在电力机车的牵引下从准东站缓缓驶出,标志着乌将铁路全线实现电气化开通运营。至此,历时近2年的乌将铁路双线电气化扩能改造工程全部完工。近年来新闻追踪丨勇救落水昏迷男子,他们获颁阿里公益正能量奖半岛全媒体记者王洪智刘玉凡徐杰从舍身忘死的救援,到教科书般的急救,这是善心加善能铸就的生死时速,这是这片热土上人们热血热心又一次的证明近日,本报报道的三名热心人陈德亮柳方甫徐君志勇辛辛苦苦培养出来的女大学生,是如何走上裸贷的辛辛苦苦培养出来的女大学生,是如何走上裸贷的前些年,各种各样的贷款平台发展迅猛,也导致了还在读书的学生开启了网贷生涯,网贷平台千奇百怪,大量高利贷的贷款平台也趁机崛起,在监管不完善梦回故乡梦回故乡,回到曾经住过的老房子,老房子在一个很隐蔽的地区交界,我出差在外,看到熟悉的布局特意跟踪过来才发现它的存在。老房子温暖结实,走进去,都是惊喜,原来老爸一直住在里面,真实而温每月5000块的退休金,60岁的我却宁愿1分都没有别人晚年生活困苦,大多是因为没钱。我从没想过,我每月5000块的退休金,还会有后悔和羡慕别人的时候。而这一年,我刚好60岁01hr儿啊,你是我一手带大的,你对得起妈妈吗?我满含泪花等你老了,要怎样才能不招年轻人嫌弃?别说老了不招人嫌,就现在做到试试捂脸。有钱谁嫌弃你,你看看马yun谁嫌了?你看看那谁王SC谁嫌了?现在的喜不喜欢都长在钱上,嫌不嫌弃都长在有没有价值上,现在很多人的思想都歪了。生儿
友情链接:快好找快生活快百科快传网中准网文好找聚热点快软网