ЕГЭ по информатике · задание 22

Параллельные процессы с зависимостями

Процессы зависят друг от друга и могут выполняться параллельно. Нужно найти время завершения всех процессов, одного процесса или количество процессов, завершённых к моменту T. К каждому варианту — файл .xlsx.

Главная формула

  • Завершение(B) = время(B) + max(завершение A по всем A, от которых зависит B).
  • Независимый процесс завершается через своё время.

Как считать

  1. Добавить столбец «Время завершения».
  2. Заполнить его так, чтобы зависимости были уже посчитаны.
  3. Ответ: максимум столбца, нужное значение или количество значений ≤ T.

Типичные ошибки

  • Сложить времена зависимостей вместо максимума.
  • Считать «за первые T мс» строго меньше T — процесс, завершившийся в T-ю мс, подходит.

Разобранные варианты

Сначала реши сам в Excel или на Python, потом открой разбор.

Вариант 1

завершены за 49 мс

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

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

Файл к варианту: Ege22_v1.xlsx (31 процесс).

Разбор

Идея. Каждый процесс начинается, как только завершились все процессы, от которых он зависит. Поэтому время завершения = собственное время + наибольшее время завершения среди процессов-зависимостей (для независимого — просто собственное время).

В электронной таблице добавляем столбец «Время завершения» и заполняем его сверху вниз: для строки с зависимостями «2;4» формула =B5+МАКС(D3;D5) — ссылки на завершения процессов 2 и 4.

Первые завершившиеся процессы:

IDВремяЗависит отЗавершение
6404 (независимый)
15404 (независимый)
4505 (независимый)
13707 (независимый)
1210010 (независимый)
113013 (независимый)

Процессов с временем завершения не больше 49 мс — 21.

Ответ: 21

Решение на Python. Положите файл рядом с программой (нужна библиотека openpyxl).

from openpyxl import load_workbook

ws = load_workbook('Ege22_v1.xlsx').active
time, deps = {}, {}
for pid, t, d in ws.iter_rows(min_row=2, values_only=True):
    time[pid] = t
    deps[pid] = [int(x) for x in str(d).split(';') if int(x) != 0]

finish = {}
def fin(p):                      # время завершения процесса p при самом раннем старте
    if p not in finish:
        finish[p] = time[p] + max((fin(q) for q in deps[p]), default=0)
    return finish[p]

for p in time:
    fin(p)
print(sum(1 for p in time if finish[p] <= 49))

Вариант 2

время всех процессов

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

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

Файл к варианту: Ege22_v2.xlsx (28 процессов).

Разбор

Идея. Каждый процесс начинается, как только завершились все процессы, от которых он зависит. Поэтому время завершения = собственное время + наибольшее время завершения среди процессов-зависимостей (для независимого — просто собственное время).

В электронной таблице добавляем столбец «Время завершения» и заполняем его сверху вниз: для строки с зависимостями «2;4» формула =B5+МАКС(D3;D5) — ссылки на завершения процессов 2 и 4.

Первые завершившиеся процессы:

IDВремяЗависит отЗавершение
22303 (независимый)
11404 (независимый)
15505 (независимый)
16909 (независимый)
1411011 (независимый)
115015 (независимый)

Всё завершится, когда завершится самый поздний процесс: 67 мс.

Ответ: 67

Решение на Python. Положите файл рядом с программой (нужна библиотека openpyxl).

from openpyxl import load_workbook

ws = load_workbook('Ege22_v2.xlsx').active
time, deps = {}, {}
for pid, t, d in ws.iter_rows(min_row=2, values_only=True):
    time[pid] = t
    deps[pid] = [int(x) for x in str(d).split(';') if int(x) != 0]

finish = {}
def fin(p):                      # время завершения процесса p при самом раннем старте
    if p not in finish:
        finish[p] = time[p] + max((fin(q) for q in deps[p]), default=0)
    return finish[p]

for p in time:
    fin(p)
print(max(finish.values()))

Вариант 3

завершение процесса

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

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

Файл к варианту: Ege22_v3.xlsx (28 процессов).

Разбор

Идея. Каждый процесс начинается, как только завершились все процессы, от которых он зависит. Поэтому время завершения = собственное время + наибольшее время завершения среди процессов-зависимостей (для независимого — просто собственное время).

