Ответы к экзамену по оптимизации бизнес процессов в системе gpss. Задачи оптимизации бп
Скачать 0.55 Mb.
|
Одноканальные системы массового обслуживания. Блок SeizeБлок SEIZE имеет следующий формат: SEIZE Блок служит для описания в модели процесса поступления транзакта на устройство. В поле А задается имя или номер занимаемого устройства. Если устройство в момент появления транзакта свободно, то транзакт занимает это устройство и устройство переходит в состояние "Занято". При этом специальная переменная F<номер устройства> (флажок) - принимает значение 1. Если устройство свободно, то эта переменная имеет значение 0. Если устройство в момент появления транзакта занято или недоступно, то транзакт становится в очередь к данному устройству. Если устройство свободно, то после перевода устройства в занятое состояние транзакт сразу переходит к следующему блоку. Занятое устройство может быть прервано другим транзактом в специальном блоке модели. В этом случае устройство переходит в состояние "прервано". Блок RELEASE имеет следующий формат: RELEASE Блок RELEASE предназначен для освобождения устройства тем транзактом, которым оно было занято. В поле А задается имя или номер освобождаемого устройства. Если транзакт обрабатывается устройством, то с помощью блока RELEASE он освобождает устройство и переходит к следующему последовательному блоку. Если транзакт обрабатывался устройством, но был прерван, то блоком RELEASE транзакт удаляется из списка прерывания устройства и пытается вновь занять устройство. Операция освобождения выполняется немедленно после входа транзакта в блок RELEASE. Блок SplitПомимо блока GENERATE, для создания транзактов используется также блок SPLIT, который создает заданное число копий вошедшего в блок транзакта. Копии и породивший их транзакт считаются транзактами одного семейства. По связям внутри семейства транзактов нельзя установить, какой из транзактов семейства является порождающим. Если копия транзакта входит в блок SPLIT, то вторичная копия становится членом того же семейства, что и первичная копия. Таким образом, каждый транзакт является членом одного и только одного семейства. Семейство может состоять из произвольного числа транзактов. Когда транзакт уничтожается, интерпретатор автоматически исключает его из членов соответствующего семейства. Таким образом, семейство существует до тех пор, пока из модели не удаляется последний из его членов. В модели одновременно может существовать произвольное число семейств, оно все время меняется, поскольку каждый генерируемый блоком GENERATE транзакт создает новое семейство. Блок SPLIT выполняет функцию копирования, входящего в него транзакта, который называется исходным или порождающим и этот блок имеет следующий формат: SPLIT ,[],[ Параметр А задает число создаваемых копий. Параметр B задает номер или метку следующего блока, к которому переходят копии исходного транзакта, причем, если это переменная, то значение вычисляется для каждой копии отдельно. Параметр С задает номер параметра транзакта, используемого для присвоения копиям последовательных номеров. Это дает возможность дать каждой копии транзакта свой уникальный номер. При этом, если при входе в блок параметр транзакта с номером j имеет значение X, тогда значение параметра с номером j первой копии равно Х+1, второй копии - Х+2, третьей копии - Х+3 и т.д. Помимо значений параметров в каждую копию записывается значение приоритета и отметка времени М1 исходного транзакта. Все копии формируются в момент входа порождающего транзакта в блок SPLIT. После создания копий исходный транзакт пытается перейти к следующему по номеру блоку. В качестве примера блока SPLIT можно привести следующий блок SPLIT 2,Factory,1. На рис. 7 показана условная схема действия блока в этом примере с помощью нотации BPMN. Рисунок 7 – Условная схема действия блока SPLIT В данном блоке формируются две копии входящего в блок транзакта. Копии I1 и I2 переходят к блоку с меткой Factory. В параметре р1 первой копии записывается число 1 (номер копии), а в параметре р1 второй копии число 2 (Первичный транзакт имеет значение этого параметра 0). Блок SPLIT будем в дальнейшем использовать для моделирования точки разветвления потока действий |