Подтема 3 из 6
Сколько процессов
Сколько процессов идёт на n-й миллисекунде, сколько закончилось или началось к моменту — СЧЁТЕСЛИМН; решаем задачу темы.
На n-й миллисекунде
Как понять, идёт ли процесс на 7-й миллисекунде?
7-я мс — от момента 6 до момента 7. Процесс идёт на ней, если начался раньше 7 и закончился не раньше 7: начало < 7, окончание ≥ 7. Посмотрим на столбец 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:
=СЧЁТЕСЛИМН(B2:B9;"<"&F1; C2:C9;">="&F1)Условия идут парами: диапазон и что в нём должно быть. "<"&F1 склеивает знак с числом из F1 — получится условие «<7». Так номер миллисекунды можно менять, не трогая формулу. На листе для краткости только ID, начала и окончания. В полной таблице из подтемы 2 начала стоят в G, окончания — в H: подставь их диапазоны.
| A | B | C | D | E | F | |
|---|---|---|---|---|---|---|
| 1 | ID | Начало | Окончание | Мс | 7 | |
| 2 | 1 | 0 | 4 | Идут | 3 | |
| 3 | 2 | 0 | 6 | Закончились | 3 | |
| 4 | 3 | 4 | 7 | 5-е оконч. | 11 | |
| 5 | 4 | 6 | 8 | |||
| 6 | 5 | 6 | 11 | |||
| 7 | 6 | 8 | 12 | |||
| 8 | 7 | 11 | 13 | |||
| 9 | 8 | 13 | 14 |
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;: пятое наименьшее значение столбца. На листе выше оно в F4.
Окончания могут совпадать. Если два процесса заканчиваются одновременно, число закончившихся растёт сразу на два — тогда момента, когда закончились ровно k, может и не быть. Вопрос «за какое время завершатся k» всё равно имеет ответ: k-е окончание.
Задача темы
Решим задачу темы целиком:
«В файле 22-2.xlsx содержится информация о совокупности N вычислительных процессов, которые могут выполняться параллельно или последовательно. Будем говорить, что процесс B зависит от процесса A, если для выполнения процесса B необходимы результаты выполнения процесса A. В этом случае процессы A и B могут выполняться только последовательно. Информация о процессах представлена в файле в виде таблицы. В первом столбце таблицы указан идентификатор процесса (ID), во втором столбце таблицы — время его выполнения в миллисекундах, в третьем столбце перечислены с разделителем «;» ID процессов, от которых зависит данный процесс. Если процесс независимый, то в таблице указано значение 0. Определите, сколько процессов выполнялось в течение 21-й миллисекунды, при условии, что все независимые друг от друга процессы могут выполняться параллельно. Считать, что каждый процесс начинается в самое раннее допустимое время. Нумерация миллисекунд начинается с 1.»
Строим расписание, как в подтеме 2, и считаем процессы на 21-й мс одной формулой. Файл 22-2.xlsx приложен к задаче темы в практике этой подтемы. У процессов в нём до трёх поставщиков, поэтому столбцов больше:
- Разложить столбец C по столбцам C:E — три поставщика.
- В F:H — их окончания:
=ЕСНД(ВПР(C2;; окончание теперь в J, десятом столбце.$A$1:$J1; 10; 0); 0) - Начало
I2—=МАКС(F2:H2), окончаниеJ2—=I2+B2. - Ответ —
=СЧЁТЕСЛИМН(I2:I21;при 21 в J23 под таблицей."<"&J23; J2:J21; ">="&J23)
| A | B | C | D | E | F | G | H | I | J | |
|---|---|---|---|---|---|---|---|---|---|---|
| 1 | ID | Время | Пост. 1 | Пост. 2 | Пост. 3 | Оконч. 1 | Оконч. 2 | Оконч. 3 | Начало | Окончание |
| 2 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | ||
| 3 | 2 | 13 | 0 | 0 | 0 | 0 | 0 | 13 | ||
| 4 | 3 | 13 | 0 | 0 | 0 | 0 | 0 | 13 | ||
| 5 | 4 | 14 | 0 | 0 | 0 | 0 | 0 | 14 | ||
| 6 | 5 | 2 | 1 | 2 | 1 | 13 | 0 | 13 | 15 | |
| 7 | 6 | 12 | 5 | 15 | 0 | 0 | 15 | 27 | ||
| 8 | 7 | 15 | 5 | 15 | 0 | 0 | 15 | 30 | ||
| 9 | 8 | 3 | 4 | 14 | 0 | 0 | 14 | 17 | ||
| 10 | 9 | 10 | 1 | 3 | 7 | 1 | 13 | 30 | 30 | 40 |
| 11 | 10 | 6 | 5 | 8 | 15 | 17 | 0 | 17 | 23 | |
| 12 | 11 | 10 | 2 | 6 | 13 | 27 | 0 | 27 | 37 | |
| 13 | 12 | 11 | 4 | 7 | 8 | 14 | 30 | 17 | 30 | 41 |
| 14 | 13 | 11 | 6 | 27 | 0 | 0 | 27 | 38 | ||
| 15 | 14 | 6 | 13 | 38 | 0 | 0 | 38 | 44 | ||
| 16 | 15 | 10 | 2 | 12 | 13 | 41 | 0 | 41 | 51 | |
| 17 | 16 | 8 | 10 | 23 | 0 | 0 | 23 | 31 | ||
| 18 | 17 | 1 | 5 | 7 | 12 | 15 | 30 | 41 | 41 | 42 |
| 19 | 18 | 12 | 6 | 10 | 11 | 27 | 23 | 37 | 37 | 49 |
| 20 | 19 | 1 | 4 | 18 | 14 | 49 | 0 | 49 | 50 | |
| 21 | 20 | 6 | 7 | 14 | 30 | 44 | 0 | 44 | 50 | |
| 22 | ||||||||||
| 23 | Мс | 21 | ||||||||
| 24 | Идут | 3 | ||||||||
| 25 | Все готовы | 51 |
F2скопирована до H21=ЕСНД(ВПР(C2;$A$1:$J1; 10; 0); 0) I2скопирована до I21=МАКС(F2:H2)J2скопирована до J21=I2+B2J24=СЧЁТЕСЛИМН(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
Проверьте себя
Ответь сначала сам, потом открой ответ.
ОтветСкрыть ответ
ОтветСкрыть ответ
ОтветСкрыть ответ
ОтветСкрыть ответ
ОтветСкрыть ответ
Практика
Для проверки ответов нужен JavaScript. Условия, подсказки и решения доступны ниже.
Двенадцатая миллисекунда
Сколько процессов учебного примера выполняются в течение двенадцатой миллисекунды?
Введите число.
Подсказка
12-я мс — от момента 11 до 12: начало < 12, окончание ≥ 12.
Решение
2: процессы 6 (с 8 до 12) и 7 (с 11 до 13).
Ответ: 2
Десятая миллисекунда
Процессы: 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-й миллисекунды.
Введите число.
Подсказка
Построй расписание; на 10-й мс идут процессы с началом < 10 и окончанием ≥ 10.
Решение
2: процессы 4 (с 5 до 10) и 6 (с 5 до 11).
Ответ: 2
Работают в момент 4
Сколько процессов учебного примера работают в момент 4?
Введите число.
Подсказка
Это момент, а не миллисекунда: начало ≤ 4, окончание > 4.
Решение
2: процессы 2 и 3; процесс 1 закончился ровно в 4.
Ответ: 2
Завершены к моменту 11
Сколько процессов учебного примера завершились за первые 11 мс?
Введите число.
Подсказка
Окончание не позже 11.
Решение
5: окончания 4, 6, 7, 8 и 11.
Ответ: 5
Внутри окна [4; 12]
Сколько процессов учебного примера начались не раньше момента 4 и закончились не позже момента 12? Найди сумму их ID.
Введите через пробел количество процессов, затем сумму их ID.
Подсказка
Два условия сразу: начало ≥ 4 и окончание ≤ 12.
Решение
4 процесса — 3, 4, 5 и 6, сумма ID 18.
Ответ: 4 18
Хотя бы шесть процессов
За какое минимальное время в учебном примере завершатся шесть процессов?
Введите число.
Подсказка
Шестое по возрастанию окончание.
Решение
12: окончания 4, 6, 7, 8, 11, 12, …
Ответ: 12
Пять завершённых процессов
Процессы: 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, зависимые — сразу после завершения всех процессов, от которых зависят. Определите минимальное время (в мс), через которое завершится выполнение пяти процессов.
Введите число.
Подсказка
Пятое по возрастанию окончание.
Решение
11: окончания 3, 5, 8, 10, 11, 14, 15.
Ответ: 11
21-я миллисекунда по файлу 22-2
Задача темы. В файле 22-2.xlsx содержится информация о совокупности N вычислительных процессов, которые могут выполняться параллельно или последовательно. Будем говорить, что процесс B зависит от процесса A, если для выполнения процесса B необходимы результаты выполнения процесса A. В этом случае процессы A и B могут выполняться только последовательно. В первом столбце таблицы указан идентификатор процесса (ID), во втором — время его выполнения в миллисекундах, в третьем — с разделителем «;» ID процессов, от которых зависит данный процесс; 0 — процесс независимый. Определите, сколько процессов выполнялось в течение 21-й миллисекунды, при условии, что все независимые друг от друга процессы могут выполняться параллельно. Считать, что каждый процесс начинается в самое раннее допустимое время. Нумерация миллисекунд начинается с 1.
Введите число.
Подсказка
Расписание через ВПР, потом СЧЁТЕСЛИМН с условиями «<21» и «>=21».
Решение
3: на 21-й мс идут процессы 6, 7 и 10.
Формулы в Excel
C: Данные → Текст по столбцам, разделитель «;» → C:EF2: =ЕСНД(ВПР(C2;$A$1:$J1;10;0);0) — на F2:H…I2: =МАКС(F2:H2) — началоJ2: =I2+B2 — окончание; всё протянуть внизОтвет: =СЧЁТЕСЛИМН(I2:I21;"<21";J2:J21;">=21")Ответ: 3