Threads: Warum müssen alle Benutzer-Threads einem Kernel-Thread zugeordnet sein?

Also zwei Fragen hier wirklich. Was ist der Unterschied zwischen einem Benutzer-Thread und einem Kernel-Thread? Ist es einfach so, dass eines von einem Anwenderprogramm und das andere von einem Betriebssystem generiert wird, wobei letzteres Zugriff auf privilegierte Anweisungen hat? Sind sie konzeptionell gleich oder gibt es tatsächliche Unterschiede in den Threads selbst?

Zweitens und das eigentliche Problem meiner Frage ist: Das Buch, das ich verwende, besagt, dass "eine Beziehung zwischen Benutzer-Threads und Kernel-Threads bestehen muss", um die verschiedenen Modelle einer solchen Beziehung aufzulisten. Aber das Buch erklärt nicht klarWarum ein Benutzer-Threadmuss immer einem bestimmten Kernel-Thread zugeordnet werden. Warum ist das?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage