如何在过程控制块(PCB)上进行分页

时间:2013-10-02 16:25:46

标签: memory-management operating-system paging

我正在学习操作系统概念,我对概念组合有一些疑问,特别是在分页方面。

这些是我现在的信念。如果我错了,请纠正我。

  • 我认为不仅仅是用户区,还有系统区也被分页,因为我看不到其他方式来处理操作系统的GB
  • PCB(过程控制块)包含页面表以及其他信息,PCB位于系统空间中。

我的怀疑是:

  • 所有内层页面表的页面(例如:辅助P.T.,三级P.T. in,比方说,3级分页)是否也被加载到相应的PCB中?
  • 如果包含主页表的PCB也被分页,那么预存主页表会在哪里存储?它是否也包含系统区域中其他系统文件的页面?

1 个答案:

答案 0 :(得分:3)

首先,我假设系统区域是指内核空间。是的,内核空间也是映射的,与用户空间一起映射。一般来说,它是通过以下方式完成的:

  • 身份映射 - 即虚拟地址和物理地址相同。一般高达4MB
  • 在Indentity Mapping之后,内核被映射到其他一些虚拟地址,如3GB-Linux,windows使用这种方法。

其次,PCB不包含页表但包含页面目录的物理地址。
该物理地址存储在cr3寄存器中。处理器使用此地址计算页表和页面的地址基本地址。每个进程都有自己的页面目录,因此在更新任务时,cr3寄存器的更新将包含列表中下一个进程的页面目录的物理地址。因此内部页面不会加载到PCB中。