РУҚА
22

Решение: Параллельное выполнение процессов

ЕГЭ · Информатика · Задание 22 · Параллельные вычисления
ВысокаяФИПИ2332FBКороткий ответ≈ 10 минутРазбор в 4 шагаОтвет сверен с ключом
Условие

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

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

Определите максимальное количество процессов, которые могут быть завершены за первые 17 мс. Считать, что каждый процесс начинается в самое раннее допустимое время. Нумерация миллисекунд начинается с 1.

Типовой пример имеет иллюстративный характер. Для выполнения задания используйте данные из прилагаемого файла.

Открыть задачу и решить самому
Дальше ответЕсли ещё решаете — начните с подсказок: они ведут к ответу, но не выдают его.
К подсказкам

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

4 шага
1

Для каждого процесса по данным файла определяем все его непосредственные зависимости.

2

Самые ранние моменты запуска процессов вычисляем рекурсивно: независимый процесс запускается с начала отсчёта, а зависимый — после завершения всех процессов, от которых он зависит.

$$start(B)=\max_{A\in dependencies(B)} finish(A)$$
3

Для каждого процесса вычисляем время завершения как сумму времени его запуска и длительности выполнения, затем оставляем процессы, завершившиеся не позднее 17-й миллисекунды.

$$finish(B)=start(B)+duration(B)$$

Подсчёт процессов, завершившихся за первые 17 мс, даёт 12.

Ответ
12
12
так ответ выглядит в бланке

Где здесь ошибаются

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

Запускать зависимый процесс до завершения всех его предшественников.

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

Включать процесс, завершившийся после 17 мс.

Закрепить приёмВ теме «Параллельные вычисления» ещё 39 задач — с ответом и таким же разбором.
Тренироваться

Как решать задание 22 ЕГЭ, информатика

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

Задача из темы «Параллельные вычисления»: в ней 40 задач, и у каждой есть такой же разбор. Регистрация не нужна.