Q:为什么会产生分页式存储管理?
连续分配方式会形成许多“碎片”,虽然可通过“紧凑”方法将许多碎片拼接成可用的大空间,但须为之付出很大开销。
如果允许将一个进程直接分散地装入许多不相邻接的分区中,则无需再进行“紧凑”。
基于这一思想而产生了离散分配方式。
如果离散分配的单位是页,则称之为分页存储管理方式;
如果离散分配的单位是段,则称之为分段存储管理方式;
页式存储管理
将一个进程的逻辑地址空间分成若干各大小相等的片(页面/页),并为各页加以编号,从0开始;
相应的把内存空间分成与页面相同大小的若干个存储块(物理块/页框),同样为其各块加以编号。
在为进程分配内存时,以块为单位将进程中的若干个页分别装入到多个可以不相邻接得物理块中。
由于进程的最后一页经常装不满一块而形成了不可利用得碎片(页内碎片)
逻辑地址
用户程序的划分是由系统自动完成的,对用户是透明的。
一页的大小一般为 2 的整数次幂, 地址的高位部分为页号, 低位部分为页内地址(页内位移量)
页表(页面映像表)实现了从页号到物理块号的地址映射。
大多驻留在内存中。
系统为每个进程都建立一个页表
分页式系统地址变换机构(实现逻辑地址到物理地址的转换)
含有快表的分页式存储管理机构
对上图的解释:
CPU 给出有效逻辑地址后, 自动将页号与快表中的所有页号进行比较, 有则直接读出对应的物理块号送物理地址寄存器中, 无则继续按页号检索页表,在页表中读出对应的物理块号送物理地址寄存器中, 并同时修改快表, 使快表中始终保持着最近频繁访问的页信息。
实际上快表和页表检索是同时进行的, 快表查到则终止检索页表, 没查到则继续检索页表。上述过程全部由硬件实现, 并行性好速度快。
其中:
物理块号 b 的地址= 页表始址+页号*页表项长度
物理地址 P = 物理块号*页的大小+页内地址
快表的命中率一般为:80%~90%
页式管理的 优点: 解决了碎片问题、便于管理
缺点: 不易实现共享、不便于动态连接
阅读(1995) | 评论(0) | 转发(0) |