虚拟内存

  • 为了保护物理内存,虚拟内存通过线性地址映射到物理内存
  • 保护模式提供物理内存分页机制,32位系统下以4KB为一页
  • 操作系统以链表的形式记录进程的控制信息(PCB/task_struct),包含一个指针(页目录的物理地址)
  • 页目录(1024)-->页表(1024)-->物理内存页(4KB) 所以只能寻址4G

  • 线性地址:10bit(页表地址)|10bit(物理页地址)|12bit(偏移量)-->物理内存

  • 进程的虚拟内存只是可以申请使用的一个范围,真正的映射只有在访问的时候才会进行,只有真正被映射的物理内存才是合法使用的虚拟内存

  • CPU中的MMU将虚拟内存的线性地址转换为物理地址,TLB(Translation Lookaside Buffer)将地址缓存,进程切换,TLB要清空,这也是进程切换代价高的一个原因

  • 如果CPU查页表时发现物理内存还没有映射,就会发生page fault

image-20220426230826040

results matching ""

    No results matching ""