Pascale
Die verschiedenen Multithreading-Modelle sind wie folgt:
Viele-zu-Eins-Modell
Beim Viele-zu-Eins-Modell werden viele Benutzerebenen-Treads einem Kernel-Thread von einem Zoll zugeordnet. Es ist effizient, weil es im Benutzerbereich implementiert ist. Ein Prozess, der dieses Modell verwendet, wird blockiert vollständig , wenn ein Thread einen blockierende Systemaufruf macht nur ein Thread den Kernel zu einem Zeitpunkt zugreifen kann , damit es nicht parallel auf Multi - Prozessor ausgeführt werden kann..
One-to-One - Modell
Abbildung: One-to-One - Modell
In diesem Modell wird jeder Benutzer-Thread einem Kernel-Thread zugeordnet. Es bietet mehr Parallelität, da es einem anderen Thread die Ausführung ermöglicht, wenn ein Thread einen blockierenden Systemaufruf durchführt. Es erleichtert die Parallelität in Multiprozessoren. Jeder Benutzer-Thread erfordert einen Kernel-Thread, der die Leistung des Systems beeinträchtigen kann. Die Erstellung von Threads in diesem Modell ist auf eine bestimmte Anzahl beschränkt. Dieses Modell wird von Windows NT, Windows 2000 und OS/2 verwendet.
Man-to-Many-Modell
Dieses Modell multiplext viele Threads auf Benutzerebene zu einer kleineren oder gleichen Anzahl von Kernel-Threads. Die Anzahl der Kernel-Threads kann entweder für eine bestimmte Anwendung oder eine bestimmte Maschine spezifisch sein. Der Benutzer kann beliebig viele Benutzer-Threads erstellen und entsprechende Kernel-Threads können parallel auf Multiprozessoren laufen. Wenn ein Thread einen blockierenden Systemaufruf durchführt, kann der Kernel einen anderen Thread ausführen. Es wird von Solaris 2, IRIX und Tru64 verwendet.