Помощь в написании студенческих работ
Антистрессовый сервис

Лабораторная работа № 3. «Изучение блоков копирования, уничтожения, безусловной и условной адресации в GPSS World: блоки SPLIT, ASSEMBLE, TRANSFER»

РефератПомощь в написанииУзнать стоимостьмоей работы

Работа устройства (FACILITY) под номером 1 оценивается следующими стандартными атрибутами: количество транзактов, прошедших через устройство, указывается в поле ENTRIES (в нашем случае это число 100), коэффициент использования в относительных единицах указывается в поле UTIL. (в нашем случае число 0.991, которое показывает ту часть периода моделирования, в течение которого устройство было… Читать ещё >

Лабораторная работа № 3. «Изучение блоков копирования, уничтожения, безусловной и условной адресации в GPSS World: блоки SPLIT, ASSEMBLE, TRANSFER» (реферат, курсовая, диплом, контрольная)

Цель работы: изучить работу блоков копирования, уничтожения, безусловной и условной адресации в GPSS World: блоки SPLIT, ASSEMBLE, TRANSFER.

План выполнения работы:

  • 1) зарегистрируйтесь в системе,
  • 2) выполните практическую часть лабораторной работы,
  • 3) выйдите из системы, сохранив листинги программы и отчета.

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

Записать и запустить на выполнение программу для решения примера 1.

Пример 1. Рассмотрим пример, когда в операционную систему поступает и обрабатывается фиксированное число требований. Примем, что требования поступают в систему по равномерному закону из интервала времени, равного от 3 до 7 мин. Обработка требований осуществляется также по равномерному закону в интервале времени от 5 до 9 мин. Смоделировать работу системы при поступлении и обработке 100 требований.

Решение примера 1 приводится как программа 1.

GENERATE 5,2,100; Генерация 100 транзактов.

SEIZE 1.

ADVANCE 7,2.

RELEASE 1.

TERMINATE 1; Уничтожение транзактов (вывод из системы).

START 100; Задание числа счетчика завершений.

Программа 1.

Решение поставленной задачи с фиксированным числом входящих и обрабатываемых требований здесь достигается с помощью дополнительного поля блока GENERATE. В данном случае он имеет следующий формат записи:

GENERATE ,,

В блоке GENERATE используются поля

,, среди которых поля, новые. Поле назначает временную задержку начала моделирования. Если оно пусто, то это означает, что задержка нулевая (как в нашей программе). В поле указывается число генерируемых транзактов. В данном случае это число равно 100 и совпадает с числом счетчика завершений, указанным в операторе START.

Время работы системы зависит только от времени генерации требований (транзактов) и от времени их обработки. Моделирование системы будет происходить до тех пор, пока не сгенерируются и не выведутся 100 транзактов. Изменить количество обрабатываемых транзактов с фиксацией поступления и вывода в соответствии с заданным рядом чисел: 150, 200, 250, 300, 333, 678.

В файле стандартного отчета (нажатием клавиши F7) приводятся следующие статистики (результаты моделирования) (см. приложение 1):

Файл стандартного отчета программы 1.

GPSS World Simulation Report — Untitled Model 1.1.1.

Friday, January 07.11. 2009 13:04:58.

START TIME END TIME BLOCKS FACILITIES STORAGES.

0.000 715.916 5 1 0.

LABEL LOC BLOCK TYPE ENTRY COUNT CURRENT COUNT RETRY.

  • 1 GENERATE 100 0 0
  • 2 SEIZE 100 0 0
  • 3 ADVANCE 100 0 0
  • 4 RELEASE 100 0 0
  • 5 TERMINATE 100 0 0

FACILITY ENTRIES UTIL. AVE. TIME AVAIL. OWNER PEND INTER RETRY DELAY.

1 100 0.991 7.095 1 0 0 0 0 0.

Сначала идет информационная строка системы GPSS World с указанием номера версии (V 2), серийного номера, даты, времени и страницы. Затем идет строка стандартного сообщения о начале моделирования (START_TIME), его окончании (END_TIME), количества используемых в программе блоков (BLOCKS), количества установленных устройств (FACILITIES), количества многоканальных устройств, для которых определяется заданная емкость накопителя (STORAGES). Далее приводятся назначенные номера блоков, которые определяются системой (под обозначением LOC), названия блоков (BLOCK_TIPE), количество транзактов. проходящих через соответствующий блок программы (ENTRY_COUNT), текущее количество транзактов, задержанных в блоке на момент окончания моделирования (CURRENT_COUNT), количество транзактов, ожидающих специальных условий для прохождения через данный блок (RETRY). Как видно, для данной программы количество транзактов, проходящих через блоки, равно 100. Все 100 транзактов, которые были сгенерированы блоком GENERATE, прошли через все блоки программы.

