Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
~Экзамен~ / 1999_Ответы_.doc
Скачиваний:
32
Добавлен:
19.04.2013
Размер:
964.1 Кб
Скачать

7. Функции имитации систем массового обслуживания.

В основе функций имитации СМО лежит принцип превращения числовых величин во временные показатели (отрезки).

1. FIFO– очередь (First In First Out). Запоминает значения переменных, подающихся на вход этой функции, причем запись заявок в очередь и выборка их из очереди регулируются ключами.

Общий вид: Ф.Н = FIFO(А.Н, В.Н, С,Н, Д). А.Н – входная функция, определяет величины, которые ставятся в очередь (ак правило, это длительности предполагаемых к обслуживанию заявок). В.Н – ключ по входу, разрешающий передавать заявки внутрь самой очереди; работает по следующему алгоритму:

В(t) = очередь закрыта по входу, если В >= 1

очередь открыта по входу, если 0 <= В <=1

С.Н - ключ по выходу, позволяющий выдавать из очереди заявки при определенных условиях:

С(t) = очередь закрыта по входу, если С >= 1

очередь открыта по входу, если 0 <= С <=1

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

Графическое изображение: Д

А (t) Ф (t)

В (t) С (t)

Пример:

Время

А

В

С

Д

накопилось 3

накопилось 2

накопилось 5

0

3

0

1

0

1

4

1

1

0

2

2

0

0

3

3

5

0

0

2

2. WAIT– ожидание. Имитирует ожидание в виде выдачи на входе её значения = 1 (или близкого к 1) в течение такого периода, который равен численному значению данной функции. При этом пока функцияWAITимеет на выходе 1 (в дальнейшем будем называть «периодом активности»), новое поступление значения аргумента игнорируется.

Рассмотрим в качестве примера моделирования простейшей одноканальной СМО модель кассового окошка в банке. Пусть к кассовому окну в каждый отрезок времени подходят клиенты, а время обслуживания каждого клиента случайная величина, лежащая в пределах от 1 до 5 отрезков.

Очередь ГДОК

Касса ГДОК – генератор длительности обслуживания клиентов

* касса

У Касса.Н = WAIT(Очередь.ПН)

* генератор длительности обслуживания клиентов

Д ГДОК.Н = WHOLE(RAND(1,5), 0)

* очередь

Т Очередь.НБ = FIFO(ГДОК.Н, 0, Касса.Н, 20)

E

И DT = 1

И время = 0

И длина = 20

Е

Г Касса, ГДОК, Очередь

Е

В результате имитации одноканальной СМО функции WAIT и FIFO организуют контур, в результате которого появляется холостой ход в результате обслуживания 2 заявок. Для его уничтожения в последнем шаге периода активности выходWAITравняется не 1, а 0,999, т.е. попадает в режим открытия, что позволяет на последнем шаге «приоткрывать» очередь и выбирать следующую заявку (без холостого хода). Для компенсации 0,001 в первом шаге периода активности выходWAITравняется 1,001. Для одиночных заявок выход функции всегда = 0,999.

Время

ГДОК

Очередь

Касса

ДО

0

3 (3,25)

3

0

0

1

1 (1,73)

0

1,001

1

2

1 (1,25)

0

1

2

3

2 (2,56)

1

0,999

2

4

4 (4,06)

1

0,999

2

5

3 (3,95)

2

0,999

2

6

1 (1,2)

0

1,001

3

7

2 (2,32)

4

0,999

4

8

3 (3,45)

0

1,001

5

9

4 (4,15)

0

1

3. LFIFO– длина очереди (характерна для одноканальных СМО). Данная функция является сопутствующей функциейFIFOи имеет те же аргументы. Но на выходе её в каждом шаге моделирования выдается число заявок, которое в данный момент находится в очереди, т.е. указывается длина очереди. Добавление в программу:

* длина очереди

Д ДО.Н = LFIFO(ГДОК.Н, 0 ,Касса.Н, 20)

Соседние файлы в папке ~Экзамен~