Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

слайды_gpss

.pdf
Скачиваний:
14
Добавлен:
10.02.2015
Размер:
431.71 Кб
Скачать

Блоки работы с транзактами

GENERATE - генерирует последовательность

транзактов

Примеры.

GENERATE 25,10

интервал времени генерации транзактов будет равен случайному числу, равномерно распределенному в интервале от 15 до 35 единиц модельного времени .

GENERATE 25,FN$EXP

интервал времени генерации транзактов будет равен произведение числа 25 и текущего значения функции EXP.

GENERATE ,,,25

генерируются 25 транзактов в момент времени, равный 0.

TERMINATE - уничтожает активный транзакт

ADVANCE - задерживает продвижение активного

транзакта на заданное время

Примеры.

ADVANCE 10

продвижение активного транзакта будет задержано на 10 единиц модельного времени

ADVANCE 15,5

время задержки будет равно случайному числу, равномерно распределенному в интервале от 10 до 20 единиц модельного времени

ADVANCE 10,FN$TOBR

время задержки будет равно произведению числа 10 и текущего значения функции с именем TOBR

Блоки работы с приборами

SEIZE - активный транзакт занимает прибор или встает к

нему в очередь.

Особенности выполнения.

1.При попытке транзакта войти в блок SEIZE всегда проверяется, свободен ли прибор и находится ли в состоянии «готов к использованию».

2.Если прибор свободен и готов, он занимается. Транзакт, занявший прибор, пытается перейти к следующему по номеру блоку. Прибор остается занятым до тех пор, пока занимающий его транзакт не войдет в соответствующий блок RELEASE..

3.Блок SEIZE отказывает во входе транзакту, если прибор занят или находится в состоянии «не готов к использованию». При этом устанавливается его индикатор задержки и транзакт помещается в список задержки прибора в конец своего приоритетного класса Пример.

SEIZE Server

Активный транзакт пытается занять прибор с именем Server.

RELEASE - активный транзакт освобождает занятый

прибор.

Особенности выполнения.

1.Транзакт освобождает прибор и пытается войти в следующий по порядку блок.

2.Следующий транзакт выбирается из очереди к данному прибору. Если в очереди транзакты отсутствуют, прибор становится не занятым. 3.Выбранный из очереди транзакт входит в блок SEIZE.

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

RELEASE WorkStation

Освобождается прибор с именем WorkStation. Следующий транзакт из очереди входит в блок SEIZE.

Пример модели обслуживания с одним прибором и неограниченной очередью.

Распределение интервалов времени между заявками входного потока подчиняется равномерному закону в интервале 7±5 единиц времениВремя обслуживания подчиняется

равномерному распределению в интервале 6±4 единицИсследовать

среднее время нахождения заявок в системе

среднее время нахождения заявок в очереди

к прибору

в зависимости от интенсивности входного

потока и интенсивности обслуживания.

ФОРМАЛИЗОВАННАЯ МОДЕЛЬ ОБСЛУЖИВАНИЯ(СМО без потерь)

ИМИТАЦИОННАЯ МОДЕЛЬ НА ЯЗЫКЕ

GPSS

TIME TABLE

M1,0,20,3

GENERATE

(Exponential(1,0,5))

QUEUE

SERVER

SEIZE

SERVER

DEPART

SERVER

ADVANCE

(Exponential(1,0,30))

RELEASE

SERVER

TABULATE TIME

TERMINATE 1

START

10000

 

 

ФОРМАЛИЗОВАННАЯ МОДЕЛЬ ОБСЛУЖИВАНИЯ(СМО с потерями)

ИМИТАЦИОННАЯ МОДЕЛЬ НА ЯЗЫКЕ

GPSS

TIME

TABLE

M1,0,20,30

 

GENERATE

(Exponential(1,0,5))

SERVER STORAGE

5

 

TEST E

SF$SERVER,0,MET1

 

ENTER

SERVER,1

 

ADVANCE

(Exponential(1,0,30))

 

LEAVE

SERVER,1

 

TABULATE

TIME

 

TERMINATE 1

MET1

TERMINATE 1

 

START

10000

 

 

 

Блоки работы с транзактами

ASSIGN - изменяет значение параметра активного транзакта.

Примеры.

ASSIGN 1,10

Параметру с именем 1 активного транзакта присваивается значение, равное 10.

ASSIGN CHANNEL,FN$CHANNEL

