Равномерное распределение
Равномерное распределение определяется двумя параметрами А и В, где А- среднее значение (математическое ожидание), В - отклонение. Случайная величина СÎ[А-В,А+В) вычисляется как целая часть от выражения :(А-В+Т*(2*В+1)), где ТÎ[0.0000,0.9999].
Лекция №2
Создание модели в системе GPSS
При моделировании тракта ОП-БП-ЦП необходимо обеспечить появление команд из ОП или генерацию их из ОП. В системе моделирования существует такой блок, который бы моделировал появление команд (транзактов - обобщающее понятие) из ОП:
GENERATE А,В,С,D,Е
А, В, С, D, E -операнды:
А и В указывают время появления транзакта относительно предыдущего транзакта. Эти два операнда задают равномерное распределение, где А - среднее значение, а В - отклонение.
С - время появления первого транзакта относительно первого такта.
D - количество транзактов, генерируемых блоком GENERATE. По умолчанию блок будет вводить в модель бесконечное число транзактов.
Е - приоритет транзакта (чем выше число, тем больше приоритет). Транзакт с большим приоритетом в случае появления конкуренции будет обслужен в первую очередь. По умолчанию приоритет транзакта равен 1.
Пр.:1) GENERATE 30,5 - интервал времени, через который транзакты вводятся в модель, является случайным числом и с равной вероятностью лежит в пределах от 25 до 35.
2) GENERATE 27,,,2 - в модель поступят два транзакта: один - в первый такт, а второй в 28 такт модельного времени.
После выполнения с транзактом необходимых действий, он должен быть выведен из системы. Это возможно сделать с помощью блока
TERMINATE A
Если операнд А не указан, то транзакт, попадая в данный блок, удаляется из модели. Если же операнд А присутствует, то кроме вывода транзакта из системы осуществляется вычитания операнда А из специального счетчика числа завершений. Начальное значение счетчика числа завершений задается операндом А блока START. При равенстве нулю счетчика числа завершений моделирование прекращается.
Пример №2.1
GENERATE | ||
TERMINATE | ||
START |
Данная связка может использоваться для завершения моделирования по истечению 3600 тактов модельного времени (если такту соответствует секунда реального времени, то мы получим статистику часовой работы системы).
Для того чтобы выполнить блок надо выполнить программу - тратиться машинное время, но модельное время прохождения транзактом блока равно нулю следовательно целесообразно ввести блок, который заставляет транзакт задержаться:
ADVANCE A,B
Операнды А и В имеют тот же смысл, что и в блоке GENERATE.
Средства языка GPSS в процессе моделирования позволяют описывать поведение элементов, предназначенных непосредственно для обслуживания заявок. Такими элементами являются приборы (устройства), которые в любой момент времени могут обслуживать только одну заявку. Для занятия используется блок SEIZE A
A - имя устройства. оно может быть либо числовым, либо символическим.
Транзакт сможет войти в блок SEIZE, если данный прибор не занят другим транзактом. До освобождения прибора транзакт будет ожидать на входе в блок, образуя некоторую очередь. Прибор освобождается, когда транзакт попадет в блок RELEASE A
Пример №2.2Моделирование тракт ОП-БП-ЦП:
GENERATE | ||
SEIZE | ||
ADVANCE | 20,10 | |
RELEASE | ||
TERMINATE |
1 блок позволяет смоделировать поступление команд из ОП в ЦП.
2 и 4 блоки моделируют процессор.
3 блок определяет время обработки заявки процессором.
5 вывод транзакта (команды) из системы.
Пусть в процессоре мы будем выполнять два типа команд, тогда введем блок
TRANSFER A,B,C
А - числовое значение меньшее единицы.
В и С - метки блоков.
Транзакт, поступающий на блок TRANSFER, с вероятностью, указанной в операнде А, переходит на блок с меткой, указанной в операнде С, и с дополнительной - на блок с меткой, указанной в операнде В. Тогда программа, написанная в примере №2.2, будет выглядеть следующим образом:
GENERATE | ||
SEIZE | ||
TRANSFER | .3,M,N | |
M | ADVANCE | 20,5 |
TRANSFER | ,L | |
N | ADVANCE | 15,4 |
L | RELEASE | |
TERMINATE |
Существует возможность, чтобы ОП реализовывалось тоже как устройство. БП имитируется очередью, реализованной самим интерпретатором, и имеет бесконечную длину, но мы моделируем систему в ЭВМ следовательно есть ограничение на длину очереди. Если очередь в системе забита, то поступление нового транзакта вызовет программную ошибку.
Программа в системе моделирования состоит из сегментов. Сегменты можно переставлять, но это может повлиять на результат моделирования. Примеры сегментов - связки блоков, расписанных в примере №2.1 и примере №2.2.
В конце моделирования выводится статистика:
1) доля времени, в течении которого прибор был занят;
2) сколько транзактов прошло через устройство;
3) сколько времени в среднем транзакт находится в устройстве и т.д.
Но иногда такой статистике мало: хотелось бы иметь информацию об очереди к устройству. Для этого служат блоки
QUEUE A - транзакт попадает в очередь с именем, указанном в операнде А.
DEPART A - освобождение транзактом очереди.
С помощью этих двух блоков можно узнать:
1) наибольшее значение содержимого очереди за время моделирования;
2) общее число заявок, вошедших в очередь;
3) среднее время, проведенное одной заявкой в очереди и т.д.
Пример №2.3
GENERATE | ||
QUEUE | A | |
SEIZE | ||
DEPART | A | |
ADVANCE | 20,10 | |
RELEASE | ||
TERMINATE |
Лекция №3
Листинги, которые появляются в процессе моделирования.
1. Текст программы.
В программе GPSS есть графические аналоги блоков, с помощью которых можно рисовать блок-схемы, но в машину их ввести нельзя.
2. Проверка синтаксических ошибок.
В результате этой проверки появится листинг, в котором все символьные обозначения заменятся числовыми значениями, начиная с единицы. Следовательно, не рекомендуется использовать в программе одновременно числовые и символьные имена, так как могут быть ошибки наложения.
3. Осуществляется прогон программы, сообщаются результаты моделирования.
Дата добавления: 2016-11-04; просмотров: 1732;