Алгоритм циклического перебора на основе приоритетов в операционной системе: это вытеснено?

в циклическом алгоритме на основе приоритета, когда процесс с более высоким приоритетом (скажем, P1) поступает во время обработки процесса с более низким приоритетом (P2), P2 должен быть вытеснен, а вместо этого обрабатывается P1. Правильно?

то что, если после определенного кванта времени (например, 10 мс)

  • обрабатывается P1? (поскольку P1 имеет более высокий приоритет)

  • или P1 вытесняется, а планировщик отправляет P2 (поскольку в циклическом режиме после кванта времени задание должно быть переключено)

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

большое спасибо


person HyunsooKim    schedule 19.10.2014    source источник


Ответы (1)


Это зависит. Как это реализовано в обычном циклическом переборе, где нет приоритета, тогда мы должны упреждать P2. Но это имеет приоритет по отношению к нему, который мы вытесняем, но к любому процессу, который имеет следующий наивысший приоритет (для простоты).

Предположим, что это реализовано так:

  • Процессы вытесняются только через временной интервал циклического перебора.
  • Приоритет будет просто основан на порядке выполнения процессов в RR (чтобы избежать проблем с голоданием)

Это может отличаться от того, что есть в вашей книге, например, он может повышать приоритет процессов в зависимости от того, как долго они находятся в очереди, а затем вытеснять до текущего наивысшего (в котором может быть тот же процесс). Но способ, который я определил выше, больше фокусируется на справедливом обмене по круговой системе. В этом случае P1 выгружается, и мы переходим к P2, так же, как работает обычный RR.

Но давайте перейдем к лучшему примеру, скажем, у нас есть P1 (priority = high), P2 (priority = low) и P3 (priority = med). А затем войти в очередь в порядке: P1, P2, P3. Затем, исходя из того, как я определил, Priority RR сделает это:

P1 -> [high] Notice the priority simply changes the ordering
P3 -> [med]  But each still has the same time slice.
P2 -> [low]
P1
P3
P2

Каждый с N интервалом времени. Конечно, да, не похоже, что Priority играет здесь большую роль, больше внимания уделяется RR. Но поскольку количество процессов в очереди готовности велико (и, возможно, временной интервал велик), то он будет играть немного большую роль.

person Spencer Wieczorek    schedule 19.10.2014
comment
У меня аналогичная проблема в случае циклического перебора, когда связан приоритет. Меня не убедило объяснение моего учителя, что, скажем, P1,P2,P3 имеют одинаковое время прибытия и их приоритет равен: P3>P2>P1. Порядок циклического планирования следующий: P3 -> P2 -> P1 -> P3 -> P2 ->.... Я убежден, что это логическая последовательность, но мой учитель игнорирует это и утверждает, что приоритет не повлияет на циклическое планирование, и порядок будет следующим: P1->P2->P3->P1... - person Abrar; 04.08.2016