Работа устройства (FACILITY) под номером 1 оценивается следующими стандартными атрибутами: количество транзактов, прошедших через устройство, указывается в поле ENTRIES (в нашем случае это число 100), коэффициент использования в относительных единицах указывается в поле UTIL. (в нашем случае число 0.991, которое показывает ту часть периода моделирования, в течение которого устройство было занято), среднее время обработки или задержки одного транзакта в устройстве указывается в поле AVE._TIME (в нашем случае равно 7,095, которое также можно определять как среднее время занятости устройства), поле AVAILABLE определяет состояние готовности устройства в конце периода моделирования (оно равно 1, если устройство готово и равно 0 — если не готово), поле OWNER (прямой перевод — владелец) определяет номер последнего транзакта, занимавшего устройство (если устройство не занималось, то устанавливается 0), поле PEND (от английского PENDENT — ожидающий решения) определяет количество транзактов, ожидающих устройство, находящееся в «режиме прерывания», поле INTER определяет количество транзактов, прерывающих устройство в данный момент, поле RETRY определяет количество транзактов, ожидающих специальных условий, зависящих от состояния объекта типа «устройство», поле DELAY (задержка) определяет количество транзактов, ожидающих занятия или освобождения устройства. В рассматриваемом примере последние пять полей равны нулю, так как система работает без каких-либо специальных условий и прерываний.

В системе GPSS World могут быть объекты типа «группа сообщений». Для сбора статистики таких объектов в файле стандартного отчета присутствуют следующие поля: поле XACT_GROUP определяет имя или номер группы сообщений, поле GROUP_SIZE определяет число транзактов, которое насчитывается в группе в конце моделирования, поле RETRY для группы сообщений определяет число транзактов, ожидающих наступления специальных условий, связанных с состоянием данной группы. В рассматриваемом примере какая-либо группа сообщений отсутствует и поэтому все поля нулевые.

Записать и запустить на выполнение программу для решения примера 2.

Изучение блоков SPLIT, ASSEMBLE, TRANSFER.

Блок SPLIT создает заданное количество копий от входящего в него транзакта. При этом входящий транзакт называют часто транзактом родителем, а копию — транзактом потомком.

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

Блок TRANSFER относится к блокам, которые изменяют маршруты транзактов. Он является основным средством моделирующего алгоритма, позволяющим направить сообщение к любому блоку модели. Блок TRANSFER имеет несколько режимов работы. Сначала рассмотрим режим безусловного перехода.

Пример 2. В систему поступают пакеты требований по равномерному закону в интервале 52 мин. Обработка на первую сортировку поступивших требований производится также по равномерному закону в интервале 62 мин. Далее рассортированные требования проходят параллельную обработку с еще одним этапом сортировки. После обработки происходит сборка требований в один пакет, и выводятся из системы. Смоделировать работу системы по обработке 100 пакетов.

Решение примера 2 приводится как программа 2.

GENERATE 5,3,100.

SPLIT 1, CHAN1.

SEIZE 1.

ADVANCE 6,2.

RELEASE 1.

TRANSFER, OUT3.

CHAN1 SPLIT 1, CHAN2.

SEIZE 2.

ADVANCE 6,2.

RELEASE 2.

TRANSFER, OUT3.

CHAN2 SEIZE 3.

ADVANCE 6,2.

RELEASE 3.

OUT3 ASSEMBLE 3.

TERMINATE 1.

START 100.

Программа 2.

В приведенной программе блок TRANSFER используется в режиме безусловного перехода по метке к заданному блоку ASSEMBLE, который производит сборку трех компонент пакета требований и выводит один пакет. Таким образом осуществляется обработка и формирование 100 пакетов. Первый блок программы SPLIT создает одну копию и отправляет по метке chan1 на другой блок SPLIT, который также создает одну копию и отправляет на сборку в блок ASSEMBLE. Такое копирование транзактов моделирует сортировку информации каждого пакета. Входящий пакет рассортировывается на три части, которые проходят обработку в 3-х устройствах с одной и той же временной задержкой и потом вновь из них формируется один пакет. Формально в блоке ASSEMBLE собираются 300 частей, из которых собирается 100 пакетов.

Рассматриваемые блоки в программе имеют следующие форматы записи:

— блоки SPLIT:

SPLIT 1, CHAN1

CHAN1 SPLIT 1, CHAN2

блоки TRANSFER:

TRANSFER, OUT3

TRANSFER, OUT3

блок ASSEMBLE:

OUT3 ASSEMBLE 3

Блок SPLIT копирует один транзакт, отправляет его по метке CHAN1 на второй блок SPLIT. При этом через первый блок SPLIT проходит транзакт-родитель на следующий по номеру блок (SEIZE 1). Второй блок SPLIT также копирует один транзакт, отправляет его по метке на 3-е устройство (120 chan2 seize 3), и пропускает транзакт на второе устройство. В блоке ASSEMBLE собираются транзакты после блоков TRANSFER (60 transfer, out3 и 110 transfer, out3) и блока RELEASE (140 release 3). За полный цикл моделирования в блоке ASSEMBLE собираются 300 транзактов и выходят из него 100 транзактов. Формально блок ASSEMBLE уничтожает 200 транзактов. Блоки TRANSFER используются в режиме безусловного перехода: поле пусто, в поле задается имя блока, к которому отправляются транзакты.

Задание к примеру 2: изменить в программе количество копий, создаваемых блоком SPLIT, в соответствии со следующим рядом чисел: 2, 3, 4, 5.

Записать и запустить на выполнение программу для решения примера 3.

Изучение блока TRANSFER в режиме статистического выбора. Повторный прогон программ с помощью оператора CLEAR.

Пример 3. В систему поступают требования по равномерному закону через 52 мин. Обработка требований осуществляется двумя приборами. Поступление требований на тот или иной прибор происходит с вероятностью 0.3 для одного прибора и 0.7 для другого прибора. Обслуживание требований каждым прибором происходит по равномерному закону со временем 72 мин. Произвести обработку 100 требований при одном и двух прогонах программы.

Решение примера 3 приводится как программа 3.

GENERATE 5,2,100 TRANSFER .7,CHAN1,CHAN2.

CHAN1 SEIZE 1.

ADVANCE 7,2.

RELEASE 1.

TRANSFER, EXIT.

CHAN2 SEIZE 2.

ADVANCE 7,2.

RELEASE 2.

EXIT TERMINATE 1.

START 100.

CLEAR.

START 100.

Программа 3.

Формат записи блока TRANSFER в режиме статистического выбора для данной программы следующий:

TRANSFER .7,CHAN1,CHAN2

В поле

записано число 0.7. Это означает, что из общего числа транзактов, входящих в блок TRANSFER, в среднем 0.7 будут пытаться войти в блок chan2. Остальные 0.3 от 100 будут пытаться войти в блок chan1. Числа 0.3 и 0.7 интерпретируются как вероятности. Передача транзактов в блоки происходит по меткам, которые записываются в поля и, соответственно.

Блок TRANSFER осуществляет безусловную передачу транзактов в блок TERMINATE.

Оператор CLEAR записывается в формате без параметров, т. е. без каких-либо полей с данными. Применение оператора CLEAR в имитационном моделировании позволяет проводить параллельные машинные эксперименты с моделями систем. Проведение параллельных экспериментов становится обязательным, если в системе присутствуют стохастические (вероятностные) процессы, для которых, как правило, требуется вычисление или определение средних операционных характеристик. После выполнения оператора CLEAR следует предусмотреть еще оператор задания счетчика завершений START (START 100). В приводимой программе первый прогон происходит при закомментированных операторах CLEAR и START 100. Для выполнения двух прогонах программы используются два оператора START 100 и один оператор CLEAR между ними.

Задание к примеру 3: задать равновероятное распределение транзактов по устройствам, а также: 0.4 на 1-е устройство, 0.6 на 2-е устройство, 0.8 на 1-е устройство, 0.2 на 2-е устройство. При этом в каждом случае произвести один прогон программы, два прогона, три прогона. Подсчитать средние статистические показатели работы устройств. Объяснить результаты моделирования по файлу стандартного отчета.

Записать и запустить на выполнение программу для решения примера 4.

Изучение работы блока TRANSFER в режиме BOTH.

Пример 4. Пусть в условиях примера 3 сообщения могут обрабатываться на одном из двух приборов; на первом — за 53 мин., на втором — 72 мин. Причем предпочтительнее обработка на первом приборе.

Решение примера приводится как программа 4.

