Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






GPSS. Блоки-операторы (продолжение).






 

Аппаратная категория –> PREEMPT

Прерывание работы устройства.

Когда заявка приходит, то работа канала прерывается.

SIMULATE

GENERATE 10, 1

SEIZE 1

ADVANCE 7, 3

RELEASE 1

TERMINATE 1

GENERATE 25, 2

 

PREEMPT 1

ADVANCE 15, 1

RETURN 1

TERMINATE 1

START 180

END

 

Блок ENTER имитирует работу памяти (вход в память).

 

LEAVE – имитирует выход из памяти (освобождение памяти).

Операнд А обозначает N памяти

В – объем памяти, который может быть доступным (число ячеек).

Используется с блоком карты, которая записывается в память.

Карта называется “STORAGE” – определяет описание памяти. Если машина занята, то заявка находится в памяти, когда канал освободился из памяти заявка уходит (аналог очереди).

Программа, имитирующая работу:

SIMULATE

1 STORAGE

GENERATE 8, 2

ENTER 1

SEIZE

LEAVE 1

ADVANCE 7, 5

RELEASE

TERMINATE

START 100

END

 

Sj – текущее содержание памяти (число ячеек (V), которые запоминает память);

Rj – число свободных ячеек;

SRj – коэффициент использования j-ой памяти (сколько было занято, и т.д.);

SAj – среднее количество ячеек, которое было использовано в процессе моделирования;

SMj – максимальное количество ячеек, использованное в j-ой памяти;

SLj – общее число транзактов, вошедших в память;

STj – среднее время использования j-го накопителя одним транзактом.

 

Блок SPLIT

 

SPLIT – это аппаратная динамическая категория (получение копий заявок).

В программе происходит обработка оригинала и копии.

SIMULATE

GENERATE 8, 2

SPLIT 1, THIS

SEIZE 1 // обработка оригинала

ADVANCE 5, 3

 

RELEASE 1

TRANSFER THAT

THIS SEIZE 2 // номер копии, обрабатываемой копии

ADVANCE 5, 3

RELEASE 2

THAT ASSEMBLE 2 // склеивает копии; 2 – общее количество заявок

// (оригинал +копия)

TERMNATE 1

START 100

END

 

Блок SPLIT имеет следующий формат:

SPLIT < A>, [< B> ], [< C> ]

Блок SPLIT выполняет функцию копирования входящего в него со­общения, которое называется исходным или порождающим.

В поле А задается число создаваемых копий. Операнд А может быть именем, положительным целым, СЧА, СЧА*< параметр>. Если вычис­ленное значение аргумента поля А равно нулю, то блок SPLIT не вы­полняет никаких операций. После создания копий сообщение пытается перейти к следующему по номеру блоку. Все копии формируются в мо­мент входа порождающего сообщения в блок SPLIT.

Поле В задает номер следующего блока, к которому переходят копии исходного сообщения, причем значение вычисляется для каждой копии отдельно. Операнд В может быть именем, положительным целым, СЧА, СЧА*< параметр>.

В поле С может быть задан номер параметра, используемого для присвоения копиям последовательных номеров. Операнд С может быть

именем, положительным целым, СЧА, СЧА*< параметр>.

Если, например, задан параметр j, то j-му параметру исходного сообщения и n - копиям этого сообщения будут присвоены значения, как показано ниже.

Пусть Х - входное значение параметра j, тогда значение пара­метра j первой копии равно Х+1, второй копии - Х+2, третьей копии - Х+3 и т.д.

Помимо значений параметров в каждую копию записывается значе­ние приоритета и отметка времени исходного сообщения. Копии пооче­редно поступают в список текущих событий, причем каждая копия поме­щается в конец соответствующего приоритетного класса.

Счетчик общего числа входов (Nj) и счетчик текущего числа со­общений (Wj) блока SPLIT увеличиваются на единицу каждым исходным сообщением и каждой копией. Счетчик числа сообщений уменьшается на единицу при каждом выходе исходного сообщения или копии из блока SPLIT.

Каждая новая копия становится членом семейства сообщений, по-

рожденного одним исходным сообщением, которое было создано блоком

GENERATE.

Сообщения, принадлежащие к одному семейству, объединяются ин­терпретатором в список. По связям внутри семейства сообщений нельзя установить, какое из сообщений семейства является порождающим. Если копия сообщения входит в блок SPLIT, то вторичная копия становится членом того же семейства, что и первичная копия. Таким образом, каждое сообщение является членом одного и только одного семейства. Семейство может состоять из произвольного числа сообщений. Когда сообщение уничто­жается, интерпретатор автоматически исключает его из членов соот­ветствующего семейства. Таким образом, семейство существует до тех пор, пока из модели не удаляется последний из его членов. При каж­дом удалении сообщения связи между ними корректируются так, чтобы сообщения данного семейства по-прежнему образовывали замкнутый спи­сок.

В модели одновременно может существовать произвольное число семейств, оно все время меняется, поскольку каждое генерируемое блоком GENERATE сообщение создает новое семейство.

 






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.