Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
imit_Model_lektsii.doc
Скачиваний:
13
Добавлен:
22.09.2019
Размер:
427.01 Кб
Скачать

Параметры транзактов

Каждый транзакт может иметь некоторое количество параметров. По умолчанию у каждого транзакта 12 параметров,причем можно задать их количество (до 100 параметров).

GENERATE A,B,C,D,E,F,G

E  приоритет транзакта

F  количество параметров транзакта

G  говорит интерпретатору сколько отводить бит под параметр:

H  отводится 16 бит(полуслово)

F  отводится 32 бита(слово)

Значение параметров является стандартным числовым атрибутом. Имя параметра состоит из двух частей : группового имени P и номера параметра .Параметры не могут иметь символических имен .

По умолчанию в момент генерации все параметры транзакта имеют значение 0. А назначить и изменять эти параметры позволяет блок

ASSIGN A,B

A  задает номер параметра транзакта ,куда записываются данные из операнда B

Пр.: ASSIGN 3,25  параметр 3 получит значение 25

ASSIGN 3+,2 к текущему значению параметра 3 прибавить 2

ASSIGN 3,1  от текущего значения параметра 3 вычесть 1

Можно использовать стандартные числовые атрибуты :

ASSIGN 3,Q2 текущее значение очереди 2 становится значением параметра 3

ASSIGN P3,2  косвенное задание параметра .Рассматривается значение параметра 3 ,если в нём указано 7 ,то 7-ой параметр получит значение 2

Пример 5.2: Пример использования параметров транзактов.

Пусть у нас есть 3-и процессора. Для каждого

и з них есть своя БП.

Без использования ASSIGN необходимо было бы использовать ветвление. А вот какой простой становится программа с использованием этого блока :

* В функции A будут разыгрываться номера значений

* 1,2,3 и параметр P1 в блоке ASSIGN получит

* одно из этих значений.

ASSIGN

1,FN$A

* Номера очереди и процессора совпадают.

QUEUE

P1

SEIZE

P1

DEPART

P1

ADVANCE

P1,FN$EXP

RELEASE

P1

Лекция №6 Выбор элементов по их состояниям

Транзакт ,входящий в систему обслуживания с несколькими приборами и очередями в простейшем случае осуществляет одно из двух действий :

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

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