2.5. Блоки, работающие с памятью
Для хранения в памяти отдельных числовых значений и массивов
таких значений используются сохраняемые величины и матрицы сохраня-
емых величин.
Сохраняемые величины могут использоваться в модели для хране-
ния исходных данных, которые надо изменять при различных прогонах
модели, промежуточных значений и результатов моделирования. В нача-
ле моделирования все сохраняемые величины устанавливаются равными
0. Для установки отличных от 0 начальных значений сохраняемых вели-
чин используется оператор INITIAL, имеющий следующий формат:
INITIAL X$ имя,значение
INITIAL Xj ,значение
Здесь имя и j - соответственно имя и номер сохраняемой величины, а
значение - присваиваемое ей начальное значение (константа).
Для изменения сохраняемых величин в процессе моделирования
служит блок SAVEVALUE (сохранить величину), имеющий следующий фор-
мат:
имя SAVEVALUE A,B
В поле A указывается номер или имя сохраняемой величины, в которую
записывается значение операнда B. Если в поле A после имени (номера)
сохраняемой величины стоит знак + или -, то значение операнда B
добавляется или вычитается из текущего содержимого сохраняемой
величины. Например:
SAVEVALUE 5,Q$LINE
SAVEVALUE NREF+,1
Сохраняемые величины имеют единственный СЧА с названием X,
значением которого является текущее значение соответствующей сохра-
няемой величины.
Изменим пример на рис. 14 таким образом, чтобы исходные данные
модели (средний интервал поступления транзактов и среднее время
обслуживания) были заданы сохраняемыми величинами, а результат мо-
делирования (количество потерянных транзактов) фиксировался также в
сохраняемой величине. Такая модель будет иметь вид, показанный на
рис. 15.
Матрицы сохраняемых величин дают возможность упорядочить сох-
раняемые значения в виде матриц m*n, где m - число строк, n - число
столбцов матрицы. Каждая матрица должна быть перед началом модели-
рования определена с помощью оператора MATRIX (определить матрицу),
имеющего следующий формат:
имя MATRIX A,B,C
Поле A оператора не используется и сохранено в GPSS/PC для
совместимости со старыми версиями GPSS. В полях B и C указываются
соответственно число строк и столбцов матрицы, задаваемые констан-
тами, причем общее число элементов, равное произведению B на C, не
должно превышать 8191. Например, оператор
MTAB MATRIX ,10,2
определяет матрицу с именем MTAB, содержащую десять строк и два
столбца.
INITIAL X$TARR,100
INITIAL X$TSRV,160
STO2 STORAGE 2
EXP FUNCTION RN1,C24
0,0/.1,.104/.2,.222/.3,.355/.4,.509/.5,.69/.6,.915
.7,1.2/.75,1.38/.8,1.6/.84,1.85/.88,2.12/.9,2.3
.92,2.52/.94,2.81/.95,2.99/.96,3.2/.97,3.5/.98,3.9
.99,4.6/.995,5.3/.998,6.2/.999,7/.9998,8
GENERATE X$TARR,FN$EXP
ENT1 GATE SNF STO2,REFUS
ENTER STO2
ADVANCE X$TSRV,FN$EXP
LEAVE STO2
OUT TERMINATE 1
REFUS TRANSFER .1,,COUT
ADVANCE 250,FN$EXP
TRANSFER ,ENT1
COUT SAVEVALUE NREF+,1
TRANSFER ,OUT
Рис. 15
В начале моделирования элементы всех определенных матриц уста-
навливаются равными 0. Для установки отличных от 0 начальных значе-
ний отдельных элементов матриц используется оператор INITIAL, имею-
щий следующий формат:
INITIAL MX$ имя (a,b),значение
INITIAL MXj (a,b),значение
Здесь имя и j - соответственно имя и номер матрицы; a и b - номера
соответственно строки и столбца, задаваемые константами; значение -
присваиваемое элементу матрицы начальное значение, задаваемое также
константой.
Для изменения значений элементов матриц в процессе моделирова-
ния служит блок MSAVEVALUE (сохранить значение элемента матрицы),
имеющий следующий формат:
имя MSAVEVALUE A,B,C,D
В поле A указывается имя или номер матрицы, после которого,
как и в блоке SAVEVALUE, может стоять знак + или -. В полях B и C
указываются номера соответственно строки и столбца, определяющие
изменяемый элемент матрицы. В поле D указывается величина, исполь-
зуемая для изменения заданного элемента матрицы. Например:
MSAVEVALUE 5,3,2,X1
MSAVEVALUE MTAB+,P$ROW,P$COL,1
Матрицы имеют единственный СЧА с названием MX, ссылка на кото-
рый записывается в следующем виде:
MX$ имя (a,b)
MXj (a,b)
Здесь имя и j - соответственно имя и номер матрицы; a и b - номера
соответственно строки и столбца, задаваемые константами или ссылка-
ми на СЧА параметров транзактов. Например:
MX5(2,1)
MX$MTAB(P$ROW,P$COL)
... , как в моделируемой СМО перемещаются заявки, соответствующие транзактам. В начальный момент времени в GPSS-модели нет ни одного транзакта. В процессе моделирования симулятор генерирует транзакты в определенные моменты времени в соответствии с теми логическими потребностями, которые возникают в моделируемой системе. Подобным же образом транзакты покидают модель в определенные моменты времени в ...
... возвращаются на ввод и во всех очередях обслуживаются первыми. Смоделировать работу вычислительного центра в течение 30 ч. Определить необходимую емкость буферов и функцию распределения времени обслуживания заданий. 1.1 Построение концептуальной модели объекта На первом этапе проведения моделирования необходимо построить концептуальную модель (Рис. 1), т.е. концептуальная (содержательная) ...
... в результате входа транзактов в блоки и выполнения блоками своих функций. В данной работе требуется с помощью пакета моделирования систем GPSS/PC исследовать модель заданной СМО. Задание На обрабатывающий участок цеха поступают детали в среднем через 50 мин. Первичная обработка деталей производится на одном из двух станков. Первый станок обрабатывает деталь в среднем 40 мин и имеет до ...
... А При входе в блок RELEASE освобождается устройство, номер которого указан в поле А. Устройство становится доступным для других транзактов. При моделировании работы устройств, когда новое требование пытается прервать обслуживание предыдущего, используются блоки PREEMPT (захватить устройство) и RETURN (вернуть устройство ранее прерванному требованию). Блок PREEMPT имеет следующий формат: ...
0 комментариев