В SJF (метод Shortest Job First).
Как рассчитать среднее время ожидания и среднее время поворота?
Правильно ли отображается диаграмма Ганнета?
В SJF (метод Shortest Job First).
Как рассчитать среднее время ожидания и среднее время поворота?
Правильно ли отображается диаграмма Ганнета?
Диаграмма Ганта неверна... Первый процесс P3 прибыл, чтобы он выполнялся первым. Поскольку время пакета P3 равно 3 секундам после завершения P3, были получены процессы P2, P4 и P5. Среди P2, P4 и P5 кратчайшее время пакета составляет 1сек для P2, поэтому P2 будет выполняться следующим образом. Тогда P4 и P5. Наконец, будет выполнен P1.
Диаграмма Ганта для этого вопроса будет:
| P3 | P2 | P4 | P5 | P1 |
1 4 5 7 11 14
Среднее время ожидания = (0 + 2 + 2 + 3 + 3)/5 = 2
Среднее время обработки = (3 + 3 + 4 + 7 + 6)/5 = 4,6
SJF - это два типа: i) не превентивный SJF ii) упреждающий SJF
Я перестроил процессы в соответствии с временем прибытия. здесь нет упреждающего SJF
A.T = Время прибытия
B.T = Время разрыва
C.T = Время завершения
T.T = Поворот Время = C.T - A.T
W.T = Время ожидания = T.T - B.T
Вот превентивный SJF Примечание: каждый процесс будет упреждаться в момент поступления нового процесса. Затем он будет сравнивать время пакета и будет выделять процесс с самым коротким временем пакета. Но если два процесса имеют одинаковое время всплеска, то процесс, который был первым, который будет выделен сначала так же, как FCFS.
это неправильно. правильный будет
P3 P2 P4 P5 P1 0 3 4 6 10, поскольку правильная разница этих
Время ожидания (0 + 3 + 4 + 6 + 10)/5 = 4,6
Ссылка: http://www.it.uu.se/edu/course/homepage/oskomp/vt07/lectures/scheduling_algorithms/handout.pdf
Графы Ганта, представленные Хифзаном и Раджей, предназначены для алгоритмов FCFS.
С помощью алгоритма SJF процессы могут быть прерваны. То есть, каждый процесс не обязательно выполняется прямо через заданное время пакетного времени.
Р3 | Р2 | Р4 | П3 | П5 | Р1 | Р5
1 | 2 | 3 | 5 | 7 | 8 | 11 | 14
P3 достигает 1 мс, затем прерывается P2 и P4, так как они имеют меньшее время разрыва, а затем возобновляет P3. P5 начинает выполнение следующего, затем прерывается P1, поскольку время пакета P1 меньше, чем P5. Вы должны отметить время прибытия и быть осторожным. Эти проблемы могут быть более сложными, чем то, как они появляются на первый взгляд.
EDIT: Это относится только к превентивным алгоритмам SJF. Простой алгоритм SJF не имеет превентивного характера, что означает, что он не прерывает процесс.