Threads belonging to the same process share common process resources, including:
Address space / virtual memory state (page tables, code, data, heap segments)
Open file descriptors and I/O resources
Global variables and signals
Each thread has its own private execution context:
Thread control block (TCB)
Therefore, on a per-thread basis, the OS does not maintain a separate virtual memory state (it is shared among all threads of the process). This makes (C) the TRUE statement.
(A) is false because the OS also maintains stack, PC, scheduling info, etc.
(B) is false because each thread must maintain its own independent call stack.
(D) is false because the OS also maintains thread registers, program counter, and stack pointer.