GPSS - язык, используемый для имитационного моделирования различных систем, в основном систем массового обслуживания. На данный момент, последней версией системы является GPSS World. Она доступна в двух редакциях: профессиональной и студенческой.
Визуальный конструктор GPSS-кода предназначен для создания GPSS модели через визуальный редактор, без ввода кода.
Как использовать:
Выберите нужный блок из выпадающего списка, добавьте его на рабочую область кнопкой "Add Block".
Разместите добавленные блоки в порядке их выполнения, сверху-вниз. Чтобы добавить параметры, нажмите на кнопу со стрелкой на блоке. В появившемся списке заполните необходимые поля. Чтобы скрыть список, нажмите на эту же кнопку. После того как блоки размещены, можно сгенерировать код GPSS, для этого нажмите на кнопку "Get gpss code".
Скопируйте код и вставьте его в окно модели в системе GPSS World Student.
В конструкторе есть небольшая справка (на английском).
Общая справка вызывается кнопкой "Info". Справка по конкретному блоку вызывается кнопкой со значком "i" на изображении блока.
Чтобы скрыть справку по блоку, нажмите еще раз на кнопку со значком "i".
Конструктором удобнее пользоваться в полноэкранном режиме, чтобы его включить, сделайте двойной клик на пустой области.
системы (ИСС). Сеанс работы пользователя с ИСС может включать
несколько запросов пользователя на получение информации от ИСС. Из
опыта работы ИСС известно, что сеанс работы пользователя с ИСС обычно
включает от одного до четырёх запросов (с одинаковой вероятностью).
Информация в ИСС обнаруживается для 90% запросов.
Плата пользователя за информацию по одному запросу составляет
6 ден. ед. Если информация по запросу не найдена, то пользователь не
платит за такой запрос (например, если в ходе сеанса пользователь ввёл три
запроса и получил информацию по двум из них, то он платит 12 ден. ед.).
Составить алгоритм и программу (на основе метода Монте-Карло) для
определения следующих величин:
– вероятность того, что пользователь получит информацию по всем
запросам сеанса;
– средний размер платы пользователя за один сеанс работы с ИСС
.4,1/.75,2/1,3
MEM FUNCTION P1,D3 ; объём памяти, Кбайт
1,200/2,300/3,400
TPROC FUNCTION P1,D3 ; время обработки ЦП, мин
1,10/2,15/3,20
TOUT FUNCTION P1,D3 ; время вывода в БД, мин
1,4/2,5/3,6
MEMORY STORAGE 1024 ; выделение памяти
GENERATE 20 ; генерация задачи каждые 20 мин
ASSIGN 1,FN$SERV ; первому параметру тран3акта присваивается 3начений SERV
ASSIGN 2,FN$MEM ; второму параметру тран3акта присваивается 3начений MEM
ASSIGN 3,FN$TPROC ; третьему параметру тран3акта присваивается 3начений TPROC
ASSIGN 4,FN$TOUT ; четвертому параметру тран3акта присваивается 3начений TOUT
TEST LE P2,R$MEMORY,OUT ; если второй параметр меньше 3начения MEMORY, тран3акт идет в блок OUT
QUEUE QPROC ; Тран3акт становится в очередь QPROC
ENTER MEMORY,P2 ; Тран3акт входит в память
DEPART QPROC ; Тран3акт выходит и3 очередь QPROC
CALC SEIZE CPU ; Тран3акт входит в CPU
ADVANCE 5 ; 3адержка
RELEASE CPU ; Тран3акт выходит и3 CPU
ASSIGN 3-,5 ; 3 параметр уменьшается на 5
QUEUE QBD ; Тран3акт становится в очередь QBD
SEIZE BD ; Тран3акт входит в BD
DEPART QBD ; Тран3акт выходит и3 очередь QBD
ADVANCE P4 ; 3адержка
RELEASE BD ; Тран3акт выходит и3 BD
TEST LE P3,0,CALC ; если 3 параметр больше 0, то тран3акт идет в блок CALC
LEAVE MEMORY,P2 ; Тран3акт выходит и3 памяти
TERMINATE 0 ;
OUT TERMINATE 0 ;
GENERATE 7200 ; время работы моделирования
TERMINATE 1 ;
START 1 ;
generate 40,5
queue qprich
enter Prich,3
depart qprich
advance 16,3
leave Prich,3
terminate
generate 100
terminate 1
start 1
Queue och1; увеличение очереди 1
Seize KAN1; проверка занятости 1
Depart och1; уменьшение очереди 1
Advance 27.5,2.5; обслуживание требований в канале в течении 7-13 мин
Release KAN1; освобождение канала 1
Queue och2; увеличение очереди 2
Seize KAN2; проверка занятости 2
Depart och2; уменьшение очереди 2
Advance 23.5,1.5; обслуживание требований во 2 канале в течении 8-11 мин
Release KAN2; освобождение канала 2
Terminate; выход требования из системы
Generate 25.5,3.5; генерирование требований с интервалом 8-17 мин
Queue och1; увеличение очереди 1
Seize KAN1; проверка занятости 1
Depart och1; уменьшение очереди 1
Advance 27.5,2.5; обслуживание требований в канале в течении 7-13 мин
Release KAN1; освобождение канала 1
Queue och2; увеличение очереди 2
Seize KAN2; проверка занятости 2
Depart och2; уменьшение очереди 2
Advance 23.5,1.5; обслуживание требований во 2 канале в течении 8-11 мин
Release KAN2; освобождение канала 2
Terminate; выход требования из системы
Generate 480; время работы поста 480 минут
Terminate 1; выход требования из системы
start 1