В файле содержится информация о совокупности N вычислительных процессов, которые могут выполняться параллельно или последовательно. Будем говорить, что
В этом случае процессы могут выполняться только последовательно.
В файле информация о процессах представлена в виде таблицы. В первой колонке таблицы указан идентификатор процесса (ID), во второй колонке таблицы — время его выполнения в миллисекундах, в третьей колонке перечислены
Типовой пример организации данных в файле:
| ID | Время выполнения | ID |
|---|---|---|
| 1 | 4 | 0 |
| 2 | 3 | 0 |
| 3 | t | 1; 2 |
| 4 | 7 | 3 |
Определите максимально возможное целочисленное t (время выполнения процесса), при котором выполнение всей совокупности процессов, при условии, что все независимые друг от друга процессы могут выполняться параллельно и один процесс может сменять другой завершившийся мгновенно, завершилось не более чем за 23 мс.
Типовой пример имеет иллюстративный характер. Для выполнения задания используйте данные из прилагаемого файла.
В таблицу добавим столбец «Время окончания процесса» и запишем туда длительности независимых процессов.
| A | B | C | D |
|---|---|---|---|
| ID процесса B | Время выполнения процесса B (мс) | ID процесса(ов) A | Время окончания процесса |
| 1 | 5 | 0 | 5 |
| 2 | 2 | 0 | 2 |
| 3 | 3 | 1;2 | |
| 4 | 4 | 3 | |
| 5 | 6 | 0 | 6 |
| 6 | 5 | 4;5 | |
| 7 | 4 | 0 | 4 |
| 8 | 8 | 7 | |
| 9 | t | 6;8 | |
| 10 | 12 | 0 | 12 |
| 11 | 14 | 2 | |
| 12 | 5 | 6 |
Далее рассчитаем время выполнения оставшихся процессов:
f(3) = 3 + max(f(1), f(2)) = 3 + 5 = 8;
f(4) = 4 + f(3) = 4 + 8 = 12;
f(6) = 5 + max(f(4), f(5)) = 5 + 12 = 17;
f(8) = 8 + f(7) = 8 + 4 = 12;
f(9) = t + max(f(6), f(8)) = t + 17.
| A | B | C | D |
|---|---|---|---|
| ID процесса B | Время выполнения процесса B (мс) | ID процесса(ов) A | Время окончания процесса |
| 1 | 5 | 0 | 5 |
| 2 | 2 | 0 | 2 |
| 3 | 3 | 1;2 | 8 |
| 4 | 4 | 3 | 12 |
| 5 | 6 | 0 | 6 |
| 6 | 5 | 4;5 | 17 |
| 7 | 4 | 0 | 4 |
| 8 | 8 | 7 | 12 |
| 9 | t | 6;8 | |
| 10 | 12 | 0 | 12 |
| 11 | 14 | 2 | 16 |
| 12 | 5 | 6 | 22 |
Поскольку выполнение всей совокупности процессов длилось 23 мс. Следовательно, f(9) — самый длинный процесс. Длительность процесса f(9) составляла 23 мс, то
Ответ: 6.

