Задача № 103
В файле содержится информация о совокупности N вычислительных процессов, которые могут выполняться параллельно или последовательно. Будем говорить, что процесс В зависит от процесса А, если для выполнения процесса В необходимы результаты выполнения процесса А. В этом случае процессы А и В могут выполняться только последовательно.
Информация о процессах представлена в файле в виде таблицы. В первом столбце таблицы указан идентификатор процесса (ID), во втором столбце таблицы - время его выполнения в миллисекундах, в третьем столбце перечислены с разделителем «;» ID процессов, от которых зависит данный процесс. Если процесс независимый, то в таблице указано значение 0.
ID процесса B | Время выполнения процесса B (мс) | ID процесса(-ов) A |
---|---|---|
1 | 4 | 0 |
2 | 3 | 0 |
3 | 1 | 1; 2 |
4 | 7 | 3 |
Определите максимальную продолжительность отрезка времени (в мс), в течение которого возможно одновременное выполнение четырёх процессов, при условии, что все независимые друг от друга процессы могут выполняться параллельно.
Типовой пример имеет иллюстративный характер. Для выполнения задания используйте данные из прилагаемого файла.
Решение
Для решения задачи построим диаграмму Ганта. Сверху укажем время в миллисекундах, слева — идентификаторы процессов, а снизу посчитаем количество процессов, которые одновременно выполняются в данную миллисекунду.
На первом шаге удобно строить диаграмму Ганта, считая, что все процессы начинаются как можно раньше. Получилось два временных отразка, когда четыре процесса выполянются одновременно.
Попробуйте передвинуть процессы так, чтобы совместить два отрезка по четыре процесса в один большой.
Кнопка «Показать решение» построит один из возможных вариантов, вы можете найти другой. В ответе нужно указать максимальную продолжительность непрерывного отрезка времени, в течение которого одновременно выполняются четыре процесса.