Кто запрашивает планирование после прерывания сетевого устройства? - PullRequest
2 голосов
/ 09 декабря 2011

Если поток ожидает данные из сети, ядро ​​не планирует его использование другими процессорами.

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

Маню

1 Ответ

3 голосов
/ 09 декабря 2011

Оба. Драйверы и ядро ​​по сути являются обработчиками прерываний, которые могут принять решение о возврате из прерывания в поток, отличный от того, который был прерван. Драйвер обрабатывает прерывание, сигнализирует, что ожидающий поток готов, и переходит / вызывает точку входа в ОС, чтобы планировщик мог изменить набор готовых / работающих потоков. Обычно ОС повышает приоритет потоков, которые только что были готовы после ожидания ввода-вывода, поэтому ваш сетевой поток имеет хороший шанс для запуска «немедленно».

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