Separation of Threads and Processes
Separating threads and processes makes it easier to support multi-threaded applications
Concurrency (multi-threading) is useful for:
- improving program structure
- handling concurrent events (e.g., web requests)
- building parallel programs
So, multi-threading is useful even on a uniprocessor.
But, threads, even when supported separately from processes in the kernel, are too slow.