基本分页存储管理实现逻辑地址到物理地址转换的过程
基本概念:
页框/内存块:将内存空间分为大小相等的分区,每个分区就是一个页框,或内存块。
页/页面:将用户进程的地址空间分成与页框大小相等的一个个区域,每个区域就是一个页或页面;
页表:页表记录进程页面和实际存放的内存块之间的对应关系,每个进程都有一个页表;
通过页面的形式,可以将用户进程分割成一个个区域,实现在内存中的不连续分配管理。通过页表可以实现页面与页框一一对应。从而实现逻辑地址到物理地址的转换。
如图:
接下来看具体的实现过程:
1.在进程未调度时,PCB中会存放页表始址和页表长度(多少个页表项)。在线程调度时,操作系统会将页表始址和页表长度放在页表寄存器中(PTR)中;
2.在执行每一条指令时,算出指令中的逻辑地址的页号和页内偏移量;将页号与PTR中的页表长度进行比较(若页号超出页表长度,则抛出一个越界中断异常)。
3.若在页表长度范围内,则继续进行。根据PTR中的页表始址和页号以及页表项长度算出页表项地址(页表项地址=页表始址+页表项长度*页号)。
4.页表项地址找到对应的内存块号,再根据业内偏移量找到具体的物理地址。