В компьютерной системе необходимо выполнить некоторое количество вычислительных процессов, которые могут выполняться параллельно или последовательно. Для запуска некоторых процессов необходимы данные, которые получаются как результаты выполнения одного или нескольких других процессов – поставщиков данных. Если зависимый процесс получает данные от других процессов (поставщиков данных), то выполнение зависимого процесса не может начаться раньше завершения всех процессов поставщиков. Длительность процесса не зависит от других параллельно выполняемых процессов, приостановка выполнения процесса не допускается. В таблице представлены идентификатор (ID) каждого процесса, его длительность в мс и ID поставщиков данных для зависимых процессов. Для независимых процессов в качестве ID поставщика данных указан 0. Одновременно может выполняться не более 4 процессов. Если в какой-то момент в системе работает менее 4 процессов, то при наличии готовых к запуску процессов выбирается и запускается тот из них, который имеет минимальный ID.
За какое время будут выполнены все процессы?
В ответе напишите число — требуемое время в мс.
Выполните задания, используя данные из файла ниже:
Добавим в таблицу столбец «Время окончания процесса» и запишем туда длительности независимых процессов. Затем рассчитаем время окончания зависимых процессов. В результате получим таблицу.
Нарисуем время выполняемых процессов:
Расставим процессы так, чтобы зависимые стояли сразу за независимыми процессами.
Начнем двигать вправо процессы так, чтобы всегда было только 4 выполняемых процесса. Первыми будут выполняться процессы 1,2, 6 и 7. Как только завершиться самый короткий процесс (в этой задаче процесс 7), запускаем следующий процесс. Помним, что запущенный процесс должен иметь минимальный ID. Процессы 3, 4 и 5 запустить нельзя, так как они зависят от процесса 2. Запускаем следующий по ID процесс 8. Расставляем далее процессы, следя за тем, чтобы одновременно выполнялось не более 4 процессов, запускались независимые процессы от текущих и с минимальным ID. Получаем следующую таблицу.
Все процессы будут выполнены за 43 мс.
Ответ: 43.

