предотвращение процесса по расписанию - PullRequest
0 голосов
/ 08 ноября 2011

Я создаю модуль ядра для Linux. Мне было интересно, как я могу остановить планирование процесса на определенное время? Есть ли в sched.c функция, которая может это сделать? Можно ли добавить конкретную task_struct в очередь ожидания в течение определенного определенного периода времени или использовать что-то вроде schedule_timeout для определенного процесса?

Спасибо

1 Ответ

0 голосов
/ 17 ноября 2011

Задержка планирования процесса на время равносильна тому, что он переходит в спящий режим. В драйверах это часто делается с помощью msleep () (обычно в рабочих задачах) или для процессов, переводя процесс в режим прерывистого сна с помощью

set_current_state(TASK_INTERRUPTABLE);
schedule_timeout(x*HZ);

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

...