В электронной таблице добавляем столбец «Время завершения» и заполняем его сверху вниз: для строки с зависимостями «2;4» формула =B5+МАКС(D3;D5) — ссылки на завершения процессов 2 и 4.

Первые завершившиеся процессы:

IDВремяЗависит отЗавершение
20101 (независимый)
27202 (независимый)
1606 (независимый)
2111 + max(6) = 7
511;21 + max(6, 7) = 8
6909 (независимый)

Процесс 9 завершается через 19 мс.

Ответ: 19

Решение на Python. Положите файл рядом с программой (нужна библиотека openpyxl).

from openpyxl import load_workbook

ws = load_workbook('Ege22_v3.xlsx').active
time, deps = {}, {}
for pid, t, d in ws.iter_rows(min_row=2, values_only=True):
    time[pid] = t
    deps[pid] = [int(x) for x in str(d).split(';') if int(x) != 0]

finish = {}
def fin(p):                      # время завершения процесса p при самом раннем старте
    if p not in finish:
        finish[p] = time[p] + max((fin(q) for q in deps[p]), default=0)
    return finish[p]

for p in time:
    fin(p)
print(finish[9])

Вариант 4

завершены за 20 мс

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

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

Файл к варианту: Ege22_v4.xlsx (29 процессов).

Разбор

Идея. Каждый процесс начинается, как только завершились все процессы, от которых он зависит. Поэтому время завершения = собственное время + наибольшее время завершения среди процессов-зависимостей (для независимого — просто собственное время).

В электронной таблице добавляем столбец «Время завершения» и заполняем его сверху вниз: для строки с зависимостями «2;4» формула =B5+МАКС(D3;D5) — ссылки на завершения процессов 2 и 4.

Первые завершившиеся процессы:

IDВремяЗависит отЗавершение
5202 (независимый)
25202 (независимый)
17505 (независимый)
21606 (независимый)
242172 + max(5) = 7
3808 (независимый)

Процессов с временем завершения не больше 20 мс — 19.

Ответ: 19

Решение на Python. Положите файл рядом с программой (нужна библиотека openpyxl).

from openpyxl import load_workbook

ws = load_workbook('Ege22_v4.xlsx').active
time, deps = {}, {}
for pid, t, d in ws.iter_rows(min_row=2, values_only=True):
    time[pid] = t
    deps[pid] = [int(x) for x in str(d).split(';') if int(x) != 0]

finish = {}
def fin(p):                      # время завершения процесса p при самом раннем старте
    if p not in finish:
        finish[p] = time[p] + max((fin(q) for q in deps[p]), default=0)
    return finish[p]

for p in time:
    fin(p)
print(sum(1 for p in time if finish[p] <= 20))

Вариант 5

время всех процессов

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

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

Файл к варианту: Ege22_v5.xlsx (27 процессов).

Разбор

Идея. Каждый процесс начинается, как только завершились все процессы, от которых он зависит. Поэтому время завершения = собственное время + наибольшее время завершения среди процессов-зависимостей (для независимого — просто собственное время).

В электронной таблице добавляем столбец «Время завершения» и заполняем его сверху вниз: для строки с зависимостями «2;4» формула =B5+МАКС(D3;D5) — ссылки на завершения процессов 2 и 4.

Первые завершившиеся процессы:

IDВремяЗависит отЗавершение
19404 (независимый)
24505 (независимый)
11606 (независимый)
20606 (независимый)
7909 (независимый)
21909 (независимый)

Всё завершится, когда завершится самый поздний процесс: 70 мс.

Ответ: 70

Решение на Python. Положите файл рядом с программой (нужна библиотека openpyxl).

from openpyxl import load_workbook

ws = load_workbook('Ege22_v5.xlsx').active
time, deps = {}, {}
for pid, t, d in ws.iter_rows(min_row=2, values_only=True):
    time[pid] = t
    deps[pid] = [int(x) for x in str(d).split(';') if int(x) != 0]

finish = {}
def fin(p):                      # время завершения процесса p при самом раннем старте
    if p not in finish:
        finish[p] = time[p] + max((fin(q) for q in deps[p]), default=0)
    return finish[p]

