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

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

Задача 1#58979

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

Типовой пример организации данных в файле на рисунке. В данном случае независимые процессы 1 и 2 могут выполняться параллельно, при этом процесс 1 завершится через 4 мс, а процесс 2 – через 3 мс с момента старта. Процесс 3 может начаться только после завершения обоих процессов 1 и 2 и 3мс ожидания, то есть, через 7мс после старта. Он длится 1 мс и закончится через 7 + 1 = 8 мс после старта. Выполнение процесса 4 может начаться только после завершения процесса 3 и 3 мс ожидания, то есть, через 11 мс. Он длится 7 мс, так что минимальное время завершения всех процессов равно 11 + 7 = 18 мс.

ID процесса B
Время выполнения
процесса B, мс
ID процесса(ов) A
1 4 0
2 3 0
3 1 1; 2
4 7 3
Вложения к задаче
Показать ответ и решение

Откроем файл электронной таблицы и разделим по столбцам значения в столбце C. Для этого выделим данный столбец, перейдём во вкладку «Данные», нажмём на «Текст по столбцам» и в качестве разделителя выберем точку с запятой. Таблица будет иметь такой вид:

PIC

Для удобства выделим цветами нужные нам области. В ячейку I2 запишем формулу: =B2. Растянем данную формулу до конца таблицы. Таблица будет выглядеть так:

PIC

В ячейку F2 запишем формулу: =ВПР(C2;$A:$I;9;0). Протянем её на столбец F и на столбец H, а также до конца таблицы. Теперь мы знаем длительность процессов, от которых зависит определённый процесс. Таблица будет иметь такой вид:

PIC

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

Теперь формула будет иметь такой вид: =ЕСЛИ(F2=0;B2;B2+МАКС(F2:H2)+3). Проведем данную формулу до конца таблицы. Таблица будет выглядеть так:

PIC

В отдельную ячейку запишем формулу: =МАКС(I2:I21). Данное значение и будет ответом. Ответ:134

Ответ: 134

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

Задача 2#57196

В файле 22_1.xlsx содержится информация о совокупности N вычислительных процессов, которые могут выполняться параллельно или последовательно. Будем говорить, что процесс B зависит от процесса A, если для выполнения процесса B необходимы результаты выполнения процесса A. В этом случае процессы могут выполняться только последовательно.

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

Найдите максимальное количество процессов, которые завершатся за 80 мс, при условии, что все независимые друг от друга процессы могут выполняться параллельно

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

В столбце D вычислим время для всех процессов, с учётом зависимости. Если процесс зависит от нескольких процессов, то время ожидания будет равно самому медленному из этих процессов. В столбце D пишем для каждой строчки: время процесса + время ожидания самого медленного процесса, от которого зависит этот процесс (если такие есть). Время самого медленного процесса можно найти с помощью функции МАКС(). Если процесс является независимым, то просто запишем время его выполнения.

PIC

Осталось посчитать количество процессов, время выполнения которых меньше 80мс. Для этого в стоблце Е пропишем условие ЕСЛИ(D2<=80;1;0) и просуммируем все значения по этому столбцу.

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