Некоторые замечания о неверном использовании регистратора очереди

Начинающие изучение GPSS могут составить неверное представление об использовании регистратора очереди. Два наиболее часто встречающихся ошибочных представления мы прокомментируем ниже.

Первой ошибкой является то, что многие считают, будто регистраторы очереди необходимо использовать в модели всюду, где могут возникать очереди. Часто думают, что если регистратор очереди не записан, то не обеспечивается возможность ожидания обслуживания. Это неверно. Использование регистратора очереди совершенно необязательно. При использовании регистратора интерпретатор собирает статистику об ожидании; если регистратор не используется, статистика не собирается, но всюду, где должно возникать ожидание, оно возникает. Например, на рис. 8.2 независимо от того, находится ли блок SEIZЕ между парой QUEUE - DEPART или нет, транзакт не войдет в блок SEIZЕ, если прибор JОЕ занят. Ожидание является следствием состояния прибора, а не следствием использования регистратора очереди.

Во многих случаях, даже если известно, что в определенных местах системы возникают очереди, разработчик предпочитает не использовать регистратор очереди. Если в планы не входит обработка статистических данных об очередях, то лучше не собирать статистику. Это сэкономит время, расходуемое на моделирование.

Для иллюстрации на рис. 8.4 изображена система, в которой в шести различных местах могут возникать очереди. Разработчик модели может принять решение собрать статистику во всех шести местах или не собирать ее вовсе; может принять решение собирать статистику в некоторых из этих мест модели или, например, собирать статистику в точках 2, 4, 5 и 6 и не собирать ее в точках 1 и 3.

Второй общей ошибкой, касающейся использования регистраторов очереди, является мнение, будто транзакт не является элементом очереди, если он не находится в блоке QUEUE. Это неверно. Транзакт просто отмечает факт своего присутствия в очереди входом в блок, где осуществляется привязка к очереди по имени и времени входа в очередь. Независимо от того, остается транзакт в блоке QUEUE или нет, он остается элементом очереди до тех пор, пока не войдет в блок DEРАRТ соответствующей очереди. В зависимости от того, каким образом построена модель, транзакт в общем случае может некоторое время находиться в различных частях модели после того, как он покинет блок QUEUЕ, и прежде, чем он войдет в соответствующий ему блок DEРАRТ.

Выше мы сделали предположение, что транзакт может являться элементом более чем одной очереди. Это вовсе не так уж странно, как может показаться на первый взгляд. Можно без труда придумать ситуацию, когда люди одновременно стоят в двух или даже более очередях. Здесь следует отметить, что находиться в очереди вовсе не значит физически в ней присутствовать.

Представим себе, например, случай прихода в мясной магазин покупательницы, которой приписан номер в момент входа в магазин. Если покупательница видит, что ее номер еще не дошел, она может пройти в другой магазин, например в бакалейный, стать там в очередь, обслужиться, снова вернуться в мясной магазин и ждать своей очереди. С точки зрения нахождения в очереди, она была в мясном магазине все время, хотя на самом деле она побывала и в бакалейном.

В GPSS транзакт не может присутствовать одновременно более чем в пяти очередях. Если транзакт уже находится в пяти очередях и делает попытку присоединиться к шестой, то печатается предупреждающее сообщение с номером 853. Причиной ограничения именно пятью очередями является наличие только пяти полей записи для имени очереди при привязке транзакта к очереди и пяти полей для записи времени присоединения к очереди.

9. "Логика работы интерпретатора"

В предыдущих параграфах мы описали операции, выполняемые интерпретатором. Это описание, тем не менее, не является достаточным. Например, нами был рассмотрен вопрос о движении транзактов от блока к блоку. Все еще не ясно, какой транзакт интерпретатор выберет следующим для продвижения в модели, когда другой транзакт прекратил двигаться, или в чем заключается суть дисциплины обслуживания очереди "первым пришел - первым обслужен внутри одного приоритетного класса". На эти вопросы можно будет дать удовлетворительный ответ только после того, как будет рассмотрена логика, на которой основана работа интерпретатора.

В основном логика работы интерпретатора становится понятной из рассмотрения механизма отслеживания пути транзактов, движущихся в модели. Интерпретатор рассматривает каждый транзакт как элемент одной или нескольких цепей. Каждый транзакт может быть представлен как звено в цепи. Цепи являются открытыми, а не замкнутыми, следовательно, они имеют два конца, начальный и конечный. В качестве элемента цепи транзакт занимает определенное положение относительно начала цепи. Положение транзакта в цепи тесно связано с тем, как скоро транзакт должен снова вернуться в модель для продолжения движения. Последовательность обработки, в свою очередь, тесно связана с временем возникновений событий при выполнении моделирования.

Существуют цепи:

 текущих событий;

 будущих событий;

 пользователя;

 прерывания;

 парности.

Имеется только одна цепь текущих и одна цепь будущих событий. В общем случае может существовать более чем одна цепь пользователя, цепь прерывания и цепь парности.

Цепь текущих событий состоит из тех транзактов, для которых планируется их продвижение в одном или нескольких блоках в течение текущего значения модельного времени или в течение ближайшего времени. В цепь текущих событий входят те транзакты, движение которых заблокировано ввиду текущих условий в модели. (По желанию пользователя транзакты могут быть перенесены из цепи текущих событий в цепь пользователя. Это можно сделать для уменьшения времени моделирования, использования нетипичной дисциплины обслуживания или для того и другого. Например, транзакт может быть временно заблокирован ввиду планирования его входа в блок SEIZE, когда требуемый прибор находится в состоянии "занято".

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

Описанные действия интерпретатора сведены в блок-схемы рис. 9.1 и 9.2. Далее будут описаны эти фазы и объяснено, как действует интерпретатор.

Рис. 9.1. Фаза коррекции таймера модельного времени интерпретатора GPSS.

Рис. 9.2. Фаза просмотра интерпретатора GPSS.

10. "Переход транзактов в блок, отличный от последующего. Блок ТRАNSFЕR (ПЕРЕДАТЬ)"

Иногда возникает необходимость передать транзакт безусловным образом в блок, отличный от последующего. Это можно выполнить, используя блок ТRANSFER (ПЕРЕДАТЬ) в режиме безусловной передачи. Использование блока в этом режиме показано на рис. 10.1. Операнд A при таком использовании блока не участвует.

Рис. 10.1

Блок TRANSFER (ПЕРЕДАТЬ) в режиме безусловной передачи
Операнд Значение Результат по умолчанию
A Не используется -----
B Позиция блока, в который должен перейти транзакт Ошибка

Операнд В указывает положение, занимаемое блоком, в который транзакт должен сделать попытку входа. Для краткости такой блок мы в дальнейшем просто будем именовать "В блоком". Положение блока может задаваться либо символически, либо в виде номера блока. Символическое имя использовать значительно более удобно.

На рис. 10.1 в скобках указан операнд В. Скобки используют только на блок-схеме модели; они не являются частью операнда и их не надо использовать в блоке ТRANSFER.

В режиме безусловной передачи блок ТRANSFER не может отказывать транзакту во входе. Когда транзакт входит в блок, он сразу же пытается войти в В блок. Если последний отказывает в этом, транзакт остается в блоке ТRANSFER и в цепи текущих событий. При каждом последующем просмотре цепи (либо при возобновлении просмотра в процессе выполнения фазы просмотра, либо в начале следующего выполнения фазы просмотра) снова делается попытка поместить транзакт в В блок. Возможно, что при каком-то просмотре попытка будет успешной.

Как уже было указано, такое использование блока ТRANSFER называется режимом безусловной передачи блока ТRANSFER. Существуют и альтернативные режимы использования блока ТRANSFER. Использование блока ТRANSFER в режиме безусловной передачи проиллюстрировано в примере моделирования 2В.

11. "Моделирование многоканальных устройств"

Два или более приборов часто работают рядом, выполняя аналогичное обслуживание. Такими приборами могут быть и люди и механизмы. Вот примеры того, как люди могут играть роль параллельно работающих приборов: парикмахеры; контролеры универсального магазина; косметички; служащие в конторе; контролеры в театре.

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

Прибор в GPSS используют для моделирования единственного устройства обслуживания. Два или более находящихся рядом обслуживающих устройства могут быть промоделированы на GPSS двумя или более приборами, располагаемыми рядом, т. е. параллельно. В самом деле, иногда необходимо использовать параллельные приборы, чтобы промоделировать параллельное обслуживание. Обычно к этому необходимо прибегать, когда отдельные приборы являются разнородными, т. е. характеризуются различными свойствами, например различной интенсивностью обслуживания.

Очень часто, однако, различные параллельно работающие приборы являются однородными. Это, грубо говоря, тот случай, когда некоторые устройства обладают определенными общими свойствами. Например, интенсивность, с которой контролер обслуживает покупателей в универмаге, не зависит от конкретного контролера, а является некоторой общей характеристикой.

GРSS предоставляет для моделирования однородных параллельных приборов специальное средство (или элемент). Для этого элемента используют название "многоканальное устройство". В модели может быть несколько многоканальных устройств, это отражает тот факт, что в системе существует большое число групп параллельно работающих приборов. Для того чтобы между ними было различие, многоканальным устройствам можно давать имена. Условия использования имен такие же, как и в случае приборов и очередей.

Число приборов, которое моделируется каждым из многоканальных устройств, определяется пользователем. В этом смысле употребляют термин "емкость многоканального устройства". В следующем параграфе описаны методы использования элемента "многоканальное устройство" и определения его емкости.

12. "Использование параллельно работающих каналов.
Блоки ЕNТЕR (ВОЙТИ) и LEAVE (ВЫЙТИ)"

В первой части параграфа описаны блоки, соответствующие многоканальным устройствам, рассмотрены основные методы их использования и дополнительные возможности этих блоков. Далее объяснены два метода определения емкости многоканальных устройств. И, наконец, обсуждено основное различие между такими элементами, как прибор и многоканальное устройство с емкостью, равной единице.

Основные методы использования блоков ЕNTER и LEAVE

Использование многоканального устройства для моделирования одного из параллельно работающих приборов аналогично использованию одиночного прибора. Элементом, который занимает и использует устройство, является транзакт. При этом события происходят в следующем хронологическом порядке:

1. транзакт ожидает своей очереди, если это необходимо;

2. транзакт занимает устройство;

3. устройство осуществляет обслуживание в течение некоторого интервала времени;

4. транзакт освобождает устройство.

Как и в случае с прибором, разработчик использует многоканальные устройства в модели, применяя пары дополняющих друг друга блоков. Эти блоки моделируют выполнение описанных выше событий 2 и 4. Когда транзакт входит в первый из этих блоков, моделируется событие "занятие одного из группы параллельно работающих приборов". Подобным же образом, когда транзакт входит во второй из этих блоков, моделируется выполнение события "освобождения параллельно работающего прибора". Блоками, соответствующими состояниям "занято" и "освобождено", являются ЕNТЕR (ВОЙТИ) и LEAVE (ВЫЙТИ). Эти два блока вместе с операндом А изображены на рис. 12.1.


Рис. 12.1. Блоки ENTER (ВОЙТИ) и LEAVE (ВЫЙТИ)с операндом А:

Блоки ENTER (ВОЙТИ) и LEAVE (ВЫЙТИ) с операндом А:
Операнд Значение Значение или результат по умолчанию
А Имя (символическое или числовое) многоканального устройства Ошибка

Операнд А в блоках ЕNТЕR и LEAVE используется для указания имени соответствующего многоканального устройства. Когда транзакт входит в блок ЕNТЕR, интерпретатор выполняет следующие действия:

1. "счетчик входов" многоканального устройства увеличивается на единицу;

2. "текущее содержимое" многоканального устройства увеличивается на единицу;

3. "доступная емкость" многоканального устройства уменьшается на единицу.

Подобным же образом, когда транзакт входит в блок LEAVE, интерпретатор выполняет следующие действия:

1. "текущее содержимое" многоканального устройства уменьшается на единицу;

2. "доступная емкость" многоканального устройства увеличивается на единицу.

В конце моделирования интерпретатор автоматически распечатывает такую статистику о многоканальных устройствах, как "счетчик входов", "текущее содержимое" и "максимальное содержимое". Также распечатывается значение "среднего времени пребывания" (т. е. средний интервал времени между различными занятиями и освобождениями).

Рассмотрим понятие "среднее время пребывания" более детально. Интерпретатор рассчитывает это значение с использованием полного числа единиц времени, в течение которого различные параллельно работающие приборы находятся в состоянии "занято". Существует только одно такое значение. Оно считается по всем приборам, моделируемым в этом многоканальном устройстве. Значение автоматически корректируется, когда это необходимо. Следовательно, в любое время интерпретатор может вычислить среднее время пребывания делением полного времени на "счетчик входов". Преимуществом такого подхода является учет всех приборов, в том числе и тех, которые еще находятся в занятом состоянии в момент выполнения расчета. Недостатком такого подхода является некоторое занижение статистики, поскольку часть приборов еще некоторое время должна быть занята, а это не учитывается при расчете.

Для каждого конкретного транзакта время нахождения в многоканальном устройстве (т. е. между моментами времени, когда он входит в блоки ЕNТЕR и LЕАVЕ) является интервалом, в течение которого одно из параллельно работающих устройств находится в занятом состоянии. Это означает, что среднее время пребывания идентично среднему времени нахождения транзакта в многоканальном устройстве. Вот почему эта статистика об использовании многоканального устройства распечатывается под названием АVЕRАGЕ ТIМЕ/ ТRАN (СРЕДНЕЕ ВРЕМЯ/ТРАН).

Очевидна аналогия между методом расчета интерпретатором статистики АVЕRАGЕ ТIМЕ/ТRАNS для очереди и АVERAGE ТIМЕ/ТRANS для многоканального устройства. Также должно быть ясно, почему интерпретатор не осуществляет привязку транзакта к имени многоканального устройства или к значению модельного времени при прохождении транзактом блока ЕNТЕR. Для многоканальных устройств расчет значения "нулевых входов" не представляет интереса. Это означает, что привязки не нужны, и, следовательно, не существует ограничений на то, сколько различных многоканальных устройств будет занято транзактом одновременно.

Блоки ЕNТЕR и LEAVE относятся к таким блокам, после обработки которых возобновляется просмотр цепи текущих событий от начала. Предположим, что перед тем, как остановиться в каком-либо блоке, транзакт прошел один из блоков ЕNТЕR и(или) LEAVE. В этом случае вместо того, чтобы перейти к обработке следующего по списку транзакта в цепи текущих событий, интерпретатор начинает заново просматривать цепь текущих событий.

13. "Многоканальная система массового обслуживания с очередью"

Типичный вариант использования многоканального устройства показан на рис. 13.1. Кроме блоков ЕNТЕR - АDVANCE - LEAVЕ (ВОЙТИ - ЗАДЕРЖАТЬСЯ - ВЫЙТИ), есть блоки QUЕUЕ - DEPART, которые собирают информацию об ожидании перед блоком ЕNТЕR (эта пара блоков необязательна). Необходимо рассмотреть два варианта обслуживания при моделировании системы, показанной на рис. 23.1. Первый - метод выбора прибора пользователем; второй - метод выбора пользователя прибором.

Рис. 13.1. Типичный пример моделирования с использованием многоканального устройства.

Очень часто при параллельном обслуживании перед каждым прибором образуется очередь. Когда пользователь приходит на обслуживание, он оценивает ситуацию и принимает решение, Именно в этом, наиболее часто используемом случае, название элемента STORAGE, которое должно бы быть переведено как НАКОПИТЕЛЬ, не соответствует его назначению. Вот почему при переводе этот элемент назвали многоканальным устройством.

Рис. 13.2. Пример системы многоканального обслуживания с одной очередью.

Приборы, которые являются частью многоканального устройства, не имеют своей индивидуальности. Это означает, что нет возможности разделить очереди по каждому прибору. Следовательно, реализуется концепция: если подошла очередь какого-либо пользователя, то он идет на обслуживание к любому свободному прибору. Это эквивалентно наличию единственной очереди перед устройством с многоканальным обслуживанием. Приходящий пользователь просто становится в очередь. Когда подходит его очередь, он идет на любой свободный прибор (рис. 13.2).

При этом следует заметить, что хотя пользователи не могут выбирать прибор, приборы могут выбрать пользователей. Приборы выбирают из очереди пользователей, упорядоченных по приоритетному признаку. Когда прибор освобождается, он выбирает пользователя по принципу "первым пришел - первым обслужен внутри приоритетного класса".

Приборы, которые моделируются многоканальным устройством, реализуют в GPSS такой выбор автоматически. Это происходит потому, что транзакты, ожидающие входа в блок ЕNТЕR (см. рис. 13.1), отсортированы в цепи текущих событий в порядке убывания их уровней приоритетов.

После прохождения транзактом блока LЕАVЕ освобождение одного или более приборов вызывает возобновление просмотра цепи текущих событий. Свободный прибор занимается высокоприоритетным транзактом, причем тем из них, который ждет дольше всех. Эта ситуация проиллюстрирована на рис. 13.3.

Рис. 13.3. Многоканальная система массового обслуживания с одной очередью и приоритетами.

Приходящие пользователи не просто становятся в конец очереди, а вливаются в очередь как последние элементы своего приоритетного класса. Рис. 13.3 является повторением рис. 13.2, внесены лишь различия в приоритетах пользователей. Схема многоканального обслуживания с одной очередью часто используется в реальных ситуациях. Это справедливо для тех случаев, когда элементы, ожидающие обслуживания, неодушевленны и однородны, что часто бывает на практике. Это, например, имеет место, когда из цеха в цех по конвейеру двигаются некоторые детали. И хотя в цехах могут быть люди, работающие параллельно, работа их идентична и поступает из единого источника.

Многоканальная система массового обслуживания с одной очередью также часто используется и в случае, когда осуществляется обслуживание людей. Такими примерами являются банки, где реализуется система быстрой очереди. Человек, входя в банк, не выбирает себе окошко и не становится в очередь к нему, а становится в конец общей очереди, которая ведет ко всем окошкам. При таком подходе невозможно обогнать других клиентов, время обслуживания которых больше обычного (например, клиентов, открывающих новый счет или покупающих или выписывающих аккредитив).

Очень часто при параллельном обслуживании образуется несколько различных очередей. Моделирование такой многоканальной системы обслуживания с несколькими очередями сложнее, чем моделирование многоканальных систем с единственной очередью. Например, надо определить критерий выбора очередей требованиями. Когда приходит новое требование, этот критерий следует использовать для определения очереди, к которой ему следует присоединиться. Также следует предусмотреть возможность перехода из очереди в очередь. Если очередь двигается слишком медленно, то стоящие в конце очереди могут захотеть перейти в другую очередь.

14. "Управляющие карты GPSS. Карта RESET (СБРОСИТЬ)"

Начальные условия модели могут заметно отличаться от тех условий, которые имеют место при достижении системой устойчивого состояния. Некоторые системы могут вовсе не достигать устойчивого состояния. Хорошим примером такой системы является работа банка. В период между открытием банка в 9 ч 30 мин утра и закрытием в 15 ч 00 мин дня условие его работы в значительной степени зависит от времени дня.

Рассмотрим еще раз пример моделирования 2Е. При типичных условиях функционирования некоторые из находящихся в работе машин должны быть в конце времени наработки до отказа, другие должны только начинать работу и т. д. Следовательно, время, оставшееся до отказа работающих машин, будет распределено равномерно в интервале от нуля до некоторого максимального времени работы.

В начале моделирования состояние системы, приведенной на рис. 14.1, таково, что все 50 машин, находящихся в работе, только что вошли в действие. Поскольку время наработки до отказа для каждой швейной машины распределено равномерно и равно 157 ± 25 ч, то ни одна из этих машин не может выйти из строя ранее значения модельного времени 132.

Рис. 14.1

Нагрузка многоканального устройства как функция различных соотношений "число рабочих - число машин"
Число рабочих Число арендуемых машин
     
  0.983 0.989 0.992
  0.989 0.993 0.997
  0.991 0.993 0.997

Это означает, что в начале моделирования оставшееся время работы находящихся в производстве машин нереально. В то же время условия функционирования при различных соотношениях "рабочие - машины" изучаемой системы должны определяться при достижении моделью реальных условий, в противном случае это может привести к неверным выводам.

Теперь посмотрим, как же можно обеспечить возможность определения типичного значения или значений соответствующих статистических данных. Интересующей нас статистикой в примере моделирования 2Е является нагрузка многоканального устройства NOWON (как показано в предыдущем параграфе, стоимость падения выпуска продукции зависит именно от этой статистики; эта стоимость, в свою очередь, является основой для выбора оптимальных условий функционирования). Для получения достоверной статистики существуют три подхода:

1. Модель надо разработать так, чтобы условия функционирования были типичными с самого начала. Затем можно начать моделирование и сразу же снимать статистические данные.

2. Можно моделировать систему так долго, что любые нетипичные статистические данные, собранные в самом начале процесса моделирования, "утонут" среди типичных данных, собранных в последующее время моделирования. Иными словами, надо сделать так, чтобы нетипичные данные составляли малый процент от полного объема данных и тем самым не имели сколько-нибудь заметного влияния.

3. Можно поступать следующим образом:

o моделировать до возникновения типичных условий работы системы;

o отбросить собранную до этого времени статистику без изменения состояния модели;

o продолжить моделирование, собирая статистику, на которую уже не влияют нетипичные ситуации.

Первый подход требует от разработчика знания типичных условий работы и умения внести в модель эти условия. В моделях сложных систем первое требование вряд ли выполнимо. Даже если бы он мог это сделать, то удовлетворить второе требование весьма затруднительно.

В примере 2Е потребовалось больше времени для преодоления искажений статистических данных о нагрузке, возможных в начале моделирования. Конечно, использование карты RESET для устранения этого искажения является более предпочтительным, чем длительное моделирование без сброса. Результаты, получаются более просто, а время моделирования значительно меньше.

Дополнительно следует указать, что после того, как модель создана, работа исследователя только начинается. Его следующей задачей обычно является экспериментирование с моделью, для того чтобы выяснить:

1. сколько времени необходимо для выхода в стационарный режим и

2. сколько времени необходимо вести моделирование, полагая, что стационарный режим уже достигнут.

Более того, вопросы "сколько времени" зависят в общем случае от характера статистических данных, которые интересуют разработчика, и от конфигурации моделируемой системы. Пример моделирования 2Е оказался достаточно простым, поскольку только один параметр статистики представлял для нас интерес, а именно нагрузка многоканального устройства. Кроме того, мы неявно предполагали, что ответы на вопросы "сколько времени" при комбинации "четверо рабочих - четыре арендуемые машины" справедливы и при всех прочих изучаемых комбинациях. Хотя это предположение, по-видимому, вполне справедливо в нашем случае, в общем случае это может быть не так. Следовательно, ответы на вопросы "сколько времени" должны даваться неоднократно при изучении только одной задачи.

В задачу данного руководства не входит рассмотрение дальнейших деталей вопроса сбора статистики при моделировании. Мы не станем больше задерживаться и на разработке стратегий, которых следует придерживаться при исследовании моделей так же подробно, как и в последнем примере. Однако при тщательном моделировании эти два аспекта являются обязательными.

15. "Описание стандартов для записи примеров моделирования"

Для иллюстрации различных возможностей GPSS будут рассмотрены примеры моделирования. Ниже указаны элементы описания примеров.

1. Постановка задачи. Она включает детальное описание задачи. Такое описание достаточно для того, чтобы по нему можно было строить модель и выполнять ее прогоны (т. е. моделировать систему).

2. Метод построения модели. Здесь описывают и поясняют, каким образом задачу можно интерпретировать в терминах GPSS. Сделана попытка объяснить, почему избран именно такой подход.

3. Таблица определений. Таблица определений является списком различных элементов GPSS, использованных в модели, с краткой характеристикой тех частей системы, которые описываются этими элементами. В начале этой таблицы записывается принятая в модели единица времени. Затем записывается представление транзактов. Далее в алфавитном порядке описываются все прочие элементы модели и части моделируемой системы.

4. Блок-схема. В определенном смысле блок-схема и есть модель. Подробная блок-схема может оказаться трудночитаемой. По этой причине рядом с блоком в блок-схеме пишут пояснения (или комментарии). Комментариями являются краткие сведения, указывающие, что моделирует или чем помогает моделированию данный блок.

5. Распечатка программы. В процессе чтения строк, представляющих собой вариант модели, интерпретатором GPSS выполняются следующие три этапа:

o присваивается номер каждому блоку модели (т. е. номер его месторасположения);

o присваивается номер каждой считываемой строке;

o по каждой строке на печатающем устройстве распечатываются:

§ номер блока (если строка представляет собой блок);

§ информация, находящаяся в полях имени, операции и операндов строки, а также комментарии, если они есть;

§ номер строки.

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

6. Выходные данные программы. Распечатка результатов, выдаваемая в процессе моделирования, показывает, чего фактически достиг разработчик своими силами. Она служит основой для обсуждения. Часто представляют лишь части выходных данных. Это сделано для экономии места и для сосредоточения внимания читателя на той части выходных данных, которая для него наиболее интересна. В некоторых случаях вместо непосредственной распечатки просто представляют выводы.

7. Обсуждение. Сюда входит обсуждение логики моделирования, использования модели и распечатки результатов.

Логика моделирования. Здесь рассматривают особенности блок-схемы и ее соотношение с самой задачей или дают конкретный метод интерпретации задачи в терминах GPSS.

Использование модели. Перфокарточная версия модели содержит карты блоков, а также карты, имеющие прочую информацию. Например, карта SТАRТ, рассмотренная в параграфе 3, должна обязательно быть включена как элемент модели. В блок-схеме не существует блока, который соответствовал бы карте SТАRТ. Есть и другие возможности включения информации, в явном виде не присутствующей в блок-схеме. При необходимости такая информация будет появляться в распечатке программы.

Распечатка результатов. Результаты можно рассматривать как некий ответ на поставленную задачу. Основным назначением примеров моделирования, тем не менее, является иллюстрация методов построения моделей на GPSS, а не числовых результатов задачи. Поэтому результатам работы программ уделяется не очень много внимания.


СПИСОК РЕКОМЕНДУЕМОЙ ЛИТЕРАТУРЫ

1. Кудрявцев Е.М. GPSS World. Основы имитационного моделирования различных систем. – М.: ДМК Пресс, 2004.

2. Шакин В.Н., Воробейчиков Л.А., Шибанов С.Е., Семенова Т.И. Моделирование систем и сетей связи: Учебное пособие/МИС.- М., 1988.

3. Игельник Б.М., Лившиц В.М., Шибанов С.Е. Аналитическое моделирование систем связи: Учебное пособие/МИС. — М., 1989.

4. Шакин В.Н., Лившиц В.М. Принципы построения локальных сетей и анализ их характеристик: Учебное пособие для слушателей ФПКП/ МИС. — М., 1990.

5. Методические указания по использованию средств имитационного моделирования систем и сетей связи для слушателей ФПКП/ Л.А.Воробейчиков, В.Н.Шакин, С.Е.Шибанов/МИС. — М., 1990.

6. Шеннон Р. Имитационное моделирование систем —искусство и наука: Пер. с англ. — М.: Мир, 1978.

7. Максимей И.В. Имитационное моделирование на ЭВМ. — М.: Радио и связь, 1988.

8. Шрайбер Т.Дж. Моделирование на GPSS: Пер. с англ. — М.: Машиностроение, 1980.

9. GPSS/PC general purpose simulation. Reference Manual. —Minuteman software. P.O. Box 171. Stow, Massachusetts 01775, 1986.

10. Норенков И.П. Разработка САПР.- М, МГТУ им.Баумана,1994


Для заметок


Для заметок


Подписано в печать 22.11.2005.

Формат 60х84 1/16. Усл.п.л. 2,56,

Уч.-изд.л. 2,3. Тираж 50.

Заказ № 259

______________________________

Издательство ВСГТУ. г. Улан-Удэ,

ул. Ключевская, 40. в.

© ВСГТУ, 2005 г.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: