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: A. When it reaches a defined cancellation point and processes the request
Explanation:
Deferred cancellation lets the target thread stop at controlled points where cleanup is safer.
It reduces the risk of leaving locks held or data structures inconsistent.
Asynchronous cancellation permits termination at an arbitrary execution point.
It is dangerous because the thread may hold resources or be updating shared state.
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-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.
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.
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.
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.
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.
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.
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.
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.