for p in time:
    fin(p)
print(max(finish.values()))

Вариант 6

завершены за 38 мс

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

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

Файл к варианту: Ege22_v6.xlsx (32 процесса).

Разбор

Идея. Каждый процесс начинается, как только завершились все процессы, от которых он зависит. Поэтому время завершения = собственное время + наибольшее время завершения среди процессов-зависимостей (для независимого — просто собственное время).

В электронной таблице добавляем столбец «Время завершения» и заполняем его сверху вниз: для строки с зависимостями «2;4» формула =B5+МАКС(D3;D5) — ссылки на завершения процессов 2 и 4.

Первые завершившиеся процессы:

IDВремяЗависит отЗавершение
15101 (независимый)
1202 (независимый)
18808 (независимый)
217157 + max(1) = 8
8909 (независимый)
1411011 (независимый)

Процессов с временем завершения не больше 38 мс — 10.

Ответ: 10

Решение на Python. Положите файл рядом с программой (нужна библиотека openpyxl).

from openpyxl import load_workbook

ws = load_workbook('Ege22_v6.xlsx').active
time, deps = {}, {}
for pid, t, d in ws.iter_rows(min_row=2, values_only=True):
    time[pid] = t
    deps[pid] = [int(x) for x in str(d).split(';') if int(x) != 0]

finish = {}
def fin(p):                      # время завершения процесса p при самом раннем старте
    if p not in finish:
        finish[p] = time[p] + max((fin(q) for q in deps[p]), default=0)
    return finish[p]

for p in time:
    fin(p)
print(sum(1 for p in time if finish[p] <= 38))

Вариант 7

завершение процесса

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

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

Файл к варианту: Ege22_v7.xlsx (26 процессов).

Разбор

Идея. Каждый процесс начинается, как только завершились все процессы, от которых он зависит. Поэтому время завершения = собственное время + наибольшее время завершения среди процессов-зависимостей (для независимого — просто собственное время).

В электронной таблице добавляем столбец «Время завершения» и заполняем его сверху вниз: для строки с зависимостями «2;4» формула =B5+МАКС(D3;D5) — ссылки на завершения процессов 2 и 4.

Первые завершившиеся процессы:

IDВремяЗависит отЗавершение
9404 (независимый)
1606 (независимый)
11606 (независимый)
10808 (независимый)
2511011 (независимый)
2616 + max(6) = 12

Процесс 6 завершается через 50 мс.

Ответ: 50

Решение на Python. Положите файл рядом с программой (нужна библиотека openpyxl).

from openpyxl import load_workbook

ws = load_workbook('Ege22_v7.xlsx').active
time, deps = {}, {}
for pid, t, d in ws.iter_rows(min_row=2, values_only=True):
    time[pid] = t
    deps[pid] = [int(x) for x in str(d).split(';') if int(x) != 0]

finish = {}
def fin(p):                      # время завершения процесса p при самом раннем старте
    if p not in finish:
        finish[p] = time[p] + max((fin(q) for q in deps[p]), default=0)
    return finish[p]

for p in time:
    fin(p)
print(finish[6])

Вариант 8

завершены за 25 мс

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

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

Файл к варианту: Ege22_v8.xlsx (23 процесса).

Разбор

Идея. Каждый процесс начинается, как только завершились все процессы, от которых он зависит. Поэтому время завершения = собственное время + наибольшее время завершения среди процессов-зависимостей (для независимого — просто собственное время).

В электронной таблице добавляем столбец «Время завершения» и заполняем его сверху вниз: для строки с зависимостями «2;4» формула =B5+МАКС(D3;D5) — ссылки на завершения процессов 2 и 4.

Первые завершившиеся процессы:

IDВремяЗависит отЗавершение
3101 (независимый)
16404 (независимый)
12909 (независимый)
21909 (независимый)
110010 (независимый)
212012 (независимый)

Процессов с временем завершения не больше 25 мс — 15.

Ответ: 15

Решение на Python. Положите файл рядом с программой (нужна библиотека openpyxl).

from openpyxl import load_workbook

