Top.Mail.Ru

Задание 22 ЕГЭ по информатике: многопроцессорные системы (разбор и решения)

11 класс

Поделиться статьей:

Informatics

Задание № 22 ЕГЭ по информатике связано с анализом процессов, которые могут выполняться параллельно или последовательно. В таких задачах важно учитывать зависимости между процессами и правильно определять время их начала и окончания.

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

Термины, которые мы будем использовать: зависимый/независимый процесс.

Что такое процессы в системе и как они связаны между собой

Процесс — это единица работы с заданным временем выполнения (в мс).

Зависимость B от A означает, что для выполнения процесса B необходим результат работы процесса A.

A и B могут выполняться только последовательно.

Независимые процессы не имеют зависимостей друг от друга (или от них не зависит никто из ещё не запущенных).

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

Продолжительность отрезка времени — это интервал (в мс), в течение которого выполняется определённый набор процессов (например, максимальное количество одновременно работающих).

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

Как определить время выполнения процессов

Раннее время начала процесса рассчитывается так:

  • для независимого процесса (без предков): начало = 0;
  • для зависимого: начало = max (время окончания всех его предков) + 1.

Время окончания = начало + длительность.

Забирай курсы подготовки к ОГЭ и ЕГЭ с жирной скидкой

Как работать с таблицей процессов

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

Задача 1

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

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

ID процесса BВремя выполнения процесса B (мс)ID процесса(-ов) A
140
230
311;2
473

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

Как определить время выполнения процессов
 

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

  1. Столбец с зависимостями текущего процесса разделим на отдельные ячейки, чтобы у каждого номера была своя клетка.
  2. Создадим два столбца, где будет указано время, от которого зависит начало выполнения процесса. В этих ячейках будет записано время, после которого процесс может начаться. Подтянуть значения можно с помощью функции ВПР: $\text{=ВПР(C2;\$A:\$I;8;0)}$. Также добавим значение 0 в последнюю строку столбца A, чтобы формула работала корректно.
  3. Сделаем клетки старта и финиша, отталкиваясь от начала и продолжительности процесса, а также сдвига, который мы решим установить: $\text{=МАКС(E2:F2)+I2+1}$ и $\text{=G2+B2−1}$.
    Задание 22 ЕГЭ по информатике многопроцессорные системы (разбор и решения)
  1. Создадим столбец «сдвиг», в который мы можем поставить любое число в любую ячейку.
    Задание 22 ЕГЭ по информатике многопроцессорные системы (решение задач)
  1. Запишем формулу в схему, где должны находиться наши отрезки, которая подтянет нужное расположение каждого отрезка: $= \text{ЕСЛИ}(\text{И}(\text{K}\$1 >= \text{\$G}2; \text{K}\$1 <= \text{\$H}2); 1; \text{””})$ и протянем её.

По условию задачи общее время выполнения должно быть минимальным, то есть не больше 37 мс. Подбирая значения в столбце «сдвиг», можно автоматически передвигать процессы (и все зависящие от них), так что методом подбора сможем обнаружить максимальную продолжительность — 5 мс.

Задание 22 ЕГЭ по информатике многопроцессорные системы (примеры решений)

Ответ: 5.

Задача 2

Условие перед вопросом сохраняется таким же, как в предыдущей задаче.

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

Аналогично оформляем вспомогательную таблицу и начинаем искать лучшие сдвиги.

Многопроцессорные системы (разбор и решения)

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

Максимальная продолжительность оказалась равна 7 мс.

Ответ: 7.

Задача 3

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

Аналогично оформляем вспомогательную таблицу и начинаем искать лучшие сдвиги.

Многопроцессорные системы, информатика ЕГЭ

Максимальная продолжительность оказалась равна 18 мс.

Ответ: 18.

Задача 4

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

Решим это задание аналогично предыдущим.

Вспомогательную таблицу можно не строить заново — достаточно скопировать уже готовый шаблон: формулы автоматически расставят процессы в исходные позиции.

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

Многопроцессорные системы, решение задач по информатике ЕГЭ

Максимальная продолжительность искомого отрезка составила 8 мс.

Ответ: 8.

Заключение

После изучения этой темы можно уверенно решать задания № 22 на многопроцессорные системы.

Теперь ты умеешь:

  • определять зависимости между процессами;
  • находить время начала и окончания процессов;
  • работать с параллельным выполнением;
  • находить максимальную продолжительность отрезка времени.

Чтобы закрепить материал, реши несколько заданий из открытого банка ЕГЭ и проверь себя.

Забирай курсы подготовки к ОГЭ и ЕГЭ с жирной скидкой

В 100б ты пробьёшь свой
максимум на экзаменах

наши лучшие курсы

Выбери подходящий курс и предмет, чтобы прокачаться и сдать ОГЭ на «5», а ЕГЭ на 80+ баллов

Выбрать курс

бесплатные материалы

Курсы, вебы, чек-листы — всё за 0 ₽

Забрать за 0 ₽

Интенсив по поступлению

Запишись на интенсив по поступлению, чтобы
взять из ЕГЭ максимум и попасть в вуз мечты

Записаться
В 100балльном репетиторе ты пробьёшь свой максимум на экзаменах

Преимущества подготовки
в 100балльном

10+
лет средний опыт наших преподавателей

18
выпускников сдали ЕГЭ
на 200 из 200 в 2024 году

300k+
учеников поступили в вуз мечты с нашей помощью 

14%
стобалльников России — наши выпускники

2 347
выпускника сдали ЕГЭ на 100 баллов

Преимущества подготовки в 100балльном

Запишись
на бесплатный
вводный урок

Познакомим с преподавателями и платформой

Расскажем про учёбу

Поможем поставить цель

  • 11 класс
  • 10 класс
  • 9 класс
  • 8 класс
  • 7 класс
Запись на вводный урок

Список всех тем