О.М. Замятина - Компьютерное моделирование (2007). Учебное пособие (1124144), страница 11
Текст из файла (страница 11)
Чаще всегоиспользуется для удаления сущностей из модуля Hold, при условии, чтотип Infinity Hold (без выхода). В модуле Pickup задается имя очереди,из которой будут забираться сущности, и определяется количествозабираемых сущностей. Все сущности (вместе с исходной) выйдут измодуля Pickup в виде временной группировки.Применение: развоз товаров по магазинам со склада; посадкапассажиров в автобус на автобусной остановке.72Таблица 3.19Параметры модуля PickupПараметрыNameQuantityQueue NameStarting RankОписаниеУникальное имя модуля, которое будет отражено вблок-схемеКоличество сущностей, которые должны бытьудалены из очередиИмя очереди, из которой будут удаляться сущностиПозиция сущностей в очереди, с которойначинается удалениеМодуль RemoveМодуль предназначен для удаления сущностей изOriginalлюбой очереди при условии, что эти сущностизадерживаются бесконечно (Infinity). ОтличиеRemoved Entityэтого модуля от других заключается в том, что онможет забрать только одну сущность из очереди.
И у этого модуля 2выхода:original и removed entity. По ветке original выходит та сущность,которая зашла (активировала) в этот модуль, а по ветке removed entityвыходит та сущность, которая была забрана из очереди другого модуля(чаще всего модуля Hold).Remove 2Таблица 3.20Параметры модуля RemoveПараметрыNameQueue nameRank of entityОписаниеУникальное имя модуля, которое будет отраженов блок-схемеНазвание очереди, из которой будет произведеноудалениеГлубина удаления (количество сущностей дляудаления)Модуль MatchMatch 2Этот модуль предназначен для синхронизациидвижениядвухилиболеесущностей,расположенныхвразличных,несвязанныхочередях.Количествоочередейможет73варьироваться от 2 до 5.
Сущность ждет в очереди до тех пор, пока востальных очередях не появятся другие сущности либо с таким жезначением атрибута, как и у исходной сущности.Применение: сборка частей детали для дальнейшей обработки;собирание различных, но строго определенных продуктов по заказуклиента; синхронизация выхода покупателя с выходом заполненногозаказаТаблица 3.21Параметры модуля MatchПараметрыNameNumberMatchTypeОписаниеУникальное имя модуля, которое будет отражено вблок-схемеto Количество очередей для синхронизации сущностейAttribute NameМетод сравнивания входящих сущностей длясинхронизации.
Значения: Any Entities – в каждойочереди должно быть по одной любой сущности,для того чтобы они вышли. Based on Attribute – вкаждой очереди должна быть хотя бы однасущность с таким же атрибутом для выходаНазвание атрибута, по которому сущности должнысравниваться.Используется,толькоеслиустановлен тип Based on AttributeМодуль DropoffМодуль Dropoff перемещает определенныйнабор сущностей из группы сущностей иDropoff 1Originalпосылает их в другой модуль, связанный с нимграфическим соединением.MembersВ этот модуль приходит временная группировка, из которой мыможем выделить требуемое количество сущностей, они пойдут по веткеMembers, оставшаяся группа (в виде одной сущности) пойдет по веткеOriginal.74Таблица 3.22Параметры модуля DropoffПараметрыNameQuantityStarting RankMemberAttributesAttribute NameОписаниеУникальное имя модуля, которое будет отраженов блок-схемеЧисло сущностей, которое будет выбрано из всехпришедших в группу сущностейНачальное значение выбрасываемой сущностиМетод определения того, как назначить значениеатрибута представленной сущности (такие какстоимость, время) для выброса оригинальныхсущностей)Названиеатрибутовсущности,которыеобозначены для выброса оригинальной сущностииз группыМодуль SearchFoundЭтотмодульнеобходимдляпоискаопределенного элемента в очереди, в пакете, либоSearch 4в каком-то выражении.
Он имеет два выхода:True, если элемент найден, и False, если элементне найден.Not FoundПрименение: поиск среди коробок самойлегкой.Таблица 3.23Параметры модуля SearchПараметрыNameTypeQueue NameStarting ValueОписаниеУникальное имя модуля, которое будет отражено вблок-схемеТип поиска: среди сущностей, объединенных вочередь, сущности, объединенные в пакет илипоиск выраженияИмя очереди, в которой будет осуществлятьсяпоискНачальный класс в очереди или в пакете илиначальное значение для переменной в выражении75Ending ValueSearch conditionОкончание табл. 3.23Конечный класс в очереди или в пакете иликонечное значение для переменной в выраженииУсловия, включающие индекс поиска выражений,или содержащие атрибут при поиске пакетов илисущностей в очередиМодуль SeizeМодуль Seize предоставляет сущности одинили несколько ресурсов.
Он может бытьSeize 1использован для того, чтобы захватыватьотдельный ресурс, ресурс из набора ресурсовили ресурс, определѐнный альтернативным методом, таким как атрибутили выражение.Когда сущность поступает в этот модуль, она ждѐт в очереди,пока определѐнные в этом модуле ресурсы не будут доступны. Такжездесь определяется тип распределения ресурсов для поступившихсущностей.Замечания1. Сущности, которые захватываются с более высокой величинойприоритета, имеют более высокий приоритет, чем сущности, которыезахватываются с более низкой величиной.
Приоритетные выражения,оцененные как отрицательные величины, рассматриваются как нулевойприоритет. Если несколько сущностей с равными приоритетамипытаются захватить один и тот же ресурс, то его получает сущность снаибольшим временем ожидания.2. Возможно определить набор состояний (State set) для ресурса иназначить состояние ресурса в определѐнных ситуациях, используяобласть состояния ресурса (Resource State Field). Затем можно собратьстатистику:– сколько времени приходится на каждое состояние ресурса.Таблица 3.24Параметры модуля SeizeПараметрыNameAllocationОписаниеУникальное имя модуля, которое будет отражено вблок-схемеОпределяет категорию, по которой будетраспределена стоимость использования ресурса длясущности, проходящей через модуль Seize76PriorityTypeResource nameSelection ruleОкончание табл. 3.24Приоритет сущности, ожидающей в этом модулересурс. Определяется в случае, когда 1 илинесколько сущностей из других модулей ожидаюттот же ресурс (1 – высокий, 2 – средний, 3 – низкий,др.)Тип ресурса, который должен быть захвачен.Определяет конкретный ресурс или выбирает наборресурсов.
Имя ресурса также может бытьопределено атрибутом или выражением (Resource,Set, Attribute, Expression)Имя ресурса, который должен быть захваченМетод выбора среди доступных ресурсов в набореМодуль DelayМодуль Delay задерживает сущность наDelay 1определѐнное количество времени. Поприбытии сущности в модуль выражениевремени задержки оценивается и сущностьостаѐтся в модуле на результирующее время. Затем время выделяется и,в зависимости от Allocation, либо добавляется к значению сущности,либо не добавляется, либо передаѐтся, либо ждет другое время. Такжестоимости складываются, вычисляются и выделяются.Таблица 3.25Параметры модуля DelayПараметрыNameAllocationDelay TimeUnitsОписаниеУникальное имя модуля, которое будет отражено вблок-схемеТип категории, в которой сущности могут бытьподвергнуты задержке времени и добавлениюстоимостиОпределяет значение задержки времени длясущностиУказывает единицу измерения задержки времени77Модуль ReleaseМодуль Release используется для того, чтобыосвобождать ресурсы, которые прежде былиRelease 1захвачены сущностью.
Этот модуль можетбытьиспользовандлятого,чтобыосвобождать индивидуальные ресурсы или ресурсы в пределах набора.Для каждого ресурса, который нужно освободить, определяется имя иколичество. Когда сущность поступает в модуль, она теряет управлениеопределѐнным ресурсом. Любые сущности, ожидающие в очередяхэтот ресурс, получают его немедленно.Замечания:1. Если есть сущность, ожидающая в очередях для захватаопределѐнного ресурса, то, когда ресурс освобождается, онавтоматически распределяется в ждущую сущность. Эта ждущаясущность будет обработана, как только сущность, которая освободиларесурс, переместится.2. Системная переменная NR (имя ресурса) возвращает номерпоследнего занятого ресурса.
Когда сущность поступает в модульRelease, NR уменьшается на количество освобождѐнных ресурсов, еслиресурс не будет немедленно захвачен другой сущностью.3. Если освобождается больше количество ресурсов, чем былоранее захвачено, то происходит ошибка.4. Освобождение множества ресурсов выполняется в порядке ихпоявления в модуле Release.Таблица 3.26Параметры модуля ReleaseПараметрыNameResourcesОписаниеУникальное имя модуля, которое будет отражено вблок-схемеИмя освобождаемых модулем ресурсовМодуль ReadWriteReadWrite 1Модуль ReadWrite используется для чтения данных извходного файла или с клавиатуры и задания данных всписок переменных или атрибутов (или другихвыражений). Этот модуль также используется, чтобы78записать данные на выходное устройство, например на экран или вфайл.Когда объект приходит в модуль ReadWrite, то файл изучается длятого, чтобы увидеть, открыт он или нет.
Если нет, файл автоматическиоткрывается. Величины атрибутов, переменные или выражения будутпрочитаны или записаны в зависимости от того, какой форматопределен.Таблица 3.27Параметры модуля ReadWriteПараметрыNameОписаниеУникальный модульный идентификатор. Это имяотображается в модульной формеTypeМетод использования (чтение или запись).