Вопрос

В контексте многозадачной операционной системы иногда можно услышать термин циклическое планирование.Что оно относится к?
Какое еще расписание существует?

Это было полезно?

Решение

Раундовое планирование

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

Существует множество других типов планирования, например планирование на основе приоритетов (т.самые важные люди в первую очередь), в порядке очереди, в порядке очереди (т.е.человек уходит раньше всех) и т. д.Вы можете начать с поиска в Google алгоритмов планирования или проверить расписание в Википедии

Другие советы

На практике разделение времени присуще любой системе циклического планирования, AFAIK.

Я не согласен с утверждением InSciTek Джеффа о том, что следующее является циклическое планирование:

То есть каждой задаче с одинаковым приоритетом в циклической ротации можно разрешить выполнение до тех пор, пока она не достигнет условия блокировки ресурсов, прежде чем перейти к следующей задаче в ротации.

Я не понимаю, как это можно считать круговым.На самом деле это упреждающее планирование.Однако можно использовать алгоритм планирования, включающий элементы как циклического, так и вытесняющего планирования, что VxWorks и делает, если одновременно включены циклическое планирование и вытеснение (циклическое перебор отключено по умолчанию).Чтобы включить циклическое планирование, необходимо указать ненулевое значение в ядроTimeSlice.

Я согласен с этим утверждением:

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

Вы правы, это не требует равного времени.Упреждение может с этим помешать.И на самом деле в VxWorks, если задача вытесняется во время циклического планирования, когда задача снова получает управление, она будет выполняться в течение оставшегося времени, которое ей было выделено.

Редактировать, направленное на Inscitek Jeff (у меня нет привилегий комментариев) Да, я имел в виду блокировку задачи/отключение прерывания, хотя я, очевидно, не очень хорошо выражал.Вы опередили меня (ха!) своим вторым комментарием.Я надеюсь обсудить более существенный момент: вы верите, что циклическое планирование может существовать без разделения времени.Или вы просто имели в виду разделение времени на основе равного времени?Я не согласен с первым, но согласен со вторым.Я очень хочу учиться.Спасибо.

Edit2 направлен на Джеффа:

Циклический алгоритм может существовать без разделения времени.Именно это и происходит в VxWorks, когда kernelTimeSlice отключен (ноль).

Я не согласен с этим утверждением.Видеть этот документ раздел 2.2.3 под заголовком «Круговое планирование».

Планирование круглосуточного оборота использует время для достижения справедливого распределения процессора по всем задачам с одним и тем же приоритетом.Каждая задача в группе задач с одним и тем же приоритетом выполняет определенный интервал или срез времени.Планирование круглого хода включено путем вызова kerneltimeslice (), который берет параметр для некоторого среза или интервала....] Если расписание круглой робин включено, и для выполнения задачи включено преодоление, обработчик системного обработки устанавливает количество временных размеров задачи.

Временное разделение присуще циклическому планированию.В противном случае вы полагаетесь на задачу отказа от управления процессором, для решения которой предназначено циклическое планирование.

Ответы здесь и даже статья в Википедии описывают циклическое планирование, которое по своей сути включает периодическое разделение времени.Хотя это очень распространено, я считаю, что циклическое планирование и разделение времени нет точно то же самое.Конечно, для того, чтобы разделение времени имело смысл, при ротации каждой задачи подразумевается циклическое планирование, однако вы можете выполнить циклическое планирование без разделения времени.То есть каждой задаче с одинаковым приоритетом в циклической ротации может быть разрешено выполнение до тех пор, пока она не достигнет состояния блокировки ресурсов, и только после этого будет запущена следующая задача в ротации.Другими словами, когда существуют задачи с равным приоритетом, точки перепланирования нет опережающее время.

Описанная выше идея фактически реализована именно в случае ядра VxWorks компании Wind River.В рамках своей схемы приоритетов задачи каждого приоритета выполняются циклически, но не распределяются по времени без специального включения этой функции в ядре.Причина такой гибкости заключается в том, чтобы избежать накладных расходов на задачи квантования времени, которые, как уже известно, сталкиваются с блоком в пределах четко ограниченного времени.

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

Мнение.Кажется, что мы переплетаем два механизма в один.Предполагая только исходное утверждение ФП «В контексте многозадачной операционной системы», тогда

1 — Планировщик циклического перебора всегда планирует следующий элемент в циклической очереди.

2. То, как планировщик восстанавливает контроль для выполнения планирования, является отдельным и не связанным между собой.

Я не согласен с тем, что наиболее распространенным методом для 2 является ожидание ресурса по времени/выходу, но, как уже отмечалось, есть и другие.Если я не ошибаюсь, первые Mac не использовали квантование времени, они использовали добровольный выход / выход в ожидании ресурса (20-летние клетки мозга иногда могут ошибаться;).

Круговой перебор — это простой алгоритм планирования, в котором время равномерно распределяется между заданиями без приоритета.

Например, если у вас запущено 5 процессов, каждому процессу будет разрешено работать в течение 1/5 единицы времени, прежде чем будет разрешен запуск другого процесса.Циклический перебор обычно легко реализовать в ОС.

На самом деле вы путаете упреждающее планирование и циклический перебор.Infact RR является частью упреждающего планирования.

Планирование Round Robin основано на распределении времени, также известном как такт (максимальное время, отведенное процессором любому процессу за один раз).В очереди находится несколько процессов (которым требуется разное время для завершения, то есть пакетное время), и ЦП должен обрабатывать их все, поэтому он продолжает переключаться между процессами, чтобы предоставить каждому процессу одинаковое время в зависимости от квантового значения.Этот тип планирования известен как циклическое планирование.Посмотрите это простое видео, чтобы легко понять циклическое планирование: https://www.youtube.com/watch?v=9hw-_qJ55K4

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top