Сортировочные ворота
Last updated
Was this helpful?
Last updated
Was this helpful?
Сортировочные ворота перераспределяет ресурсы, не собирая их.
Сортировочные ворота имеют в качестве выходов соединения с ресурсами.
В зависимости от режима распределения ворот и его меток соединений с ресурсами, он будет сортировать ресурсы, проходящие через них.
Алгоритм применяется для каждого ресурса, проходящего через ворота, даже если за один временной шаг проходит более 1 ресурса.
Например, если через ворота проходит 10 ресурсов, каждый из этих ресурсов будет перераспределен в соответствии с алгоритмом, установленным режимом распределения ворот, типом выходных соединений и метками выходных соединений.
Здесь представлены все типы сортировочных ворот и их ожидаемые действия.
Детерминированные ворота сортируют ресурсы в соответствии с метками на выходных соединениях с ресурсами
Детерминированные ворота с соединениями ресурсов в качестве входных и выходных данных, для которых метки на выходных соединениях имеют числовые значения, которые задают соотношение для алгоритма перераспределения.
Порядок, в котором ресурсы направляются к своим целям, зависит от порядка, в котором эти цели были добавлены на диаграмму.
Алгоритм сортировки будет применяться к каждому из входящих ресурсов
Первые Ресурсы будут перераспределены в верхнее хранилище (то, которое мы впервые добавили на диаграмму), и они будут продолжать направляться к нему, пока не будет достигнуто соотношение. В этом случае первые 2 ресурса пойдут в сторону первого хранилища. 1 часть из 4 (1 + 3) из 8 ресурсов (1/4 из 8)
Остальные ресурсы пойдут к другому хранилищу. 3 части из 4 из 8 ресурсов (3/4 из 8)
Если ресурсы и соотношение не приводят к целому количеству ресурсов, алгоритм будет «выравнивать счет» в течение нескольких временных шагов.
Математически перераспределение 10 ресурсов составило бы 10*1/4 (2.5) ресурсов для первого хранилища и 10 *3/4 (7.5) ресурсов для второго.
Хранилища не могут собирать дробные ресурса, поэтому алгоритм отправит 3 ресурса в первое и 7 - во второе хранилища во время первого шага выполнения.
На следующем временном шаге он отправит 2 ресурса к 1-му хранилищу и 8 к второму
В конце временного шага 2 результатом будет 20 ресурсов, идеально распределенных между двумя пулами, в соответствии с их соотношением
Вот что происходит в примере выше:
Вот пример: