Версия 2, книга 1 (Система программного обеспечения на языке GPSS), страница 10
Описание файла
Файл "Версия 2, книга 1" внутри архива находится в папке "Система программного обеспечения на языке GPSS". Текстовый-файл из архива "Система программного обеспечения на языке GPSS", который расположен в категории "". Всё это находится в предмете "имитационное моделирование дискретных процессов" из 7 семестр, которые можно найти в файловом архиве МГТУ им. Н.Э.Баумана. Не смотря на прямую связь этого архива с МГТУ им. Н.Э.Баумана, его также можно найти и в других разделах. Архив можно найти в разделе "книги и методические указания", в предмете "имитационное моделирование дискретных процессов" в общих файлах.
Просмотр 10 страницы текстового-файла онлайн
числовых атрибутов (второй пример). Подобные ссылки на определенные
величины не зависят от каких-либо свойств сообщения, обрабатываемо-
го в данный момент.
Использование прямой адресации может привести к введению
большого числа дополнительных блоков только для того, чтобы запи-
сать номера объектов в СЧА, т.е. к увеличению объема модели. Иногда
при моделировании возникают ситуации, при которых в качестве исход-
ного данного должен использоваться СЧА, и желательно, чтобы номер
- 21 -
используемого объекта зависел от свойств сообщения, которое ссыла-
ется на это исходное данное. В частности, может быть полезным, что-
бы номер объекта являлся величиной параметра сообщения. Существенно
сократить объем модели и использовать зависимость номеров объектов
от свойств сообщений позволяет косвенная адресация. Общий вид кос-
венной адресации СЧА*СЧА[j]. Ниже приводятся примеры косвенной ад-
ресации.
SEIZE P*X1
Занять устройство, номер которого содержится в параметре; но-
мер этого параметра определяется содержимым ячейки X1.
SAVEVALUE 1,X*P2,X
Поместить в ячейку SAVEVALUE c номером 1 значение, содержаще-
еся в ячейке, номер которой определяется параметром 2.
В дальнейшем по тексту документа используется конструкция
СЧА*<параметр>, где <параметр> - это либо <номер параметра> , либо
<имя параметра>, либо $<имя параметра>.
2.6. Ограничения при использовании косвенной адресации
Ограничения при использовании косвенной адресации связаны с
применением вторичных стандартных числовых атрибутов. В приведенных
ниже примерах вторичные СЧА следуют за знаком "*".
*P2 X*V$VARX
FN*X$SAVEB FN*FN$FUNCCX
MX*X$AAA(P2,V$VAR)
Если вторичными СЧА являются переменные (V), функции (FN) и
матрицы ячеек (примеры из правого столбика), то операнды, содержа-
щие их, нельзя использовать в следующих случаях:
1) в качестве элементов переменных, а также переменных с пла-
вающей точкой и булевских переменных;
2) в качестве аргумента функции или в качестве значений функ-
ции типа Е или М;
3) для описания номера строки или столбца матрицы в СЧА мат-
рицы ячеек.
Примеры правильного использования косвенной адресации:
ADVANCE MX*V2(FN*P,2)
VARIABLE MX*P2(5,2)/5
BBB VARIABLE V*P2*FN*P3
XXX FUNCNION V*X$ONE,D15
SEIZE X*MX$BYTEM(1,2)
Примеры неправильного использования косвенной адресации:
ADVANCE MX*V2(FN*V4,2) ; V2 - ошибочный СЧА
BBB VARIABLE V*P2*FN*V3 ; V3 - ошибочный СЧА
XXX FUNCTION V*FN$YYY,D15 ; FN - ошибочный СЧА
3. ВНУТРЕННЯЯ ОРГАНИЗАЦИЯ
Существует много способов организации работы интерпретаторов
программ, непосредственно осуществляющих процесс моделирования. Од-
нако можно выделить общие для всех способов операции. Интерпретатор
должен прежде всего определять ближайшее следующее событие, которое
должно произойти. После того, как определено следующее событие (или
события), интерпретатор должен выполнить ряд проверок, чтобы опре-
делить, существуют ли в системе условия для наступления этого собы-
тия. Если условия существуют, то интерпретатор переходит к обработ-
ке события. В этот момент времени интерпретатор может собирать не-
которую статистическую информацию. Эта статистика впоследствии
является частью выходных данных, по которым можно судить о работе
моделируемой системы. Этот основной цикл (выявление ближайшего сле-
дующего события и его обработка) повторяется столько раз, сколько
нужно для завершения моделирования. По окончании моделирования ин-
терпретатор выполняет дополнительную статистическую обработку ин-
- 22 -
формации, накопленной в процессе моделирования.
Из сказанного выше ясно, что основной задачей, которую выпол-
няет интерпретатор, является просмотр возможных событий. Этот прос-
мотр должен быть организован так, чтобы затрачиваемое на него время
было минимальным.
Необходимо также рассмотреть вопрос об изменении условного
времени. Существует два способа изменения времени,и выбор одного из
этих способов влияет на организацию просмотра событий.
При первом способе значение времени изменяется с постоянным
приращением в 1 единицу. В этом случае целью просмотра является вы-
яснение того, должны ли произойти в данный момент какие-либо собы-
тия. Если таких событий нет, то значение условного времени изменя-
ется постоянным приращением в 1 единицу до тех пор, пока время нас-
тупления события не совпадет со значением условного времени.
При втором способе значение условного времени заменяется на
время наступления следующего события. В этом случае нужны 2 прос-
мотра: первый - для определения следующего значения условного вре-
мени, и второй - для выявления всех событий, которые могут произой-
ти в этот момент.
В случае, когда события распределены во времени не равномер-
но, как обычно и бывает при исследовании большинства систем, второй
из описанных способов, с точки зрения затрат машинного времени, бо-
лее выгоден. В GPSS/PC использован именно этот способ.
Если использовать некоторый специальный способ расположения
событий в хронологическом порядке, то можно значительно сэкономить
машинное время, так как отпадает необходимость каждый раз просмат-
ривать весь список событий. При этом следующее ближайшее событие
(или события) располагаются в начале списка. Однако, если в системе
в любой заданный момент времени присутствует много активных собы-
тий, перегруппировка информации при упорядочении списка обычно за-
нимает больше времени, чем его просмотр. Это затруднение можно пре-
одолеть, собрав все события вместе, не сортируя их. При этом каждое
событие связывается со следующим и предыдущим событиями. Когда нуж-
но включить в эту последовательность новое событие, список перес-
матривается, но перемещения всей информации не требуется. Первое и
последнее события в этом списке соответствующим образом идентифици-
руются.
Следующим вопросом, который необходимо учитывать при органи-
зации операции просмотра, является возможность наступления несколь-
ких событий в один и тот же момент условного времени. В таком слу-
чае необходимо сначала определить, требует ли логика моделируемой
системы, чтобы события, происходящие в один и тот же момент време-
ни, были расположены в определенном порядке. Если в моделируемой
системе существуют такие логические ограничения, то необходимо
просмотреть все события, которые должны произойти в данный момент
времени, и, прежде чем приступать к их обработке, определить их от-
носительные приоритеты.
При создании эффективной процедуры просмотра важно также ор-
ганизовать просмотр сообщений, движение которых заблокировано, нап-
ример, сообщений которые не могут войти в блок SEIZE из-за того,
что нужное устройство занято. Простейшим решением является просмотр
всех заблокированных сообщений для каждого нового значения условно-
го времени и выбор тех, которые могут произойти в данный момент.
Если моделируемая система перегружена, то этот способ с точки зре-
ния затраты машинного времени очень невыгоден, так как каждое сооб-