ws = load_workbook('Ege22_v8.xlsx').active
time, deps = {}, {}
for pid, t, d in ws.iter_rows(min_row=2, values_only=True):
    time[pid] = t
    deps[pid] = [int(x) for x in str(d).split(';') if int(x) != 0]

finish = {}
def fin(p):                      # время завершения процесса p при самом раннем старте
    if p not in finish:
        finish[p] = time[p] + max((fin(q) for q in deps[p]), default=0)
    return finish[p]

for p in time:
    fin(p)
print(sum(1 for p in time if finish[p] <= 25))

Вариант 9

время всех процессов

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

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

Файл к варианту: Ege22_v9.xlsx (24 процесса).

Разбор

Идея. Каждый процесс начинается, как только завершились все процессы, от которых он зависит. Поэтому время завершения = собственное время + наибольшее время завершения среди процессов-зависимостей (для независимого — просто собственное время).

В электронной таблице добавляем столбец «Время завершения» и заполняем его сверху вниз: для строки с зависимостями «2;4» формула =B5+МАКС(D3;D5) — ссылки на завершения процессов 2 и 4.

Первые завершившиеся процессы:

IDВремяЗависит отЗавершение
18202 (независимый)
3505 (независимый)
5606 (независимый)
1707 (независимый)
15808 (независимый)
2313 + max(7) = 10

Всё завершится, когда завершится самый поздний процесс: 36 мс.

Ответ: 36

Решение на Python. Положите файл рядом с программой (нужна библиотека openpyxl).

from openpyxl import load_workbook

ws = load_workbook('Ege22_v9.xlsx').active
time, deps = {}, {}
for pid, t, d in ws.iter_rows(min_row=2, values_only=True):
    time[pid] = t
    deps[pid] = [int(x) for x in str(d).split(';') if int(x) != 0]

finish = {}
def fin(p):                      # время завершения процесса p при самом раннем старте
    if p not in finish:
        finish[p] = time[p] + max((fin(q) for q in deps[p]), default=0)
    return finish[p]

for p in time:
    fin(p)
print(max(finish.values()))

Вариант 10

завершены за 29 мс

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

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

Файл к варианту: Ege22_v10.xlsx (24 процесса).

Разбор

Идея. Каждый процесс начинается, как только завершились все процессы, от которых он зависит. Поэтому время завершения = собственное время + наибольшее время завершения среди процессов-зависимостей (для независимого — просто собственное время).

В электронной таблице добавляем столбец «Время завершения» и заполняем его сверху вниз: для строки с зависимостями «2;4» формула =B5+МАКС(D3;D5) — ссылки на завершения процессов 2 и 4.

Первые завершившиеся процессы:

IDВремяЗависит отЗавершение
6101 (независимый)
22303 (независимый)
18404 (независимый)
24505 (независимый)
1707 (независимый)
4111 + max(7) = 8

Процессов с временем завершения не больше 29 мс — 12.

Ответ: 12

Решение на Python. Положите файл рядом с программой (нужна библиотека openpyxl).

from openpyxl import load_workbook

ws = load_workbook('Ege22_v10.xlsx').active
time, deps = {}, {}
for pid, t, d in ws.iter_rows(min_row=2, values_only=True):
    time[pid] = t
    deps[pid] = [int(x) for x in str(d).split(';') if int(x) != 0]

finish = {}
def fin(p):                      # время завершения процесса p при самом раннем старте
    if p not in finish:
        finish[p] = time[p] + max((fin(q) for q in deps[p]), default=0)
    return finish[p]

for p in time:
    fin(p)
print(sum(1 for p in time if finish[p] <= 29))

Для самостоятельного решения

Варианты 11–15 без разборов. Ответ можно проверить кнопкой.

Вариант 11

завершены за 11 мс

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

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

Файл к варианту: Ege22_v11.xlsx (32 процесса).

Вариант 12

завершение процесса

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

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

Файл к варианту: Ege22_v12.xlsx (20 процессов).

Вариант 13

время всех процессов

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

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

Файл к варианту: Ege22_v13.xlsx (29 процессов).

Вариант 14

завершены за 22 мс

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

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

Файл к варианту: Ege22_v14.xlsx (22 процесса).

Вариант 15

завершение процесса

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

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

Файл к варианту: Ege22_v15.xlsx (21 процесс).