Describe how a multi-threaded application can be supported by a user-level threads
package. It may be helpful to consider (and draw) the components of such a package, and the
function they perform
Answer:
The kernel sees each process as having:
- Its own address space,
- Its own file management descriptors, and
- A single thread of execution.
Incorporating a user-level thread package into the programme will have a beneficial effect on its performance, a way to visualise it is multiplexing user level threads onto a single kernel thread. The process's scheduler we note is separate from the kernel's scheduler, and is often cooperative rather than pre-emptive so we must be careful of blocking operations. Generally we can attain good performance as we take advantage of virtual memory to store user level control blocks and stacks