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
4.5. МОДЕЛИРОВАНИЕ И СИНХРОНИЗАЦИЯ ПАРАЛЛЕЛЬНЫХ ПРОЦЕССОВ
При моделировании ВС следует различать параллельные процессы трех типов:
· независимые параллельные процессы (не связанные по данным и по управлению);
· параллельные процессы, зависимые по данным, возникающие, например, при распараллеливании одной задачи, т.е. при выделении фрагментов алгоритма (программы) и назначении для выполнения этих фрагментов параллельно работающих процессоров с последующим объединением их в единый процесс при условии завершения и получения результатов по всем параллельно выполняемым фрагментам единой задачи;
|
|
· параллельные процессы, зависимые по управлению.
Ниже рассмотрены средства имитации параллельных процессов в GPSS.
и для продолжения решения задачи как единого целого необходима синхронизация этих процессов с последующим объединением их в один процесс или в последовательно выполняемые процессы.
4.5.1. МОДЕЛИРОВАНИЕ ПАРАЛЛЕЛЬНЫХ НЕЗАВИСИМЫХ
ПРОЦЕССОВ
GPSS-модель в общем случае может состоять из произвольного количества сегментов. Моделирование независимых процессов имитируется соответствующими сегментами, продвижение транзактов по которым синхронизируется во времени согласно алгоритму моделирования.
Ниже приведен пример программы имитации двух независимых параллельных процессов (первые два сегмента). Длительность моделирования задается третьим сегментом.
Q1 equ 1
Q2 equ 2
U1 equ 1
U2 equ 2
SIMULATE
* Сегмент 1
GENERATE 9,5
QUEUE Q1
SEIZE U1
DEPART Q1
ADVANCE 7,6
RELEASE U1
TERMINATE
* Сегмент 2
GENERATE 12, 7
QUEUE Q2
SEIZE U2
DEPARTE Q2
ADYANCE 10,3
RELEANCE U2
TERMINATE
* Сегмент 3