Автор работы: Пользователь скрыл имя, 02 Апреля 2013 в 00:12, курсовая работа
Целью данной курсовой работы является изучение подходов и средств моделирования; разработка машинной модели с использованием алгоритмических языков и специальных программных средств. В настоящее время нельзя назвать область человеческой деятельности, в которой в той или иной степени не использовались бы методы моделирования. Особенно это относится к сфере управления различными системами, где основными являются процессы принятия решений на основе получаемой информации.
SEIZE (Занять)
SEIZE - занимает устройство.
Формат: SEIZE А
А - номер устройства.
Свободный блок SEIZE позволяет вошедшему в него сообщению занять указанное устройство. Блок SEIZE задерживает сообщение, если устройство занято или находится в состоянии недоступности.
В поле А задается номер (имя) занимаемого устройства.
Сообщение, занявшее устройство, затем пытается перейти к следующему по номеру блоку. Устройство остается занятым до тех пор, пока занимающее его сообщение не войдет в соответствующий блок RELEASE. Прежде чем освободить устройство, сообщение может пройти через неограниченное число блоков.
DEPART (Покинуть очередь)
DEPART - удаляет транзакт из очереди.
Формат: DEPARTА, В
А - номер (имя) очереди;
В - число удаляемых из очереди элементов.
Удаляет текущий транзакт из очереди, указанной в поле А, и уменьшает содержимое очереди на значение поля В. Транзакт может находиться одновременно в двух различных очередях.
ADVANCE (Задержать)
ADVANCE - задерживает транзакт.
Формат: ADVANCE А, В
А - среднее время задержки (константа, если В не задано);
В - разброс относительно среднего значения, должен быть меньше или равен А.
Транзакты обслуживаются устройствами в течение некоторого промежутка времени. Для моделирования такого обслуживания, т.е. для задержки транзактов на определенный отрезок модельного времени/
Блок ADVANCE моделирует временную задержку транзакта в течение определенного интервала. Значение задержки по умолчанию равно нулю. Если поле В не является FN$, т время задержки является случайным числом, распределенным равномерно на интервале от (; + В) до (А - В). Если поле В является функцией FN$, то время задержки определяете произведением поля А на значение функции в поле В. Функция может быть использована для задания времени задержки с определенным средним значением и отклонением, зависящим от А.
Транзакты, входящие в блок ADVANCE, переводятся из списка текущих событий в список будущих событий, а по истечении вычисленного времени задержки возвращаются назад, в список текущих событий, и их продвижение по блок-схеме продолжается. Если вычисленное время задержки равно 0, то транзакт в тот же момент модельного времени переходит в следующий блок, оставаясь в списке текущих событий.
RELEASE (Освободить)
RELEASE - освобождает устройство.
Формат: RELEASE А
А - номер устройства(символьное имя освобождаемого устройства) .
Устройство, указанное в поле А, освобождается и становится доступным для других транзактов. Освобождать устройство должен тот же транзакт, который его занимал. .
TRANSFER (Передать)
TRANSFER - изменяет движение транзакта в модели.
Формат: TRANSFER А, В, С, D
А - режим передачи (пробел,.,ALL, BOTH, FN, P, PICK, SBR, SIM);
В - следующий блок;
С - следующий блок;
D - значение индекса, используемое в режиме ALL.
Транзакт направляется в блок, определяемый в соответствии с режимом передачи, указанным в поле А.
Режимы передачи поля А:
1. Пробел - транзакт передается в блок, определяемый полем В.
2. "." - статистический режим; в поле А указано десятичное число, выражающее вероятность перехода в блок С; его дополнение до единицы указывает вероятность перехода в блок В.
3. ALL - транзакт последовательно пытается перейти в блоки, определяемые значениями В, B+D, B+2D.....C.
4. BOTH - транзакт последовательно пытается войти в блок В, затем в блок С, до тех пор, пока один из них станет доступным.
5. FN - функциональный режим: поле В является номером функции; следующий блок определяется суммой значения этой функцииполя С.
6. Р - параметрический режим: поле В является номером параметра; следующий блок определяется суммой значения этого параметра и поля С.
7. PICK - выборочный режим: блок
выбирается с равной
8. SBR - режим перехода к подпрограмме: номер текущего блока помещается в параметр, указанный в поле С, а транзакт передается в блок, номер которого указан в поле В.
9. SIM - одновременный режим:
START (Начать)
START - управление процессом
Формат: START А, В, С, D
А - счетчик числа завершений;
В - подавление вывода на печать (В = NP);
С - промежуточный вывод
Поле А определяет счетчик завершений при прогоне модели. При входе транзакта в блок TERMINATE с ненулевым значением поля А, содержимое поля А блока TERMINATE вычитается из остаточного значения счетчика - поля А карты START.
Прогон завершается, когда значение счетчика достигнет нуля. Указатель NP в поле В отменяет вывод стандартного отчета GPSS. Величина , указанная в поле С, определяет число завершений, по достижении которого выдается промежуточный отчет. Таким образом можно получать статистические данные в определенных интервалах моделирования. Если поле D содержит 1, полученный отчет будет содержать списки текущих и будущих событий, а также списки пользователя.
TERMINATE (Удаление транзакта)
TERMINATE – служит для удаления транзактов из модели
Формат: TERMINATEA
Значение поля A указывает, на сколько единиц уменьшается содержимое так называемого счетчика завершений при входе транзакта в данный блок TERMINATE. Если поле A не определено, то оно считается равным 0, и транзакты, проходящие через такой блок, не уменьшают содержимого счетчика завершений.
Начальное значение счетчика завершений устанавливается управляющим оператором START (начать), предназначенным для запуска прогона модели. Поле A этого оператора содержит начальное значение счетчика завершений. Прогон модели заканчивается, когда содержимое счетчика завершений обращается в 0. Таким образом, в модели должен быть хотя бы один блок TERMINATE с непустым полем A, иначе процесс моделирования никогда не завершится.
Участок блок-схемы модели, связанный с парой блоков GENERATE-ТERMINATE, называется сегментом. Простые модели могут состоять из одного сегмента, в сложных моделях может быть несколько сегментов.
ENTER
ENTER - позволяет вошедшему сообщению (транзакту) использовать многоканальное устройство.
Формат: ENTER A,[B]
Сообщение может быть задержано на входе в блок, если многоканальное устройство заполнено или имеющейся емкости недостаточно или устройство в данный момент недоступно.
В поле А указывается номер или
имя многоканального
В поле В содержится число занимаемых единиц многоканального устройства. Если поле В пусто, то предполагается что занимается одна единица. Если это значение равно нулю, то сообщение никогда не задерживается на входе, а блок рассматривается как нерабочий.
Активное сообщение не может войти в блок ENTER, если запрос на многоканальное устройство не может быть удовлетворен.
Активное сообщение не может войти в блок ENTER, если многоканальное устройство находится в недоступном состоянии.
Когда сообщение входит в блок ENTER, то операнд А используется для нахождения многоканального устройства с указанным именем. Если такое многоканальное устройство не существует, то возникает ошибка выполнения. В противном случае используется операнд В для оценки емкости многоканального устройства.
Одно и то же сообщение может входить в неограниченное число многоканальных устройств, а впоследствии освобождать их (или часть из них).
LEAVE
LEAVE - освобождает определенное число единиц многоканального устройства.
Формат: LEAVE A,[B]
Занятый объем многоканального устройства уменьшается на число освобождаемых единиц. Оставшаяся емкость многоканального устройства увеличивается на ту же величину. Счетчик числа входов не изменяется.
Поле А блока LEAVE определяет номер
или имя многоканального
Поле В - число освобождаемых единиц многоканального устройства. Если это поле пусто, предполагается 1. Число освобождаемых единиц не должно превышать текущее содержимое многоканального устройства.
4.2.2 Описание работы программы на GPSS-World
Данная
программа функционирует
Блок GENERATE 120,60 – вводит в модель транзакты, которые распределены по равномерному закону распределения, заявки поступают в цех с интенсивностью 2+1 мин.
Блок GATESNFST_A,M_B – проверяет накопитель А, если он заполнен отправляет заявку на накопитель В.
Блок ENTERST_A - занять многоканальное устройство (канал A).
Блок SEIZEKAN_A – занять устройство (канал A).
Блок ADVANCE45,15 – организует задержку транзакта в канале A, время обслуживание имеет равномерное распределение со средним значением 45+15 секунд.
Блок ADVANCE 160,20 – организует задержку транзакта в канале A, время обслуживание имеет равномерное распределение со средним значением 160+20секунд.
Блок RELEASEKAN_A – освободить устройство (канал A).
Блок ADVANCE 960,240 – организует задержку транзакта в канале A, время обслуживание имеет равномерное распределение со средним значением 16+4минуты.
Блок LEAVEKAN_А - освободить многоканальное устройство (канал А).
Блок TERMINATE - уничтожает заявки, вышедшие из системы.
Блок GATESNFST_В,M_О – проверяет накопитель В, если он заполнен отправляет заявку в отказ.
Блок ENTERST_В - занять многоканальное устройство (канал В).
Блок SEIZEKAN_В – занять устройство (канал В).
Блок ADVANCE 17,4 – организует задержку транзакта в канале В, время обслуживание имеет равномерное распределение со средним значением 17+4секунды.
Блок ADVANCE 160,20 – организует задержку транзакта в канале В, время обслуживание имеет равномерное распределение со средним значением 160+20секунд.
Блок RELEASEKAN_В – освободить устройство (канал В).
Блок ADVANCE 960,240 – организует задержку транзакта в канале В, время обслуживание имеет равномерное распределение со средним значением 16+4минуты.
Блок LEAVEKAN_В - освободить многоканальное устройство (канал В).
Блок TERMINATE - уничтожает заявки, вышедшие из системы.
Блок GENERATE 3600 – обеспечивает моделирование работы на протяжении 10 ч.
Блок TERMINATE 1 - уничтожает заявки, вышедшие из системы.
Карта управления START 1 - запускает моделирование и устанавливает значение счётчика завершений равное 1000, то есть система после обслуживания тысячи заявок автоматически прекратит свою работу.
Программа моделирующая работу заданной системы и результаты полученные при этом представлены в Приложении А.
4.2.3 Выводы по работе системы, смоделированной в GPSS-World
Отчёт по модели работы кафе представлен в Приложении Б.
STARTTIME 0.000 (начальное время)
ENDTIME3600.000(время окончания)
BLOCKS 22 (количество операторов)
FACILITIES 2 (число каналов)
STORAGES2 (число накопителей)
Далее перечисляются операторы (блоки), имеющие числовые номера и количество входов в них покупателей. Затем указываются результаты моделирования каналов 1и 2.
FACILITYENTRIESUTIL. AVE. TIMEAVAIL.OWNER PEND INTER RETRY DELAY
KAN_A 17 0.955 202.289 1 18 0 0 0 6
KAN_B 8 0.355 159.880 1 32 0 0 0 0
Ниже указываются результаты моделирования каждой очереди соответственно:
STORAGE CAP. REM. MIN. MAX. ENTRIES AVL. AVE.C. UTIL. RETRY DELAY
ST_A 12 0 0 12 23 1 8.603 0.717 0 0
ST_B 12 6 0 7 8 1 1.803 0.150 0 0
Основныеобозначения:
STARTTIME – время начала моделирования
ENDTIME - время окончания моделирования
BLOCKS - количество блоков, используемых в программе
FACILITIES – количество устройств
STORAGES – количество многоканальных устройств, для которых определяется емкость накопителя
Далее приводится информация о блоках:
LOC – номер блока, назначенный системой
BLOCKTYPE – название блока
ENTRYCOUNT – количество транзактов, прошедших через блок за время моделирования
СURRENTCOUNT – количество транзактов, задержанных в блоке на момент конца моделирования
RETRY – количество транзактов, ожидающих специальных условий для прохождения через данный блок
Отчет о работе устройства:
FACILITY – название устройства
ENTRIES – количество транзактов, прошедших через устройство
UTIL. – вероятность загрузки устройства (часть периода моделирования, когда устройство было свободно)
AVE. TIME – среднее время обработки одного транзакта устройством
AVAIL. – состояние готовности устройства на момент конца моделирования (1 –готово к обслуживанию очередной заявки; 0 – не готово)
OWNER – номер последнего транзакта занимающего устройство (если не занималось, то значение 0)
PEND – количество транзактов, ожидающих устройство, и находящихся в режиме прерывания
INTER – количество транзактов, прерывающих устройство в данный момент
RETRY – количество транзактов, ожидающих специальных условий, зависящих от состояния объекта типа «устройство»
DELAY – определяет количество транзактов, ожидающих занятия или освобождения устройства
Статистика об очередях:
QUEUE – имя очереди
MAX - максимальная длина очереди
CONT. – текущая длина очереди
ENTRY – общее количество входов
ENTRY(0)- количество «нулевых» входов
AVE.CONT. – средняя длина очереди
AVE.TIME – среднее время пребывания транзактов в очереди
AVE.(-0) – среднее время пребывания в очереди без учета «нулевых» входов
RETRY – количество транзактов, ожидающих специальных условий
Информация о списке текущих событий:
CEC (CurrentEventsChain)
XN – номер транзакта
PRI – приоритет транзакта (по умолчанию - 0)
M1 – время пребывания транзакта в системе с момента начал моделирования
ASSEM - номер семейства транзактов