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

