分段分页
为什么要分段分页?
假设不存在分段分页的机制,那么当多个程序并行执行时,需要手动hard code对应程序所请求的内存地址,很麻烦。
通过分段分页机制,程序员只需要关注逻辑地址或者虚拟地址,其映射到物理地址的过程由操作系统内核定义好,提高应用开发的效率。
多级分页
为什么要多级分页?
多级分页的主要目的是为了减小页表的大小。
页表可以看作虚拟地址到物理地址的一种映射表。假设虚拟内存空间被分为220个页,那么一级页表就需要一个长度220的数组来表示两者的映射关系,若每个“数”需要4个byte来存储,则需要4MB的存储空间。考虑到同一时刻可能有大量的进程在运行,则RAM中大量空间被浪费。而若采用二级页表,则只需要两个长度为210的数组即可完成相同的映射,页表的存储空间需要呈指数级下降。