Курсовая работа: Моделирование на языке GPSS PC-2
Название: Моделирование на языке GPSS PC-2 Раздел: Рефераты по информатике Тип: курсовая работа |
МИНИСТЕРСТВО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ МОСКОВСКИЙ ГОСУДАРСТВЕННЫЙ ИНСТИТУТ РАДИОТЕХНИКИ, ЭЛЕКТРОНИКИ И АВТОМАТИКИ (ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ) Курсовая работа Тема: «Моделирование на языке GPSS / PC -2» Дисциплина: Моделирование систем Группа: ВУВ 8-05 Выполнили: Ляпина Елена Маслова Вера Такиулина Анастасия Преподаватель: Колесников Г.С. Москва – 2009 Содержание 1. Введение Моделирование – это метод исследования сложных систем, основанный на том, что рассматриваемая система заменяется на модель и проводится исследование модели с целью получения информации об изучаемой системе. Под моделью исследуемой системы понимается некоторая другая система, которая ведет себя с точки зрения целей исследования аналогично поведению системы. Обычно модель проще и доступнее для исследования, чем система, что позволяет упростить ее изучение. Среди различных видов моделирования, применяемых для изучения сложных систем, большая роль отводится имитационному моделированию. Имитационное моделирование – это метод исследования, при котором изучаемая система заменяется моделью с достаточной точностью описывающей реальную систему и с ней проводятся эксперименты с целью получения информации об этой системе. Такую модель можно «проиграть» во времени как для одного испытания, так и заданного их множества. При этом результаты будут определяться случайным характером процессов. По этим данным можно получить достаточно устойчивую статистику. Реализация имитационных моделей на ЭВМ происходит с помощью общецелевых или специализированных языков моделирования. К общецелевым языкам моделирования относится язык GPSS. GPSS (англ. General Purpose Simulation System – общецелевая система моделирования) – язык программирования, используемый для имитационного моделирования различных систем, ориентированный на исследование систем массового обслуживания (СМО). Программа на языке GPSS состоит из блоков, которые имитируют различные параметры «устройств» в модели. Как ожидание, выполнение работы и другие. Блок начинает выполняться при попадании в него транзактов — активных, неделимых элементов модели. К транзактам применяются различные правила описанные в блоках программы. 2. Постановка задачи Система содержит мультиплексный канал и три ЭВМ. Сигналы поступают на вход канала через 10+ 3 мсек. В канале они накапливаются и предварительно обрабатываются в течении 9+ 5 мсек. Затем они поступают на обработку в ту ЭВМ, где входная очередь – наименьшая по длине. Очереди к ЭВМ имеют наибольшую емкость 10 сигналов. Сигнал, заставший все очереди заполненными, уходят из системы необработанными. Время обработки сигналов на ЭВМ равно 30+ 19 мсек. Написать модель на языке GPSS/PC-2. ОПРЕДЕЛИТЬ: Основные характеристики времени реакции системы. Схематичное представление модели
Система обслуживания с несколькими приборами и очередями представляет собой систему обслуживания с несколькими каналами, перед которыми образуются отдельные очереди. Блок-схема 3. Модель программы на языке GPSS / PC -2 ; GPSS/PC Program File ZADANIE.GPS. (V 2, # 40550) 12-15-2009 11:55:49 10 ************************************************************************* 12 * * 14 * Barber Shop Simulation * 16 * * 18 ************************************************************************* 20 GENERATE 10,3 ;Create next customer. 25 ADVANCE 9,5 27 SELECT MIN 1,1,3,,Q 29 TEST L Q1,10,OUT 29.1 TEST L Q2,10,OUT 29.2 TEST L Q3,10,OUT 30 QUEUE P1 40 SEIZE P1 50 DEPART P1 60 ADVANCE 30,19 70 RELEASE P1 75 OUT TERMINATE 80 TERMINATE 1 4. Основные сведения о блоках , используемых для создания GPSS- модели .
4.1. Блок GENERATE GENERATE - это блок, через который транзакты входят в модель. В одной модели может быть несколько различных таких блоков. GENERATE А,B,C,D,E Операнды: А – Средний интервал времени прибытия (среднее время между последовательными приходами транзактов в блоке GENERATE); B – Половина поля допуска равномерно распределенного интервала. Понимамать как А+ В; C – Смещение интервалов (момент времени, в который в блоке должен появиться первый транзакт); D – Ограничитель (граничное значение общего числа транзактов, которые могут войти в модель через данный блок в течение времени моделирования. Когда это число достигнуто, данный блок GENERATE перестает быть активным); E – Уровень приоритета (уровень или класс приоритета каждого из транзактов, входящих в модель через данный блок). Операнды А и В в блоке являются основными (их наличие обязательно), операнды С, в и E - дополнительными. Все эти операнды не обязательно должны быть заданы явно. Но когда операнды заданы в виде констант, то они должны быть неотрицательными целыми числами. Использование блока GENERATE в нашей программе: 20 GENERATE 10,3 Здесь заданы операнды А и В (10 и 3 соответственно). Такая запись означает, что интервал времени прибытия равен 5 плюс-минус 3. 4.2. Блок SELECT Блок SELECT применяется для нахождения номера первого объекта (из определенного диапазона объектов), удовлетворяющего заданному условию. SELECT lo A, B, C, D, E где lo – логический оператор; A – номер параметра входящего транзакта, в который помещается результат подсчета объектов; B – номера первого объекта; C – номер последнего объекта. Если заданы также поля в и E, то логический оператор lo является оператором сравнения, т.е. имеет вид L, или LE, E, NE и т.д. В поле в тогда задается некоторая величина, а в поле E – СЧА объектов, сравниваемый с величиной поля E. Логический оператор здесь может быть задан не только теми обозначениями, но также еще двумя: MIN и MAX. 27 SELECT MIN 1,1,3,,Q Здесь будет найден номер самой короткой очереди из трех (с первой по третью) и записан в первый параметр транзакта. 4.3. Блок QUEUE QUEUE – помещает транзакт в конец очереди. QUEUE А,В Операнды: А - номер очереди (числовое или символьное имя очереди); В - число добавляемых к очереди элементов (по умолчанию 1). Увеличивает текущее содержимое очереди, указанной в поле А, на значение в поле В. Если поле В не определено, увеличивает содержимое очереди на единицу. Транзакт может находиться в двух различных очередях одновременно. 30 QUEUE P1 Это означает присоединить транзакт к очереди P1,увеличив ее длину на единицу. P1 – номер очереди, в которую поступает сигнал, и номер ЭВМ, в которой этот сигнал обрабатывается. 4.5. Блок TEST TEST - сравнивает два стандартных числовых атрибута. TEST_r А,В,С r - внутренний операнд, принимающий значения: Е - равно; NE - не равно; L - меньше чем; LE - меньше чем или равно; G - больше чем; GE - больше чем или равно; А - стандартный числовой атрибут; В - стандартный числовой атрибут; С - номер альтернативного блока. Значения стандартных числовых атрибутов, указанных в поле А и В, сравниваются отношением, определяемым операндом г. Если условие выполняется, транзакт вводится в блек. Если условие не выполняется и определено поле С, транзакт переходит в указанный блок, если же С не задано, транзакт задерживается в предыдущем блоке. 29 TEST L Q1,10,OUT Если очередь 1 меньше 10, транзакт входит в блок TEST, в противном случае транзакт перейдет в блок с меткой OUT. 4.6. Блок DEPART DEPART - удаляет транзакт из очереди. DEPART А,В А - номер (имя) очереди; В - число удаляемых из очереди элементов. Удаляет текущий транзакт из очереди, указанной в поле А, и уменьшает содержимое очереди на значение поля В. Транзакт может находиться одновременно в двух различных очередях. 50 DEPART P1 Текущий транзакт удаляется из очереди P1, а длина очереди уменьшается на единицу. Блок SEIZE обладает следующими свойствами: 1. Если прибор уже используют, транзакт не может войти в блок, и он должен ждать в очереди. 2. Если прибор не используют, транзакт может войти в блок. В результате произойдет изменение статуса прибора из "незанято" в "занято". SEIZE А Транзакт А - имя занимаемого прибора. Имя прибора может быть символическим или числовым. 40 SEIZE P1 4.8. Блок RELEASE Блок RELEASE - освобождает устройство. RELEASE А Транзакт А - номер устройства (числовое или символьное имя освобождаемого устройства). Устройство, указанное в поле А, освобождается и становится доступным для других транзактов. Освобождать устройство должен тот же транзакт, который его занимал. 70 RELEASE P1 ADVANCE - задерживает транзакт. ADVANCE А,В Транзакты: А - среднее время задержки (константа, если В не задано); В - разброс относительно среднего значения, должен быть меньше или равен А. Блок ADVANCE моделирует временною задержку транзакта в течение определенного интервала. Значение задержки по умолчанию равно нулю. Если поле В не является FN$, т время задержки является случайным числом, распределенным равномерно на интервале от (А + В) до (А - В). Если поле В является функцией FN$, то время задержки определяете произведением поля А на значение функции в поле В. Функция может быть использована для задания времени задержки с определенным средним значением и отклонением, зависящим от А. 60 ADVANCE 30,19 Такая запись означает, что для каждого транзакта, входящего в этот блок, возможные значения интервалов времени находятся в пределах 11-49 включительно. Транзакты удаляются из модели, попадая в блок TERMINATE. В модели может быть любое число этих блоков. Информация для этого блока задается с помощью единственного операнда А - он определяет величину, которая вычитается из специального счетчика, называемого счетчиком завершений, каждый раз, когда транзакт входит в блок TERMINATE. Если операнд А не задан, то по умолчанию подразумевается значение 0. В этом случае вход транзакта в такой блок не вызывает уменьшения содержания счетчика. При достижении счетчиком значения 0 (ноль) моделирование завершается. 75 OUT TERMINATE Транзакт удален, но значение счетчика завершений не изменяется. 80 TERMINATE 1 Значение счетчика завершений уменьшается на 1. 5. Окно устройств Окно устройств показывает графическое изображение одноканальных устройств GPSS в текущей модели. На рисунках представлена работа модели в разный момент времени. Построение графиков развития событий во времени Построим график для первой и второй очереди. Зададим команды: PLOT Q1 20 0 100000 PLOT Q2 20 0 100000 |