Это зависит. Как это реализовано в обычном циклическом переборе, где нет приоритета, тогда мы должны упреждать 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