К содержанию

Подтема 3 из 6

Сколько процессов

Сколько процессов идёт на n-й миллисекунде, сколько закончилось или началось к моменту — СЧЁТЕСЛИМН; решаем задачу темы.

На n-й миллисекунде

Как понять, идёт ли процесс на 7-й миллисекунде?

7-я мс — от момента 6 до момента 7. Процесс идёт на ней, если начался раньше 7 и закончился не раньше 7: начало < 7, окончание ≥ 7. Посмотрим на столбец 7-й мс в расписании учебного примера:

На 7-й мс идут три процесса: 3 (с 4 до 7), 4 (с 6 до 8) и 5 (с 6 до 11). Процесс 2 закончился в 6 — на 7-й мс его уже нет.

Процесс 3 заканчивается ровно в 7 — и всё равно идёт на 7-й мс: это его последняя миллисекунда. А процесс 4 начинается в 6 и уже идёт: 6 < 7. Процесс, который начнётся в 7, на 7-й мс ещё не идёт — его первая миллисекунда 8-я.

Тонкости:«на 7-й миллисекунде» и «в момент 7»

Иногда спрашивают о моменте времени: «сколько процессов работает в момент 7». Момент 7 — граница между 7-й и 8-й мс. В нём процесс 3 уже закончился, работают только 4 и 5 — два, а не три. Тогда условие другое: начало ≤ 7, окончание > 7. Читай, о чём именно вопрос.

СЧЁТЕСЛИМН

Как посчитать такие процессы в Excel, когда их двадцать?

Функцией : она считает строки, где выполнены все условия сразу. Начала — в B, окончания — в C, номер миллисекунды — в F1:

F2=СЧЁТЕСЛИМН(B2:B9;"<"&F1;C2:C9;">="&F1)

Условия идут парами: диапазон и что в нём должно быть. "<"&F1 склеивает знак с числом из F1 — получится условие «<7». Так номер миллисекунды можно менять, не трогая формулу. На листе для краткости только ID, начала и окончания. В полной таблице из подтемы 2 начала стоят в G, окончания — в H: подставь их диапазоны.

F2=СЧЁТЕСЛИМН(B2:B9;"<"&F1;C2:C9;">="&F1)
ABCDEF
1IDНачалоОкончаниеМс7
2104Идут3
3206Закончились3
43475-е оконч.11
5468
65611
76812
871113
981314
Формулы в ячейках
  • F2=СЧЁТЕСЛИМН(B2:B9;"<"&F1;C2:C9;">="&F1)
  • F3=СЧЁТЕСЛИ(C2:C9;"<="&F1)
  • F4=НАИМЕНЬШИЙ(C2:C9;5)

В F2 — 3. Поменяй F1 на 12 — получится 2: на 12-й мс идут процессы 6 и 7.

Закончились и начались

А если спрашивают, сколько процессов закончилось или началось?

Формула та же, меняются только условия — их берут из слов условия. Выбери формулировку:

выполняется на n-й мс
начало < n и окончание ≥ nкак в задаче темы
завершились за первые t мс
окончание ≤ t=СЧЁТЕСЛИ(C2:C9;"<="&F1)
начались не раньше чем через t мс
начало ≥ tотсчёт от момента 0
начались не раньше n-й мс
начало ≥ n − 1n-я мс начинается в момент n − 1
работают в момент t
начало ≤ t и окончание > tмомент, а не миллисекунда

В учебном примере за первые 7 мс закончились три процесса: 1 (в 4), 2 (в 6) и 3 (в 7). Процесс 3 считается: «за первые 7 мс» включает и 7-ю.

Когда закончатся k

За какое время закончатся пять процессов?

За время пятого по счёту окончания, если окончания выстроить по возрастанию. В примере окончания 4, 6, 7, 8, 11, 12, 13, 14 — пятое равно 11. В Excel это =НАИМЕНЬШИЙ(C2:C9;5): пятое наименьшее значение столбца. На листе выше оно в F4.

Окончания могут совпадать. Если два процесса заканчиваются одновременно, число закончившихся растёт сразу на два — тогда момента, когда закончились ровно k, может и не быть. Вопрос «за какое время завершатся k» всё равно имеет ответ: k-е окончание.

Задача темы

Решим задачу темы целиком:

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

Строим расписание, как в подтеме 2, и считаем процессы на 21-й мс одной формулой. Файл 22-2.xlsx приложен к задаче темы в практике этой подтемы. У процессов в нём до трёх поставщиков, поэтому столбцов больше:

  1. Разложить столбец C по столбцам C:E — три поставщика.
  2. В F:H — их окончания: =ЕСНД(ВПР(C2;$A$1:$J1;10;0);0); окончание теперь в J, десятом столбце.
  3. Начало I2 — =МАКС(F2:H2), окончание J2 — =I2+B2.
  4. Ответ — =СЧЁТЕСЛИМН(I2:I21;"<"&J23;J2:J21;">="&J23) при 21 в J23 под таблицей.
