Планировщик ЦП: Как накапливается загрузка заданий внутри пула потоков? ⇐ Linux
-
Anonymous
Планировщик ЦП: Как накапливается загрузка заданий внутри пула потоков?
На платформе Linux планировщик ЦП (EAS) отслеживает все потоки, чтобы определить загрузку задач и частоту ЦП.
Предполагая, что у нас есть модуль пула потоков ПО, он создает потоки фиксированного количества и повторно использует все потоки, когда пользователь отправляет в него задания. Пул имеет возможность непрерывно извлекать задания для выполнения без явного перехода в режим сна. Другими словами, поток завершает одно задание, а затем напрямую вызывает другое задание из пула для выполнения, не переходя в спящий режим.
Мои вопросы:
(1) в чем разница между явным переходом в спящий режим и прямым вызовом другого задания в аспекте планировщика ЦП Linus?
(2) По моему мнению, полезность каждого потока растет во время его работы и снижается при переходе в режим сна. Он сохраняет стабильное использование и частоту, когда поток выполняет аналогичные задания. Но когда дело доходит до потока внутри пула потоков, задания становятся разными для каждого времени выполнения. Таким образом, утилита может стать нестабильной, что не позволит планировщику предсказать ее частоту. Я что-то неправильно понимаю?
(3) Возможность прямой выборки новых заданий без ожидания может привести к высокой загрузке/частоте, когда поток выполняет несколько заданий непрерывно. Затем, после перехода в спящий режим, поток может запуститься с относительно высоким значением использования. В этом случае следующее новое задание в том же потоке может иметь более высокие частоты процессора. Я все еще прав?
(4) Что касается механизма пула потоков, не способен ли планировщик ЦП предсказать его частоту? Каково ваше мнение?
(5)Каковы, по вашему мнению, плюсы и минусы механизма пула потоков?
Спасибо!
Я включаю возможность пула потоков. Я пытаюсь сбросить утилиты задания внутри пула потоков. Польза от нити превзошла мои ожидания. Поэтому я и спрашиваю здесь.
На платформе Linux планировщик ЦП (EAS) отслеживает все потоки, чтобы определить загрузку задач и частоту ЦП.
Предполагая, что у нас есть модуль пула потоков ПО, он создает потоки фиксированного количества и повторно использует все потоки, когда пользователь отправляет в него задания. Пул имеет возможность непрерывно извлекать задания для выполнения без явного перехода в режим сна. Другими словами, поток завершает одно задание, а затем напрямую вызывает другое задание из пула для выполнения, не переходя в спящий режим.
Мои вопросы:
(1) в чем разница между явным переходом в спящий режим и прямым вызовом другого задания в аспекте планировщика ЦП Linus?
(2) По моему мнению, полезность каждого потока растет во время его работы и снижается при переходе в режим сна. Он сохраняет стабильное использование и частоту, когда поток выполняет аналогичные задания. Но когда дело доходит до потока внутри пула потоков, задания становятся разными для каждого времени выполнения. Таким образом, утилита может стать нестабильной, что не позволит планировщику предсказать ее частоту. Я что-то неправильно понимаю?
(3) Возможность прямой выборки новых заданий без ожидания может привести к высокой загрузке/частоте, когда поток выполняет несколько заданий непрерывно. Затем, после перехода в спящий режим, поток может запуститься с относительно высоким значением использования. В этом случае следующее новое задание в том же потоке может иметь более высокие частоты процессора. Я все еще прав?
(4) Что касается механизма пула потоков, не способен ли планировщик ЦП предсказать его частоту? Каково ваше мнение?
(5)Каковы, по вашему мнению, плюсы и минусы механизма пула потоков?
Спасибо!
Я включаю возможность пула потоков. Я пытаюсь сбросить утилиты задания внутри пула потоков. Польза от нити превзошла мои ожидания. Поэтому я и спрашиваю здесь.
Мобильная версия