Моделирование процессов, связанных по устройству обслуживания


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

При этом под дисциплиной обслуживания понимается способ назначения транзакта для обслуживания в устройстве. В теории массового обслуживания рассматриваются три типовые дисциплины обслуживания: бесприоритетное обслуживание – в порядке поступления в очередь (FIFO), обслуживание с относительным приоритетом, то есть в соответствии с уровнем приоритета, но без прерывания, обслуживание с абсолютным приоритетом – дисциплина LIFO, то есть с прерыванием обслуживания заявки, не имеющей абсолютного приоритета. Ниже приводятся примеры построения программ моделирования работы устройства, обслуживающего два потока транзактов, с вариацией дисциплин обслуживания.

Пример 1
Программа формирования двух потоков транзактов, образующих очереди Q1, Q2 и имеющих одинаковые приоритеты, с выборкой транзактов из очередей по правилу FIFO для обслуживания одним и тем же устройством U1. В модели принято, что длительность обслуживания транзактов второго потока в среднем в два раза больше длительности обслуживания транзактов первого потока.

*
Q1 equ 1
Q2 equ 2
U1 equ 1
SIMULATE
GЕNERATE 20,15; начало первого сегмента
QUEUE Q1
SEIZE U1 ; занять устройство U1
DEPART Q1
ADVANCE 5,3
RELEASE U1
TERMINATE
GENERATE 20,15 ; начало второго сегмента
QUEUE Q2
SEIZE U1 ; занять устройство U1
DEPART Q2
ADVANCE 10,6
RELEASE U1
TERMINATE
GENER 2000; начало сегмента задания длительности моделирования
TERM 1
START 1
END

Пример 2
Программа обслуживания одним и тем же устройством U1 двух потоков транзактов, образующих очереди Q1, Q2, при условии, что приоритет транзактов второй очереди выше (обслуживание с относительным приоритетом , то есть без прерывания).

*
U1 equ 1
Q1 equ 1
Q2 equ 2
SIMULATE
GENERATE 10,5 ; начало первого сегмента
* по умолчанию приоритет транзактов равен 0
QUEUE Q1
SEIZE U1
DEPART Q1
ADVANCE 5,3
RELEASE U1
TERMINATE
GENERATE 20,15; начало второго сегмента
PRIORITY 1 ; транзактам присваивается приоритет, равный 1;
*возможно задание приоритета при генерации транзакта: GENERATE 20,15,,,1
QUEUE Q2
SEIZE U1
DEPART Q2
ADVANCE 10,6
RELEASE U1
TERMINATE
GENERATE 5000; начало сегмента задания длительности моделирования
TERMINATE 1
START 1
END

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

*
U1 equ 1
Q1 equ 1
Q2 equ 2
SIMULATE
GENERATE 10,5 ; начало первого сегмента
QUEUE Q1
SEIZE U1
DEPART Q1
ADVANCE 5,3
RELEASE U1
TERMINATE
GENERATE 20,15; начало второго сегмента
QUEUE Q2
PREEMPT U1 ; захват устройства U1с прерыванием обслуживания транзакта *из первого потока, неприоритетного или имеющего относительный приоритет
DEPART Q2
ADVANCE 10,6
RETURN U1 ; завершение обслуживания и освобождение устройства
*с последующим дообслуживанием прерванного транзакта
TERMINATE
GENERATE 5000; начало сегмента задания длительности моделирования
TERMINATE 1
START 1
END


Комментарии запрещены.




Статистика