AnyLogic
Развернуть
Размер шрифта

Использование ресурсов

Ряд блоков Библиотеки Моделирования Процессов (Assembler, Seize, и Service) предоставляют различные варианты выбора типа и количества ресурсов, которые агент должен захватить, находясь в этом блоке.

  • Если вам требуются ресурс(ы) одного типа (например, два робота), выберите опцию Захватить: ресурсы одного типа. Затем выберите требуемый блок ResourcePool из выпадающего списка параметра Тип ресурсов (или щелкните кнопку и выберите блок в графическом редакторе). Затем укажите, какое количество ресурсов необходимо использовать для сборки в поле параметра Количество ресурсов.

  • Вы можете захватить любое количество различных ресурсов, например, одного робота и два контроллера. Выберите опцию Захватить: (альтернативный) набор ресурсов, затем добавьте типы ресурсов в список и укажите количество ресурсов каждого типа в столбце справа от него:

  • Более того, вы можете указать несколько альтернативных наборов типов ресурсов. Когда агенты будут поступать в блок и ожидать начала сборки, наборы ресурсов будут проверяться на доступность. Если ресурсы из первого набора заняты, проверяется второй набор и так далее. Для выполнения операции используется первый доступный набор.

Приоритеты и политики вытеснения

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

  • Если задачи имеют одинаковый приоритет, они будут выполняться последовательно в соответствии с настройками времени выполнения каждой из них. Если у двух задач одинаковый приоритет, но одна из них по какой-то причине была ранее приостановлена, то выбирается приостановленная задача.1
  • Если для задач не задан механизм вытеснения, они будут выполняться последовательно в соответствии с настройками времени выполнения каждой из них.
  • Начало выполнения задачи, заданной в одном блоке, не сбрасывает счетчик для задач, заданных в других блоках.
1 Каждый ресурс получает запросы из разных источников. Когда у ресурса есть несколько задач с одинаковым приоритетом (новых или ранее приостановленных), при выборе задачи к исполнению учитываются следующие правила:
  • Самый высокий приоритет — у приостановленных задач из «индивидуальной» очереди единицы ресурса.
    Такие очереди формируются агентами, находящимися в блоках, для которых значение свойства Правило вытеснения задач установлено на Ожидать оригинал ресурса.
  • После этого обрабатываются задачи из очереди блока ResourcePool.
    Эта очередь формируется агентами, находящимися в блоках, для которых значение свойства Правило вытеснения задач установлено на Захватывать любой ресурс.

После выполнения задач из этих очередей ресурс сначала выполняет задачи из «индивидуальной очереди», а затем — из очереди блока ResourcePool.

Если этот порядок выполнения вам не подходит, вы можете вручную повысить приоритет определенной задачи с помощью кода: для этого используйте действие блока При остановке задачи.

Как мы можем улучшить эту статью?