GATE CS 2024 Set 1 — Question 24

MSQ+1 / -0EasyProcesses & ThreadsOperating SystemUser vs Kernel Threads

Operating System → Processes & Threads → User vs Kernel Threads

Last updated

Question

Which of the following statements about threads is/are TRUE?
A.
Threads can only be implemented in kernel space
B.
Each thread has its own file descriptor table for open files
C.
All the threads belonging to a process share a common stack
D.
Threads belonging to a process are by default not protected from each other

Correct answer

(D) Threads belonging to a process are by default not protected from each other

Solution

To determine which statements are true, let's analyze the properties of threads within a process:
1.Statement (A) is FALSE: Threads can be implemented at the user level (User-Level Threads) using libraries (e.g., Pthreads) or at the kernel level (Kernel-Level Threads) where the OS manages them. Many systems use a hybrid model.
2.Statement (B) is FALSE: Threads within the same process share the process's resources, including the address space, global variables, and the file descriptor table. They do not have individual file descriptor tables.
3.Statement (C) is FALSE: Each thread requires its own execution context, which includes its own program counter, register set, and stack. While they share the heap, they must have separate stacks to manage their own function calls and local variables.
4.Statement (D) is TRUE: Because threads of the same process share the same virtual address space, there is no memory protection between them. One thread can accidentally or intentionally overwrite data being used by another thread. This is why synchronization (like mutexes) is critical in multi-threaded programming.
Conclusion: Only statement (D) is correct.

More questions on Processes & Threads

Practice GATE CS PYQs with adaptive difficulty

Timed practice, skill tracking, and AI explanations — free to start.

Start practicing free