今天我们来看看嵌入式中的内存管理单元(MMU),它是现代处理器对内存进行高效管理的功能单元,操作系统利用内存管理单元能够实现虚拟内存和内存保护。我们先来看个有意思的问题,下面的程序运行两次后的输出是否完全相同?为什么呢?
成都创新互联10余年专注成都高端网站建设按需定制网站服务,为客户提供专业的成都网站制作,成都网页设计,成都网站设计服务;成都创新互联服务内容包含成都网站建设,成都小程序开发,软件开发,网络营销推广,网络运营服务及企业形象设计;成都创新互联拥有众多专业的高端网站制作开发团队,资深的高端网页设计团队及经验丰富的架构师高端网站策划团队;我们始终坚持从客户的角度出发,为客户量身订造网络营销方案,解决网络营销疑问。我们先来分析下。理论上,不同进程在内存中的不同位置执行;因此,全局变量的地址是不同的。关系如下
我们来看看结果
我们看到两次运行的结果的地址是相同的,也就是说我们之前的分析是错误的。我们在开发中经常被遗忘的事实:1、应用程序开发时,面对的内存为虚拟内存;2、虚拟内存模式下使用的内存地址为虚拟地址;3、每一个进程拥有独立私有的虚拟地址空间。换句话说,虚拟内存是与实际物理内存无关的,它是一个假想的足够大的内存。那么我们来思考下,内存需求总量为 1G 的应用程序是否能够运行于硬件内存为 256M 的计算机呢?在现代肯定是支持的,通过虚拟内存来支持。虚拟内存的意义是能够支持多个大的内存需求量的进程同时运行于较小的物理内存中,如下
举个例子来说。我们在上小学时,老师都是将讲义和书上的内容搬到黑板上进行讲解。刚开始的时候黑板上啥都没有,空间很大,老师可以随意的写内容。但是随着时间的推移,在后半节的时候,这时黑板已经写满了内容。老师想要继续写,就得擦掉一些已经写过的内容了以便写新的内容。我们来看看虚拟内存的机制:a> 虚拟内存需要重新映射到物理内存;b> 虚拟地址映射到物理内存中的实地址;c> 每次只有进程的少量代码在物理内存中运行;d> 大部分进程代码位于存储器中。在虚拟内存管理中,它是以页式内存管理的。页式内存单位,指一定数量的内存(如 4K);虚拟内存和物理内存以页为单位管理;进程的活动页被载入内存时,记录地址的映射关系。关系如下
页式内存管理法将内存分为两个部分:(p,d)。p 指的是地址高位,页面号;d 指的是地址低位,页内偏移量。如下
我们是通过页映射表来进行物理地址和虚拟地址映射的。具体如下
它是进行 MMU 时,先是进行查找,根据查找到的对应关系然后进行对应的映射到虚拟内存的显示。那如果没有找到对应的关系呢?我们来看看具体的过程,如下
如果没找到的话,便从物理内存中换出闲置的页面,再更新页映射表进而插入物理内存中。最后再进行地址的映射到物理内存中进行显示。那么我们来思考下,这几种方式为何能提高电脑性能?1、更换主频更高的处理器(同系列);2、增加物理内存大小;3、更换 SSD 固态硬盘。第一种的话换一个更高的处理器,也就意味着处理速度更快了,因此电脑性能就提升了。第二中的话,物理内存越大,也就意味着可以不用进行页面的替换,这样效率自然就提升了。第三种的话,更换 SSD 固态硬盘,在内存的处理速度就更快了,因而效率就越高了。
另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。