Параметру с именем CHANNEL активного транзакта присваивается текущее значение функции CHANNEL

ASSIGN 2+,-3

Значение, равное -3, добавляется к значению параметра с именем 2 активного транзакта(если такой параметр транзакта отсутствует, то он создается со значением, равным 0, до того, как будет произведено добавление. Тогда значение параметра сообщения становится равным -3).

ASSIGN TYPE_PC,«workstation»

Параметру транзакта с именем TYPE_PC активного присваивается строка символов workstation .

PRIORITY - изменяет приоритет активного транзакта. Примеры.

PRIORITY 10

Вошедшему в блок транзакту присваивается приоритет, равный 10

Определение функций Табличные функции

Оператор описания непрерывной функции

DISK FUNCTION RN1,С2 0,1/0.4,5/1,7

8

 

 

 

 

 

 

7

 

 

 

 

 

 

6

 

 

 

 

 

 

5

 

 

 

 

 

 

4

 

 

 

 

 

 

3

 

 

 

 

 

 

2

 

 

 

 

 

 

1

 

 

 

 

 

 

0

 

 

 

 

 

 

0

0,2

0,4

0,6

0,8

1

1,2

Оператор описания дискретной функции

CHANNEL FUNCTION P1,D3

 

 

 

2,1/4,2/6,3

 

 

 

 

 

 

 

3,5

 

 

 

 

 

 

 

3

 

 

 

 

 

 

 

2,5

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

1,5

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

0,5

 

 

 

 

 

 

 

0

 

 

 

 

 

 

 

0

1

2

3

4

5

6

7

Пример

ASSIGN DISK,(INT(FN$DISK)) ASSIGN CHANNEL,FN$CHANNEL

Библиотечные функции

ADVANCE (EXPONENTIAL(1,0,5))

Пример модели подсистемы вводавывода.

Распределение интервалов времени между запросами на ввод/вывод по экспоненциальному закону со средним значением 10 единицНомер устройства ввода/вывода определяется

равномерным распределением в интервале 1÷4Номер канала ввода/вывода определяется номером

устройства(к каналу 1 относятся устройства1 и2, к каналу 2 относятся устройства 3 и4)

Время выполнения канальной программы равно 2 единицы времениВремя позиционирования диска распределено равномерно

в интервале 5±3 единиц времениВремя выполнения операции ввода/вывода распределено

экспоненциально со средним значением 5 единиц времени

Исследовать зависимость среднего времени

выполнения запросов на ввод/вывод от интенсивности

запросов в течение 100000 единиц функционирования системы.

ФОРМАЛИЗОВАННАЯ МОДЕЛЬ ОБСЛУЖИВАНИЯ

DISK2

CHANNEL1

DISK1

DISK3

CHANNEL2

DISK4

АЛГОРИТМ ОБРАБОТКИ ЗАЯВОК ВВОДА/ВЫВОДА

Занять канал на время выполнения канальной программы

Освободить каналЗанять диск на время позиционирования головок

Занять диск и канал на время выполнения ввода/вывода

Освободить диск и канал

ИМИТАЦИОННАЯ МОДЕЛЬ НА ЯЗЫКЕ GPSS

DISK

FUNCTION

RN1,С2

0,1/1,5

 

 

CHANNEL FUNCTION

P$DISK,D2

2,CHANNEL1/4,CHANNEL2

TIME

TABLE

M1,0,20,30

 

GENERATE

(EXPONENTIAL(1,0,10))

 

ASSIGN

DISK,(INT(FN$DISK))

 

ASSIGN

CHANNEL,FN$CHANNEL

* занять канал

 

 

QUEUE

P$CHANNEL

 

SEIZE

P$CHANNEL

 

DEPART

P$CHANNEL

 

ADVANCE

2

 

RELEASE

P$CHANNEL

* занять диск

 

 

QUEUE

P$DISK

 

SEIZE

P$DISK

 

DEPART

P$DISK

 

ADVANCE

5,3

* занять диск и канал

 

 

PRIORITY

1

 

QUEUE

P$CHANNEL

 

SEIZE

P$CHANNEL

 

DEPART

P$CHANEL

 

ADVANCE

(EXPONENTIAL(1,0,5))

 

RELEASE

P$CHANNEL

 

RELEASE

P$DISK

 

TABULATE

TIME

 

TERMINATE

 

 

GENERATE

100000

 

TERMINATE

1

*

 

 

 

START

1