A page table is the data structure used by a virtual memory system in a computer operating system to store the mapping between virtual addresses and physical addresses. Virtual addresses are used by the program executed by the accessing process, while physical addresses are used by the hardware, or more specifically, by the RAM subsystem. The page table is a key component of virtual address translation which is necessary to access data in memory
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.Each process has its own page table in the kernel. Having a separate page table for each process is necessary for process isolation as they should not be allowed to stomp on each others memory.
thread is also a process but process can't be thread.
No, all threads of a process share the same page table. The point of having threads is to be able to have multiple tasks operating on the same memory. Threads are supposed to be fast, so there would be a lot of overhead if the entire page table had to be copied whenever a thread was created. We also want context switching to be fast, so we want to avoid having to switch between page tables when a different thread starts to execute.
so option A is more correct than option B.