ФИПИ · ЕГЭ · все форматы ответа · 2475 заданий
Тип задачи: Параллельные вычисления.
| КЭС: | 1.1 Основные тенденции развития компьютерных технологий. Параллельные вычисления. Многопроцессорные системы. Распределённые вычислительные системы и обработка больших данных |
| Тип ответа: | Краткий ответ |
Ответ: 8
Решение.
В приложенной таблице 13 процессов. Первый столбец содержит их идентификаторы, второй — длительности в миллисекундах, третий — идентификаторы всех необходимых предшественников. Ноль в третьем столбце означает отсутствие предшественников. Типовой пример из условия не заменяет данные файла.
Начальный момент обозначим 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 | 14 | нет | 0 | 0 + 14 = 14 |
| 102 | 3 | нет | 0 | 0 + 3 = 3 |
| 103 | 1 | 101; 102 | max(14; 3) = 14 | 14 + 1 = 15 |
| 104 | 11 | 102 | max(3) = 3 | 3 + 11 = 14 |
| 105 | 13 | 103 | max(15) = 15 | 15 + 13 = 28 |
| 106 | 5 | 103 | max(15) = 15 | 15 + 5 = 20 |
| 107 | 3 | 106 | max(20) = 20 | 20 + 3 = 23 |
| 108 | 1 | 105; 107 | max(28; 23) = 28 | 28 + 1 = 29 |
| 109 | 2 | 108 | max(29) = 29 | 29 + 2 = 31 |
| 110 | 8 | нет | 0 | 0 + 8 = 8 |
| 111 | 16 | 110 | max(8) = 8 | 8 + 16 = 24 |
| 112 | 8 | 110 | max(8) = 8 | 8 + 8 = 16 |
| 113 | 14 | 112 | max(16) = 16 | 16 + 14 = 30 |
Здесь требуется увеличить непрерывный интервал параллельной работы. Самые ранние запуски не обязательны: можно задерживать процессы, соблюдая зависимости и не прерывая начавшийся процесс. Поэтому таблица ранних окончаний сама по себе ещё не даёт искомого максимума.
Разделим граф на независимые компоненты. Процессы 101–109 дают не более 3 одновременных работ. Процессы 110–113 дают не более 2 одновременных работ. В первой компоненте тройки возможны только у 104, 105 и одного из последовательных 106, 107; во второй двойки — у 111 и одного из последовательных 112, 113. Поэтому во всей системе одновременно может работать не более 5 процессов. Ниже построено расписание, где это число достигается.
Обоснуем верхнюю границу длительности. Для пяти процессов в первой компоненте одновременно нужны 104, 105 и один из 106, 107. Процессы 106 и 107 последовательны и вместе занимают 5 + 3 = 8 мс; поэтому весь непрерывный интервал не длиннее 8 мс.
Построим расписание, достигающее этой границы. Каждый процесс идёт без остановок, а его начало не раньше окончания любого предшественника:
| ID | Начало | Окончание |
|---|---|---|
| 101 | 0 | 14 |
| 102 | 0 | 3 |
| 103 | 14 | 15 |
| 104 | 15 | 26 |
| 105 | 15 | 28 |
| 106 | 15 | 20 |
| 107 | 20 | 23 |
| 108 | 28 | 29 |
| 109 | 29 | 31 |
| 110 | 7 | 15 |
| 111 | 15 | 31 |
| 112 | 15 | 23 |
| 113 | 23 | 37 |
На всём промежутке [15; 23) одновременно работают 5 процессов. При завершении одного процесса другой может сразу занять его место; разрыва параллельной работы нет:
| Промежуток, мс | Работающие процессы | Количество |
|---|---|---|
| [15; 20) | 104, 105, 106, 111, 112 | 5 |
| [20; 23) | 104, 105, 107, 111, 112 | 5 |
Длина промежутка 23 − 15 = 8 мс. Она совпадает с доказанной верхней границей.
Ответ: 8.
Напишите пожелание к сайту или решению либо сообщите о найденной неточности в задании EGEINFE923FA.
Сообщение увидит только команда сайта: на странице оно не публикуется.
Комментарии к решению
Комментарии видны всем посетителям сайта.
Комментариев пока нет. Будьте первым.
Чтобы оставить комментарий, войдите или зарегистрируйтесь.