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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了深入浅出处理器(下)_内存管理(映射)相关的知识,希望对你有一定的参考价值。

专题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固态硬盘:增加了内存读写的速度。

以上是关于深入浅出处理器(下)_内存管理(映射)的主要内容,如果未能解决你的问题,请参考以下文章

深入理解_JVM内存管理JDK监控工具与故障处理工具08

内存管理概述内存分配与释放地址映射机制(mm_struct, vm_area_struct)malloc/free 的实现

linux内存管理--linux内核高端内存

深入理解_JVM内存管理典型配置举例09

深入理解缺页中断及FIFOLRUOPT这三种置换算法

Linux 内核 内存管理优化内存屏障 ② ( 内存屏障 | 编译器屏障 | 处理器内存屏障 | 内存映射 I/O 写屏障 )