My understanding is that, in general, there is one page table per process. My question is then: what happens in case of a page fault of the running process, if the OS has to send a page frame of a non-running process back to disk. The 开发者_StackOverflow中文版page table of the non-running process has to be updated too, or else when it is running again, its page table will not be correct. However in all the texts I read this is not mentioned. Am I misunderstanding something?
Each process has a page table, but the page table is for that process and not owned by that process, but owned by the kernel (this is a bit weird wording, but I hope you get what I mean). So when a non running process is paged out to disk the page table itself is still 'running', and updated. I don't think the page table itself is ever swapped out to disk, as this would cause very weird problems.
精彩评论