ФИПИ · ЕГЭ · все форматы ответа · 2475 заданий
Тип задачи: Параллельные вычисления.
| КЭС: | 1.1 Основные тенденции развития компьютерных технологий. Параллельные вычисления. Многопроцессорные системы. Распределённые вычислительные системы и обработка больших данных |
| Тип ответа: | Краткий ответ |
Ответ: 12
Решение.
В приложенной таблице 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 | 6 | 109; 103 | max(11; 6) = 11 | 11 + 6 = 17 |
| 102 | 1 | 115; 106 | max(8; 3) = 8 | 8 + 1 = 9 |
| 103 | 1 | 125 | max(5) = 5 | 5 + 1 = 6 |
| 104 | 6 | 107 | max(12) = 12 | 12 + 6 = 18 |
| 105 | 6 | 121 | max(2) = 2 | 2 + 6 = 8 |
| 106 | 3 | нет | 0 | 0 + 3 = 3 |
| 107 | 1 | 115; 109 | max(8; 11) = 11 | 11 + 1 = 12 |
| 108 | 5 | 106; 112 | max(3; 4) = 4 | 4 + 5 = 9 |
| 109 | 2 | 108; 125 | max(9; 5) = 9 | 9 + 2 = 11 |
| 110 | 5 | 115 | max(8) = 8 | 8 + 5 = 13 |
| 111 | 4 | 125; 121 | max(5; 2) = 5 | 5 + 4 = 9 |
| 112 | 4 | нет | 0 | 0 + 4 = 4 |
| 113 | 5 | 108; 124 | max(9; 11) = 11 | 11 + 5 = 16 |
| 114 | 3 | 110 | max(13) = 13 | 13 + 3 = 16 |
| 115 | 6 | 121 | max(2) = 2 | 2 + 6 = 8 |
| 116 | 2 | 112 | max(4) = 4 | 4 + 2 = 6 |
| 117 | 4 | 115 | max(8) = 8 | 8 + 4 = 12 |
| 118 | 6 | 111; 108 | max(9; 9) = 9 | 9 + 6 = 15 |
| 119 | 4 | 101 | max(17) = 17 | 17 + 4 = 21 |
| 120 | 1 | 109; 115 | max(11; 8) = 11 | 11 + 1 = 12 |
| 121 | 2 | нет | 0 | 0 + 2 = 2 |
| 122 | 2 | 112 | max(4) = 4 | 4 + 2 = 6 |
| 123 | 4 | 109; 103 | max(11; 6) = 11 | 11 + 4 = 15 |
| 124 | 6 | 121; 125 | max(2; 5) = 5 | 5 + 6 = 11 |
| 125 | 1 | 112 | max(4) = 4 | 4 + 1 = 5 |
Нужно найти первый момент, к которому завершилось не менее 17 процессов. Упорядочим все значения F по возрастанию, сохраняя одинаковые окончания разных процессов:
2; 3; 4; 5; 6; 6; 6; 8; 8; 9; 9; 9; 11; 11; 12; 12; 12; 13; 15; 15; 16; 16; 17; 18; 21.
На позиции 17 стоит 12. Строго раньше этого момента завершается 14 процессов, а к этому моменту включительно — 17. Поэтому раньше нужного количества ещё нет, а в момент 12 мс оно уже достигнуто. Одновременные окончания считаем по отдельности.
Ответ: 12.
Напишите пожелание к сайту или решению либо сообщите о найденной неточности в задании EGEINFABAA67.
Сообщение увидит только команда сайта: на странице оно не публикуется.
Комментарии к решению
Комментарии видны всем посетителям сайта.
Комментариев пока нет. Будьте первым.
Чтобы оставить комментарий, войдите или зарегистрируйтесь.