Задание на лабораторные работы, страница 5
Описание файла
Документ из архива "Задание на лабораторные работы", который расположен в категории "". Всё это находится в предмете "моделирование систем" из 8 семестр, которые можно найти в файловом архиве РТУ МИРЭА. Не смотря на прямую связь этого архива с РТУ МИРЭА, его также можно найти и в других разделах. Архив можно найти в разделе "остальное", в предмете "моделирование систем" в общих файлах.
Онлайн просмотр документа "Задание на лабораторные работы"
Текст 5 страницы из документа "Задание на лабораторные работы"
Пояснения к полю AVE(-0). Для каждой очереди поле имеет большее время пребывания в очереди, чем для поля AVE.TIME. Это объясняется тем, что каждая очередь имеет какое-то количество нулевых входов, когда транзакты поступают на обслуживание без задержки, если же этих нулевых входов нет, то транзактам бы пришлось находиться в очереди, и значит, увеличивается время пребывания в очереди.
Для статистики блоков SAVEVALUE в файле стандартного отчета отводятся следующие поля. В поле SAVEVALUE указываются имена ячеек (в отчете это NUM, NUM1, NUM2, NUM3, NUM4), в которых сохраняются заданные величины. Сохраняемые величины указываются в поле VALUE (это 633, 20, 9, 89, 49). Поле RETRY определяет количество транзактов, ожидающих наступления специальных условий, зависящих от состояния сохраняемой величины (в примере специальных условий нет).
Задание к примеру 4: задать равновероятное распределение транзактов по устройствам, а также: с вероятностью 0.8 на 1-е устройство, с вероятностью 0.2 на 2-е устройство; с вероятностью 0.3 на 1-е устройство, с вероятностью 0.7 на 2-е устройство При этом в каждом случае произвести один прогон программы, два прогона, три прогона. Изменить среднее время обработки в устройствах: 9 и 7; 15 и 5; 13 и 11; 12 и 12. Подсчитать средние статистические показатели работы устройств и средние статистические показатели очередей. Объяснить результаты моделирования по файлу стандартного отчета. Вычислить с помощью оператора EQU , , , , , , и сохранить результаты с помощью блока SAVEVALUE.
Лабораторная работа №4
Системы с накопителями: блоки ENTER, LEAVE, оператор STORAGE.
Управление потоком сообщений: блоки GATE, TEST. Операторы VARIABLE, FVARIABLE, INITIAL.
Цель работы: Моделирование систем с конечной емкостью накопителей. Управление потоком сообщений на основе заданных соотношений и логических условий. Изучение операторов VARIABLE, FVARIABLE, INITIAL.
В системах массового обслуживания часто задается ограниченная длина очереди или накопителя для требований, которые входят в систему, и ожидают своего обслуживания. Для моделирования систем с ограниченной очередью и параллельной обработкой требований в GPSS/PC используются блоки ENTER, LEAVE и оператор STORAGE. Эти блоки и оператор образуют группу памятей или группу описания накопителей, в которых собираются сообщения перед началом обслуживания в одном из устройств. В системе GPSS/PC памяти или накопители относятся к аппаратной категории, которые имеют визуализацию в виде специальных окон для наблюдения заполнения накопителей (в рабочей строке GPSS/PC следует набрать сочетание клавиш Alt+S).
Блок GATE проверяет состояние устройств, памятей, логических ключей. Блок TEST сравнивает два стандартных числовых атрибута по вычисляемому отношению. Оба блока управляют потоком сообщений (транзактов).
Пример 1. Входной поток требований поступает в накопитель с допустимой емкостью, равной 5 единицам, равномерно в течение 4±1 мин. Если требования после накопителя застают 1-е устройство заполненным, то они поступают на обработку во 2-е устройство. Время обработки для 1-го устройства равно 13±1 мин., для второго — 11±1 мин. Смоделировать процесс обработки требований в течение 3 часов (180 мин.).
Решение примера 1 приводится как программа 1.
Программа 1 |
SIMULATEnak STORAGE 5; Накопитель емкостью в 5 единиц10 GENERATE 4,120 GATE SNF nak,FACIL2; Анализ состояния накопителя 30 ENTER nak 35 QUEUE 1 40 SEIZE 1; 1-е устройство 45 DEPART 1 50 LEAVE nak 60 ADVANCE 13,1 70 RELEASE 1 80 TERMINATE 100 FACIL2 SEIZE 2; 2-е устройство с меткой FACIL2 200 ADVANCE 11,1 300 RELEASE 2
*************************************************************************************** 500 GENERATE 180 600 TERMINATE 1 START 1 ;END |
В данном примере поступающие в систему требования сначала буферизуются в накопителе емкостью в 5 единиц, а потом пытаются попасть на обработку в 1-е устройство. Если первое устройство оказывается занятым, т.е. в нем осуществляется обслуживание, то очередное требование поступает на обслуживание во второе устройство. В программе используются следующие форматы записи оператора STORAGE, блоков ENTER, LEAVE и GATE.
Формат записи оператора STORAGE:
nak STORAGE 5
Описание оператора находится вне основного тела программы, без нумерации. Метка nak служит для обращения или ссылки на оператор. Операнд поля <A> определяет объем накопителя (у нас 5). Операнд поля <A> должен быть положительным целым. Когда транзакт пытается войти в блок ENTER, то запрос на емкость накопителя сравнивается с доступной емкостью. Если запрос может быть выполнен, то транзакт входит в блок ENTER, и текущая емкость накопителя уменьшается. Если запрос транзакта не может быть удовлетворен, то транзакт входит в список задержки многоканального устройства.
Формат записи блока ENTER:
-
ENTER nak
В поле <A> указывается номер или имя (у нас nak) накопителя. Когда транзакт входит в блок ENTER, то операнд поля <A> используется для нахождения накопителя с указанным именем (унас накопитель с именем nak). Если такого накопителя не существует, то происходит ошибка выполнения программы.
Формат записи блока LEAVE:
-
LEAVE nak
Блок LEAVE освобождает определенное число единиц накопителя под именем, заданным в поле <A> (у нас nak). Поле <A> также определяет номер или имя накопителя (у нас nak). Может быть использовано поле <B>, которое определяет число освобождаемых единиц накопителя. Если это поле пусто, предполагается 1. Число освобождаемых единиц не должно превышать текущее содержимое накопителя. Обычно поле <B> не используется.
Формат записи блока GATE:
-
GATE <X> <A>,<B>
Поле <A> содержит имя или номер объекта (в данном случае накопителя с меткой nak), для которого проводится проверка во вспомогательном поле операции <X>. Поле <B> содержит номер или имя следующего блока для входящего транзакта, когда логический оператор поля <X> имеет значение "ложь". В поле <X> программы задан логический оператор SNF, связанный с накопителем и означающий, что накопитель, заданный в поле <A>, заполнен. Пока накопитель будет не заполнен, т.е. логический оператор SNF будет давать "ложь", то тогда транзакт будет отправлен в блок, заданный в поле <B> — в блок с меткой FACIL2.
В противоположность условию SNF в поле <X> может быть задан логический оператор SF, который означает, что накопитель не заполнен.
Выходная статистика по устройствам и блокам поменяется местами, если применить оператор SF. Анализ работы системы начинается со второго устройства и если оно оказавается занято по обслуживанию текущего транзакта, то очередной транзакт будет отправлен на обработку в первое устройство.
Задание к примеру 1.
-
Изучить и объяснить файл стандартного отчета для программы 1.
-
Изменить среднее время поступления транзактов в систему в соответствии с данным рядом чисел: 2, 3, 5, 6, 7, 9, 13, 15, 21 (мин.).
-
Изменить среднее время обработки первого устройства при среднем времени поступления требований в систему, равном 4 мин.: 7, 9, 11, 15. В то же время среднее время обработки второго устройства оставить неизменным. Изменить также среднее время обработки второго устройства при неизменном времени обработки первого устройства: 7, 9, 11, 15. Изучить и объяснить файл стандартного отчета. Изменить для блока GATE логическое условие с SNF на SF. Подобрать средние времена обработки первого и второго устройства так, чтобы выходная статистика по устройствам оставалась неизменной.
Пример блока GATE с логическим оператором, связанным с устройствами.
Пример 2. Входной поток требований поступает в систему с двумя обслуживающими устройствами равномерно в течение 51 мин. Если требования застают первое устройство занятым, то они поступают на обработку во второе устройство. Время обработки для первого устройства равно 91 мин., для второго — 131 мин. Смоделировать процесс обработки требований в течение 3 часов (180 мин.).
Подобная ситуация характерна для систем, когда каждое входящее в систему требование в первую очередь отправляется на более быстродействующее устройство обслуживания. Если же это устройство занято, то приходится использовать устройство менее быстродействующее. Решение примера 2 приводится как программа 2.
Программа 2 |
SIMULATE 10 GENERATE 5,1 20 GATE NU 1,FACIL2 30 SEIZE 1; 1-е устройство 40 ADVANCE 9,1 50 RELEASE 1 60 TERMINATE 100 FACIL2 SEIZE 2 200 ADVANCE 13,1 300 RELEASE 2
********************************************************* 500 GENERATE 180 600 TERMINATE 1 START 1 END |
Для этой программы рассмотрим формат записи блока GATE с логическим оператором — оператором NU, связанным с устройством:
20 GATE NU 1,FACIL2
В поле <X> задан логический оператор NU, который указывает на то, что устройство, заданное в поле <A> (у нас устройство под номером 1), свободно. Если логическое условие не выполняется, то транзакт отправляется к блоку, имя которого задано в поле <B> (у нас отправление происходит по метке FACIL2).
В противоположность оператору NU может быть использован оператор U — логический оператор, соответствующий занятому устройству.
Задание к примеру 2.
-
Изучить и объяснить файл стандартного отчета для программы 2.
-
Ввести в программу блоки, по которым создается статистика по очередям.
-
Изменить среднее время поступления транзактов в систему в соответствии с данным рядом чисел: 2, 3, 4, 6, 7, 9, 13, 15, 21 (мин.).
-
Изменить среднее время обработки первого устройства при среднем времени поступления требований в систему, равном 5 мин.: 7, 9, 11, 15. В то же время среднее время обработки второго устройства оставить неизменным. Изменить также среднее время обработки второго устройства при неизменном времени обработки первого устройства: 7, 9, 11, 15. Изучить и объяснить файл стандартного отчета.
-
Изменить для блока GATE логическое условие с NU на U. Для логического условия U последовательно изменять параметры полей <A>, <B> блока GATE, получить загрузку обоих устройств или только одного из двух. Изучить и объяснить файл стандартного отчета.
Примеры по моделированию систем с использованием блока TEST. Применение операторов VARIABLE, INITIAL.
Пример 3. Смоделировать процесс обслуживания равномерного потока требований с интервалом 51 мин двумя приборами: обслуживание на первом приборе длится 91 мин, на втором — 131 мин. Причем в течение первых 100 мин обслуживание производить на первом приборе, а по истечении 100 мин — на втором приборе.
Пример 4. Смоделировать процесс обслуживания равномерного потока требований с интервалом 51 мин. двумя приборами: обслуживание на первом приборе длится 91 мин., на втором — 131 мин. Причем в течение первых 100 мин. обслуживание производить на втором приборе, а по истечении 100 мин. — на первом приборе.
Условия примеров различаются в последовательности начального обслуживания требований, которое связано с процессом функционирования системы.
Программы решения примеров 3 и 4 представлены как программы 3 и 4.
Программа 3 |
SIMULATE ATR1 VARIABLE SQR(10000) ******************************************************** 10 GENERATE 5,1 20 TEST LE C1,V$ATR1,FACIL2 30 SEIZE 1; 1-е устройство 40 ADVANCE 9,1 50 RELEASE 1 60 TRANSFER ,EXIT 100 FACIL2 SEIZE 2; 2-е устройство с меткой FACIL2 200 ADVANCE 13,1 300 RELEASE 2 400 EXIT TERMINATE 1 START 100 END |