Jump to content

GPS

GPS
Моделирование мира GPSS
Пример кода
GENERATE   15,5
SEIZE      Barber
ADVANCE    10,2
RELEASE    Barber
TERMINATE  1
Разработано Джеффри Гордон
Разработчик ИБМ
Впервые появился 1961 год ; 63 года назад ( 1961 )
Расширения имен файлов .GPS
Основные реализации
Мир GPSS, JGPSS

Система моделирования общего назначения ( GPSS ) — это язык моделирования, используемый для моделирования дискретных событий . Это особенно полезно при моделировании систем массового обслуживания, поскольку многие статистические данные собираются автоматически. [1] Типичная симуляция состоит из транзакций, которые генерируются в системе (обычно через определенный интервал), выполняют определенный набор правил (например, использование ресурса, ожидание, передача) и удаляются из симуляции.

GPSS был разработан в 1960-х годах Джеффри Гордоном , сотрудником отдела разработки передовых систем IBM (ASDD). Это подразделение активно занималось исследованиями в области проектирования систем телеобработки, пытаясь достичь экономического баланса использования компьютерных ресурсов и общих линий между серверными терминалами. Система моделирования, известная тогда как Симулятор Гордона, стала очень популярной при изучении систем телеобработки в рамках ASDD. Впоследствии это было исправлено и задокументировано 25 октября 1960 года во внутреннем меморандуме IBM. [2] Между зимой и летом 1961 года группа из трех программистов (включая Гордона) переписала систему моделирования, добавив новый алгоритм и новые типы блоков. Он был официально выпущен как поддерживаемая программа IBM 27 сентября 1961 года с 25 типами блоков. В этот момент Гордон прекратил работу над системой моделирования.

В 1963 году был выпущен GPSS II с 32 типами блоков. В нем были представлены системные числовые атрибуты, которые позволяли отслеживать текущее содержимое Storage , длину Queue или текущее время часов.

В 1965 году был выпущен GPSS III. Он был доступен для IBM Systems 7090/94 и 7040/44 .

В 1967 году был выпущен GPSS/360 для работы на недавно выпущенной System 360 .

В 1970 году был выпущен GPSS V с 49 типами блоков.

В 1980-х годах были выпущены GPSS/VAC и GPSS/PC. Похоже, это последние официальные выпуски лейбла IBM до того, как язык стал нелицензионным. [3]

Впоследствии были релизы для IBM 360 , [4] Univac 1108 и CDC. [5] [6] [7]

Со временем для систем были разработаны и другие реализации, в том числе VAX от DEC , специализированная версия APL для крупномасштабных систем Univac, [8] и Макинтош . [9]

В 2001 году программа для Windows GPSS World [10] был выпущен с новыми функциями GPSS. Он включает в себя написание сценариев с использованием PLUS ( язык, подобный Pascal ), графическое отображение состояния системы, построение графиков и эксперименты по оптимизации.

графический инструмент на основе Java под названием JGPSS (Java General Purpose Simulation System). В 2009 году для обучения языку моделирования GPSS был разработан [11] [12]

Описание

[ редактировать ]

Моделирование GPSS написано на «языке блок-схем» в стиле ассемблера со множеством различных одноцелевых команд («блоков») для управления потоком транзакции , сбором статистики и переменными.

Моделирование имеет точки входа в транзакции через GENERATE команда, например, когда покупатель заходит в магазин. Далее выполняются действия через требование Помещения / Хранилища (как у кассира), ожидание, сохранение статистики и т.д. Наконец, моделируемая транзакция выходит из симуляции через TERMINATE команда. Каждый командный глагол называется «управлением».

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

Сущности можно в общих чертах классифицировать на ресурсы, вычислительные сущности и статистические сущности. [13] Ресурсы, такие как объекты и хранилища, представляют собой ресурсы с ограниченной емкостью. Вычислительные объекты, такие как амперпеременные (переменные), функции и генераторы случайных чисел, используются для представления состояния транзакций или элементов их среды. Статистические объекты, такие как очереди или таблицы (гистограммы), собирают интересующую статистическую информацию.

Основные команды транзакций

[ редактировать ]

Транзакции могут:

  • Автоматический вход в симуляцию (GENERATE)
  • Используйте объект или хранилище (SEIZE/ENTER соответственно)
  • Прекратить использование объекта или хранилища (RELEASE/LEAVE соответственно)
  • Подождите (ВПЕРЕД)
  • Перенос в другой участок кода (TRANSFER)
  • Выйти из моделирования (ПРЕКРАТИТЬ)

Наряду с этими основными задачами они также могут хранить параметры с помощью команды ASSIGN. Транзакции неявно разделены в коде.

В коде может быть несколько транзакций, которые происходят одновременно. Транзакция начинается с GENERATE и заканчивается TERMINATE. Промежуточный код потенциально может быть разделен между несколькими транзакциями с помощью команды TRANSFER, но, кроме того, жизненные циклы ваших транзакций будут разделены. Это помогает добавлять пробелы между действиями одной транзакции по сравнению с другой.

GENERATE 0.1

Транзакция генерируется каждые 0,1 единицы времени.

GENERATE 15,4

Транзакция генерируется каждые 15 единиц времени, плюс-минус 4 единицы времени.

СОЗДАТЬ

ПРОДВИГАТЬ

[ редактировать ]

Чтобы транзакция ожидала, используйте команду ADVANCE. Он имеет те же аргументы, что и GENERATE.

ADVANCE 10,6

Транзакция ожидает 10+-6 секунд.

ПРОДВИГАТЬ

ЗАХВАТЬ, ВЫПУСТИТЬ (Объекты)

[ редактировать ]

Чтобы использовать объект , который можно использовать только один раз, используйте команду SEIZE. Чтобы прекратить его использование, используйте команду RELEASE.

         GENERATE 30,5   ; Generate a customer every 30+-5 time units
         SEIZE Barber    ; Use a facility
         ADVANCE 15,4    ; Wait 15+-4 time units
         RELEASE Barber  ; Stop using the facility
         TERMINATE 1     ; Leave the barber shop

Если вы хотите использовать более одного раза одновременно, используйте Storage .

ЗАХВАТЫВАТЬ

ВЫПУСКАТЬ

ВОЙДИТЕ, ВЫЙДИТЕ (Хранилища)

[ редактировать ]
Seating  STORAGE 100     ; 100 people allowed in lounge seating

         GENERATE 10,5   ; Generate a person every 10+-5 time units
         ENTER Seating,1 ; Person sits down
         ADVANCE 15,4    ; Wait 15+-4 time units
         LEAVE Barber,1  ; Person stops sitting
         TERMINATE 1     ; Exit the seating area

Таким образом, на сиденье могут одновременно сидеть несколько человек. Если бы это был объект (с использованием SEIZE/RELEASE), он заблокировал бы других, кто пытался использовать этот ресурс.

Команда ENTER принимает ссылку на хранилище в качестве аргумента A, а резервируемую сумму — в качестве аргумента B. Аргументы команды LEAVE такие же.

ВХОДИТЬ

ОСТАВЛЯТЬ

ПРЕКРАТИТЬ

[ редактировать ]

Чтобы удалить транзакцию, используйте TERMINATE.

Необязательный аргумент уменьшает счетчик завершения — переменную, выбираемую пользователем при запуске моделирования. Допустим, вы хотите протестировать 100 клиентов: вы начнете моделирование с START 100. TERMINATE 1 в конце каждой транзакции начальное значение 100 будет уменьшаться на 1 (99, 98, 97...), пока оно не достигнет нуля. На этом этапе моделирование останавливается и возвращаются результаты. Если вы опустите аргумент в TERMINATE, он будет считаться равным 0. Это означает, что ваша симуляция будет работать вечно (если, конечно, у вас нет другого TERMINATE, который уменьшает этот счетчик.

ПРЕКРАТИТЬ

Чтобы ваша программа работала в течение заранее определенного времени, убедитесь, что ни один из ваших TERMINATES не уменьшает счетчик, и включите такой раздел:

GENERATE      ; Generate one transaction
ADVANCE 100   ; Run for 100 time units
TERMINATE 1   ; End

Затем запустите программу с помощью START 1. Она будет работать 100 единиц времени.

НАЗНАЧИТЬ (Параметр «Метаданные»)

[ редактировать ]

Используйте блок управления ASSIGN, чтобы присвоить значение параметру транзакции. Вызывается с помощью Pj (j=номер параметра)

            ASSIGN 2,V$Orderqty     ;Parameter 2=Order quantity
Custwait    ADVANCE 5               ;Lead time is 5 days
            ENTER Stock,P2          ;Stock increases by P2

ASSIGN : блоки ASSIGN используются для размещения или изменения значения в параметре транзакции.

парикмахерская

[ редактировать ]

Следующий пример взят из Simulation using GPSS : [14] это «Привет, мир!» GPSS и проиллюстрирует основные концепции.

Цель — смоделировать один день работы парикмахерской. Клиенты приходят случайным постоянным потоком, заходят в магазин, стоят в очереди, если парикмахер занят, стригутся в порядке очереди, а затем покидают магазин. Мы хотим знать среднюю и максимальную очередь ожидания, а также количество клиентов.

       SIMULATE               ; Define model
 *
 *  Model segment 1
 * 
       GENERATE 18,6          ; Customer arrive every 18±6 mn
       QUEUE    Chairs        ; Enter the line
       SEIZE    Joe           ; Capture the barber
       DEPART   Chairs        ; Leave the line
       ADVANCE  16,4          ; Get a hair cut in 16±4 mn
       RELEASE  Joe           ; Free the barber
       TERMINATE              ; Leave the shop
 *
 *  Model segment 2
 *
       GENERATE 480           ; Timer arrives at time = 480 mn
       TERMINATE 1            ; Shut off the run
 *
 *  Control cards
 *
       START     1            ; Start one run
       END                    ; End model

«Программа» заключена между SIMULATE и END ведомости и делится на «сегменты модели» и «контрольные карты».

Первый сегмент моделирует клиентов. GENERATE Блок создает поток транзакций и планирует их поступление в модель со временем между поступлениями, равномерно распределенным в диапазоне 18±6. Ответственность за интерпретацию этих транзакций как клиентов и понимание того, что время должно исчисляться минутами, лежит на программисте. Транзакции начинают свое существование в GENERATE блокировать и переходить от блока к блоку в соответствии с определенными правилами, пока не достигнут TERMINATE которые удаляют их из модели.

Обычно транзакции переходят от одного блока к следующему, поэтому транзакции клиентов покидают блок. GENERATE блок для входа в QUEUE Chairs блокировать. Этот блок имитирует очередь ожидания и соответственно собирает статистику. В примере материализуется линия стульев, и в конце моделирования мы будем знать, среди прочего, максимальный размер очереди (сколько стульев необходимо) и среднее время ожидания. QUEUE Блок требует имя очереди в качестве параметра, поскольку в модели может существовать более одной очереди. Каждый из них связан с DEPART блок, который срабатывает, когда транзакция покидает очередь. GPSS запоминает, какие транзакции находятся в очереди, поэтому можно узнать среднее затраченное время и проверить, что ни одна ошибочная транзакция не покидает очередь без предварительного входа в нее.

После QUEUE chairs блок, транзакция попытается перейти к SEIZE Joe блок, блок, имитирующий захват Объекта имени Джо. Объекты моделируют отдельные серверы емкостью один. Если объект занят, SEIZE лишит пытающуюся транзакцию права на вход. В примере клиент будет ждать в QUEUE блокировать. Если он свободен или как только он станет доступен, транзакции будет разрешено захватить объект, пометить его как занятый для других транзакций и начать подсчитывать время обслуживания и другую статистику, пока та же транзакция не пройдет соответствующий RELEASE Joe блокировать.

The SEIZE / RELEASE пары связаны по названию объекта, поскольку в модели может существовать множество независимых объектов. Они могут моделировать операторов, таких как парикмахер, ремонтник, агент, а также элементы оборудования, такие как кран, заправочная станция, разрешительный документ и т. д., фактически все, что имеет мощность один. Для моделирования нескольких параллельных серверов, например, команды из пяти парикмахеров или печи вместимостью 10 человек, GPSS использует объекты с именами STORAGEс.

После того как клиент схватил Джо, она переходит к следующему утверждению: ADVANCE 16,4, задача которого — заморозить объект на заданный период времени, здесь случайное число выбирается между 16-4=12 и 16+4=20 минут. Другие распределения времени обслуживания доступны через GPSS. FUNCTION (понятие, отличное от функции в других языках программирования). В течение этого времени другим транзакциям будет разрешено проходить через модель, блокируя некоторые другие объекты, которые могут существовать в модели, но не Джо, поскольку этот объект занят замороженным клиентом. По истечении положенного времени клиент проснется, перейдет к следующему утверждению, которое освободит Джо, и TERMINATE.

Тогда следующая транзакция в предыдущем блоке, то есть клиент, сидящий на стуле, сможет SEIZE Joe. Для выбора «следующей» транзакции GPSS использует принцип «первым пришел — первым обслужен» с приоритетом. Другие политики выбора могут быть запрограммированы путем прямого манипулирования объектом будущей цепочки событий .

Параллельно этому первому сегменту, моделирующему поведение клиентов, второй сегмент модели моделирует конец дня. В момент времени 480 минут = 8 часов сущность GENERATEд, что будет TERMINATE в следующем квартале. На этот раз TERMINATE как параметр 1, что означает, что специальный счетчик уменьшается на 1. Когда этот счетчик достигает 0, программа останавливается и выходные данные печатаются. Этот специальный счетчик настраивается с помощью START заявление. В примере он установлен на единицу, поэтому моделирование завершится после одного прогона продолжительностью 480 минут за смоделированное время.

Вывод содержит:

FACILITY           AVERAGE           NUMBER         AVERAGE         SEIZING      PREEMPTING 
                UTILIZATION          ENTRIES       TIME/TRAN       TRANS. NO.    TRANS. NO.
       Joe            .860               26          15.884              26

QUEUE       MAXIMUM   AVERAGE    TOTAL     ZERO     PERCENT   AVERAGE   $AVERAGE     TABLE    CURRENT
           CONTENTS   CONTENT   ENTRIES   ENTRIES    ZEROS  TIME/TRANS TIME/TRANS   NUMBER   CONTENTS
  Chairs          1      .160       27        12      44.4      2.851      5.133                    1
$AVERAGE TIME/TRANS = AVERAGE TIME/TRANS EXCLUDING ZERO ENTITIES

Это указывает на то, что Джо был занят 86,0% времени, стриг 26 клиентов и что стрижка занимала в среднем 15,88 минут. Между прочим, Джо стриг волосы клиенту номер 26, когда симуляция была закрыта. Никаких программных положений, позволяющих парикмахеру закончить стрижку перед закрытием парикмахерской, не было.

Это также указывает на то, что наблюдался максимум 1 клиент, ожидающий своей очереди, фактически количество ожидающих клиентов составило в среднем 0,160. Всего в очередь встало 27 покупателей, так что покупатель номер 27 все еще сидел и ждал своей очереди, когда Джо закрыл магазин. Из этих 27 клиентов 12 были обслужены без ожидания. Фактически очередь была пустой в 44,4% случаев. Среднее время ожидания составило 2,851 мин, а среднее время ожидания для 15 = 27–12 клиентов, которые действительно ждали, составило 5,133 мин.

* Pg 108 Q 18
* A one-chair unisex hair shop has arrivals at the rate of one every 20+-15 minutes.
* One-half of the arriving customers want a dry cuts, 30% want a style, and 20% 
* want a trim only. A dry cut takes 15+-5 minutes, a style cut takes 25+-10 minutes,
* and a trim takes 10+-3 minutes. Simulate 50 customers coming through the hair
* shop. Compare the given proportion of service rqequests of each type with the
* simulated outcome. Are the results reasonable? Base your answer on the binomial
* distribution.

Arrivals	FUNCTION	RN1,D4	; 1=dry cut, 2=style, 3=trim
0.0,0/0.5,1/0.8,2/1.0,3

	GENERATE	20,15	; Generate arrivals
	ASSIGN	1,FN$Arrivals	; Assign arrival type to P1
Test1	TEST E	P1,1,Test2	; If P1=1, transfer to DryCut. Else Test2
	TRANSFER	,DryCut
Test2	TEST E	P1,2,TrimHair	; If P1=2, transfer to StyCut. Else Trim.
	TRANSFER	,StyCut


DryCut	SEIZE	Chair
	ADVANCE	15,5
	SAVEVALUE	WantedDryCut+,1
	TRANSFER	,Term

StyCut	SEIZE	Chair
	ADVANCE	25,10
	SAVEVALUE	WantedStyleCut+,1
	TRANSFER	,Term

TrimHair	SEIZE	Chair
	ADVANCE	10,3
	SAVEVALUE	WantedTrimHair+,1

Term	RELEASE	Chair
	TERMINATE 1

Супермагистраль

[ редактировать ]
* Pg 108 Q 14
* A superhighway connects one large metropolitan area to another. A vehicle leaves
* the first city every 20+-15 seconds. Twenty percent of the vehicles have 1 pass-
* enger, 30% of the vehicles have 2 passengers, 10% have 3 passengers, and 10%
* have 4 passengers. The remaining 30% of ehicles are buses which carry 40
* people. It takes 60+-10 minutes for a vehicle to travel between the two metro-
* politan areas. How long does it take for 5000 people to arrive in the second city?

Passenger	FUNCTION	RN1,D6
0.0,0/0.2,1/0.5,2/0.6,3/0.7,4/1.0,40

	GENERATE	20,15	; New vehicle enters superhighway (seconds)
	ASSIGN	1,FN$Passenger	; Assign number of passengers to P1
	ADVANCE	(60#60),(10#60)	; Travel (minutes to seconds)
	TERMINATE P1	; Decrease the count by number of passengers

* End time is in seconds. Must be divided by 60.
* RESULT: 10958 seconds => 182.645 minutes = 3 hr 2 min

Префиксы данных

[ редактировать ]

Источник: [15]

Транзакции

[ редактировать ]
Префикс Значение
Пиджей Параметр транзакции, текущей обрабатываемой программой.
М1 Время прохождения текущей транзакции.
МИД Промежуточное время прохождения текущей транзакции.
пиар Приоритет текущей транзакции (0-127).
Префикс Значение
CHj Текущий счетчик, который представляет собой номер транзакции в указанной цепочке пользователей.
CAj Среднее количество транзакций в цепочке пользователей j.
CCj Общее количество записей в цепочке пользователей j.
CTj Среднее время на транзакцию в цепочке пользователей j.
Префикс Значение
Нью-Джерси Количество записей общего количества транзакций, вошедших в указанный блок на блок-диаграмме. Этот счетчик автоматически поддерживается программой. Пример: N$SAM для количества записей в блоке SAM. Это количество не включает транзакцию, которая в данный момент обрабатывается в текущем блоке.
WJ Счетчик ожидания, который представляет собой количество транзакций, ожидающих в данный момент в указанном блоке блок-диаграммы. Этот счетчик также автоматически поддерживается программой. Пример: WSHOLD для текущего счетчика ожидания в блоке HOLD. Это количество также не включает транзакции, которые в данный момент обрабатываются в текущем блоке.

Системные атрибуты

[ редактировать ]

Количества

[ редактировать ]
Префикс Значение
КДж Указание на то, что целое число является константой. Пример К3276 для целого числа 3276 или КО для целого нуля.
РН(х) Вычисленное случайное число (1<=x<=8). Значением числа является целое число от 0 до 999 включительно, если только количество не должно использоваться в качестве независимой переменной функции. В этом случае число представляет собой дробь, большую или равную нулю, но меньше единицы. В любом случае все значения в пределах указанного диапазона можно считать равновероятными.
С1 Текущее значение часов симулятора. Это количество автоматически поддерживается программой.

Атрибуты оборудования

[ редактировать ]

Хранилища

[ редактировать ]
Префикс Значение
Сджей Содержимое указанного хранилища на блок-схеме. Количество может быть изменено блоками ENTER и LEAVE. Пример: S2 для содержимого памяти (номер) 2.
РДжей Количество доступных единиц пространства в указанном хранилище. Это количество может быть изменено блоками ENTER и LEAVE. Пример: 195 рандов за оставшееся место на складе 195.
СФРЮ Использование хранилища j в частях на тысячу, т. е. если использование было 0,65, вычисленное значение было бы 650.
Да Среднее содержимое памяти j (усеченное).
СМдж Максимальное содержимое памяти j. Это количество автоматически поддерживается программой.
SCj Количество записей для хранения J. Это количество автоматически поддерживается программой.
STj Среднее время, в течение которого каждая транзакция использовала хранилище j (усечено).

Удобства

[ редактировать ]
Префикс Значение
Фджей Статус указанного объекта на блок-схеме. Это значение равно нулю, если объект доступен; в противном случае это одно. Это количество может быть изменено блоками SEIZE, RELEASE, PREEMPT и RETURN. Пример: F20 для статуса объекта 20.
Франция Загрузка объекта j выражается в тысячных частях, т. е. если загрузка равна 0,88, значение FRj будет равно 880.
ФКдж Количество записей для объекта j.
ФТдж Среднее время, в течение которого каждая транзакция использовала объект j (усечено).
Префикс Значение
ГДж Текущее количество членов группы j.

Статистические атрибуты

[ редактировать ]
Префикс Значение
QJ Длина указанной очереди на блок-диаграмме. Это количество может быть изменено блоками QUEUE и DEPART. Пример: Q50 для содержимого очереди 50.
Привет Среднее содержимое очереди j (усеченное).
QMj Максимальное содержимое очереди j. Это количество автоматически поддерживается программой.
QCj Количество записей в очереди j. Автоматически поддерживается.
QZj Количество записей в очереди j. Автоматически поддерживается.
QTj Среднее время, в течение которого каждая транзакция находилась в очереди j (включая нулевые записи). При ссылке значение будет усечено до

целое число.

QXj Среднее время нахождения каждой транзакции в очереди j (исключая нулевые записи). Усечено.
Префикс Значение
ТБдж Вычисленное среднее значение указанной таблицы типа гистограммы, определяемой пользователем. Блок TABULATE используется для ввода значений в одну из этих таблиц. Хотя вычисленное среднее может иметь дробную часть, оно не сохраняется, если вычисленное среднее не будет использоваться в качестве независимой переменной функции. Пример: TB42 для вычисленного среднего значения таблицы 42.
TCj Количество записей в таблице j.
ТДдж Вычисленное стандартное отклонение таблицы j.

Сохранение значений

[ редактировать ]
Префикс Значение
хдж Содержимое полного слова savevalue j.
XHj Содержимое полуслова сохранения j.
MXj(а,б) Содержимое сохраненного значения j матрицы полного слова, строка a, столбец b. (a и b могут быть любой другой СНС)
MHj(а,б) Содержимое сохраняемого значения j матрицы полуслов, строка a, столбец b.

Вычислительные атрибуты

[ редактировать ]
Префикс Значение
ФНдж Вычисленное значение функции. Сохраняется только целая часть, за исключением случаев, когда она используется в качестве модификатора функции в блоках GENERATE, ADVANCE или ASSIGN.
Виджей Арифметическая комбинация стандартных числовых атрибутов, которая называется оператором переменной и определяется пользователем. Сохраняется только целая часть. (См. главу 4.)
БВдж Вычисленное значение (1 или 0) логической переменной j.

Диапазон стандартных числовых атрибутов

[ редактировать ]
Сущность Символ Значение
Транзакции П Параметр, полное слово[полуслово]
пиар Приоритет
М1 Транзитное время
член парламента Время прохождения параметра
Блоки Н Общее количество записей
В Текущий счетчик
Удобства Ф Логическое значение 1 или 0 Статус объекта
фр. Использование (частей на тысячу)
ФК Количество входов
ФТ Среднее время/транзакция'
Хранилища С Текущее содержимое хранилища
Р Оставшееся содержимое
СР Использование (частей/тыс.)
на Среднее содержание•
СМ Максимальное содержимое
СК Количество входов
СТ Среднее время/транзакция•
Решка вопрос Текущая длина очереди
контроль качества Среднее содержание•
МК Максимальное содержимое
КК Общее количество записей
КЗ Количество нулевых записей
QT Среднее время/транзакция
КХ Среднее время/транзакция

исключая ноль

Таблицы туберкулез Среднее значение таблицы•
ТК Количество входов
ТД Стандартное отклонение•
Савэваулес Х Полное слово savevalue
XII сохранение значения lialfword
Матрица сохраненных значений М(а,б) Полная матрица слов
МХ(а, б) Матрица полуслова

a = строка b = столбец

Группы Г Количество элементов в группе
Цепочки пользователей ЧТО Среднее количество в цепочке•
СН Текущий номер в цепочке
СМ Максимальное количество в цепочке
СС Всего записей
Коннектикут Среднее время входа•
Функции ФН Функция
Переменные V Арифметическая переменная
V Переменная с плавающей запятой
БВ Логическая переменная
Случайные числа РН1-РН8 В качестве аргумента функции возвращает значения от 0 до 0,99999. В противном случае 0,999
Часы С1 Время на часах относительно последней карты RESET или CLEAR.

Условные операторы

[ редактировать ]

Используется в команде TEST .

И Равный
Г Больше, чем
GE Больше или равно
л Меньше, чем
ТО Меньше или равно
МАКС Равен наибольшему такому атрибуту среди всех транзакций в группе.
МИН Равен наименьшему такому атрибуту среди всех транзакций в группе.
NE Не равно опорному значению, указанному операндом E.

См. также

[ редактировать ]
  1. ^ Шрибер, Томас (1977), Введение в GPSS (PDF) , стр. 1 , получено 12 декабря 2023 г.
  2. ^ Джеффри Гордон (1981). «Разработка системы моделирования общего назначения (GPSS)» . История языков программирования . стр. 403–426. дои : 10.1145/800025.1198386 . ISBN  0127450408 . При разработке GPSS не предпринималось сознательных усилий по созданию аналоговых компьютеров, но я уверен, что обозначение блок-схемы и акцент на том, чтобы сделать моделирование доступным непосредственно для системных аналитиков, а не через программистов, которые являются характеристиками GPSS, подверглись бессознательному влиянию. по опыту аналогового компьютера.
  3. ^ IEEE (1984), Материалы зимней конференции по моделированию , ISBN  9780911801040 , получено 12 декабря 2023 г.
  4. ^ (GPSS/360, в MFT/MVT, но не в DOS)
  5. ^ Дивизия округа Колумбия (1968). «Техническая записка». Транзакции IEEE по системным наукам и кибернетике . 4 (4): 446–447. дои : 10.1109/TSSC.1968.300174 . IBM предлагает GPSS III для серий 7044 и 7090, а также GPSS/360 для более крупных моделей 360... GPSS II также доступен на UNIVAC 1108.
  6. ^ «Введение в GPSS» (PDF) . о языке имитационного моделирования GPSS. ... резюмировано; источники, сравнивающие GPSS и другие.... Корпоративные GPSS для аппаратного обеспечения Univac 1108)
  7. ^ Б. Лисков (1981). «GPSS-сеанс» . История языков программирования . НаукаДирект . стр. 403–437 . дои : 10.1016/B978-0-12-745040-7.50013-2 . ISBN  9780127450407 . Предыстория: Система моделирования общего назначения (GPSS) — это... производители, выпустившие версии GPSS, — UNIVAC (Горчоу, 1968), CDC
  8. ^ Набиль Р. Адам; Али Дограмачи (2014). Актуальные проблемы компьютерного моделирования . п. 25. ISBN  978-1483258034 . Подобно GPSS... в версии GPSS для APL, хотя APL является интерпретативным языком. ... Univac Corporation, GPSS 1100 для системы UNIVAC 1108.
  9. ^ Столь, Ингольф (1990). Введение в моделирование с помощью Gpss на ПК, MacIntosh и Vax . ISBN  0-1348-323-10 .
  10. ^ «GPS World СПРАВОЧНОЕ РУКОВОДСТВО» . athena.ecs.csus.edu . Проверено 11 декабря 2023 г.
  11. ^ П. Фонсека Касас (2009). «jgpss, платформа GPS с открытым исходным кодом для обучения моделированию» (PDF) . упростить разработку полноценного инструмента моделирования с использованием синтаксиса GPSS. В этой статье представлено... В оригинале GPSS означало Программируемую систему моделирования Гордона, в честь Джеффри Гордона, ее создателя.
  12. ^ «Система моделирования общего назначения Java» . Изучите моделирование, создав механизм моделирования. JGPSS — это реализация системы GPSS, основанная на Java.
  13. ^ Стэнли Гринберг (1972). GPSS Праймер . Нью-Йорк: Wiley-Interscience. ISBN  0471324906 .
  14. ^ Шрайбер, Томас (1974). Моделирование с использованием GPSS . Уайли. ISBN  9780471763109 .
  15. ^ Система моделирования общего назначения/360: Руководство пользователя (PDF) , 1967 г. , дата обращения 10 декабря 2023 г.
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 3cae576b54a418b7d266d369de280fb4__1712718420
URL1:https://arc.ask3.ru/arc/aa/3c/b4/3cae576b54a418b7d266d369de280fb4.html
Заголовок, (Title) документа по адресу, URL1:
GPSS - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)