Тема 22. Многопроцессорные системы

22.03 Поиск отрезка времени выполнения N процессов

Вспоминай формулы по каждой теме
Решай новые задачи каждый день
Вдумчиво разбирай решения
ШКОЛКОВО.
Готовиться с нами - ЛЕГКО!
Подтемы раздела многопроцессорные системы
Решаем задачу:

Ошибка.
Попробуйте повторить позже

Задача 1#77358

В файле содержится информация о совокупности N вычислительных процессов, которые могут выполняться параллельно или последовательно. Будем говорить, что процесс B зависит от процесса A, если для выполнения процесса B необходимы результаты выполнения процесса A. В этом случае процессы могут выполняться только последовательно. Информация о процессах представлена в файле в виде таблицы. В первом столбце таблицы указан идентификатор процесса (ID), во втором столбце таблицы – время его выполнения в миллисекундах, в третьем столбце перечислены с разделителем «;» ID процессов, от которых зависит данный процесс. Если процесс является независимым, то в таблице указано значение 0.

Типовой пример организации данных в файле:

ID процесса B Время выполнения процесса B (мс) ID процесса(-ов) А
1 4 0
2 3 0
3 1 1;2
4 7 3

Определите максимальную продолжительность отрезка времени (в мс), в течение которого возможно одновременное выполнение процессов, количество которых равно 5, при условии, что все независимые друг от друга процессы могут выполняться параллельно.

В ответе укажите одно число – максимальную продолжительность отрезка времени.

Вложения к задаче
Показать ответ и решение

Выделим столбец C  , перейдём во вкладку Данные, раздел «Текст по столбцам» и разделим наши данные, указав символом-разделителем точку с запятой. Столбец k  будет хранить данные о том в какую мс процесс начался, столбец L  – в какую мс закончился, столбец M  – сдвиг.

В ячейку G2  впишем формулу и растянем её вправо до столбца J  , вниз до конца таблицы:

=ВПР(C2;$A$1:$L$19;12;0)

В ячейку A19  поставим значение 0. В ячейку K2  впишем формулу:

=МАКС(G2:J2)+M2

Таким образом мы нашли время, в которое каждый процесс начинается с учётом процессов, от которых он зависит, и сдвига.

Для того чтобы найти время, в которое каждый процесс завершится, нужно прибавить ко времени начала время собственной длительности процесса, в ячейку L2  запишем формулу:

=B2+K2

Столбец   со сдвигами первоначально заполним нулями.

Выделим ячейки K2 : M 2  и растянем их вниз до конца таблицы.

Построим диаграмму. Для этого начиная с ячейки N 1  заполним первую строку цифрами от 1 до 60. В ячейку   N2  запишем формулу и растянем на весь диапазон:

=ЕСЛИ(И($K2<N$1;N$1<=$L2);1;”)

Таким образом диаграмма автоматически построилась и теперь, если в столбце сдвига указать какое-либо значение, то этот процесс и все зависящие от него процессы автоматически сдвинутся. Чтобы посчитать количество процессов, которые выполняются в каждую миллисекунду в ячейку N 18  запишем формулу и растянем ее вправо:

=СУММ(N2:N18)

Для поиска отрезка максимальной длины в ячейку N21  запишем формулу и также растянем вправо и найдем максимальное значение по этому диапазону:

=ЕСЛИ(N20=5;M21+1;0)

И в любую свободную ячейку запишем формулу для нахождения максимума:

=МАКС(21:21)

PIC

Остается только сдвинуть необходимые процессы так, чтобы получился отрезок максимальной длины. Оптимальным вариантом будет сдвинуть процесс с номером 10 на 27 мс, с номером 15 - на 20 мс, с номером 16 - на 33 мс.

PIC

Ответ: 7

Специальные программы

Все специальные программы

Программа
лояльности v2.0

Приглашай друзей в Школково и получай вознаграждение до 10%!

Крути рулетку
и выигрывай призы!

Крути рулетку и покупай курсы со скидкой, которая привязывается к вашему аккаунту.

Бесплатное онлайн-обучение

Для школьников из приграничных территорий России, проживающих в ДНР, ЛНР, Херсонской, Запорожской, Белгородской, Курской, Брянской областях и Крыму.

Налоговые вычеты

Узнай, как получить налоговый вычет при оплате обучения в «Школково».

Специальное предложение
для учителей

Бесплатный доступ к любому курсу подготовки к ЕГЭ, ОГЭ и олимпиадам от «Школково». Мы с вами делаем общее и важное дело, а потому для нас очень значимо быть чем-то полезными для учителей по всей России!

Вернём деньги за курс
за твою сотку на ЕГЭ

Сдать экзамен на сотку и получить обратно деньги за подготовку теперь вполне реально!

cyberpunkMouse
cyberpunkMouse
Рулетка
Вы можете получить скидку в рулетке!