Присоединиться

11 класс·высокий уровень

Определите, какое наибольшее количество процессов может быть завершено

Условие

В компьютерной системе необходимо выполнить некоторое количество вычислительных процессов, которые могут выполняться параллельно или последовательно. Для запуска некоторых процессов необходимы данные, которые получаются как результаты выполнения одного или двух других процессов — поставщиков данных. Независимые процессы (не имеющие поставщиков данных) можно запускать в любой момент времени. Если процесс B (зависимый процесс) получает данные от процесса A (поставщика данных), то процесс B может начать выполнение сразу же после завершения процесса A. Любые процессы, готовые к выполнению, можно запускать параллельно, при этом количество одновременно выполняемых процессов может быть любым, длительность процесса не зависит от других параллельно выполняемых процессов.

Задание 22В таблице представлены идентификатор (ID) каждого процесса, его длительность и ID поставщиков данных для зависимых процессов.

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

Рисунок к задаче

Ответ

Ответ и полный разбор откроются после входа

Посмотреть ответ

Решение по шагам

  1. Как рассуждать

    Решение. Выполним сортировку данных по столбцу С.Надо разделить данные в столбце «ID поставщиков данных» для тех процессов, где есть зависимость от двух процессов. Для этого выделим столбец С, далее — меню «Данные — Текст» по столбцам. В меню мастера разделения текста по столбцам последовательно выберем «Формат данных с разделителями», далее «Символ разделитель: точка с запятой». Формат данных столбца «Общий». [рисунок] В столбце G будем считать общее время выполнения процесса. Для всех ячеек, у которых ячейка в столбце С равна нулю, это значение будет равно значению в ячейке столбца В. Запишем в ячейку G2 формулу =B2 и скопируем её на диапазон G2:G40.Получаем таблицу:ABCDEFG
    1ID процессаВремя выполнения процесса (мс)ID поставщиков данных
    21002618018
    310123404
    41021892092
    51025110010
    61037441041
    71042344044
    81059413013
    91062959059
    101104072072
    111112519019
    1211324707
    131159342042
    141168019019
    151177793093
    161234417017
    1712607707
    181269081081
    191285828028
    201293183083
    211301575075
    В ячейку E41 запишем формулу =ВПР(C41;A:G;7;0) и скопируем ее на диапазон E41:E99. Данная формула выведет время процесса, от которого зависит текущий. В ячейку G41 запишем формулу =E41+B41, чтобы посчитать общее время выполнения процесса. Скопируем формулу на диапазон G41:G68.Получаем таблицу: 391503085085
    401505827027
    41111778100261826
    42116123100261821
    43108242510123429
    44104952102189294
    45115025103744146
    4613421611037441102
    4713391811042344125
    4814490791042344123
    491099423105941336
    5010707551062959114
    5111742421062959101
    52107463510707114149
    53108563310707114147
    5410980911082429120
    55112292310856147170
    561210750111772676
    57137209411422094
    581237133115024679
    В ячейку F78 запишем формулу =ВПР(D69;A:G;7;0) и скопируем ее на диапазон F78:F99. Данная формула выведет время второго процесса, от которого зависит текущий. В ячейку G69 запишем формулу =МАКС(E69:F69)+B69, чтобы посчитать общее время выполнения процесса. Скопируем формулу на диапазон G78:G99.Получаем таблицу: 148338013877191271
    14685511455277128
    1020841100261012318459
    102857010026102181892162
    127832810123125214186214
    1184241102081098059120161
    14552311025111502104677
    1365875102511278310214289
    1095440103741085641147187
    1124510010594110401372172
    131599710629115935942156
    1193048107071085611429162
    1229944107071104011472158
    1238010108561161214721157
    1507820108561496414782167
    11422671095411229187170254
    1246032109801237112079152
    1252125109941184236161186
    12024991122911245170172271
    135209911324123807157256
    13440291142211971254122283
    119717611502115934642122
    13340201193012024162271291
    1220194120241210727176365

    Окончательно, воспользовавшись формулой =СЧЁТЕСЛИ(G:G;"<=170"), получим ответ —

Осталось ещё 1 шаг

  1. Шаг 2

Получить полное решение

Бесплатно · займёт минуту

Другие задачи по теме «Многопроцессорные системы»