Решение: Параллельное выполнение процессов
В файле содержится информация о совокупности $N$ вычислительных процессов, которые могут выполняться параллельно или последовательно. Приостановка выполнения процесса не допускается. Процесс $B$ зависит от процесса $A$, если для выполнения процесса $B$ необходимы результаты выполнения процесса $A$. В этом случае процессы $A$ и $B$ могут выполняться только последовательно.
Информация о процессах представлена в файле в виде таблицы: в первом столбце указан идентификатор процесса, во втором — время его выполнения в миллисекундах, в третьем — через разделитель «;» перечислены идентификаторы процессов, от которых зависит данный процесс. Если процесс независимый, указано значение 0.
Определите максимальное количество процессов, которые параллельно выполняются на 6-й мс. Считать, что каждый процесс начинается в самое раннее допустимое время. Нумерация миллисекунд начинается с 1.
Для выполнения задания используйте данные из прилагаемого файла.
Решение по шагам
4 шагаПо данным прилагаемого файла для каждого процесса вычисляем самое раннее время начала. Если у процесса есть зависимости, он может начаться только после завершения всех процессов-зависимостей.
Для каждого процесса определяем интервал его выполнения в миллисекундах: от найденного времени начала до времени начала плюс длительность процесса минус 1.
Отбираем процессы, интервалы выполнения которых содержат 6-ю миллисекунду, и подсчитываем их количество.
Максимальное количество процессов, выполняющихся параллельно на 6-й миллисекунде, равно 6.
Где здесь ошибаются
Считать миллисекунды с нуля, а не с 1.
Запускать процесс после завершения только одной зависимости, не учитывая остальные.
Считать момент окончания процесса входящим в интервал его выполнения.