Постановка задачи
Необходимо промоделировать загрузку рабочих мест по проектированию печатных плат. На вход модели подаются задания на разработку печатных плат. На выходе должны быть сведения о загрузке рабочих мест.
Схема прохождения проекта по рабочим местам:
1. Разработка схем
2. Моделирование схем
3. Корпусирование схем
4. Выпуск схемной документации
5. Разработка печатной платы
6. Выпуск документации по печатной плате.
В зависимости от варианта задания на каждый этап проектирования приходится от 1 рабочего места (1 канал в терминах GPSS) до 10 (много каналов). Необходимо «запустить» множество заданий по смоделированным рабочим местам и, имитируя задержку на выполнение этого «задания», оценить загрузку рабочих мест.
Для моделирования необходимо описать в терминах GPSS рабочие места (одно- и многоканальные устройства) и задать задержки на этих местах, а также правила перехода заданий (транзактов) с одного рабочего места (устройства) на другое.
Следует определиться в терминах. Под одноканальным устройством или одноканальным рабочим местом понимается такое рабочее место, на котором выполняется определенный единственный вид работы, причем нигде больше он не выполняется. Под многоканальным устройством или многоканальным рабочим местом понимается совокупность рабочих мест, на которых выполняется один и тот же вид работ. Когда задание при моделировании заходит в одноканальное рабочее место (устройство), оно «захватывает» его и «держит» до тех пор, пока не пройдет нужная задержка. Другое задание не может в это время зайти в захваченное устройство. Когда задание заходит в многоканальное устройство (группу рабочеих мест), то оно захватывает одну из ячеек (рабочих мест) и держит его до конца задержки.
Описание операторов языка GPSS
Выполнение лабораторной работы имеет своей целью моделирование загрузки рабочих мест, используемых для проектирования печатных плат.
1. Как определить некоторое множество рабочих мест, работающих над одной задачей (т.е. описать многоканальное устройство)? Для этого используется оператор STORAGE. Его формат:
<имя_хранилища> STORAGE <емкость_хранилища>.
Например: 25 INSH STORAGE 10, что означает: определим хранилище (многоканальное устройство или многоканальное рабочее место) на 10 рабочих мест и присвоим хранилищу имя INSH (для нашей задачи — сокращение от Input Scheme — рабочие места, на которых вводятся схемы). Примечание: 25 — это номер строки программы. Хранилище имеет некоторое сходство с массивом в алгоритмических языках программирования.
В зависисмости от задания опишите необходимое количество хранилищ с нужными объемами, моделирующих задаваемые по условию рабочие места.
2 Как задать (смоделировать) возникновение заданий на проектирование?
Представим себе, что задания на проектирование новой платы (единичное задание в нашей задаче) поступают каждые 20 часов с разбросом по времени +/- 10 часов. Таким образом, минимальный промежуток между поступлением задания состваляет 20-10=10 часов, а максимальный 20+10=30 часов. Для моделирования возникновения заданий с такими параметрами появления используется оператор GENERATE. Его формат:
GENERATE <интервал_появления>, <разброс>.
Например, для нашего примера это будет GENERATE 20,10. Оператор GENERATE генерирует задания (в общем случае они называются транзактами) каждые 20 единиц времени с разбросом 10 единиц. Для генерации используется какой-то закон распределения случайной величины (обычно — Гаусса). Генерируемый транзакт отправляется «гулять» по модели, начиная со следующего за GENERATE блока.
3. Как задать режим работы многоканальных рабочих мест?
Для каждого вида работ надо описать отдельный блок из 3 операторов, моделирующих работу соответствующего вида. Моделирование заключается в том, что задания (транзакты) помещаются в многоканальное устройство и задерживаются там на случайный промежуток времени. Например, если работа над разными платами может длиться от 14 часов до 34 часов (в зависимости от сложности платы и квалификации работника и т.д.), то задание будет помещаться в хранилище (точнее, в любое из его отделений) с интервалом 24 часа и разбросом 10 часов. Следующие операторы моделируют помещение задания на какое-то рабочее место, задержку в нем (для работы над платой) на 14-34 часа и извлечения задания с рабочего места:
4.Как задать режим работы одноканального рабочего места?
Для определения одноканального рабочего места (устройства) не надо его специально описывать оператором STORAGE, достаточно просто указать его имя прямо в тексте программы перед тем, как описать задержку. Следующие операторы описывают одноканальное устройство и устанавливают задержку на выполнение с интервалом 16 часов и разбросом 10 часов. Устройство захватывается оператором SEIZE и освобождается оператором RELEASE:
5. Как передать управление в программе на GPSS? Как скопировать задание (транзакт) для параллельной обработки?
Для этого нужно поставить в том месте, куда вы хотите передать управление, метку, а затем с помощью какого-нибудь оператора передать туда управление. Прямая передача управления осуществляется оператором TRANSFER.
Пример:
203 MyLabel1 ENTER LyBRD,1 ; здесь стоит метка MyLabel1
.........
370 TRANSFER ,MyLabel1 ;переход на метку MyLabel1
Передача управления также применяется при копировании заданий (транзактов), например, когда одновременно (параллельно) ведутся разные работы. Копирование заданий осуществляется опреаторм SPLIT. Его формат:
SPLIT <число_создавемых_копий>, <метка_куда_отправить_копию>
Для нашего примера оператор SPLIT будет иметь вид:
205 SPLIT 1,MyLabel1
что означает: создать одну копию и отправить ее на метку MyLabel1.
6. Как собрать воедино результаты работы модели?
Для этого служит оператор ASSEMBLE <число_объединяемых_транзактов>. Он собирает вместе (задерживает) транзакты, и делает возможным обработку полученных данных. Этим оператором должна завершаться программа (но, естественно, перед TERMINATE). Пример:
260 FINAL ASSEMBLE 2 ; FINAL - метка конца программы
270 TERMINATE 1 ; закончим программу
Задание на лабораторную работу
Необходимо составить программу на GPSS, моделирующую загрузку рабочих мест по проектированию печатных плат. В вариантах лабораторной работы предлагаются различные сочетания работ на рабочих местах.
В этой таблице указаны наименования работ и соответствующий видам работ разброс выполнения единичной работы (минимальное и максимальное время на выполнение одного задания), количество рабочих мест (4 варианта размещения работ). Несколько видов работ может совмещаться на одних и тех же рабочих местах (это указано стрелочками). При совмещении работ затрачиваемое время суммируется. Например, для 1 варианта для 2 рабочих мест — от min{Разработка схем}+min{Моделирование схем} до max{Разработка схем}+max{Моделирование схем}, т.е. оператор выглядит как ADVANCE 40,20.
(При написании программы не используйте коментарии на русском языке!!!)
Пример программы на GPSS
;определяем многоканальные устройства
10 INSH STORAGE 10 ; 10 рабочих мест для ввода схем
20 LYBRD STORAGE 3 ; 3 рабочих места на макет
; задания поступают через 20-40 ч
30 GENERATE 30,10
; Моделирование — ВВОД СХЕМ
; входим в многоканальное устройство INSH и занимаем одну ячейку
90 ENTER INSH,1
100 ADVANCE 24,10 ; задержка от 14 до 34 ч
110 LEAVE INSH,1 ; освободили 1 ячейку INSH ; Моделирование — ПРОВЕРКА СХЕМ
; занимаем одноканальное устройство CHSH
120 SEIZE CHSH ; захватили устройство CHSH
130 ADVANCE 16,10 ; задержка от 6 до 16 ч
140 RELEASE INSH,1 ; освободить устройство
; Моделирование — КОРПУСИРОВАНИЕ СХЕМ
; входим в многоканальное устройство INSH и занимаем одну ячейку
170 ENTER INSH,1
180 ADVANCE 8,5 ; задержка от 3 до 13 ч
190 LEAVE INSH,1 ; освободили 1 ячейку INSH
; Параллельное выполнение — одновременно подготовка схемной документации ; и разработка печатной платы
200 SPLIT 1,LYOUT ;создаем копию и отправляем ее на LYOUT
;Моделирование — ПОДГОТОВКА СХЕМНОЙ ДОКУМЕНТАЦИИ
; входим в многока нальное устройство INSH и занимаем одну ячейку
210 ENTER INSH,1
220 ADVANCE 16,10 ; задержка от 6 до 26 ч
230 LEAVE INSH,1 ; освободили 1 ячейку INSH
; Передаем упраление на метку
240 TRANSFER ,FINAL
; Моделирование — РАЗРАБОТКА ПЕЧАТНОЙ ПЛАТЫ
250 LYOUT ENTER LYBRD,1
260 ADVANCE 8,5 ; задержка от 3 до 13 ч
270 LEAVE LYBRD,1 ; освободили 1 ячейку INSH
; Моделирование — ПОДГОТОВКА ДОКУМЕНТАЦИИ ПО ПЕЧАТНОЙ ПЛАТЕ
280 ….SEIZE BRDDOC ; захватим устройство BRDDOC
290 ADVANCE 15,10 ; задержка от 5 до 25 часов
300 RELEASE BRDDOC ; освободить устройство
; Завершение программы
310 FINAL ASSEMBLE 2 ; Объединение заданий
320 TERMINATE 1 ; конец программы
|