GENERATE 5,2,100 TRANSFER BOTH, CHAN1, CHAN2.

CHAN1 SEIZE 1.

ADVANCE 5,3.

RELEASE 1.

TRANSFER, EXIT.

CHAN2 SEIZE 2.

ADVANCE 7,2.

RELEASE 2.

EXIT TERMINATE 1.

START 100.

Программа 4.

Формат записи блока TRANSFER в режиме BOTH для программы 4:

TRANSFER BOTH, CHAN1, CHAN2

В поле блока TRANSFER стоит зарезервированное слово BOTH. В этом случае каждый входящий в блок TRANSFER транзакт пытается перейти к блоку, указанному в поле (переход к устройству с меткой chan1). Если это сделать не удается, транзакт пытается перейти к блоку, указанному в поле (переход к устройству с меткой chan2). Если транзакт не может перейти ни к одному из блоков, он остается в блоке TRANSFER и будет повторять в том порядке попытки перехода при каждом просмотре интерпретатором GPSS списка текущих событий, до тех пор, пока не сможет выйти из блока TRANSFER. Режим работы BOTH блока TRANSFER определяет предпочтительность выбора перехода сообщения к тому или иному объекту моделируемой системы.

Задание к примеру 4. В программе 4 произвести следующие изменения. Во-первых, отменить поле в блоке GENERATE. Во-вторых, после блока GENERATE применит блок копирования транзактов для создания одной копии и передачи на обработку в третье и четвертое устройства с предпочтением обработки в третьем устройстве. Параметры третьего и четвертого устройств установить, как и для первого и второго устройств. Вывод обработанных транзактов после третьего и четвертого устройств сделать независимым от числа счетчика завершений (независимо от START 100). Объяснить результаты моделирования по файлу стандартного отчета.

Записать и запустить на выполнение программу для решения примера 5.

Изучение работы блока TRANSFER в режиме ALL.

Пример 5. В систему поступают требования по равномерному закону со временем 52 мин. Обработка требований может происходить одним из четырех приборов, для которых времена обслуживания составляют 172 мин., 122 мин., 92 мин., 32 мин., соответственно. Смоделировать работу системы по обработке 100 требований четырьмя приборами, когда вновь поступающее требование обслуживается любым свободным прибором.

Решение примера 5 приводится как программа 5.

GENERATE 5,2,100 TRANSFER ALL, CHAN1, CHAN4,4CHAN1 SEIZE 1 ADVANCE 17,2 RELEASE 1 TRANSFER, EXITCHAN2 SEIZE 2 ADVANCE 12,2.

RELEASE 2.

TRANSFER, EXIT.

CHAN3 SEIZE 3.

ADVANCE 9,2.

RELEASE 3.

TRANSFER, EXIT.

CHAN4 SEIZE 4.

ADVANCE 3,2.

RELEASE 4.

EXIT TERMINATE 1.

START 100.

Программа 5.

Блок TRANSFER в режиме ALL автоматически анализирует систему и выбирает свободное место по обслуживанию входящих требований. В этом режиме сообщение (транзакт) занимает первый блок из совокупности, заданной полями, ,. В приводимой программе 5 блок TRANSFER в режиме ALL имеет следующий формат записи:

TRANSFER ALL, CHAN1, CHAN4,4

В поле

блока TRANSFER задается режим зарезервированным словом ALL. В поле задается метка первого анализируемого устройства, в поле — метка последнего устройства. В поле задается число, кратное количеству блоков между каждым из анализируемых устройств. В моделирующей программе каждое устройство, начиная с первого, отделено друг от друга четырьмя блоками: seize, advance, release, transfer, exit. Блок transfer, exit работает в режиме безусловного перехода. В программе 5 время обработки каждого из устройств подобрано так, чтобы были задействованы все четыре устройства. Если же одно из устройств будет освобождаться быстрее остальных, то это устройство окажется наиболее загруженным. Различную загрузку приборов без изменения времени обработки можно задать с помощью блоков копирования транзактов SPLIT. Такой вариант работы системы представлен как программа 6.

GENERATE 5,2,100 SPLIT 1, CHAN2 SPLIT 1, CHAN3 TRANSFER ALL, CHAN1, CHAN4,4.

CHAN1 SEIZE 1.

ADVANCE 17,2.

RELEASE 1.

TRANSFER, EXIT.

CHAN2 SEIZE 2.

ADVANCE 12,2.

RELEASE 2.

TRANSFER, EXIT.

CHAN3 SEIZE 3.

