Временное сечение присуще любой системе циклического планирования на практике, AFAIK.
Я не согласен с выводом InSciTek Jeff о том, что следующее - это циклическое планирование:
То есть, каждой задаче с одинаковым приоритетом в циклическом цикле может быть разрешено выполнение до тех пор, пока они не достигнут состояния блокировки ресурсов, прежде чем перейти к следующей задаче в цикле.
Я не понимаю, как это можно считать круговым. Это на самом деле упреждающее планирование. Тем не менее, возможно иметь алгоритм планирования, который имеет элементы как циклического, так и упреждающего планирования, что делает VxWorks, если включены циклическое планирование и вытеснение (циклическое переключение по умолчанию отключено). Способ включения циклического планирования заключается в предоставлении ненулевого значения в kernelTimeSlice .
Я согласен с этим утверждением:
Следовательно, в то время как планирование на основе временного расслоения подразумевает циклическое планирование, планирование с циклическим перебором не требует равного времени на основе временного слияния.
Вы правы, что это не требует равного времени. Предвосхищение может испортить это. И на самом деле в VxWorks, если задача прерывается во время циклического планирования, когда задача снова получает управление, она будет выполняться в течение оставшегося времени, когда она была выделена.
Редактирование, направленное на InSciTek Джефф (у меня нет прав на комментарии)
Да, я имел в виду блокировку задач / отключение прерываний, хотя я явно не очень хорошо это выразил. Вы опередили меня (ха!) Своим вторым комментарием. Я надеюсь обсудить более важный момент: вы полагаете, что циклическое планирование может существовать без сокращения времени. Или вы имели в виду равное время нарезки? Я не согласен с первым, но согласен с последним. Я стремлюсь учиться. Спасибо.
Edit2 направлено на Джеффа:
Round-robin может существовать без временной привязки. Это именно то, что происходит в VxWorks, когда kernelTimeSlice отключен (ноль).
Я не согласен с этим утверждением. См. этот документ раздел 2.2.3 с заголовком Планирование циклического перебора.
Круговое планирование использует время
нарезка для достижения справедливого распределения
процессор для всех задач с одинаковыми
приоритет. Каждое задание в группе
задачи с одинаковым приоритетом, выполняет
для определенного интервала или отрезка времени.
Планирование циклического перебора включено
вызывая kernelTimeSlice (), который
принимает параметр для временного интервала, или
интервал. [...] Если круговой
планирование включено, и выгрузка
включен для выполнения задачи,
обработчик системных тиков увеличивает
Количество временных интервалов задачи.
Временное сечение присуще циклическому планированию. В противном случае вы полагаетесь на задачу по отказу от управления процессором, которую должно решить циклическое планирование.