Системное программирование | Планирование времени

Я пытаюсь понять эти алгоритмы планирования:

  • В порядке очереди (FCFS)
  • Сначала самая короткая работа (SJF)
  • Кратчайшее оставшееся время (SRT)
  • Круговая система (RR)

Итак, учитывая некоторые данные:

Process Name: A; Arrival Time: 0; Expected CPU Running Time: 3
Process Name: B; Arrival Time: 1; Expected CPU Running Time: 5
Process Name: C; Arrival Time: 3; Expected CPU Running Time: 2
Process Name: D; Arrival Time: 9; Expected CPU Running Time: 5
Process Name: E; Arrival Time: 12; Expected CPU Running Time: 5

FCFS будет запланирован как AAABBBBBCCDDDDDEEEEE.

Я не могу понять остальное. Может кто-нибудь помочь объяснить мне разницу?

Я пробовал гуглить, но результат, который я получил для SJF, сбивает с толку.


person NewFile    schedule 02.11.2013    source источник


Ответы (1)


Я просто дам вам несколько советов.

Для SJF и SRT вам действительно не нужны определения — просто подумайте логически о названии.

Для SJF выберите незавершенную работу с самым коротким сроком прибытия. Используйте общее время задания, т.е. 3,5,2,5,5 - не обращайте внимания на то, сколько уже запланировано для этого задания.

Для SRT выберите незавершенное задание с наименьшим оставшимся временем. Оставшееся время просто определяется как общее время минус то, сколько уже запланировано. Таким образом, во время 2 вы бы запланировали AA, таким образом, оставшееся время для A будет 3-2 = 1.

Для SJF и SRT конфликты (когда есть два задания с одинаковым временем), вероятно, можно решить, выбрав задание, которое прибыло первым. Для SRT конфликты также могут быть разрешены путем выбора самого длинного задания. Вам придется подтвердить это.

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

Для RR просто выберите тот, который вы выбрали раньше всего.

person Bernhard Barker    schedule 02.11.2013
comment
так что sjf будет AAACCBBBBBDDDDDEEEEE? - person NewFile; 02.11.2013
comment
Я до сих пор не понимаю вашего объяснения SRT. - person NewFile; 02.11.2013
comment
@NewFile Я немного изменил свое объяснение. - person Bernhard Barker; 02.11.2013
comment
ABBCCAABBBDDDDDEEEEE для СТО? - person NewFile; 02.11.2013
comment
@NewFile Нет. Давайте посмотрим на время 1. RT для A = 3-1 = 2, RT для B = 5-0 = 5 и 2 ‹ 5, поэтому вам нужно выбрать A, а не B. - person Bernhard Barker; 02.11.2013
comment
так AAABCCBBBBDDDDEEEEEE? извиняюсь за тупость, мне так трудно их понять - person NewFile; 02.11.2013
comment
@NewFile Замените BCC на CCB, тогда да. В момент времени 3 RT для B = 5, RT для C = 2. О, и у вас на 1 слишком много E и на 1 слишком мало D. - person Bernhard Barker; 02.11.2013
comment
вопрос. почему результаты SJF и SRT совпадают? - person NewFile; 02.11.2013
comment
давайте продолжим это обсуждение в чате - person NewFile; 02.11.2013