Зачем ядру Linux нужен простой поток?

Вместо того, чтобы «ничего не делать», если нечего делать (включая SMP), почему ядро ​​Linux запускает поток ожидания?


person jaeyong    schedule 14.01.2013    source источник
comment
Где бы вы выставили счет за простои?   -  person kmkaplan    schedule 14.01.2013


Ответы (2)


Когда планировщик решает переключиться на задачу бездействия, в этот момент начинает работать динамический тик, отключая периодический тик до истечения следующего таймера. Тик будет повторно включен после этого промежутка времени или когда в какой-то момент произойдет прерывание.

В то же время процессор уходит в заслуженный сон специфическим для архитектуры способом, что экономит вашу энергию. Взгляните на определение cpu_idle() в arch/x86/kernel/process.c.

/*
 * The idle thread. There's no useful work to be
 * done, so just try to conserve power and have a
 * low exit latency (ie sit in a loop waiting for
 * somebody to say that they'd like to reschedule)
 */
void cpu_idle(void)
person Cong Wang    schedule 14.01.2013

Что значит "ничего не делать"??

Когда процессор включен, происходит довольно длинный список вещей. После включения процессор не может «ничего не делать». Он должен что-то делать, потому что есть напряжение и периодический тактовый сигнал. Вы можете снова выключить его и АБСОЛЮТНО ничего не делать, но тогда вам придется выполнить длинный список вещей, чтобы получить устойчивый тактовый сигнал, когда он вам снова понадобится.

Таким образом, незанятый поток — это поток, который выполняет минимум действий. то есть, если умножение двух чисел с плавающей запятой требует наименьшего количества циклов и наименьшего количества электронных схем; тогда незанятый поток будет постоянно умножать два числа с плавающей запятой. Кроме того, как сказал Ван, ядро ​​Linux (в некоторых конфигурациях) отслеживает, когда ядра начинают выполнять незанятые потоки, а также переключает их на более низкую частоту, отключая любое периодическое обслуживание ОС. Это приводит к небольшой задержке, когда требуется ядро, но при этом используется гораздо меньше энергии.

person toomanychushki    schedule 12.08.2015