1 / 39
文档名称:

2021年北航linux——LINUX存储管理.ppt

格式:ppt   大小:214KB   页数:39页
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

2021年北航linux——LINUX存储管理.ppt

上传人:书犹药也 2021/1/15 文件大小:214 KB

下载得到文件列表

2021年北航linux——LINUX存储管理.ppt

相关文档

文档介绍

文档介绍:地址空间
地址空间(address space)是一段表示内存位置的地址范围。地址空间有两种:
物理地址空间
逻辑地址空间,也被称为虚拟地址空间
在逻辑地址和物理地址之间相互转换的工作是由内核和硬件内存管理单元(MMU—memory management unit)共同完成的。MMU是被集成进现代的CPU里的,它们都是同一块CPU芯片内的一个部分。内核告诉MMU如何为每个进程把某逻辑页面映射到某特定物理页面,而MMU在进程提出内存请求时完成实际的转换工作。
北航linux——LINUX存储管理
2021/1/15
1
LINUX的虚拟地址划分
每一个用户进程都可以访问4GB的线性虚拟内存空间。
从0到3GB的虚拟内存地址是用户空间,用户进程可以直接对其进行访问。
从3GB到4GB的虚拟内存地址为核心态空间,存放仅供核心态访问的代码和数据,用户态进程不可访问。
所有进程从3GB到4GB的虚拟空间都是一样的,有同样的页目录项,同样的页表,对应到同样的物理内存段。LINUX以此方式让内核态进程共享代码段和数据段。
内核态虚拟空间从3GB到3GB+4M的一段(也就是进程页目录第768项所管辖的范围),被映射到物理空间0到4M段。因此,进程处于核心态时,只要通过访问虚拟空间3GB到3GB+4M段,偏移地址0到4M,即访问了物理空间0到4M段。
北航linux——LINUX存储管理
2021/1/15
2
虚拟地址转换
PGD PMD PTE Page Frame
页目录索引,页面中间目录、页表索引和偏移量
虚拟内存和物理内存都分为大小固定的块,叫做页面。每一个页面有一个唯一的页面号,叫做PFN(page frame number)。
北航linux——LINUX存储管理
2021/1/15
3
转换后备缓存(Translation Lookaside Buffers:TLBs)
如果简单的执行从逻辑地址到物理地址的转换过程,在跟踪指针链时将会需要几个内存引用。RAM虽然不像磁盘那么慢,但是仍然比CPU要慢的多,这样就容易形成性能的瓶颈。为了减少这种开销,最近被执行过的地址转换结果将被存储在MMU的转换后备缓存(translation lookaside buffers:TLBs)内。
虚拟地址转换
北航linux——LINUX存储管理
2021/1/15
4
虚存段(VMA)的组织和管理
VMA:vitual memory area
一个vma段是某个进程的一段连续的虚存空间;在这段虚存里的所有单元拥有相同的特征。例如:属于同一进程,相同的访问权限,同时被锁定(locked),同时受保护(protected),等等。
进程通常占用几个vma段,分别用于代码段、数据段、堆栈段等。属于同一进程的vma段通过vm_next指针连接,组成链表。对于一个给定的进程,两个VMAs决不会重叠,一个地址最多被一个VMA所覆盖;进程从未访问过的的一个地址将不会在任何一个VMA中。
struct mm_struct结构的成员struct vm_area_struct * mmap 表示进程的vma链表的表头。
北航linux——LINUX存储管理
2021/1/15
5
北航linux——LINUX存储管理
2021/1/15
6
当一个进程有多于avl_min_map_count数目的VMA时,内核也会创建一个AVL树来存储它们,此时仍然是使用VMAs自己的指针对该树进行管理。AVL树是一个平衡二叉树结构,因此这种方法在VMA数量巨大时查找效率十分高。
虚存段(VMA)的组织和管理
北航linux——LINUX存储管理
2021/1/15
7
AVL树
北航linux——LINUX存储管理
2021/1/15
8
PCB对内存的控制
Task struct
mm_struct
_
vm_area_struct
vm_mm
pgd
mm
vm_operations_struct
vm_next
mmap
vm_ops
pgd
vm_area_struct
pte pte
page page
frame
frame
vm_next
*open
北航linux——LINUX存储管理
2021/1/15
9
物理空间管理
物理空间的组织
空闲物理内存管理
空闲内存的组织
分配