ADVANCE 9,2.

RELEASE 3.

TRANSFER, EXIT.

CHAN4 SEIZE 4.

ADVANCE 3,2.

RELEASE 4.

EXIT TERMINATE 1.

START 10.

Программа 6.

Задание к примеру 5. Для программы 5 изменить работоспособность устройств в соответствии с предлагаемой группой чисел: 32, 92, 122, 172; 71, 71, 71, 71; 17, 12, 9, 3. Объяснить результаты моделирования по файлу стандартного отчета. Произвести также двойной прогон программ.

Для программы 6 изменить работоспособность устройств как: 71, 71, 71, 71; 71, 91, 121, 151; 151, 121, 91, 71. Объяснить результаты моделирования по файлу стандартного отчета. Произвести также двойной прогон программ.

Записать и запустить на выполнение программу для решения примера 6.

Изучение блока TRANSFER в режиме PICK.

Пример 6. Смоделировать обслуживание 100 заявок, которые поступают в систему каждые 52 мин. Обработка требований может осуществляться четырьмя приборами с равной вероятностью и соответственно со временами 122 мин., 92 мин., 72 мин., 132 мин.

Решение примера 6 представлено как программа 7.

GENERATE 5,2,100 TRANSFER PICK, 3,6 TRANSFER, CHAN1 TRANSFER, CHAN2 TRANSFER, CHAN3 TRANSFER, CHAN4; Сегмент моделирования 1 прибора обслуживания.

CHAN1 SEIZE 1;

ADVANCE 12,2.

RELEASE 1.

TRANSFER, EXIT.

; Сегмент моделирования 2 прибора обслуживания.

CHAN2 SEIZE 2;

ADVANCE 9,2.

RELEASE 2.

TRANSFER, EXIT.

; Сегмент моделирования 3 прибора обслуживания.

CHAN3 SEIZE 3;

ADVANCE 7,2.

RELEASE 3.

TRANSFER, EXIT.

; Сегмент моделирования 4 прибора обслуживания.

CHAN4 SEIZE 4;

ADVANCE 13,2.

RELEASE 4.

; Сегмент задания времени моделирования.

EXIT TERMINATE 1.

START 100.

Программа 7.

Формат записи блока TRANSFER в режиме PICK в программе имеет следующий вид:

TRANSFER PICK, 3,6

В поле стоит зарезервированное слово PICK. В этом режиме блок TRANSFER случайным образом с равной вероятностью отправляет транзакт в один из блоков, которые составляют ряд от начального блока, указанного в поле , до блока, указанного в поле. Если блок поля обозначить как N, а блок поля как М, то вероятность отправления транзакта на один из блоков с номерами n, n+1, n+2, ,m определяется как 1/(m-n)+1. Для программы 7 эта вероятность равна Некоторая ограниченность применения блока TRANSFER в режиме PICK может быть обусловлена необходимостью расположения принимающих блоков в строгой последовательности друг за другом. Но, как видно из программы 7, с помощью блока TRANSFER в режиме безусловного перехода можно производить распределение транзактов в любую точку модели (к любому блоку). Задание к примеру 6. Для программы 7 последовательно для каждого из трех устройств запрограммировать вывод транзактов без учета счетчика завершений (START 100). То же самое проделать при отсутствии поля блока GENERATE. Объяснить результаты моделирования по файлу стандартного отчета.

В поле стоит зарезервированное слово PICK. В этом режиме блок TRANSFER случайным образом с равной вероятностью отправляет транзакт в один из блоков, которые составляют ряд от начального блока, указанного в поле , до блока, указанного в поле. Если блок поля обозначить как N, а блок поля как М, то вероятность отправления транзакта на один из блоков с номерами n, n+1, n+2,, m определяется как 1/(m-n)+1. Для программы 7 эта вероятность равна Некоторая ограниченность применения блока TRANSFER в режиме PICK может быть обусловлена необходимостью расположения принимающих блоков в строгой последовательности друг за другом. Но, как видно из программы 7, с помощью блока TRANSFER в режиме безусловного перехода можно производить распределение транзактов в любую точку модели (к любому блоку).

Задание к примеру 6. Для программы 7 последовательно для каждого из трех устройств запрограммировать вывод транзактов без учета счетчика завершений (START 100). То же самое проделать при отсутствии поля блока GENERATE. Объяснить результаты моделирования по файлу стандартного отчета.

Контрольные вопросы

Содержание отчета и его форма

Показать весь текст
Заполнить форму текущей работой