Correct Answer: D. The system must decide which thread should receive or handle the signal
Explanation:
Signal semantics must define whether a signal targets one thread, a specific thread, or the entire process.
The appropriate destination depends on how the signal was generated and configured.
Correct Answer: C. The process image is replaced, so the old threads cease to exist
Explanation:
exec replaces the entire process address space with a new program image.
Only the new program's initial execution context remains after the replacement.
Correct Answer: B. The child initially contains only a copy of the calling thread
Explanation:
POSIX fork semantics normally replicate only the thread that invoked fork into the child process.
This creates synchronization concerns because locks held by vanished sibling threads may remain copied.
A thread pool reuses worker threads instead of creating a new thread for every task.
This limits creation overhead and can control the maximum level of concurrency.
POSIX Pthreads defines portable functions and types for multithreaded programming on compliant systems.
The other choices are a file system, firmware interface, and disk-scheduling algorithm.
Correct Answer: C. To provide an API for creating, managing, and synchronizing threads
Explanation:
A thread library exposes functions for thread creation, joining, synchronization, and related operations.
Its implementation may manage threads in user space or invoke kernel services.
Correct Answer: B. It allows selected user threads to be bound to specific kernel threads
Explanation:
The two-level model provides many-to-many multiplexing while permitting explicit binding for particular threads.
Bound threads can receive dedicated kernel scheduling support when required.
The many-to-many model allows many user threads to be scheduled across a set of kernel threads.
It aims to combine user-level flexibility with kernel-supported parallelism.
The one-to-one model gives every user thread its own kernel thread.
It supports parallelism and independent blocking but may create higher kernel-management overhead.
The many-to-one model manages multiple user threads above one kernel scheduling entity.
A blocking system call can therefore block all user threads in that process.
A multithreaded server can handle multiple client requests concurrently within one process.
Shared caches and code reduce duplication compared with creating a completely independent program for each request.
A thread control block records the information needed to schedule and resume a particular thread.
It plays a role for threads similar to the process control block for processes.