При использовании этого уровня ядро не знает о существовании потоков
- все управление потоками реализуется приложением, с помощью специальных
библиотек потоков. Переключение потоков не требует привилегий режима
ядра, а планирование полностью зависит от приложения. При этом ядро
управляет деятельностью процесса. Если поток вызывает системную функцию,
будет блокирован весь процесс, но для поточной библиотеки этот поток
будет находиться в активном состоянии. Здесь состояние потока не зависит
от состояния процесса.
Преимущества пользовательских потоков:
Переключение потоков не требует участия ядра - нет переключения из
режима задачи в режим ядра.
Планирование может определяться приложением - при этом выбирается
наилучший алгоритм.
Пользовательские потоки могут применяться в любой ОС - необходимо
лишь наличие совместимой библиотеки потоков.
Недостатки:
Большинство системных вызовов является блокирующими и ядро блокирует
процессы - при этом все потоки в пределах процесса будут блокированы.
Ядро может назначать процессы только на процессоры - два потока в
пределах одного и того же процесса не могут выполняться одновременно
на двух разных процессорах.