Группа блоков синхронизации движения транзактов
Группа блоков синхронизации движения транзактов.
ASSEMBLE A
Блок ASSEMBLE для объединения определенного числа транзактов, являющихся членами одного ансамбля. Число определяемых ансамблей указывается в поле А. Транзакты, принадлежащие одному ансамблю, будут задерживаться в блоке ASSEMBLE до тех пор, пока не поступит заданное число транзактов этого ансамбля.
В результате на выходе блока появляется один первый транзакт ансамбля, а остальные транзакты уничтожаются. В одном блоке ASSEMBLE могут накапливаться транзакты разных ансамблей. Транзакты одного ансамбля могут накапливаться в разных блоках ASSEMBLE. Если число собираемых транзактов задается с помощью косвенной адресации, то для его установления используется параметр первого пришедшего транзакта.
Задача. Построить модель прохождения 100 деталей, поступление которых подчиняется равномерному закону в интервале 8+-2 ед. времени. И обработка производится параллельно двумя рабочими, каждый из которых выполняет свою операцию независимо друг от друга со временем 5+-3.
Определить коэффициенты занятости этих рабочих.
Распараллеливание – split.
Передать (transfer) и собрать (assemble).
GENERATE 8,2
Рекомендуемые материалы
SPLIT 1, Lwrk2 // копию второго рабочего
//начало обработки детали
SEIZE Wrk1
ADVANCE 5,3
RELEASE Wrk1
TRANSFER ,LJoin
LWrk2 SEIZE Wrk2
ADVANCE 5,3
RELEASE Wrk2
LJoin ASSEMBLE 2
TERMINATE 1
START 100
Изменить программу так, чтобы можно было написать START 1
*сделать всем на gpss.
~=
GENERATE 8,2,,100
SPLIT 1, Lwrk2 // копию второго рабочего
//начало обработки детали
SEIZE Wrk1
ADVANCE 5,3
RELEASE Wrk1
TRANSFER, LJoin
LWrk2 SEIZE Wrk2
ADVANCE 5,3
RELEASE Wrk2
LJoin ASSEMBLE 2
TERMINATE 1
START 1
Разница будет в том, что первый закончит свою работу кода 100 уничтожится. А второй когда 100 создасться.
GATHER A
Действие блока GATHER аналогично действию ASSEMBLE. Отличие в том, что после накопления в блоке числа транзактов указанного в поле А – они все передаются в следующий блок. Этот блок позволяет синхронизировать движение транзактов одного ансамбля по одному пути.
Задача. Необходимо моделировать 80 деталей. Каждая деталь является подшибником (поступают обоймы и шарики) с интервалом времени 25+-4 ед. времени. На контроль обоймы затрачивается 4+-1 ед. времени. Контроль шариков производится последовательно со времени 2+-1 ед. времени на шарик. Операция сборки требует одновременного поступления обоймы и всех шариков и производится со времением 4+-2.
GENERATE 25,4
SPLIT 8,Sharik
SEIZE OboimaControl
ADVANCE 4,1
RELEASE OboimaControl
TRANSFER FINAL
Sharik SEIZE SharikControl
ADVANCE 2,1
RELEASE SharikControl
GATHER 8
FINAL ASSEMBLE 9
SEIZE Sborka
ADVANCE 4,2
RELEASE Sborka
TERMINATE 1
START 80
Если вместо GATHER поставить ASSEBMLE. Что будет?
Задача. Рассмотрим часть производственного процесса на небольшом винном заводике в Колифорнии. Объем продукции не оправдает приобритение машины для автоматической наклейки этикеток на бутылке. Эту операцию проделывает один рабочий в ручную. Ему требуется 16+-3 секунды. В каждый ящик умещается 12 бутылок. Оценить интервалы времени между перемещениями полных ящиков в хранилище.
Оператор SPLIT обеспечивает неограниченный источник бутылок и осущетсвляет необходимое условие принадлежности всех входящих транзактов одному ансамблю.
MATCH A
Блок MATCH предназначен для синхронизации продвижения двух транзактов одного ансамбля, движущихся по разным путям. Для синхронизации необходимо 2 блока MATCH, находящиеся в соответствующих местах блок-диаграммы и называемые сопряженные.
В поле А каждого блока MATCH указывается метка сопряженного ему блока. При подходе этого транзакта к этому блоку, проверяется наличие в сопряженном ему блоке транзакта из того же ансамбля. Если в обоих блоках имеются транзакты одного ансамбля, то они одновременно пропускаются через блоки MATCH. Иначе поступающий транзакт будет ожидать постуления транзакта того же ансамбля в сопряженный блок MATCH. После чего они оба будут пропущены в следующие за блоками MATCH блоки.
Задача. Построить программу моделирования для исследования обработки 500 деталей. Детали поступают с интервалом времени 300+-50 ед. Обработку производит 2 рабочих по 2-м операциям. После первой операции выполняемой 1-ым рабочим со временем 70+-20ед. и вторым 60+-30 производится операция сверки (время её выполнения = 0). После сверки выполняется вторая операция первым рабочим со временем 20+-10 и вторым 30+-20. Затем 3-ий рабочий производит сборку изделия из этих деталей со временем 50+-20. Все процессы подчиняются равномерному закону.
При сдаче лабораторных написанных на GPSS - знать следующую «теоретическую часть» «Методика построения дискретной модели в среде GPSS и оценка результатов моделирования». Нужно написать как строить программу. Т.е. как запустить, какие окошки открыть, почему пишем, например, START 1.
Решение (условие задачи выше)
// поступление деталей
GENERATE 300,50
SPLIT 1,Worker2
Worker1 SEIZE 1
ADVANCE 70,20
Check1 MATCH Check2 ; сверка
ADVANCE 20,10
RELEASE 1
TRANSFER ,Worker3
Worker2 SEIZE 2
ADVANCE 60,30
Check2 MATCH Check1 ; сверка
ADVANCE 30,20
RELEASE 2
Обратите внимание на лекцию "Проводящие пути головного и спинного мозга".
Worker3 ASSEMBLE 2
SEIZE 3
ADVANCE 50,20
RELEASE 3
TERMINATE 1
START 500