Что такое пользовательский поток и поток ядра?

21821
Fasih Khatib

Я знаю, что такое поток, и я знаю, как они работают, но я совершенно не понимаю, что такое пользовательский поток и поток ядра с точки зрения того, что им разрешено делать.

Не могли бы вы уточнить, что может делать пользовательский поток и что может делать поток ядра?

12
На этот вопрос уже ответили на SO: http://stackoverflow.com/questions/5957570/kernel-space-vs-user-space Shadok 11 лет назад 1
Ну, вопрос был задан, но не получил правильного ответа. Все, что ответили из 5 или 6 вещей, которые спросил человек, были о пространстве пользователя и пространстве ядра. Fasih Khatib 11 лет назад 0
Я думаю, что определение от Дейва Рейгера является кратким и точным: «Пространство ядра и пространство пользователя - это разделение функций привилегированной операционной системы и ограниченных пользовательских приложений». Shadok 11 лет назад 1

1 ответ на вопрос

12
Jason Paddle

Поток ядра, иногда называемый LWP (облегченный процесс), создается и распределяется ядром. Потоки ядра часто дороже создавать, чем пользовательские потоки, а системные вызовы для непосредственного создания потоков ядра зависят от платформы.

Пользовательский поток обычно создается библиотекой потоков, а планирование управляется самой библиотекой потоков (которая работает в пользовательском режиме). Все пользовательские потоки принадлежат процессу, который их создал. Преимущество пользовательских потоков в том, что они переносимы. Основное различие можно увидеть при использовании многопроцессорных систем: пользовательские потоки, полностью управляемые библиотекой потоков, не могут работать параллельно на разных процессорах, хотя это означает, что они будут нормально работать в однопроцессорных системах. Поскольку потоки ядра используют планировщик ядра, разные потоки ядра могут работать на разных процессорах. Многие системы реализуют потоки по-разному,

Модель многопотоковых потоков отображает множество пользовательских процессов непосредственно в один поток ядра, который можно рассматривать как основной процесс. Модель потоков «один к одному» отображает каждый пользовательский поток непосредственно в один поток ядра. Эта модель позволяет выполнять параллельную обработку в многопроцессорных системах. Каждый поток ядра может рассматриваться как виртуальный процесс, управляемый планировщиком.

Источник: Ответы

Также вы можете найти информацию в википедии, глава 3 - 3 Процессы, потоки ядра, пользовательские потоки и волокна:

Нить

Отличное объяснение! Спасибо! Dao Lam 10 лет назад 0
Я не думаю, что это хорошая идея, чтобы копировать, очевидно, не зная точно, о чем на самом деле спор, и не зная полностью ответа. Разве LWP обычно не создается поверх потока ядра как мост между последним потоком и потоком пользователя? Кроме того, этот ответ очень запутанный, потому что он продолжает переключать терминологию, и в конце вы не понимаете, например, является ли поток ядра процессом и т. Д. nbro 8 лет назад 0

Похожие вопросы