分页
大小不等的固定分区和大小可变的动态分区在内存的使用上都是低效的,前者会产生内碎片,后者会产生外碎片。
假如主存被划分成大小固定相等的块,且块相对比较小,每个进程也被分成同样大小的小块,那么进程中称为页(page)的块可以指定到内存中称为帧(frame)或页帧的可用块。
在本节中,我们将会看到,在内存中为每个进程浪费的空间仅仅是进程最后一页的一小部分形成的内部碎片。没有任何外部碎片。
图7.9说明了页和帧的用法。
在某个给定的时间,内存中的某些帧正在被使用,某些帧是空闲的,空闲帧的列表由操作系统维护。存储在磁盘上的进程A由4个页组成。当装入这个进程时,操作系统查找4个空闲帧,并将进程A的4页装入到这4个帧。进程B、C依次被装入。然后进程B被挂起,并且换出主存。
后来,主存中的所有进程被阻塞,操作系统需要换入一个新进程,即进程D,由5个页组成。
现在没有足够的连续帧来保存进程D,这回阻止操作系统加载该进程吗?答案是否定的,因为可以使用逻辑地址来解决这个问题。这时仅有一个简单的基址寄存器是不够的,