Що таке потік користувача та потік ядра?


13

Я знаю, що таке потік, і я знаю, як вони працюють, але я дуже розгублений щодо того, що таке потік користувача та потік ядра з точки зору того, що їм дозволено робити.

Чи можете ви уточнити, що може робити нитка користувача та що може робити нитка ядра?


1
Це питання вже був дан відповідь на SO: stackoverflow.com/questions/5957570/kernel-space-vs-user-space
Shadok

Ну, це питання було задано, але не було відповідено належним чином. Все, на що відповіли 5 або 6 речей, про які запитувала людина, стосувалися простору користувача та простору ядра.
Фасіх Хатіб

1
Я думаю, що визначення від Дейва Раджера є стислим і точним: "Простір ядра та простір користувачів - це розділення привілейованих функцій операційної системи та обмежених програм користувачів",
Шадок

Відповіді:


13

Ядро створюється і планує ядро, яке іноді називається LWP (Lightweight Process). Нитки ядра часто дорожчі, ніж користувацькі потоки, і система закликає безпосередньо створювати потоки ядра, дуже специфічні для платформи.

Користувацький потік, як правило, створюється бібліотекою потоків, а плануванням керує сама бібліотека потоків (яка працює в режимі користувача). Усі потоки користувачів належать до процесу, який їх створив. Перевага потоків користувачів полягає в тому, що вони портативні. Основну різницю можна побачити при використанні багатопроцесорних систем, потоки користувачів, повністю керовані бібліотекою потоків, не можуть працювати паралельно на різних процесорах, хоча це означає, що вони будуть працювати нормально в однопроцесорних системах. Оскільки в потоках ядра використовується планувальник ядра, різні потоки ядра можуть працювати на різних процесорах. Багато систем реалізують різьблення по-різному,

Модель багатопотокового нарізування відображає безліч користувачів процесів безпосередньо в один потік ядра; нитка ядра може вважатися основним процесом. Модель нарізки один на один відображає кожен потік користувача безпосередньо на один потік ядра, ця модель дозволяє паралельно обробляти багатопроцесорні системи. Кожен потік ядра може розглядатися як VP (Virtual Process), яким керує планувальник.

Джерело: Відповіді

Також ви можете знайти інформацію у Вікіпедії, розділ 3 - 3 Процеси, нитки ядра, нитки користувачів та волокна:

Нитка


Я не думаю, що корисно копіювати, мабуть, не знаючи, що саме є аргументом, і не знаючи повністю відповіді. Чи не LWP зазвичай створюється поверх потоку ядра як міст між останнім і потоком користувача? Крім того, ця відповідь є дуже заплутаною, оскільки вона продовжує перемикати термінологію, і в кінці ви не розумієте, якщо, наприклад, потік ядра є процесом тощо.
nbro
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.