Моделирование систем. Замятина О.М. - 122 стр.

UptoLike

Составители: 

Более подробно остановимся на параметре Priority (приоритет)
модуля Process. Говоря об этом параметре, мы должны ввести понятие
«приоритет ресурса» и «приоритет очереди». Рассмотрим пример и объ-
ясним, что такое «приоритет ресурса».
На прием к доктору приходят пациенты двух типов: взрослые
и дети. Доктор (наш ресурс) – один. Он ведет прием и детей, и взрос-
лых, но детей доктор принимает около 30 минут, а взрослых около
20 минут, причем у детей приоритет выше, чем у взрослых.
Каким образом мы можем реализовать это с помощью модуля
Process? Во-первых, параметр Action этого модуля должен быть уста-
новлен Seize Delay Release для назначения ресурса, т. е. когда сущность
«пациент» зайдет в модуль, то она захватит ресурс «доктор» на опреде-
ленное время. Во-вторых, у нас по условию время обслуживания паци-
ентов различное; таким образом, мы процесс обслуживания пациентов
доктором смоделируем в виде двух блоков Process с разными времен-
ными задержками (в 30 и 20 минут), но одним и тем же ресурсом «док-
тор». В-третьих, чтобы установить приоритет у детей выше, мы в пара-
метре Priority в том процессе, где время обслуживания 30 минут, т. е.
обслуживание детей, установим приоритет – High, а во втором процессе
– Low или Medium. Таким образом, когда у нас будут приходить сущно-
сти «дети», они будут иметь наивысший приоритет в обслуживании.
Рассмотрение понятия «приоритет очереди» будет приведено ни-
же (см. модуль данных очередь Queue).
Модуль Decide
Этот модуль позволяет описать и задать логику модели, учитывая
принятие решений. Он включает опции принятия решений, основанных
на условии By Condition (например, если тип
сущности Car) или основанных на вероятности By
Chance (например, 75 % – true, а 25 % – false). Ус-
ловия могут быть основаны на значении атрибута
Attribute, значении переменной Variable, типе
сущности Entity Type или основанные на выраже-
нии Expression.
Если поставленное условие выполняется, то сущности будут по-
кидать модуль через ветку True, иначепо ветке False.
Данный модуль позволяет выполнять проверку не только одного
условия, но и нескольких. Это достигается с помощью свойства
Type N-way by Chance/by Condition. В зависимости от условия сущ-
ность идет по нужной ветке. Таким образом, по ветке True у модуля
122