也就是操作系统是如何管理进程的空间的。
页式存储管理
物理设备(内存条)中的一部分内存就用字,字块来定义,每一个字块的大小相同。
逻辑空间中的内存的一部分就用页面来定义,每一个页面的大小也相同。而在我们将进程的逻辑空间等分成若干个大小一样的页面的时候,则相应的我们也将物理内存空间
等分为了若干个物理块。然后我们以页面为单位,将进程的内存装入物理内存中分散的物理块中。
我们在使用页式存储管理时,应该将页分配的大小适中,太大不好分,太小会造成内存碎片过多。通常是512B到8K。
我们可用通过页表来了解我们的进程空间都被分配到哪里去了,页表就是反映进程逻辑空间与物理空间的对应关系的一个表。页式存储管理的地址分为页号,页内偏移。
使用这种存储方式,会面临页表占用内存过大的情况,因为现在的计算机可以支持非常大的逻辑空间,在32位系统中如果你规定了每个页面占4kb,那么就会有2^20个页面
,那么页表项就会极多,页表占用的内存也会很大。所以我们就使用了多级页表,一个页表对应几个页表,第二级页表在对应具体实际内存位置。
他也有一个问题,如果有一段连续的逻辑分散在多个页面之中,那么将大大降低它的效率。
页式优点是内存利用率高。
段式存储管理
段的逻辑空间划分是非等分的,段的长度由连续逻辑的长度决定。与页式存储管理一样,他也有一个表,叫段表。
段式与页式都是离散的管理了进程的逻辑空间,他们的区别就是,页是从物理的角度去划分的,段是从逻辑的角度去划分的。分页是为了合理的利用空间,它的大小是由硬
件固定的(意思就是页的总大小就是物理内存的总大小,这是固定的。比如我将一页设置为1G那么一共就能分四页,定义为2G一共就能分2页),段是为了满足用户需求,
它的大小可动态变化。
段页式存储管理
这种方法是先将逻辑空间按段式管理分成若干段,然后再将段内空间按页式管理等分成若干页。