Моделирование и оптимизация работы мини-ЭВМ

Страницы работы

Фрагмент текста работы

Трудно быть уверенным, что модель работает именно так, как должна работать.

Во-вторых, удачные модели весьма ценны и имеют удивительно длительный срок жизни. Возможно, что новым работникам понадобится ознакомиться с ранее разработанными моделями. Это почти невозможная задача, если средство моделирования не было сделано сразу с высоким уровнем прозрачности.

Третьей, одной из наиболее важных причин, является понимание поведении системы, когда опытный профессионал может видеть внутреннюю динамику работы модели.

Взаимодействие модели с пользователем позволяет ему не только провести исследование, но и обеспечивает управление моделями. Встроенные средства анализа данных могут вычислять доверительные интервалы и выполнять дисперсионный анализ. Так что можно проводить эксперименты и оптимизацию автоматически, с относительно небольшими усилиями.

2 Практическая часть

2.1 Структурная схема модели системы

Для того чтобы начать моделирование системы необходимо определиться с тем, какие элементы входят в её состав. Согласно условию задания, составим схему вычислительной системы для визуального представления поставленной задачи:

Рисунок 1 - Структурная схема вычислительной системы

Опишем используемые блоки:

И – источник заданий (транзактов) (терминалы-1,2,3,4);

О – неограниченная очередь, в которой хранятся транзакты пока обрабатывающее устройство занято (очередь на ЭВМ, очередь на терминалы);

К – обрабатывающее устройство – ЭВМ;

2.2  Алгоритм работы программы

Представим схему модели системы в виде алгоритма программы , которая позволяет упростить данную схему.

Начало,Входные данные
Т раб = 4 ч
,Время вышло?
Траб=0
,Обработка результатов,Вывод данных,Остановка,Терминал свободен?,ЭВМ свободно?,Очередь заданий на ЭВМ,Да,Нет,Нет,1,1,Да,Решение задания на ЭВМ,Все этапы задачи решены?,Да,Завершение задачи,3,3,Да,Нет,Очередь заданий на терминале,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

Похожие материалы

Информация о работе