Задание 22 ЕГЭ по информатике · 2332FB
Критический путь / успевшие процессыВысокаяКЭС 1.1
В файле содержится информация о совокупности N вычислительных процессов, которые могут выполняться параллельно или последовательно. Приостановка выполнения процесса не допускается. Будем говорить, что процесс B зависит от процесса A, если для выполнения процесса B необходимы результаты выполнения процесса A. В этом случае процессы A и B могут выполняться только последовательно.
Информация о процессах представлена в файле в виде таблицы. В первом столбце таблицы указан идентификатор процесса (ID), во втором столбце таблицы — время его выполнения в миллисекундах, в третьем столбце перечислены с разделителем «;» ID процессов, от которых зависит данный процесс. Если процесс независимый, то в таблице указано значение 0.
Типовой пример организации данных в файле
Определите максимальное количество процессов, которые могут быть завершены за первые 17 мс. Считать, что каждый процесс начинается в самое раннее допустимое время. Нумерация миллисекунд начинается с 1.
Например, для приведённой таблицы найдём количество процессов, которые могут быть завершены за первые 7 мс. Это 3 процесса (за это время завершатся процессы 1, 2 и 4).
Типовой пример имеет иллюстративный характер. Для выполнения задания используйте данные из прилагаемого файла.
Информация о процессах представлена в файле в виде таблицы. В первом столбце таблицы указан идентификатор процесса (ID), во втором столбце таблицы — время его выполнения в миллисекундах, в третьем столбце перечислены с разделителем «;» ID процессов, от которых зависит данный процесс. Если процесс независимый, то в таблице указано значение 0.
Типовой пример организации данных в файле
| ID процесса B | Время выполнения процесса B (мс) | ID процесса(ов) A |
|---|---|---|
| 1 | 3 | 0 |
| 2 | 4 | 1 |
| 3 | 2 | 2; 4 |
| 4 | 5 | 0 |
| 5 | 8 | 1; 4 |
Определите максимальное количество процессов, которые могут быть завершены за первые 17 мс. Считать, что каждый процесс начинается в самое раннее допустимое время. Нумерация миллисекунд начинается с 1.
Например, для приведённой таблицы найдём количество процессов, которые могут быть завершены за первые 7 мс. Это 3 процесса (за это время завершатся процессы 1, 2 и 4).
Типовой пример имеет иллюстративный характер. Для выполнения задания используйте данные из прилагаемого файла.
К заданию прилагается файл с данными — скачайте его в задании внутри Precettore.
Показать ответ
12
Подсказки (3)
- Для каждого процесса определите самое раннее время его запуска с учётом завершения всех процессов-зависимостей.
- Если процесс выполняется t миллисекунд и запускается в момент s, он завершается в момент s+t. Процесс можно запустить после завершения всех его предшественников.
- Обработайте процессы в порядке зависимостей, вычислите времена их завершения и подсчитайте процессы, для которых время завершения не превышает 17 мс. Получается 12 процессов.
Решение
1. Для каждого процесса по данным файла определяем все его непосредственные зависимости.
2. Самые ранние моменты запуска процессов вычисляем рекурсивно: независимый процесс запускается с начала отсчёта, а зависимый — после завершения всех процессов, от которых он зависит.
start(B)=maxA∈dependencies(B)finish(A)
3. Для каждого процесса вычисляем время завершения как сумму времени его запуска и длительности выполнения, затем оставляем процессы, завершившиеся не позднее 17-й миллисекунды.
finish(B)=start(B)+duration(B)
4. Подсчёт процессов, завершившихся за первые 17 мс, даёт 12.
2. Самые ранние моменты запуска процессов вычисляем рекурсивно: независимый процесс запускается с начала отсчёта, а зависимый — после завершения всех процессов, от которых он зависит.
start(B)=maxA∈dependencies(B)finish(A)
3. Для каждого процесса вычисляем время завершения как сумму времени его запуска и длительности выполнения, затем оставляем процессы, завершившиеся не позднее 17-й миллисекунды.
finish(B)=start(B)+duration(B)
4. Подсчёт процессов, завершившихся за первые 17 мс, даёт 12.
Частые ошибки
- Считать процессы зависимыми, если они просто указаны рядом в таблице.
- Запускать зависимый процесс до завершения всех его предшественников.
- Складывать времена всех процессов последовательно, не учитывая возможность параллельного выполнения.
- Включать процесс, завершившийся после 17 мс.
Похожие задания
22В этом случае процессы A и B могут выполняться только последовательно. Информация о процессах представлена в…Критический путь / успевшие процессы · FE814D22В этом случае процессы A и B могут выполняться только последовательно. Информация о процессах представлена в…Критический путь / успевшие процессы · 15929722В этом случае процессы A и B могут выполняться только последовательно. Информация о процессах представлена в…Критический путь / успевшие процессы · ABAA6722Информация о процессах представлена в файле в виде таблицы. В первом столбце таблицы указан идентификатор…Критический путь / успевшие процессы · 10224222Информация о процессах представлена в файле в виде таблицы. В первом столбце таблицы указан идентификатор…Критический путь / успевшие процессы · 3133F622Информация о процессах представлена в файле в виде таблицы. В первой строке таблицы указан идентификатор…Критический путь / успевшие процессы · 45BA0B22Информация о процессах представлена в файле в виде таблицы. В первом столбце таблицы указан идентификатор…Критический путь / успевшие процессы · 38557E22В этом случае процессы A и B могут выполняться только последовательно. Информация о процессах представлена в…Критический путь / успевшие процессы · 4128BD
Нужен репетитор по информатике?
Посмотрите репетиторов, которые ведут занятия в Precettore, или оставьте заявку — подберём сами.
Готовьтесь к ЕГЭ по информатике в Precettore
Варианты с автопроверкой, домашние задания от репетитора, онлайн-доска и разбор ошибок — в одном кабинете. Регистрация бесплатная.