В контексте многозадачности операционной системы иногда вы слышите термин "циклическое планирование". Что это значит?
Какой еще вид планирования существует?
Что такое круговое планирование?
Ответ 1
Раунд Робин Планирование
Если вы являетесь хозяином в партии из 100 гостей, круговое планирование будет означать, что вы тратите 1 минуту (фиксированную сумму) на каждого гостя. Вы просматриваете каждого гостя один за другим, и через 100 минут вы провели бы 1 минуту с каждым гостем. Подробнее о Wikipedia.
Существует много других типов планирования, таких как приоритет (т.е. наиболее важные люди в первую очередь), first-come-first-serve, самый ранний-крайний срок (т.е. человек, который первым уходит раньше) и т.д. Вы можете начать off by googling для алгоритмов планирования или проверить планирование в Википедии
Ответ 2
Временная шкала присуща любой циклической системе планирования на практике AFAIK.
Я не согласен с тем, что InSciTek Jeff подразумевает следующее:
Таким образом, каждая задача с одинаковым приоритетом в циклическом ротации может запускаться до тех пор, пока не достигнет условия блокировки ресурсов до того, как вы вернетесь к следующей задаче при вращении.
Я не вижу, как это можно считать круговым. Это фактически упреждающее планирование. Тем не менее, возможно иметь алгоритм планирования, в котором есть элементы как циклического, так и упреждающего планирования, которые VxWorks делает, если включены как циклическое планирование, так и предварительное использование (по умолчанию отключен круговой режим). Способ включения циклического планирования - предоставить ненулевое значение в kernelTimeSlice.
Я согласен с этим утверждением:
Таким образом, хотя планирование на основе таймлинга подразумевает планирование с циклическим циклом, циклическое планирование не требует равного времени, основанного на сроках.
Вы правы, что не требуют равного времени. Предотвращение может с этим справиться. И на самом деле в VxWorks, если задача выгружается во время циклического планирования, когда задача получает контроль снова, она будет выполняться в остальное время, когда она была выделена.
Редактировать в InSciTek Jeff (у меня нет привилегий для комментариев) Да, я имел в виду блокировку/блокировку задачи, хотя я, очевидно, не очень хорошо это сказал. Вы превзошли меня (ха!) Своим вторым комментарием. Я надеюсь обсудить более важный момент, который, по вашему мнению, может быть ограничен, если вы планируете циклическое планирование. Или вы просто имели в виду равное время нарезки времени? Я не согласен с первым, но согласен с последним. Я очень хочу учиться. Спасибо.
Edit2, направленный на Джеффа:
Круглый робот может существовать без временных рядов. Это именно то, что происходит в VxWorks, когда kernelTimeSlice отключен (ноль).
Я не согласен с этим утверждением. См. этот документ в разделе 2.2.3 с заголовком Round-Robin Scheduling.
Круглое планирование использует время для обеспечения справедливого распределения CPU для всех задач с тем же приоритет. Каждая задача в группе задачи с одинаковым приоритетом, выполняет для определенного интервала или временного фрагмента. Графическое планирование включено вызов kernelTimeSlice(), который принимает параметр для временного фрагмента или интервал. [...] Если круговой планирование включено, а приоритет для выполнения задачи, обработчик клещей системы увеличивает счетчик времени выполнения задачи.
Распределение времени присуще циклическому планированию. В противном случае вы полагаетесь на задачу отказаться от управления ЦП, которое запланировано для планирования по кругу.
Ответ 3
Ответы здесь и даже в статье в Википедии описывают циклическое планирование, которое по сути включает периодическое временное выделение. Хотя это очень распространено, я считаю, что Round-Robin scheduling и timelicing не точно то же самое. Разумеется, для временного разглашения смысла подразумевается циклическое планирование при повороте к каждой задаче, однако вы можете выполнять циклическое планирование без временного разметки. То есть, каждая задача с одним и тем же приоритетом в циклическом вращении может быть разрешена для запуска до тех пор, пока не достигнет условия блока ресурсов, и только после этого будет иметь следующую задачу в прогоне вращения. Другими словами, когда существуют задачи с равным приоритетом, точки пересадки <
Вышеупомянутая идея фактически реализована специально для ядра Wind River VxWorks. В рамках своей приоритетной задачи задачи каждого приоритета запускаются циклически, но не выполняются тайм-ауты без специального включения этой функции в ядро. Причина такой гибкости заключается в том, чтобы избежать накладных расходов на задачи временного разметки, которые, как известно, запускаются в блок в течение ограниченного времени.
Таким образом, хотя планирование на основе таймлинга подразумевает планирование с циклическим циклом, циклическое планирование не требует равного времени, основанного на сроках.
Ответ 4
Мнение. Кажется, мы переплетем два механизма в один. Предполагая только исходное утверждение OP "В контексте многозадачной операционной системы", затем
1 - Планировщик с циклическим планированием всегда назначает следующий элемент в круговой очереди.
2 - Как диспетчер восстанавливает управление для выполнения планирования, является отдельным и не связанным.
Я не согласен с тем, что наиболее распространенным методом для 2 является выбор времени/доходность ресурса, но, как было отмечено, есть и другие. Если я не ошибаюсь, первый Mac не использовал временную привязку, они использовали добровольный доход/доход, ожидающий ресурса (иногда могут быть ошибочные клетки мозга старше 20 лет).
Ответ 5
Round robin - это простой алгоритм планирования, где время равномерно распределяется между заданиями без приоритета.
Например, если у вас запущено 5 процессов, каждому процессу будет разрешено работать за 1/5 единицы времени до того, как будет запущен другой процесс. Круглый робин обычно легко реализуется в ОС.
Ответ 6
Actaully, вы путаетесь с Prefective scheduling и Round robin. Infact RR является частью превентивного планирования.
Ответ 7
Планирование Round Robin основано на распределении времени, также известном как квант (максимальное время, заданное процессором для любого процесса за один раз). В очереди есть несколько процессов (которые требуют различного времени для завершения aka времени пакета), и процессор должен обрабатывать их все, чтобы он продолжал переключать между процессами, чтобы каждый процесс равнялся времени, основанному на квантовом значении. Этот тип планирования известен как планирование Round Robin. Оформить это простое видео, чтобы легко разобраться в циклическом планировании: https://www.youtube.com/watch?v=9hw-_qJ55K4