![]() |
Message-passing system. It uses at least the two operations send(message) and receive(message). |
| The link among processes is not a physical communication link but a logical link. |
![]() |
Direct communication. There are two types of this communication type: symmetry and asymmetry. In the |
| symmetry addressing, the sender and the receiver have to name each other. In the asymmetry |
| addressing, only the sender names the receiver and the receiver does not have to name the sender. |
![]() |
Indirect communication. In indirect communication, the messages are sent to and received from |
| mailboxes. |
![]() |
It takes far less time to create a new thread than to create a brand-new process. |
![]() |
It takes less time to terminate a thread than a process. |
![]() |
It takes less time to switch between two threads within the same process than to switch between |
| processes. |
![]() |
Threads enhance efficiency in communication between different executing programs because threads |
| within the same process share memory and files. |
![]() |
Foreground and background work. |
![]() |
Asynchronous processing. |
![]() |
Speed of execution. |
![]() |
Modular program structure. |
![]() |
The thread management is done in the process and it is not required to switch to the kernel mode. That |
| saves the switch between the user mode and the kernel mode. |
![]() |
The threading scheduling can be done by the application without disturbing the kernel. |
![]() |
ULTs can run on any operating system. The kernel does not have to have special features support ULTs. |
![]() |
When one thread is blocked because of blocked system call, all the threads with the process are |
| blocked. |
![]() |
In a pure ULT strategy, only one processor is assigned to a process. So, only one thread within the |
| process can be executed. |
![]() |
The kernel can simultaneously schedule multiple threads from the same process on multiple processors. |
![]() |
If one thread in a process is blocked, the kernel can schedule another thread of the same process. |
![]() |
The kernel routines can be also multithreaded. |