1. 虚拟内存术语
虚拟内存 | 程序引用内存使用地址与内存系统用于识别物理存储站点的地址是不同的,程序生成的地址会自动转换成机器指令。 虚拟内存的大小收到寻址机制和可用的备用内存量的限制,而不受内存存储位置实际数量的限制。 |
虚拟地址 | 在虚拟内存中分配给某一位置的地址使该位置可以被访问,仿佛它是主内存的一部分。 |
虚拟地址空间 | 分配给进程的虚拟存储 |
地址空间 | 可用于某简称的内存地址范围 |
实地址 | 内存中存储位置的地址 |
2. 进程执行中的任何时候都在内存的部分称为进程的常驻集。
由于一个进程值能在内存中执行,因此这个存储器称为实存储器,简称实存。但是程序员或用户感觉到的是一个更大的内存,通常它被分配在磁盘上,这称为虚拟内存,简称虚存。
3. 虚拟内存的含义:分段允许程序员把内存视为由多个地址空间或段组成,段的大小是不相等并且是动态 的。内存访问以段号和偏移量的形式组成地址。
4. Linux 内存管理
虚存寻址, Linux使用三级页表结构:
1)页目录,一个活动进程有一个页目录,页目录为一页尺寸。也目录中的每一项只想页中间目录中的一页。每个活动进程的页目录都必须在内存中。
2)页中间目录,页中间目录可以跨越多个页。页中间目录中的每一项指向页表中的一页。
3)页表,页表也可以跨越多个页。每个页表项指向该进程的一个虚拟页。
内核内存分配
linux内核内存管理物理内存页框,它主要功能是为特定的使用分配和回收页框。
页框的可能拥有者包括用户空间进程,动态分配的内核数据,静态内核代码以及页缓冲区。
内核分配的基础是用于用户虚存管理的页分配机制。