Подтвердить что ты не робот

Как Linux обрабатывает потоки и планирование процесса

Я пытаюсь понять, как linux обрабатывает планирование процессов и планирование потоков. Я читал, что linux может планировать как процессы, так и потоки.

Мой вопрос: у linux есть планировщик потоков и планировщик процессов? если да, то как они сотрудничают?

4b9b3361

Ответ 1

планировщик ядра Linux на самом деле планирует задачи, и это либо потоки, либо (однопоточные) процессы.

Итак, задача (a task_struct внутри ядра) в контексте планировщика - это планируемая вещь и может быть некоторым потоком ядра, например kworker или kswapd, некоторая пользовательская нить многопоточного процесса (например, firefox) или одного потока однопоточного процесса (например, bash), идентифицированного с помощью одного однопоточного процесса.

A process - это непустое конечное множество (иногда одноэлементное) темы, разделяющие одно и то же виртуальное адресное пространство (и другие вещи, такие как файловые дескрипторы, рабочий каталог и т.д. и т.д.). См. Также учетные данные (7), возможности (7) и т.д.

Темы в Linux - это потоки ядра (в смысле управления ядром, которое также создает собственные потоки), созданное специфическим для Linux clone syscall (который также можно использовать для создания процессов в Linux). Функция pthread_create, вероятно, построена (в Linux) выше clone внутри NPTL и Gnu Libc (который интегрировал NPTL в Linux) и musl-libc.

Ответ 2

Нити ядра в Linux реализуются как процессы, которые совместно используют ресурсы. Планировщик не проводит различия между потоком и процессом.

См. здесь для получения дополнительной информации: http://www.linuxquestions.org/linux/articles/Technical/Linux_Kernel_Thread

Ответ 3

В LINUX нет концепции потоков, чтобы поток писем LINUX POSIX был не чем иным, как другим процессом. Когда вы пытаетесь получить идентификатор процесса, он будет отображать идентификатор процесса руководителя под любым потоком. Для более подробной информации попробуйте обратиться к этой книге "Понимание ядра LINUX". Надеемся