教育房产时事环球科技商业
投稿投诉
商业财经
热点动态
科技数码
软件应用
国际环球
晨报科学
新闻时事
信息智能
汽车房产
办公手机
教育体育
生活生物

内存管理(操作系统是如何管理内存的)

  内存管理(操作系统是如何管理内存的)
  在计算机的世界里,有两个比较宝贵的资源,CPU和内存。这是每个进程都要争抢的资源。这篇文章说说操作系统是怎样进行内存管理的。 因水平有限,加之内存管理涉及的细节又很多,所以这里只是简单的介绍内存管理的一些关键概念及发展过程。直面物理内存
  在很久很久以前,内核与用户进程都是直接操作物理内存的。那个时候的物理内存模型大概可以简化成这样。物理内存按照固定大小编号,每个编号代表一个固定的二进制位。我们就像使用门牌号一样使用物理内存编号。这种模型的特点就是简单直接,但是带来的问题也很多而且很严重。问题1:用户进程之间内存冲突。
  在这个模型中,如果同时运行多个进程,就会引发内存冲突。比如进程A访问16号物理内存,而这时进程B很有可能也访问16号物理,引发冲突。相当于你想进入16号房间,另一个人也想进入同样的房间,最后你俩肯定干起来。问题2:破坏操作系统。
  因为内核跟用户进程都是直接操作物理内存,所以难免用户程序就跑去操作内核使用的内存了,引发系统瘫痪。
  其实这个模型也不是一无是处。因为足够简单,而且直接操作硬件,所以在简单的嵌入式系统,收音机,微波炉的电脑版里,还是采用的这种方式。对了BIOS也是采用的这种方式。
  继续前进,既然这种方案有诸多严重问题,那么我们就需要找到一个新的方案。注意,我们要解决的问题是同时运行多个进程,但不会造成访问物理内存地址冲突。地址空间
  地址空间:一个进程可用于寻址内存的一套地址空间。每个进程都有一个自己的地址空间,并且这个地址空间独立于其他进程的地址空间(除了一些特殊情况可以共享)。
  地址空间的概念,形象一点儿说类似于我们的电话号码,比如我们的手机号就是一个11位的阿拉伯数字组成的地址空间。生活中还有很多其他的地址空间概念的应用。基址寄存器与界限寄存器
  虽然每个进程都有自己的地址空间(如下图a与b),但是还没有解决访问物理地址冲突的问题。因为进程A的16号内存跟进程B的16号内存很有可能还是同一块内存。
  为了解决这个问题,发明了两个特殊的硬件,基址寄存器和界限寄存器。(关键时刻还得硬件工程师)
  基址寄存器:存储进程访问内存的起始地址。
  界限寄存器:存储进程的内存长度。举个例子
  当第一个程序运行时,基址寄存器和界限寄存器的值分别为0,16384,运行第二个进程的的时候,这些值分别是16384和32768。如果第三个16KB的程序进来那么基址寄存器的值是32768和16384。如下图所示
  每个进程的内存地址在送到物理内存之前。都会自动加上基址寄存器的值。这样每个进程都会在固定的内存范围内活动,这样就可以解决多个进程同时在内存中的问题。 为了避免用户进程随意更改寄存器中的值引起内存访问错误,很多系统中基址寄存器和界限寄存器都是只有操作系统可以访问。
  这个模型看起来完美解决了多道程序运行问题,但是问题在于,每次访问内存都要做加法跟比较运算,加法运算速度太慢了。而且进程的内存都是动态变化的,所以这个方法也不是最优解。交换内存
  我们先来看另外一个问题----内存超载。 每个程序员都希望有一块无限大的内存,但是这不现实。就像你想拥有无限多的钱一样。软件膨胀的速度,跟人的欲望是一样的,永远得不到满足。
  交换内存:把一个进程完全载入内存,运行一段时间之后存入磁盘。然后将另外一个进程载入内存,继续运行。周期性进行交替,把空闲进程主要存储在磁盘上。
  这个方案既可以解决同时运行多进程的问题,又可以解决内存超载问题。因为要频繁地往磁盘写入数据,但硬盘的写入速度又远没有内存快。所以这个方案一样不是我们寻找的最优解。 值得一提的是,虽然这个方案不能作为主流的内存管理方案,但是交换内存的概念还是被保留了下来,并且在实际应用中发挥了很大作用,后面还会提到。虚拟内存
  为了解决同时运行多个程序,以及内存超载问题。所有操作系统的终极解决方案——虚拟内存。虚拟内存概念厉害之处在于,使程序只有一部分载入内存的情况下就可以运行。不用像上面介绍的那些模型一样,要全部载入内存,才能运行进程。
  虚拟内存:每个程序拥有自己的虚拟地址空间,这个空间被分割成多块,每一块被称为一页或者页面(page)。每一页有连续的地址空间。这些也被映射到物理内存。但是并不是所有页都必须在内存中才能运行程序。当程序引用的页在物理内存时,由操作系统完成映射。当程序访问的页不在物理内存时(缺页中断),由操作系统负责把需要的页载入内存。当一个程序等待一部分内容读入内存时,可以把CPU交给其他进程。
  上面这段话,有几个关键点,我帮大家梳理一下。虚拟地址
  程序能够寻址的最大空间,所谓虚拟地址就是逻辑上假想出来的,真实没有那么大。32位操作系统最大的虚拟寻址空间就是2^32 大概是4G的空间 ,64位的操作系统最大虚拟寻址空间是2^64,抱歉我算不出来有多大。页面
  虚拟地址空间按照固定大小划分成称为页面(page)的若干单元。页框
  在物理内存中与虚拟页面一一对应的单元称为页框(page frame)。页面和页框的大小通常是一样的。如何映射--内存管理单元及页表。
  将虚拟地址发送到内存管理单元(Memory Management Unit,MMU包含在CPU里),然后通过页表把虚拟地址映射为物理地址。页表的本质是个函数,输入虚拟地址,输出真实物理地址。缺页中断
  我们知道进程的虚拟寻址空间很大,但是物理内存肯定没有那么大,也就是虚拟地址不可能全部映射到物理内存。当访问的页面不在物理内存时,就发生了页面中断,这个时候需要页面调度算法帮忙,把暂时不需要的页面置换到交换区,把需要的页面加载进内存。在等待换入页面的过程中,CPU会去处理其它进程。Linux会在磁盘中专门开辟出一个区域作为内存的交换区,以区别于IO系统的磁盘空间。举个例子
  我们来简单看一下,如何把虚拟内存地址映射为真实的物理内存地址。假设有一台可以产生16位地址的计算机,最大寻址范围是0到64K(2^16),这台计算机实际物理内存是32K。我们虽然可以编写64K的程序,但他们却不能完全被载入内存。在磁盘上必须有一个64K大的空间,保证程序片段在需要时可以被载入内存。如下图
  共享内存
  为了更高效地使用内存,我们希望更多的共享内存。
  多进程共享页面
  在实际操作中,通常将指令空间和数据空间分开。指令空间的页面很方便共享,因为指令空间的内容是只读的。如果是数据空间共享页面,要么保证数据是只读的,要么在进行数据空间进行写操作时,复制一份副本出来。比如fork调用,只要有一个进程进行了写操作,就会拷贝一份副本,这样每个进程都是可读写的。这个过程叫做写时拷贝。
  多进程共享库
  这是共享内存的另外一个维度,共享页面是按照页面维度共享,这个是按照库的维度,有很多进程都会用到同样的底层库,比如windows的动态链接库(DLL).这样内存中只载入一份就OK了,大大节省了内存空间。结束
  上面的内容大概介绍了一下操作系统管理内存的基本知识,还有很多细节没有涉及,比如页面置换算法,如何更快的将虚拟地址映射到物理地址。如何处理进程动态内存增长等问题,感兴趣的可以私下跟我交流,或者查阅相关书籍。

