ТЕМА (1086517), страница 7
Текст из файла (страница 7)
Комментарии используют для документации модели.Карты 2,3,4,12,13,14,17,18 и 19 на рис.2А.2, б являются комментариями и не являются частью сегментов модели или управляющими картами. Символ * в первой колонке (см. рис.2А.2, а) указывает на то, что карта является комментарием. Карты-блоки также могут быть прокомментированы в поле операнда. Эти комментарии аналогичны тем, которые были рассмотрены ранее и стояли рядом с блоками на рис.2A.1.
На рис.2А.2,б первой картой является карта SIMULATE (МОДЕЛИРОВАТЬ). Если разработчик намерен выполнить прогон модели, то обычно эта карта стоит в начале колоды. На карте записано одно слово SIMULATE, помещенное в поле операции. Если эта карта отсутствует, то интерпретатор проверяет правильность записи модели на языке GPSS, но прогона модели не выполняет.
Моделирование начинается после того, как интерпретатором в модели найдена карта START. Это объясняет, почему карта должна стоять в конце программы-модели (карта 20). Цифра 1 должна быть помещена как операнд А карты START.
После того, как прогон модели завершен, работа ЭВМ над моделью еще не заканчивается. У разработчика остается много возможностей для продолжения работы. Независимо от того, используются ли эти возможности, существует некоторая точка в модели, перед которой помещены все команды управления прогонами. Здесь должна быть размещена карта END (ЗАКОНЧИТЬ). Эта карта побуждает интерпретатор вернуть управление в операционную систему. Карта END следует после карты START на рис.2А.2, б. Она состоит из слова END, занесенного в поле операции.
Для модели в целом очень важен порядок, в котором располагаются карты сегментов модели, но порядок расположения сегментов безразличен. Например, сегмент таймера может располагаться до основного сегмента на рис.2А.2 без какого-либо влияния на результат моделирования. Распечатка программы в этом случае будет такой, как показано на рис. 2А.4.
Распечатка результатов. Ни из блок-схемы, ни из распечатки программы не видно, откуда получаются те или иные выходные результаты. По завершении моделирования интерпретатор GPSS автоматически распечатывает некоторое количество информации о поведении модели. Эта информация включает статистические данные по каждому из элементов, используемых в модели,т.е. по каждому из приборов и очередей (и других видов элементов,пока еще не рассмотренных).
Рис. 2A.3. Часть распечатки примера моделирования 2A:
а - ассемблированная модель;
б - словарь символов приборов;
в - словарь символов для очереди;
г - значения времени и счетчик блоков;
д - статистические данные по приборам;
е - статистические данные по очередям.
Русские эквиваленты названий элементов статистик, распечатываемых
по-английски, приведены в описании результатов.
а)
| * * MODEL SEGMENT 1 * 1 GENERATE 18 6 2 QUEUE 1 3 SEIZE 1 4 DEPART 1 5 ADVANCE 16 4 6 RELEASE 1 7 TERMINATE * * MODEL SEGMENT 2 * 8 GENERATE 480 9 TERMINATE 1 * * CONTROL CARDS * START 1 |
б)
| FACILITI SIMBOLS AND CORRESPONDING NUMBERGS 1 JOE |
в)
| QUEUE SYMBOLS AND CORRESPONDING NUMBERS 1 JOEQ |
г)
| RELATIVE CLOCK 480 ABSOLUTE CLOCK 480 BLOCK COUNTS BLOCK CURRENT TOTAL BLOCK CURRENT TOTAL BLOCK CURRENT TOTAL 1 0 27 2 1 27 3 0 26 4 0 26 5 1 26 6 0 25 7 0 25 8 0 1 9 0 1 |
д)
| FACILITI AVERAGE NUMBER AVERAGE SEIZING PREEMPTING UTILISATION ENTRIES TIME/TRAN TRANS. NO. TRANS. NO. JOE .860 26 15.884 3 |
е)
| QUEUE MAXIMUM AVERAGE TOTAL ZERO PERCENT AVERAGE SAVERAGE CONTENTS CONTENTS ENTRIES ENTRIES ZEROS TIME/TRANS TIME/TRANS JOEQ 1 .160 27 12 44.4 2.851 5.133 SAVERAGE TIME/TRANS = AVERAGE TIME/TRANS EXPLODING ZERO ENTRIES |
Основные результаты, полученные при моделировании (см. рис.2А.2), представлены на рис.2А.З. На рис. 2А.З,а показана модель после ее ассемблирования (процесс трансляции с исходного языка в некоторый промежуточный объектный код. После ассемблирования все символические имена заменяются на числовые).Она обладает следующими четырьмя особенностями:
-
Абсолютный номер блока, присвоенный интерпретатором, повторяется в объектном коде модели. Такими номерами являются номера 1 - 9 в левой колонке рис.2А.З,а.
-
Операнды расположены не в смежных колонках и не разделены запятой. Они теперь расположены в полях по шесть колонок каждый и выровнены по левому краю (из рис. 2А.3, а пока явно не видно, что для операндов используют поля именно по шесть колонок).
-
Все символические имена элементов в модели заменены на соответствующие им числовые эквиваленты, присвоенные интерпретатором. Например, операнд А блока QUEUE (блок 2) теперь равен 1, а не JOEQ,операнд А блока SEIZE (блок 3) теперь равен 1, а не JOE, и т.д.
-
Комментарии, входящие в строки блоков модели, пропадают. Чистые карты - комментарии, т. е. карты, имеющие в первой колонке звездочку, не пропадают. Они целиком сохраняются в распечатке объектного кода модели.
На рис.2А.З, б,в представлены перечни при боров и очередей. В перечне приборов представлены все числовые эквиваленты,присвоенные символическим именам приборов. Прибору с символическим именем JOE, в частности, присвоен номер 1 и в объектном коде модели; очередь с символическим именем JOEQ получила номер 1.Эти номера являются операндами А блоков SEIZE - RELEASE и QUEUE - DEPART на рис.2А.3,а. Если используются символические имена блоков, то в распечатке программы появляется соответствие между именами и их номерами.
На рис.2А.З,г изображены значения времени и список блоков. В верхней строке рисунка указаны два значения времени - относительное и абсолютное. Различие между ними мы определим позднее. А сейчас достаточно заметить, что оба значения времени показывают 480. Это означает,что завершение моделирования произошло в момент модельного времени, равный 480.Сразу же за строкой времени на рис.2А.З,г дан список блоков. Он размещен в трех колонках: номер блока, помеченный на рисунке словом BLOCK (БЛОК),счетчик текущего содержимого, помеченный как CURRENT (ТЕКУЩЕЕ), и общее число входов, помеченное как TOTAL (ОБЩЕЕ). Номера блоков соответствуют номерам, показанным на рис.2A.3,а.
Счетчик текущего содержимого является счетчиком транзактов,находящихся в соответствующих блоках в момент завершения моделирования. Счетчик входов является счетчиком общего числа транзактов, которые вошли в соответствующие блоки в течение периода моделирования, включая также те из них, которые все еще находятся в блоке (если таковые имеются). Например, счетчик входов в блок 1 (рис.2А.З, г) равен 27. Это значит, что 27 транзактов вошло в модель через блок GENERATE, стоящий на первом месте. Аналогично, счетчик входов в блок 2 равен 27, это означает, что 27 транзактов вошло в блок QUEUE, стоящий на втором месте. Счетчик текущего содержимого в блоке 2 равен 1. Это означает, что только один транзакт все еще находится в блоке QUEUE,т.е. один клиент ждал обслуживания в момент завершения работы модели. В блоке 5,т.е. блоке ADVANCE, счетчик текущего содержимого равен 1, а счетчик входов равен 26. Это значит, что парикмахер обслуживал 26 клиентов, из этих 26 один все еще находится на обслуживании. Счетчики входов в блоках SEIZE и RELEASE равны 26 и 25 соответственно; это согласуется со значением счетчика блока ADVANCE.
Рис.2А.4. Распечатка программы моделирования 2А с перестановкой сегментов модели.
| BLOCK NUMBER *LOC OPERATION A,B,C,D,E,F,G COMMENTS SIMULATE * * MODEL SEGMENT 2 * 1 GENERATE 480 TIME ARRIVES AT TIME 480 2 TERMINATE 1 SHUT OFF THE RUN * * MODEL SEGMENT 1 * 3 GENERATE 18,6 CUSTOMERS ARRIVE 4 QUEUE JOEQ ENTERTHE LINE 5 SEIZE JOE CAPTURE THE BARBER 6 DEPERT JOEQ LEAVE THE LINE 7 ADVANCE 16,4 USE THE BARBER 8 RELEASE JOE FREE THE BARBER 9 TERMINATE LEAVE THE SHOP * * CONTROL CARDS * START 1 SRART THE RUN END RETURN CONTROL TO OPERATING SYSTEM |
На рис.2А.З,д,е показаны статистические данные, собранные о работе прибора JOE и очереди JOEQ. Еще раз статистические данные о работеприборапоказаны на рис.2A.5; здесь колонки пронумерованы для удобства дальнейших ссылок. В таблице к рис.2А.5 даны значения элементоввразличных колонках. Аналогично, на рис. 2А.6 повторена часть распечатки статистических данных об очереди вместе с номерами колонок. В нижнейчасти рисунка указаны значения данных,располагаемых в колонках.Рассмотрим подробнее таблицы к рис.2А.5 и 2А.6 со ссылкой на распечатку результатов. Они выдают следующую информацию:
-
Прибор JOE использовался в течение 86% времени, AVERAGE UTILIZATION (НАГРУЗКА) = 860.
-
Прибор JOE был занят обслуживанием 26 раз, NUMBER ENTRIES (ЧИСЛО ВХОДОВ) = 26. Это соответствует ранее рассмотренному значению счетчика входов, равному 26 для блока SEIZE.
-
Среднее время интервала обслуживания прибора JOE равно 15,884 мин, AVERAGE TIME/TRANS (СРЕДНЕЕ ВРЕМЯ/ТРАН) = 15.884.
-
Транзакт номер 3 находился на обслуживании приборомJOEвмоментзавершения моделирования SEIZING TRANS.NO. (НОМЕР ОБСЛУЖИВ. ТРАНЗ.) = 3. Тот факт, что JOE был занят призавершении моделирования, соответствует ранее рассмотренному значению счетчика текущего содержимого, равного 1 для блока ADVANCE.
-
В очереди JOE никогда не было более одного клиента,МАХIMUMCONTENTS (МАКСИМАЛЬНОЕ СОДЕРЖИМОЕ) = 1.
-
Среднее число клиентов, находившихся в очереди, равно 0,160, AVERAGE CONTENTS (СРЕДНЕЕ СОДЕРЖИМОЕ) = 160.
-
Числом входов в очередь является27, TOTAL ENTRIES (ОБЩЕЕ ЧИСЛО ВХОДОВ) = 27.
-
Среди этих 27 входов в очередь было 12 нулевых, ZERO ENTRIES (НУЛЕВЫХ ВХОДОВ) = 12.
-
Из общего числа входов в очередь 44,4% было нулевых, PERCENT ZEROS (ПРОЦЕНТ НУЛЕВЫХ) = 44,4.
-
Среднее время нахождения в очереди на один вход (включая нулевые входы) равно 2,851 мин,AVERAGE TIME/TRANS (СРЕДНЕЕ ВРЕМЯ/ТРАНЗ.) = 2,851.
-
Среднее время нахождения в очереди на один ненулевой вход равно5,133мин, $ AVERAGE TIME/ TRANS ($ СРЕДНЕЕ ВРЕМЯ/ТРАНЗ.) * = 5.133.
-
В момент завершения моделирования один транзакт находился в очереди, CURRENT CONTENTS(ТЕКУЩЕЕ СОДЕРЖИМОЕ) = 1.Это соответствует рассмотренному ранее значению счетчика текущего содержимого для блока QUEUE (СТАТЬ В ОЧЕРЕДЬ), равного единице.
Рис.2А.5 Описание элементов, показанных на рисунке 2А.3, д.
| FACILITI | AVERAGE | NUMBER |
| UTILIZATION | ENTRIES | |
| JOE | .860 | 26 |
|
|
|
|
|
|
|
|
| AVERAGE | SEIZIHG | PREEMPTING |
| TIME/TRAN | TRANS.NO. | TRANS.NO |
| 15.884 | 3 | |
|
|
|
|
| Описание элементов, показанных на рисунке 2А.3, д | |
| Колонка | Значение |
| 1 | Имена(символические или числовые) приборов, используемых в модели |
| 2 | Доля времени, в течении которого соответсвующие приборы были в состоянии занятости |
| 3 | Число обслуживаний |
| 4 | Средняя продолжительность одного обслуживания |
| 5 | Номер транзакта(если такой есть), который в настоящее время находится на обслуживании |
| 6 | Номер транзакта(если такой есть), который в настоящее время занял("захватил") прибор |
Статистические данные, приведенные на рис. 2А.5 и 2А.6, понятны и почти не требуют дополнительных пояснений. Это особенно справедливо для приборов. Так как только один транзакт в единицу времениможет использовать прибор, NUMBER ENTRIES берется непосредственно из счетчика числа транзактов,находившихся на приборе, а AVERAGE TINE/TRANS является средним временем обслуживания транзактов, находившихсянаприборе.Также просто все можно было бы описать, еслибыоперанд В блоков QUEUE и DEPART всегда был равен 1 (для примера моделирования 2А это справедливо, таккакоперанд В определен по умолчанию). Вспомним, чтоприописании очередей указывалось, что интерпретаторсчитает статистику в соответствии с элементами содержимого, а не транзактами. В примере моделирования2А (и в пособии вообще) каждый транзакт, входящий в очередь, указываетвточности на один элемент содержимого.Если бы это было не так, необходимо было бы описать статистические данные очереди следующим образом.















