Присоединиться

11 класс·высокий уровень

Определите, за какое минимальное время можно выполнить все процессы.

Условие

В компьютерной системе необходимо выполнить некоторое количество вычислительных процессов, которые могут выполняться параллельно или последовательно. Для запуска некоторых процессов необходимы данные, которые получаются как результаты выполнения одного или двух других процессов — поставщиков данных. Независимые процессы (не имеющие поставщиков данных) можно запускать в любой момент времени. Если процесс B (зависимый процесс) получает данные от процесса A (поставщика данных), то процесс B может начать выполнение не раньше чем через 5 мс после завершения процесса A. Любые процессы, готовые к выполнению, можно запускать параллельно, при этом количество одновременно выполняемых процессов может быть любым, длительность процесса не зависит от других параллельно выполняемых процессов.

Задание 22В таблице представлены идентификатор (ID) каждого процесса, его длительность и ID поставщиков данных для зависимых процессов.

Определите, за какое минимальное время можно выполнить все процессы. В ответе запишите целое число — минимальное время в мс.

Рисунок к задаче

Ответ

Ответ и полный разбор откроются после входа

Посмотреть ответ

Решение по шагам

  1. Как рассуждать

    Решение. Для начала проведем сортировку данных, чтобы отделить не зависимые процессы, зависимые от одного процесса и зависимые от двух процессов вычисления. Для этого выделим первые три столбца, а затем выберем меню «Данные — Сортировка» и отсортируем по возрастанию. [рисунок] Далее нам надо разделить данные в столбце «ID поставщиков данных» для тех процессов, где есть зависимость от двух процессов. Для этого выделим столбец С, далее — меню «Данные — Текст» по столбцам. В меню мастера разделения текста по столбцам последовательно выберем «Формат данных с разделителями», далее «Символ разделитель: точка с запятой». Формат данных столбца «Общий». [рисунок] В столбце E будем считать общее время на выполнение процесса. Для независимых процессов перенесем данные из столбца B. Введем в ячейку E67 формулу =B67 и скопируем её во все строки в диапазоне E67:E101.Теперь посчитаем время у процессов зависящих от одного процесса. Для этого в ячейке E2 введем формулу =B2+5+ВПР(C2;A:E;5;0), где B2 — время самого процесса, 5 — время после завершения процесса A (по условию задачи), а функция ВПР ищет время процесса, от которого зависит процесс А. Далее скопируем формулу во все ячейки диапазона E2:E37.Далее будем считать время процессов, зависящих от 2 процессов. Для этого введем в ячейку E38 формулу:=B38+5+МАКС(ВПР(C38;A:E;5;0);ВПР(D38;A:E;5;0)).Скопируем формулу во все ячейки диапазона E38:E66.Найдем самый длительный процесс введя формулу =МАКС(E2:E101), это и будет минимальное время выполнения всех процессов.

Осталось ещё 1 шаг

  1. Шаг 2

Получить полное решение

Бесплатно · займёт минуту

Другие задачи по теме «Многопроцессорные системы»