为什么gps定位不准(为什么手机gps定位不准)为什么gps定位不准(为什么手机gps定位不准)本图解由科普中国微平台原创制作,资料来源山西科普网)当我们在陌生地方找不着方向时,很多人习惯于用手机GPS进行导航定位,它就像灯塔一职业道德心得体会(职业道德心得体会300)职业道德心得体会(职业道德心得体会300)读教师职业道德心得体会原创202106050947数智已来教师是教育活动的组织者领导者,在教育活动中起主导作用。教师要想有效的从事教育活动用车管理制度(公司车辆管理制度)用车管理制度(公司车辆管理制度)为加强公司车辆的管理与有效使用,确保行车安全,保障公司正常的公务用车,制定本制度。1车辆使用制度1。1公司各部门人员如需用车,需要提前一天向车辆管理环球信息新闻内蒙古出租车将共享单车拉到郊外近日内蒙古出租车将共享单车拉到郊外登录上了百度热搜,受到广大网友们的关注,那么关于目前的内蒙古出租车将共享单车拉到郊外相信小伙伴们都是想要了解到最新的信息吧,小编也是在网上进行了一今日广西贵港市猪价,广西猪肉价格00河池市相关阅读土杂猪今日猪价土杂猪价格生猪价格广西省猪价今年04月15。分别为上海市湖南省江苏省甘肃省安徽省吉林省河南省贵。41玉林市。江苏省湖北省贵州省下跌区间为0。单位元公济南景点排行榜(济南游玩超全攻略)济南景点排行榜(济南游玩超全攻略)济南作为山东省会,经济不如青岛,空气不如烟威青,但省会毕竟是省会,还是有很多特有的资源,如大明湖畔的夏雨荷,趵突泉里的李清照,你都记得吗?自古诗云佐佐木希上搞笑节目为渡部建应援不知道大家还记不记得前段时间佐佐木希老公渡部建出轨的事件,当时这件事在网上引发了很多网友的议论,更让网友们意想不到的是佐佐木希原谅渡部建多次出轨,并坚持不会离婚。近日,佐佐木希上搞感叹句结构(感叹句有多种构成方法)感叹句结构(感叹句有多种构成方法)感叹句是中考必考的内容,有多种构成方法,你区分得清吗?1hr什么叫感叹句感叹句是表示喜怒哀乐等强烈感情的句子。感叹句句末通常用感叹号,读时一般用降澳大利亚有哪些城市(从深圳到堪培拉经过哪些城市)作者施南2018年1月26日,我在台湾旅行,看到一条新闻南非全球市场研究机构新世界财富发布的报告称,去年(2017年)全球富人最青睐的移民目的地前三位依次是澳大利亚美国和加拿大。有产值如何计算(产值和生产成本一样吗)工程公司项目绩效核算示例工程公司所涉及的项目按划分的方式不同,可分为三类设计类(包括研发类)设备类(包括备品备件等)总承包类。项目结束并验收评估或鉴定后,必然要涉及到绩效的计算和分ivd是什么意思(ivd企业是什么意思)21世纪经济报道记者唐唯珂实习生罗怡然广州报道去年疫情之下,业绩出现爆发式增长的体外诊断(IVD)企业,开始急流勇退谋求转型。2020年,随着新冠肺炎疫情的暴发,市场上对于新冠核酸
政务大厅是干什么的(行政大厅是干什么的)9月27日起,在不影响群众正常办事的前提下,仙居县行政服务中心开始进入紧张有序的新大厅搬迁工作。在政府和部门的高度重视下,仙居县行政服务中心新大楼已经具备搬迁入驻条件,本次搬迁入驻超轻粘土干了怎么办(超轻粘土成品干了开裂)引言最近,一则软泥玩具检出过量硼元素的新闻让泥胶类玩具成为消费者们的热点。文章中部分产品检测出来的硼元素令家长们感到不安,令很多消费者对软泥玩具纷纷敬而远之。不过,大部分消费者其实超轻粘土怎么做(超轻粘土的手工制作)亲爱的读者,阅读前请点击右上角,即可获得各种粘土教程你见过爱吃白菜的小兔子吗?今天我们来做一个爱吃白菜的小兔子,他还有两个好朋友,小松鼠和小黄兔,一起来看看吧!准备粘土棕色黑色白色古代最恐怖的刑具(如今却家家必备)古代最恐怖的刑具(如今却家家必备)说起熨斗,相信现在的每个人都不会陌生,作为现代家庭的常备家电用具,几乎家家户户都有它的影子。不过要是问起关于熨斗的历史,恐怕现在就没几个人知道了。司马迁简介(司马迁是怎么死的)司马迁简介(司马迁是怎么死的)司马迁是西汉著名的史学家文学家和思想家,司马迁所著的史记对后世有非常深远的影响。司马迁之所以说司马迁是一位史学家,相信这里就不用再赘述了,司马迁在史学司马师怎么死的(姜维一计害三贤)决定反叛之后,钟会闻听邓艾因破城之功而变的骄横,但骄狂的邓艾依然保持着极为出色的战略眼光,他建议司马昭应该趁着魏军灭蜀的声势,乘势攻吴,魏军挟大胜之威定能成功。退而求次可经营蜀中,司马懿是怎么死的(心狠手辣的司马懿是怎么死的?)司马懿是怎么死的(心狠手辣的司马懿是怎么死的?)司马懿是三国时期一个非常著名的人物,他和诸葛亮斗智斗勇,几乎家喻户晓,司马懿年轻时,聪明有大略,表现不凡,曹操曾征召司马懿出来做官,卓文君与司马相如?(司马相如与卓文君的爱情故事)卓文君与司马相如(司马相如与卓文君的爱情故事)爱了,就勇往直前,恨了,就一刀两断,不犹豫,不留恋,果敢而豪爽,这就是卓文君的性格。凤求凰兮卓文君出生于富豪之家,父亲是四川临邛县的的杨幂和魏大勋同居了吗近日杨幂和魏大勋同居登录了热搜,也是在网上引起了网友们的关注,那么很多小伙伴可能还不清楚具体的情况如何,小编也是在网上查阅了一些信息,那么接下来就分享给大家来了解下杨幂和魏大勋同居陈瑞资料(中国内地女歌手陈瑞)陈瑞资料(中国内地女歌手陈瑞)陈瑞国籍中国民族汉族出生地湖北宜昌出生日期1976年6月25日职业歌手教师电台主持人音乐作品白狐音乐作品下辈子不做女人完美女人深夜的咖啡籍贯湖北宜昌血江蕙为什么不来内地(台湾歌手江蕙结婚了吗)作词人李坤城曾经说过台湾地区近代三大巨星,即邓丽君凤飞飞与江蕙。江蕙到底是谁,为什么她会受到如此高的评价呢?今天我们就来认识一下这位著名的天后歌手。一凄苦的童年江蕙原名江淑惠,19