как рассчитать время обработки? - PullRequest
0 голосов
/ 22 февраля 2011

Даны сроки обработки для 5 процессов. как я узнаю минимальное среднее время ожидания, которое процессы должны ждать, чтобы выполнить, если задано ДВА ПРОЦЕССОРА.

Ответы [ 2 ]

2 голосов
/ 23 февраля 2011

На любом данном процессоре общее время ожидания для упорядоченного набора процессов, для которого требуется время P 1 .. P N , представляет собой общее количество прошедших отдельных времен, умноженное на количество ожидающих процессов:

(N - 1) P 1 + (N - 2) P 2 + ... + P N-1 .

Это показывает, что время ожидания сокращается в несколько раз по сравнению с более ранними процессами, в результате чего нам необходимо как можно раньше завершить выполнение более коротких заданий и минимизировать длину очереди. Скажем, мы сортируем длительности процесса и называем их A, B, C, D и E (самая продолжительная работа). Если мы противопоставим следующую приоритетность:

Processor 1: A, B, C, D
Processor 2: E
Total waiting time: 3A + 2B + C

... с ...

Processor 1: A, B, D
Processor 2: C, E
Total waiting time: 2A + B + C

Мы ясно видим, что вторая конфигурация экономит (A + B) общее время ожидания, а также преимущество распределения заданий в соотношении 3: 2. Точно так же формула 2A + B + C может быть только хуже, если мы поменяем местами D или E для любого из A, B или C, как мы знаем A <= B <= C <= D <= E. </p>

Существует только две альтернативные перестановки 3: 2 с учетом D и E, которые не участвуют в расчете времени ожидания (они будут обозначены как X в дальнейшем).

Processor 1: A, C, X
Processor 2: B, X
Total waiting time: 2A + C + B  [no change]

Processor 1: A, X
Processor 2: B, C, X
Total waiting time: A + 2B + C  [maybe worse as B>=A]

Таким образом, оптимальные и одинаково удовлетворительные заказы: ABX / CX и ACX / BX.

0 голосов
/ 22 февраля 2011

Выполните сначала планирование самой короткой работы.
Затем найдите среднее время ожидания.

...