53

Does every process have its own page table or does it simply add it's page entries into one big page table?

Brian Tompsett - 汤莱恩
  • 5,753
  • 72
  • 57
  • 129
Steven
  • 533
  • 1
  • 4
  • 4
  • 4
    By the way if you get to learning about the translation lookaside buffer, it will be less confusing if you know that the translation lookaside buffer is reloaded for the current process when there is a context switch. – Elliot Apr 12 '16 at 07:29

2 Answers2

66

Yes every process has its own pagetables. They might be shared with the parent process(copy on write) or with other processes(shared memory). But in general every process has its own.

Bernd
  • 928
  • 10
  • 8
  • 1
    How would system handle having a considerable number of processes running (which is not unusual) since all the page tables would need to be in kernel memory assuming kernel space usually doesn't exceed 1GB ? – chamibuddhika Dec 16 '13 at 04:53
  • 1
    @chamibuddhika believe the page table of each process is in process's user space. why do you think all page tables should be in the kernel memory? The global page frame structure, which is a huge array is in kernel space. For process's, I don't think so. – Mike Feb 07 '14 at 13:30
6

Yes, unless you use an inverted page table see this answer. Because an inverted page table is global, each entry must also contain which process it belongs to.

Community
  • 1
  • 1
EthanP
  • 1,663
  • 3
  • 22
  • 27