Выбор элементов по их состояниям
Транзакт ,входящий в систему обслуживания с несколькими приборами и очередями в простейшем случае осуществляет одно из двух действий :
1. Если один из приборов свободен ,то транзакт его занимает .
2.Если все приборы заняты ,то транзакт поступает в наиболее короткую очередь .Итак ,транзакт должен выбрать очередь .
В системе моделирования существует специальный блок SELECT,который может быть использован для решения этой задачи .
Блок SELECT используется для просмотра множества элементов определенной группы с целью выяснения удовлетворяет ли хотя бы один элемент этого множества задаваемому условию .При входе транзакта в блок SELECT выполняется просмотр состояния элементов заданной группы .Элементы группы пронумерованы(например,с 5 по 9) и просматриваются в порядке возрастания номера на предмет удовлетворения условию .Если найден элемент ,удовлетворяющий условию ,то просмотр прекращается и номер элемента запоминается .
SELECT A,B,C,D,E,F
A - номер параметра ,в который записывается номер элемента группы ,отвечающего заданному условию
B,С - задают наименьший и наибольший номера из множества членов просматриваемой группы
E - групповое имя стандартного числового атрибута(сокращенно СЧА)
F - для приборов
Q - для очередей
D - значение с которым должен сравниваться СЧА.
F - необязательный операнд ;здесь указывается имя блока, в который поступает транзакт, если ни один из элементов множества не отвечает заданному условию и при этом не изменяется значение параметра транзакта.Если операнд F не используется и ни один из элементов множества не отвечает заданному условию, то значением параметра транзакта становится ноль, и транзакт переходит из блока SELECT в следующий блок.
X - вспомогательный операнд .Здесь указывается условие сравнения операнда D и СЧА.Этот операнд может иметь следующие значения :
G - больше
GE - больше либо равно
E - равно
NE - не равно
LE - меньше или равно
L - меньше
Приведем несколько примеров, где может использоваться блок SELECT :
Пр.:Просмотреть приборы 1,2,3 для определения ,который из них (первый по просмотру) свободен (то есть необходимо определить есть ли прибор ,для которого СЧА F равен 0) .
SELECT E 7,1,3,0,F
Пусть F2=0 ,тогда номер 2-го устройства становится значением 7-го параметра. Если все устройства заняты ,то параметр 7 получит значение 0 .
Пр.:Просмотреть многоканальные устройства с 5-го по 8-ое для определения ,есть ли хотя бы одно устройство в данное время ,у которого нагрузка ниже 25%(то есть надо определить ,есть ли хотя бы одно устройство ,СЧА которого SR меньше 250) .
SELECT L P3,5,8,250,SR
Здесь P3 используется для косвенной адресации . Пусть P3 равно 6 ,тогда 6-ой параметр получит значение номера устройства ,у которого загруженность меньше 25%.
Пр.:Просмотреть очереди с 13-й по 17-ую для определения номера очереди, у которой среднее время нахождения в очереди больше 3( то есть надо определить, есть ли хотя бы одна очередь, СЧА QX которой был бы больше 3) .
SELECT G 5,13,17,3,QX,TR
TR - метка блока
Существует разновидность блока SELECT. Этот блок может работать в режиме поиска элемента, у которого значение СЧА является минимальным или максимальным. Тогда операнд D отсутствует.
Вместо операнда X пишется MIN или MAX. Операнды A,B,C и E имеют тот же самый смысл, что и в общем случае, но в результате выполнения блока SELECT параметр A получит значение элемента, имеющего минимальное или максимальное значение параметра .
Пр.:Определить какая из очередей имеет наименьшее значение текущего содержимого.
SELECT MIN 6,5,8,,Q
Пр.:Определить какой из приборов имеет наименьшую нагрузку .
SELECT MAX 5,9,14,,FR
Пример № 6.1 :Есть три устройства, и у каждого из устройств есть своя очередь. Транзакт должен занять свободный прибор, если свободного прибора нет, то транзакт должен поступить в минимальную очередь.
SELECT E | 1,1,3,0,F,TR | |
L | QUEUE | P1 |
SEIZE | P1 | |
DEPART | P1 | |
ADVANCE | FN$AB | |
RELEASE | P1 | |
TRANSFER | ,D | |
TR | SELECT MIN | 1,1,3,,Q |
TRANSFER | ,L |
Дата добавления: 2016-11-04; просмотров: 1636;