Планирование циклического перебора: разрешить перечисление процесса несколько раз?

9

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

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

(Из упражнения 2.16 в « Операционных системах Эндрю Таненбаума : разработка и реализация», 1-е изд.)

Жиль "ТАК - перестань быть злым"
источник
Танненбаум написал много книг. Предположительно вы имеете в виду операционные системы .
Дейв Кларк,
@DaveClarke Да, спасибо, что указал на это. (И на самом деле, все, что у меня здесь есть, это перевод, но я не думаю, что в нем отсутствует какая-либо часть текста.)
Жиль "ТАК - перестань быть злым"

Ответы:

4

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

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

Дэйв Кларк
источник
2

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

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

Пекка
источник
Не противоречит ли желание иметь приоритеты справедливости?
Рафаэль