操作系统 分页
在操作系统中,分页是一种从辅助存储器中以页面形式将进程调入主存储器的存储机制。
分页的主要思想是将每个进程分成页面。主存储器也将以页面形式分割。
进程的每个页面将存储在主存储器的一个框中。页面可以存储在内存的不同位置,但是总是优先寻找连续的框或空闲位置。
只有在需要时,进程的页面才会被调入主存储器,否则它们驻留在辅助存储器中。
不同的操作系统定义了不同的框大小。每个框的大小必须相等。考虑到在分页中将页面映射到框,页面大小需要与框的大小相同。
示例
让我们考虑主存储器大小为16 KB,每个帧大小为1 KB,因此主存储器将被分割为16个1 KB的帧的集合。
系统中有4个进程,即P1、P2、P3和P4,每个进程的大小为4 KB。每个进程被分成1 KB的页面,因此一个页面可以存储在一个帧中。
最初,所有的帧都是空的,因此进程的页面将以连续的方式存储。
帧、页面和两者之间的映射如下图所示。
让我们考虑这样一种情况,P2和P4在一段时间后被移动到等待状态。现在,8个帧变为空,并且其他页面可以加载到这个空的位置上。大小为8KB(8页)的进程P5正等待在就绪队列中。
考虑到我们在内存中有8个非连续的帧可用,并且分页提供了将进程存储在不同位置的灵活性。因此,我们可以将进程P5的页面加载到P2和P4的位置上。
内存管理单元
内存管理单元(MMU)的目的是将逻辑地址转换为物理地址。逻辑地址是由CPU为每个页面生成的地址,而物理地址是每个页面存储的帧的实际地址。
当CPU使用逻辑地址访问一个页面时,操作系统需要获取物理地址以物理访问该页面。
逻辑地址有两部分。
- 页号
- 偏移量
操作系统的内存管理单元需要将页号转换为帧号。
示例
考虑上面的图像,假设CPU要求进程P3的第4页的第10个字。由于进程P1的第4页被存储在帧号9,因此第9个帧的第10个字将被返回作为物理地址。