ФИПИ · ЕГЭ · все форматы ответа · 2475 заданий
Тип задачи: Параллельные вычисления.
| КЭС: | 1.1 Основные тенденции развития компьютерных технологий. Параллельные вычисления. Многопроцессорные системы. Распределённые вычислительные системы и обработка больших данных |
| Тип ответа: | Краткий ответ |
Ответ: 29
Решение.
В приложенной таблице 25 процессов. Первый столбец содержит их идентификаторы, второй — длительности в миллисекундах, третий — идентификаторы всех необходимых предшественников. Ноль в третьем столбце означает отсутствие предшественников. Типовой пример из условия не заменяет данные файла.
Начальный момент обозначим 0. Пусть d(B) — длительность процесса B, S(B) — время его начала, F(B) — время окончания. Процесс занимает промежуток от S(B) включительно до F(B) не включительно. Его результат доступен уже в момент F(B); следующий процесс может начаться в этот же момент.
Для самого раннего допустимого запуска используем правила:
S(B) = 0, если предшественников нет;
S(B) = max(F(A)), где максимум берётся по всем предшественникам A;
F(B) = S(B) + d(B).
Длительности разных предшественников не складываем: они могут работать параллельно. Но ждать требуется завершения каждого, поэтому выбираем самое позднее окончание. Строки вычисляем после их предшественников, даже если в файле они расположены в другом порядке.
Эти времена достижимы одновременным запуском всех готовых процессов. Раньше запустить очередной процесс нельзя: хотя бы один необходимый результат ещё отсутствует. Последовательно применяя это рассуждение по зависимостям, получаем минимальные времена окончания каждого процесса.
Проверка зависимостей и длительностей. Полный расчёт самого раннего расписания, все времена в мс:
| ID | d | Предшественники | S | F = S + d |
|---|---|---|---|---|
| 101 | 1 | 102; 119 | max(10; 10) = 10 | 10 + 1 = 11 |
| 102 | 5 | 107 | max(5) = 5 | 5 + 5 = 10 |
| 103 | 3 | 101; 104 | max(11; 11) = 11 | 11 + 3 = 14 |
| 104 | 1 | 102; 107 | max(10; 5) = 10 | 10 + 1 = 11 |
| 105 | 1 | 107 | max(5) = 5 | 5 + 1 = 6 |
| 106 | 3 | нет | 0 | 0 + 3 = 3 |
| 107 | 5 | нет | 0 | 0 + 5 = 5 |
| 108 | 5 | 109 | max(11) = 11 | 11 + 5 = 16 |
| 109 | 5 | 112 | max(6) = 6 | 6 + 5 = 11 |
| 110 | 6 | 118; 119 | max(14; 10) = 14 | 14 + 6 = 20 |
| 111 | 4 | 110 | max(20) = 20 | 20 + 4 = 24 |
| 112 | 6 | нет | 0 | 0 + 6 = 6 |
| 113 | 4 | 101; 109 | max(11; 11) = 11 | 11 + 4 = 15 |
| 114 | 5 | 118; 119 | max(14; 10) = 14 | 14 + 5 = 19 |
| 115 | 6 | 116 | max(14) = 14 | 14 + 6 = 20 |
| 116 | 4 | 102 | max(10) = 10 | 10 + 4 = 14 |
| 117 | 5 | 111 | max(24) = 24 | 24 + 5 = 29 |
| 118 | 3 | 101; 109 | max(11; 11) = 11 | 11 + 3 = 14 |
| 119 | 4 | 112; 106 | max(6; 3) = 6 | 6 + 4 = 10 |
| 120 | 4 | 114; 108 | max(19; 16) = 19 | 19 + 4 = 23 |
| 121 | 1 | 118 | max(14) = 14 | 14 + 1 = 15 |
| 122 | 5 | 113; 119 | max(15; 10) = 15 | 15 + 5 = 20 |
| 123 | 6 | 105 | max(6) = 6 | 6 + 6 = 12 |
| 124 | 3 | 102; 119 | max(10; 10) = 10 | 10 + 3 = 13 |
| 125 | 6 | 101 | max(11) = 11 | 11 + 6 = 17 |
Вся система заканчивает работу, когда выполнен последний процесс. Следовательно, T = max(F(B)) = 29 мс.
Проверим нижнюю границу цепочкой обязательных зависимостей:
107 → 102 → 101 → 118 → 110 → 111 → 117.
Эти процессы должны выполняться последовательно, их суммарная длительность равна
5 + 5 + 1 + 3 + 6 + 4 + 5 = 29 мс.
Быстрее закончить все процессы невозможно. Полная таблица показывает расписание, достигающее этой границы.
Ответ: 29.
Напишите пожелание к сайту или решению либо сообщите о найденной неточности в задании EGEINFFE814D.
Сообщение увидит только команда сайта: на странице оно не публикуется.
Комментарии к решению
Комментарии видны всем посетителям сайта.
Комментариев пока нет. Будьте первым.
Чтобы оставить комментарий, войдите или зарегистрируйтесь.