J24=СЧЁТЕСЛИМН(I2:I21;"<"&J23;J2:J21;">="&J23)
ABCDEFGHIJ
1IDВремяПост. 1Пост. 2Пост. 3Оконч. 1Оконч. 2Оконч. 3НачалоОкончание
211000001
32130000013
43130000013
54140000014
6521211301315
7612515001527
8715515001530
983414001417
10910137113303040
1110658151701723
12111026132702737
1312114781430173041
141311627002738
151461338003844
161510212134104151
171681023002331
1817157121530414142
191812610112723373749
20191418144904950
21206714304404450
22
23Мс21
24Идут3
25Все готовы51
Формулы в ячейках
  • F2скопирована до H21=ЕСНД(ВПР(C2;$A$1:$J1;10;0);0)
  • I2скопирована до I21=МАКС(F2:H2)
  • J2скопирована до J21=I2+B2
  • J24=СЧЁТЕСЛИМН(I2:I21;"<"&J23;J2:J21;">="&J23)
  • J25=МАКС(J2:J21)

Ответ — 3: на 21-й мс идут процессы 6 (с 15 до 27), 7 (с 15 до 30) и 10 (с 17 до 23). Все процессы закончатся к 51 мс — это ответ на вопрос о минимальном общем времени, если спросят его.

Итого

  • n-я мсот момента n − 1 до n
  • Идёт на n-й мсначало < n, окончание ≥ n
  • Формула=СЧЁТЕСЛИМН(B2:B9;"<"&F1;C2:C9;">="&F1)
  • За первые t мсокончание ≤ t
  • Когда закончатся k=НАИМЕНЬШИЙ(C2:C9;k)
  • Задача темы3

Проверьте себя

Ответь сначала сам, потом открой ответ.

Вопрос 1
Процесс начинается в момент 6 и заканчивается в 11. На каких миллисекундах он идёт? Идёт ли он на 6-й?
ОтветСкрыть ответ
Ответ
С 7-й по 11-ю. На 6-й — нет: она кончается в момент 6.
Вопрос 2
Сколько процессов учебного примера идёт на 12-й мс?
ОтветСкрыть ответ
Ответ
Два: 6 (с 8 до 12) и 7 (с 11 до 13).
Вопрос 3
Почему в формуле для начала стоит «<», а для окончания — «≥»?
ОтветСкрыть ответ
Ответ
Процесс, начавшийся в n, начнёт идти только с (n + 1)-й мс. А закончившийся в n идёт на n-й мс — это его последняя миллисекунда.
Вопрос 4
Сколько процессов учебного примера закончилось за первые 8 мс?
ОтветСкрыть ответ
Ответ
Четыре: 1, 2, 3 и 4 — их окончания 4, 6, 7 и 8.
Вопрос 5
За какое время в учебном примере закончатся шесть процессов?
ОтветСкрыть ответ
Ответ
За 12 мс: шестое по возрастанию окончание — 12.

Практика

Для проверки ответов нужен JavaScript. Условия, подсказки и решения доступны ниже.

Двенадцатая миллисекунда

Сколько процессов учебного примера выполняются в течение двенадцатой миллисекунды?

Введите число.

Десятая миллисекунда

Процессы: 1 — 3 мс, 0; 2 — 8 мс, 0; 3 — 2 мс, 1; 4 — 5 мс, 1; 3; 5 — 4 мс, 2; 4; 6 — 6 мс, 3; 7 — 1 мс, 5; 6. Независимые процессы начинаются в момент 0, зависимые — сразу после завершения всех процессов, от которых зависят. Определите, сколько процессов выполнялось в течение 10-й миллисекунды.

Введите число.

Работают в момент 4

Сколько процессов учебного примера работают в момент 4?

Введите число.

Завершены к моменту 11

Сколько процессов учебного примера завершились за первые 11 мс?

Введите число.

Внутри окна [4; 12]

Сколько процессов учебного примера начались не раньше момента 4 и закончились не позже момента 12? Найди сумму их ID.

Введите через пробел количество процессов, затем сумму их ID.

Хотя бы шесть процессов

За какое минимальное время в учебном примере завершатся шесть процессов?

Введите число.

Пять завершённых процессов

Процессы: 1 — 3 мс, 0; 2 — 8 мс, 0; 3 — 2 мс, 1; 4 — 5 мс, 1; 3; 5 — 4 мс, 2; 4; 6 — 6 мс, 3; 7 — 1 мс, 5; 6. Независимые процессы начинаются в момент 0, зависимые — сразу после завершения всех процессов, от которых зависят. Определите минимальное время (в мс), через которое завершится выполнение пяти процессов.

Введите число.

21-я миллисекунда по файлу 22-2

Задача темы. В файле 22-2.xlsx содержится информация о совокупности N вычислительных процессов, которые могут выполняться параллельно или последовательно. Будем говорить, что процесс B зависит от процесса A, если для выполнения процесса B необходимы результаты выполнения процесса A. В этом случае процессы A и B могут выполняться только последовательно. В первом столбце таблицы указан идентификатор процесса (ID), во втором — время его выполнения в миллисекундах, в третьем — с разделителем «;» ID процессов, от которых зависит данный процесс; 0 — процесс независимый. Определите, сколько процессов выполнялось в течение 21-й миллисекунды, при условии, что все независимые друг от друга процессы могут выполняться параллельно. Считать, что каждый процесс начинается в самое раннее допустимое время. Нумерация миллисекунд начинается с 1.

22-2.xlsxПроцессы — Excel-файл, как на экзаменеExcel · 5,3 КБ

Введите число.