Идея номер два
Что такое язык GPSS
Язык моделирования GPSS был выбран как понятный и простой язык, доступный для понимания людям без продвинутого технического бэкграунда, предоставляющий возможности воспроизведения естественных процессов.
Описание функций
Функция GENERATE
Генерирует одну или несколько транзакций с заданным интервалом времени между генерацией.
Синтаксис: GENERATE interArrivalTime, interArrivalDeviation, minTransactions, maxTransactions $baseCost, deviation
Параметры:
- interArrivalTime (обязательный): Время между генерацией транзакций.
- interArrivalDeviation (необязательный, по умолчанию 0): Погрешность времени между генерацией транзакций.
- minTransactions (необязательный, по умолчанию 1): Минимальное количество транзакций, которые могут быть сгенерированы.
- maxTransactions (необязательный, по умолчанию 1): Максимальное количество транзакций, которые могут быть сгенерированы.
- $baseCost (необязательный, по умолчанию 0): Базовая стоимость генерации транзакции.
- deviation (необязательный, по умолчанию 0): Погрешность стоимости.
Пример:
GENERATE 5, 1, 2 $10, 1
Функция QUEUE
Описание: Помещает транзакцию в указанную очередь.
Синтаксис: QUEUE queueName $baseCost, deviation
Параметры:
- queueName (обязательный): Имя очереди, в которую помещается транзакция.
- $baseCost (необязательный, по умолчанию 0): Базовая стоимость помещения в очередь.
- deviation (необязательный, по умолчанию 0): Погрешность стоимости.
Пример:
QUEUE A $5, 1
Функция DEPART
Описание: Удаляет транзакцию из указанной очереди.
Синтаксис: DEPART queueName $baseCost, deviation
Параметры:
- queueName (обязательный): Имя очереди, из которой удаляется транзакция.
- $baseCost (необязательный, по умолчанию 0): Базовая стоимость удаления из очереди.
- deviation (необязательный, по умолчанию 0): Погрешность стоимости.
Пример:
DEPART A $2, 0.5
Функция SEIZE
Описание: Захватывает указанный ресурс.
Синтаксис: SEIZE resourceName $baseCost, deviation
Параметры:
- resourceName (обязательный): Имя ресурса, который захватывается.
- $baseCost (необязательный, по умолчанию 0): Базовая стоимость захвата ресурса.
- deviation (необязательный, по умолчанию 0): Погрешность стоимости.
Пример:
SEIZE B $15, 5
Функция RELEASE
Описание: Освобождает указанный ресурс.
Синтаксис: RELEASE resourceName $baseCost, deviation
Параметры:
- resourceName (обязательный): Имя ресурса, который освобождается.
- $baseCost (необязательный, по умолчанию 0): Базовая стоимость освобождения ресурса.
- deviation (необязательный, по умолчанию 0): Погрешность стоимости.
Пример:
RELEASE B $5, 1
ADVANCE
Описание: Ожидает указанное время.
Синтаксис: ADVANCE time, deviation $baseCost, deviationCost
Параметры:
- time (обязательный): Время ожидания.
- deviation (необязательный, по умолчанию 0): Погрешность времени ожидания.
- $baseCost (необязательный, по умолчанию 0): Базовая стоимость ожидания.
deviationCost (необязательный, по умолчанию 0): Погрешность стоимости ожидания.
Пример:
ADVANCE 5, 2 $10, 3
Функция TERMINATE
Описание: Завершает указанное количество транзакций.
Синтаксис: TERMINATE num $baseCost, deviation
Параметры:
- num (обязательный): Количество транзакций для завершения.
- $baseCost (необязательный, по умолчанию 0): Базовая стоимость завершения транзакции.
- deviation (необязательный, по умолчанию 0): Погрешность стоимости.
Пример:
TERMINATE 1 $1, 0.1
Функция ENTER
Описание: Добавляет указанное количество единиц в ресурс.
Синтаксис: ENTER resourceName, units $baseCost, deviation
Параметры:
- resourceName (обязательный): Имя ресурса, в который добавляются единицы.
- units (обязательный): Количество добавляемых единиц.
- $baseCost (необязательный, по умолчанию 0): Базовая стоимость добавления единиц в ресурс.
- deviation (необязательный, по умолчанию 0): Погрешность стоимости.
Пример:
ENTER B, 5 $20, 2
Функция LEAVE
Описание: Удаляет указанное количество единиц из ресурса.
Синтаксис: LEAVE resourceName, units $baseCost, deviation
Параметры:
- resourceName (обязательный): Имя ресурса, из которого удаляются единицы.
- units (обязательный): Количество удаляемых единиц.
- $baseCost (необязательный, по умолчанию 0): Базовая стоимость удаления единиц из ресурса.
- deviation (необязательный, по умолчанию 0): Погрешность стоимости.
Пример:
LEAVE B, 5 $15, 1
Функция TRANSFER
Описание: Выполняет переход к указанной метке по заданному условию.
Синтаксис: TRANSFER condition, label $baseCost, deviation
Параметры:
- condition (обязательный): Условие для выполнения перехода (например, ALWAYS).
- label (обязательный): Метка, к которой выполняется переход.
- $baseCost (необязательный, по умолчанию 0): Базовая стоимость перехода.
- deviation (необязательный, по умолчанию 0): Погрешность стоимости.
Пример:
TRANSFER ALWAYS, LOOP $0
** Функция IRRIGATE
Описание: Выполняет операцию орошения в течение заданного времени.
Синтаксис: IRRIGATE time, deviation $baseCost, deviationCost
Параметры:
- time (обязательный): Время орошения.
- deviation (необязательный, по умолчанию 0): Погрешность времени орошения.
- $baseCost (необязательный, по умолчанию 0): Базовая стоимость орошения.
- deviationCost (необязательный, по умолчанию 0): Погрешность стоимости орошения.
Пример:
IRRIGATE 5, 2 $10, 3
Функция HARVEST
Описание: Выполняет операцию сбора урожая в течение заданного времени.
Синтаксис: HARVEST time, deviation $baseCost, deviationCost
Параметры:
- time (обязательный): Время сбора урожая.
- deviation (необязательный, по умолчанию 0): Погрешность времени сбора урожая.
- $baseCost (необязательный, по умолчанию 0): Базовая стоимость сбора урожая.
- deviationCost (необязательный, по умолчанию 0): Погрешность стоимости сбора урожая.
Пример:
HARVEST 7, 1 $15, 4
Функция PESTCONTROL
Описание: Выполняет операцию контроля вредителей в течение заданного времени.
Синтаксис: PESTCONTROL time, deviation $baseCost, deviationCost
Параметры:
- time (обязательный): Время контроля вредителей.
- deviation (необязательный, по умолчанию 0): Погрешность времени контроля вредителей.
- $baseCost (необязательный, по умолчанию 0): Базовая стоимость контроля вредителей.
- deviationCost (необязательный, по умолчанию 0): Погрешность стоимости контроля вредителей.
Пример:
PESTCONTROL 3, 1 $12, 2
Функция SOILTEST
Описание: Выполняет операцию анализа почвы в течение заданного времени.
Синтаксис: SOILTEST time, deviation $baseCost, deviationCost
Параметры:
- time (обязательный): Время анализа почвы.
- deviation (необязательный, по умолчанию 0): Погрешность времени анализа почвы.
- $baseCost (необязательный, по умолчанию 0): Базовая стоимость анализа почвы.
- deviationCost (необязательный, по умолчанию 0): Погрешность стоимости анализа почвы.
Пример:
SOILTEST 4, 1 $8, 2