Я читаю ostep и только что закончил введение в MLFQ.
Давайте рассмотрим очередь с самым высоким приоритетом для моего qn, поэтому задачи в ней планируются по принципу RR с интервалом времени скажем, 10 мс (я понятия не имею, каково это значение на современном процессоре, но в книге 2008 года написано 10 мс). В предыдущих главах я читал, что операционная система восстанавливает контроль, используя прерывания по таймеру примерно каждые 1 мс.
Это означает, что при выполнении задачи с высоким приоритетом в течение 10 мс происходит 10 прерываний ( 1 каждые 1 мс) и каждый раз планировщик говорит, что нужно продолжать выполнять одну и ту же задачу? это звучит как огромные накладные расходы, в которых нет необходимости.
Я пытался придумать объяснения, которые имели бы смысл, вот мои мысли:
Частые прерывания необходимы на случай, если ОС захочет запустить что-то на стороне ядра в любой момент, она не будет оптимизирована, чтобы заставить ОС ждать 10 мс, хотя, возможно, у нее есть какие-то важные вещи, которые нужно выполнить как можно скорее (я понятия не имею, что за задача это может быть)
Кроме того, я читал о режиме NO_HZ для отключения прерываний тактового сигнала по расписанию, поэтому мне интересно, являются ли тактовые часы планирования теми же часами, что и те, которые упоминаются в книге, создающей «таймер» прерывания", и если существуют разные типы часов, выдающие разные типы прерываний, которые можно отключить и т. д.
Подробнее здесь: https://stackoverflow.com/questions/783 ... -out-speed
Как отключить все прерывания процессора для достижения максимальной скорости ⇐ Linux
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Получить значение тока графического процессора и максимальной частоты в Android
Anonymous » » в форуме JAVA - 0 Ответы
- 22 Просмотры
-
Последнее сообщение Anonymous
-