Трудно быть уверенным, что модель работает именно так, как должна работать.
Во-вторых, удачные модели весьма ценны и имеют удивительно длительный срок жизни. Возможно, что новым работникам понадобится ознакомиться с ранее разработанными моделями. Это почти невозможная задача, если средство моделирования не было сделано сразу с высоким уровнем прозрачности.
Третьей, одной из наиболее важных причин, является понимание поведении системы, когда опытный профессионал может видеть внутреннюю динамику работы модели.
Взаимодействие модели с пользователем позволяет ему не только провести исследование, но и обеспечивает управление моделями. Встроенные средства анализа данных могут вычислять доверительные интервалы и выполнять дисперсионный анализ. Так что можно проводить эксперименты и оптимизацию автоматически, с относительно небольшими усилиями.
2 Практическая часть
2.1 Структурная схема модели системы
Для того чтобы начать моделирование системы необходимо определиться с тем, какие элементы входят в её состав. Согласно условию задания, составим схему вычислительной системы для визуального представления поставленной задачи:
Рисунок 1 - Структурная схема вычислительной системы
Опишем используемые блоки:
И – источник заданий (транзактов) (терминалы-1,2,3,4);
О – неограниченная очередь, в которой хранятся транзакты пока обрабатывающее устройство занято (очередь на ЭВМ, очередь на терминалы);
К – обрабатывающее устройство – ЭВМ;
2.2 Алгоритм работы программы
Представим схему модели системы в виде алгоритма программы , которая позволяет упростить данную схему.
2.3 Листинг программы
Проанализировав структурную схему (Рисунок 1) составим программу в соответствии с синтаксисом языка GPSS\PC получим:
NAK_PRO STORAGE 4
PROST_1 VARIABLE (X10/X20)/4
PROST_2 VARIABLE (X11/X21)/4
PROST_3 VARIABLE (X12/X22)/4
PROST_4 VARIABLE (X13/X23)/4
TRNTION VARIABLE (X$TRNTION/2)/14400
FREGUEN TABLE AC1,800,800,18
EXPON FUNCTION RN1,C24
0,0/.100,.104/.200,.222/.300,.355/.400,.509
.500,.690/.600,.915/.700,1.200/.750,1.380
.800,1.600/.840,1.830/.880,2.120/.900,2.300
.920,2.520/.940,2.810/.950,2.990/.960,3.200
.970,3.500/.980,3.900/.990,4.600/.995,5.300
.998,6.200/.999,7/1,8
GENERATE 160,FN$EXPON; ПЕРВЫЙ ТЕРМИНАЛ
ASSIGN IDEN,10
ASSIGN ETUP,1
ASSIGN CONT,4
ASSIGN SOL,20
ASSIGN KEY,33
TRANSFER, EDIT
GENERATE 160,FN$EXPON; ВТОРОЙ ТЕРМИНАЛ
ASSIGN IDEN,11
ASSIGN ETUP,1
ASSIGN CONT,4
ASSIGN SOL,21
ASSIGN KEY,44
TRANSFER, EDIT
GENERATE 160,FN$EXPON; ТРЕТИЙ ТЕРМИНАЛ
ASSIGN IDEN,12
ASSIGN ETUP,1
ASSIGN CONT,4
ASSIGN SOL,22
ASSIGN KEY,55
TRANSFER, EDIT
GENERATE 160,FN$EXPON; ЧЕТВЁРТЫЙ ТЕРМИНАЛ
ASSIGN IDEN,13
ASSIGN ETUP,1
ASSIGN CONT,4
ASSIGN KEY,66
ASSIGN SOL,23
EDIT GATE LR P$KEY; РЕДАКТИРОВАНИЕ
LOGIC S P$KEY
GATE LS PROPUSK, DEV
SAVEVALUE P$IDEN+,1
GATE LR PROPUSK
TRANSFER, DEV
OTHER GATE LR PROPUSK,PROST; ТРАНСЛЯЦИЯ, РЕШЕНИЕ, ПЛАНИРОВАНИЕ
SAVEVALUE P$ETUP+,1
SAVEVALUE ZVENO,X*$ETUP
TEST E X$ZVENO,P$CONT,DEV
SAVEVALUE CUR_OPER,P$ETUP
ENTER NAK_PRO
PREEMPT EBM
FUNAVAIL EBM,CO,,,RE,PROSTOY,RE,PROSTOY
LOGIC S PROPUSK
ADVANCE 10
LOGIC R PROPUSK
FAVAIL EBM
RETURN EBM
TRANSFER, PROV
PROSTOY TEST NE X$CUR_OPER,P$ETUP,PROSTOY1; БЛОКИРОВАНИЕ ТЕРМИНАЛОВ
LEAVE NAK_PRO
SAVEVALUE P$IDEN+,1
GATE LR PROPUSK
TRANSFER, DEV
PROST GATE LR PROPUSK
TRANSFER, OTHER
PROSTOY1 TESTE X$CUR_OPER,3,DEV1; ПОДСЧЁТ ЧИСЛА ОДНОВРЕМЕННЫХ ТРАНСЛЯЦИЙ
SAVEVALUE TRNTION+,1
TABULATE FREGUEN
TRANSFER, DEV1
COMPLT SAVEVALUE P$SOL+,1
LOGIC R P$KEY
TERMINATE
DEV ENTER NAK_PRO; ФУНКЦИОНИРОВАНИЕ ЭВМ
DEV1 SEIZE EBM
ADVANCE 10
RELEASE EBM
PROV SAVEVALUE P$ETUP-,1
ASSIGN ETUP+,1
ASSIGN CONT-,1
LEAVE NAK_PRO
TEST NE P$ETUP,5,COMPLT
TRANSFER, OTHER
GENERATE 1,,14400
SAVEVALUE PROST_1,V$PROST_1
SAVEVALUE PROST_2,V$PROST_2
SAVEVALUE PROST_3,V$PROST_3
SAVEVALUE PROST_4,V$PROST_4
SAVEVALUE TRNTION,V$TRNTION
TERMINATE 1
START 1
CLEAR
START 1
CLEAR
START 1
CLEAR
START 1
CLEAR
START 1
2.4 Описание листинга программы
EDIT - выполнение 1-ой задачи, редактирования на терминалах.
Если первый ключ "KEY" выключен, то в терминале, которому принадлежит транзакт производится редактирование.
В противном случае транзакты ждут, пока терминал закончит все задачи. Если второй ключ "PROPUSK" выключен, то ЭВМ свободна и транзакт поступает на процессор-метка "DEV", иначе терминал простаивает пока ключ не выключен.
После того как процессор завершит операцию редактирования транзакт переходит в метку "OTHER" - начинается трансляция. Если ЭВМ свободна и терминалов, выполняющих трансляцию, меньше 3-х, то терминал осуществляет трансляцию. В случае, когда ЭВМ занята транзакт переходит в метку "PROST" и находится в ней пока ЭВМ не освободится (ключ "PROPUSK", а затем поступает в процессор. Если 3 терминала выполняют трансляцию, то происходит блокирование 4-го терминала в метке "PROSTOY". В блоках с меткой "PROSTOY1" в ячейке "TRNTION" фиксируется факт одновременной трансляции на 3-х терминалах. Дальше процесс развивается по тому же самому сценарию, но уже для оставшихся двух операций "ПЛАНИРОВАНИЕ" и "РЕШЕНИЕ".
IDEN- принадлежность транзакта к одному из 4-х терминалов
CONT- число оставшихся этапов задачи на терминале
SOL- номер ячейки, в которую сохраняется количество решённых задач на терминале
ETUP- выполняемый на терминале этап задачи на текущий момент времени
ZVENO- ячейка для записи числа задач, находящихся на этапе "ETUP
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.