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

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


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: