The Unix kernel maintains two key per-process data structures: the process…
2015
The Unix kernel maintains two key per-process data structures: the process table and the user structure (u-area). Which of the following is NOT part of the user structure?
- A.
File descriptor table
- B.
System call state
- C.
Scheduling parameters
- D.
Kernel stack
Attempted by 884 students.
Show answer & explanation
Correct answer: C
Concept: Classic Unix kernels split every process's state into two separate structures: the process table (an array of small, always-resident proc entries — one per process — holding what the kernel/scheduler needs even while the process is not running) and the user structure / u-area (a larger, per-process block that is swappable and holds data needed only while that process is actually executing in kernel mode).
Application: Data the kernel needs only DURING execution belongs in the user structure: the open-file/descriptor table, the in-progress system-call context (arguments, return value, error state), and the per-process kernel-mode stack used while servicing a system call or interrupt. The table below maps each item to where the Unix kernel actually keeps it.
Item | Kept in |
|---|---|
File descriptor table | User structure (u-area) |
System call state | User structure (u-area) |
Kernel stack | User structure (u-area) |
Scheduling parameters | Process table (PCB) |
Cross-check: The scheduler must pick the next process to run from among ALL processes, including ones that are currently swapped out or simply not on the CPU — so priority/CPU-usage/scheduling-class data cannot live in a structure (the user structure) that is only meaningful while a process is executing. It has to live in the process table, which stays resident regardless of whether the process is running.
Answer: Scheduling parameters are stored in the process table, not the user structure — confirming that option as the one that is NOT part of the user structure.