码迷,mamicode.com
首页 > 其他好文 > 详细

深入浅出处理器(下)_内存管理(映射)

时间:2018-02-09 17:22:08      阅读:157      评论:0      收藏:0      [点我收藏+]

标签:oss   term   全局变量   ecc   访问   amp   基于   why   如何   

专题1—深入浅出处理器

处理器(下)_内存管理(映射)

1.内存管理单元(MMU)

内存管理单元简称MMU,它负责虚拟地址到物理地址的映射,并提供硬件机制的内存访问权限检查。MMU使得每个用户进程拥有自己独立的地址空间,并通过内存访问权限的检查保护每个进程所用的内存不被其他进程破坏。操作系统系统内存管理单元实现虚拟内存和内存保护。
重点就在于地址映射:页表的结构与建立、映射的过程。

2.问题:下面程序输出结果是否完全相同?

int g_v = 1;

int main(void)
{
    printf("g_v = %d\n", g_v);
    printf("&g_v = %p\n", &g_v);
    Pause(1);

    return 0;
}

按照正常逻辑分析,理论上上不同进程在内存中的不同位置执行,因此,全局变量地址不同。
实验结果:
技术分享图片
运行后地址相同,和我们预期的不同,原因在于我们基于操作系统所使用的地址都是虚拟地址。
技术分享图片
经常被以往的事实:
应用程序开发时,面对的内存为虚拟内存,虚拟内存模式下使用的内存为虚拟地址,个一个进程拥有自己独立的虚拟地址空间。虚拟内存于实际物理内存无关,时一个假想的足够大的内存空间。
所以,内存需求为1G的应用程序也可以运行在实际内存为256M的计算机上。

3.3虚拟内存的意义

虚拟内存的意义在于,能够支持多个打内存需求量的进程同时运行于较小的物理内存中。
技术分享图片

4虚拟内存的机制

A.虚拟内存需要重新映射到物理内存。
B.虚拟地址映射到物理内存中的实际地址。
C.每次只有进程的少量代码在物理内存中运行
D.大部分进程代码位于存储区中

3.5页式内存管理

页时一个内存单位,指一定数量的内存,通常一页的大小时4K
虚拟内存管理和物理内存以页为单位进行管理
进程的活动页被载入内存时,记录页地址的映射关系
技术分享图片
页式内存管理分为两个部分:(p, d)
P 指的是地址高位,页编号
d 指的是地址地位,页内偏移量
技术分享图片
技术分享图片
技术分享图片
3.6如何提升电脑性能,why?
A.更换主频更高的处理器(同系列):当主频更高时上述流程中的查询速度和换入换出的速度都将提高,自然提升了电脑的读写速度,从而提高新能。
B.增加物理内存大小:增加物理内存则减少了上述流程的换入和换出次数。
C.更换SSD固态硬盘:增加了内存读写的速度。

深入浅出处理器(下)_内存管理(映射)

标签:oss   term   全局变量   ecc   访问   amp   基于   why   如何   

原文地址:http://blog.51cto.com/11134889/2070658

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!