内存管理(1)-linux内核体系结构(2)

内存物理结构

内存管理(1)-linux内核体系结构(2)

•内核占用内存开始部分;接下来是共硬盘,软盘使用的高速缓冲区部分,其中扣除显存和bios的640k到1m;然后是虚拟盘;最后一部分是为所有程序可以使用的主内存区。


每台设备内存大小等参数都可能不一样。程序直接使用物理内存地址,将使得程序无法在通用的机器上运行。

为了隔离物理内存和程序使用内存,对其地址的访问。在程序运行时将使用虚拟地址。系统内核将建立虚拟地址到物理内存地址的映射。

应用程序的虚拟地址将是独立的。即没个程序看起来好像可以霸占整个主存空间。


以下是内核地址转化示意图:


内存管理(1)-linux内核体系结构(2)

虚拟地址(逻辑地址)访问全系统内存采用如下“索引”设计:

由段选择符和段内偏移地址

内存管理(1)-linux内核体系结构(2)

段变换:将一个由段选择符和段内偏移构成的逻辑地址转换为一个线性地址。页变换:将线性地址转换为对应的物理地址。

为什么要采用这种方式呢?


具体如何管理呢?

内存管理(1)-linux内核体系结构(2)


分段管理

内存管理(1)-linux内核体系结构(2)内存管理(1)-linux内核体系结构(2)


分页管理

内存管理(1)-linux内核体系结构(2)


未完,待修整

内存管理(1)-linux内核体系结构(2)