Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
5mzQtxCL1a.doc
Скачиваний:
27
Добавлен:
30.04.2022
Размер:
3.06 Mб
Скачать

11.12. Выбор направления движения транзактов с использованием сча

В языке GPSS/PC имеются операторы, позволяющие управлять движением транзактов в зависимости от значений СЧА (т.е. от числовых характеристик объектов, имитируемых в GPSS-модели). Одна из таких возможностей уже рассмотрена в разделе 2.11 (применение оператора TEST).

В некоторых случаях требуется выбрать элемент модели, удовлетворяющий заданному условию, для какой-либо операции с ним. Например, во многих задачах требуется выбирать для транзакта (имитирующего обслуживаемую заявку) свободное устройство, наименее загруженное устройство, самую короткую очередь и т.д. Для этого применяется оператор SELECT. Формат этого оператора следующий.

SELECT усл A,B,C,D,E,F

Здесь "усл" - условие. Оператор SELECT обнаруживает элемент модели, удовлетворяющий заданному условию, и записывает его номер в заданный параметр транзакта, вошедшего в этот оператор. Некоторые из условий, которые могут задаваться в операторе SELECT, следующие (полный список условий имеется в документации по GPSS/PC).

Состояния устройств: NU - устройство свободно; U - устройство занято; NI - устройство не находится в состоянии прерывания; I - устройство находится в состоянии прерывания; FV - устройство доступно; FNV - устройство недоступно;

Состояния многоканальных устройств: SE - многоканальное устройство пусто (т.е. в нем нет транзактов); SNE - многоканальное устройство не пусто; SF - многоканальное устройство заполнено; SNF - многоканальное устройство не заполнено; SV- многоканальное устройство доступно; SNV многоканальное устройство недоступно;

Операторы отношения: MAX - максимальное значение СЧА; MIN минимальное значение СЧА; L - меньше; LE - меньше или равно; E - равно; NE - не равно; G - больше; GE - больше или равно.

Назначение операндов оператора SELECT следующее.

A - номер параметра, в который записывается номер объекта, удовлетворяющего заданному условию.

B,C - нижняя и верхняя граница номеров объектов, для которых проверяется заданное условие.

D - величина, с которой сравнивается заданный СЧА объекта. Сам СЧА задается в операнде E. Операнд D требуется указывать только в случае, если в качестве "условия" указан оператор отношения.

E - имя СЧА, для которого проверяется заданное условие.

F - метка оператора, на который должен перейти транзакт, если заданное условие не выполняется ни для одного из объектов модели (при выполнении условия для какого-либо объекта транзакт переходит на следующий оператор). Если операнд F не указан, то транзакт в любом случае переходит на следующий оператор. Если в качестве условия указаны операторы отношения MIN или MAX, то указывать операнд F не требуется, так как эти условия выполняются всегда.

Примечание. Если при составлении GPSS-модели предполагается выбирать какой-либо элемент модели (устройство, очередь, многоканальное устройство) с использованием оператора SELECT, то этому элементу модели необходимо присвоить номер, а не символьное имя.

Пример. Пусть в некоторой GPSS-модели имеются многоканальные устройства с номерами от 1 до 5. Требуется выбрать из них устройство, имеющее не менее двух свободных каналов, и записать номер этого устройства в третий параметр транзакта. Если такого устройства не окажется, то транзакт должен перейти на оператор с меткой KON. Эти действия реализуются следующим оператором SELECT:

SELECT GE 3,1,5,2,R,KON

Пример. На ВЦ поступают задачи для решения; интервал между задачами составляет от 2 до 4 часов. Решение одной задачи занимает от 2 до 6 часов. На ВЦ имеются три ЭВМ. К каждой ЭВМ формируется отдельная очередь задач, ожидающих решения. Задача, поступившая на решение, направляется на свободную ЭВМ, а если все ЭВМ заняты - то на ЭВМ, у которой самая короткая очередь. Требуется разработать GPSS-модель для анализа работы ВЦ в течение 100 часов.

Примечание. В данной модели нельзя имитировать ВЦ как многоканальное устройство, так как к каждой ЭВМ имеется своя очередь. Поэтому требуется имитировать каждую ЭВМ как отдельное устройство (однока-нальное).

10 SIMULATE

20 GENERATE 3,1

30 SELECT NU 1,1,3,,,SELQ

40 TRANSFER ,RESH

50 SELQ SELECT MIN 1,1,3,,Q

60 RESH QUEUE P1

70 SEIZE P1

80 DEPART P1

90 ADVANCE 4,2

100 RELEASE P1

110 TERMINATE

120 GENERATE 100

130 TERMINATE 1

GPSS-модель работает следующим образом. Для устройств, имитирующих ЭВМ, используются числовые имена (номера) 1,2,3. Очереди к устройствам обозначаются такими же номерами. Транзакт из оператора GENERATE поступает в оператор SELECT NU 1,1,3,,,SELQ. В этом операторе из устройств с номерами 1,2,3 выбирается свободное устройство (это задается условием NU); номер такого устройства записывается в первый параметр транзакта. Если свободное устройство найдено, то транзакт переходит на следующий оператор (TRANSFER ,RESH) и передается на метку RESH (на вход в очередь с номером, указанным в его первом параметре); такой транзакт не будет ждать в очереди и сразу же перейдет в оператор SEIZE P1, т.е. войдет в устройство с выбранным номером. Если свободное устройство не найдено, то транзакт передается на метку SELQ. В операторе SELECT MIN 1,1,3,,Q из очередей с номерами 1,2,3 выбирается очередь с минимальной длиной (СЧА Q - длина очереди). Номер очереди записывается в параметр 1. Затем транзакт входит в очередь с выбранным номером.

Важно отметить, что группа операторов с номерами 60-100 в данной модели имитирует работу не одного, а трех устройств (и трех очередей к ним); номера этих устройств содержатся в первом параметре обрабатываемых транзактов. Например, оператор QUEUE P1 означает вход в очередь, номер которой записан в первом параметре транзакта. В файле результатов для этой модели будут содержаться данные об очередях и об одноканальных устройствах с номерами 1,2,3.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]