My textbook states the following:
In a pure ULT (user level thread) strategy, a multithreaded application cannot take advantage of multiprocessing. A kernel assigns one process to only one processor at a time. Therefore, only a single thread within a process can execute at a time. In effect, we have application-level multiprogramming within a single process. While this multiprogramming can result in a significant speedup of the application, there are applications that would benefit from the ability to execute portions of code simultaneously.
I understand the elementary concepts, such as user level threads, multithreading, and multiprocessing. However, I don't understand the above justification for why a multithreaded application can't take advantage of multiprocessing in a pure ULT strategy.
I would greatly appreciate it if someone could please take the time to clarify this with a clearer explanation.
CPU
. – Tony Tannous