Существует ли отдельный поток на уровне ядра для обработки системных вызовов пользовательскими процессами? - PullRequest
0 голосов
/ 26 февраля 2019

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

  1. Что именно означает «реализовано»?Означает ли это, что блоки управления потоками определены в пространстве пользователя и ядра соответственно?

  2. Что происходит при выполнении системного вызова?В каком потоке ядра (или IDK пользовательского потока) работает этот системный вызов?И есть ли у каждого стека уровня ядра свой стек?

  3. Я понимаю, что потоки - это просто части процесса.Когда мы имеем дело с потоками ядра, каков здесь соответствующий процесс?А каковы процессы ядра и можете ли вы привести примеры?

Я также ссылался на другие ответы, но не получил удовлетворения.

1 Ответ

0 голосов
/ 27 февраля 2019

Это зависит от реализации ОС.

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

См. Как работает системный вызов и Как реализован системный вызов в Linux? для получения более подробной информации.И я надеюсь эта ссылка может прояснить ваш вопрос о "потоках ядра".

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...