Системы и сети связи на GPSS/ PC - (диплом)
p>В поле A задается число создаваемых копий исходного транзакта (родителя), входящего в блок SPLIT. После выхода из блока SPLIT транзакт-родитель направляется в следующий блок, а все транзакты-потомки поступают в блок, указанный в поле B. Если поле B пусто, то все копии поступают в следующий блок.

Транзакт-родитель и его потомки, выходящие из блока SPLIT, могут быть пронумерованы в параметре, имя или номер которого указаны в поле C. Если у транзакта-родителя значение этого параметра при входе в блок SPLIT было равно k, то при выходе из блока оно станет равным k+1, а значения этого параметра у транзактов-потомков окажутся равными k+2, k+3 и т. д.

    Например, блок

SPLIT 5, MET1, NUM создает пять копий исходного транзакта и направляет их в блок с именем MET1. Транзакт-родитель и потомки нумеруются в параметре с именем NUM. Если, например, перед входом в блок значение этого параметра у транзакта-родителя было равно 0, то при выходе из блока оно станет равным 1, а у транзактов-потомков значения параметра NUM будут равны 2, 3, 4, 5 и 6. 2. 2. Блоки, связанные с аппаратными объектами

Все примеры моделей, рассматривавшиеся выше, пока еще не являются моделями систем массового обслуживания, так как в них не учтена основная особенность СМО: конкуренция заявок на использование некоторых ограниченных ресурсов системы. Все транзакты, входящие в эти модели через блок GENERATE, немедленно получают возможность "обслуживания" в блоке ADVANCE, который никогда не "отказывает" транзактам во входе, сколько бы транзактов в нем не находилось. Для моделирования ограниченных ресурсов СМО в модели должны присутствовать аппаратные объекты: одноканальные или многоканальные устройства. Одноканальные устройства создаются в текущей модели при использовании блоков SEIZE (занять) и RELEASE (освободить), имеющих следующий формат:

    1
    имя SEIZE A
    1. 5
    имя RELEASE A

В поле A указывается номер или имя устройства. Если транзакт входит в блок SEIZE, то устройство, указанное в поле A, становится занятым и остаётся в этом состоянии до тех пор, пока этот же транзакт не пройдёт соответствующий блок RELEASE, освобождая устройство. Если устройство, указанное в поле A блока SEIZE, уже занято каким-либо транзактом, то никакой другой транзакт не может войти в этот блок и остаётся в предыдущем блоке. Транзакты, задержанные (заблокированные) перед блоком SEIZE, остаются в списке текущих событий и при освобождении устройства обрабатываются с учетом приоритетов и очередности поступления.

Каждое устройство имеет следующие СЧА: F - состояние устройства (0 - свободно, 1 - занято); FR - коэффициент использования в долях 1000; FC - число занятий устройства; FT - целая часть среднего времени занятия устройства. Воспользуемся блоками SEIZE и RELEASE для моделирования одноканальной СМО с ожиданием (рис. 7). Теперь блок ADVANCE находится между блоками SEIZE и RELEASE, моделирующими занятие и освобождение устройства с именем SYSTEM, и поэтому в нем может находиться только один транзакт. Транзакты, выходящие из блока GENERATE в моменты занятости устройства, не смогут войти в блок SEIZE и будут оставаться в блоке GENERATE, образуя очередь в списке текущих событий. 1

    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 100, FN$EXP
    SEIZE SYSTEM
    ADVANCE 80, FN$EXP
    RELEASE SYSTEM
    TERMINATE 1
    1. 5
    Рис. 7

Для моделирования захвата (прерывания) одноканального устройства вместо блоков SEIZE и RELEASE используются соответственно блоки PREEMPT (захватить) и RETURN (вернуть). Блок PREEMPT имеет следующий формат:

    имя PREEMPT A, B, C, D, E

В поле A указывается имя или номер устройства, подлежащего захвату. В поле B кодируется условие захвата. Если это поле пусто, то захват возникает, если обслуживаемый транзакт сам не является захватчиком. Если же в поле B записан операнд PR, то захват возникает, если приоритет транзакта-захватчика выше, чем приоритет обслуживаемого транзакта.

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

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

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

Для создания в модели многоканальных устройств (МКУ) они должны быть предварительно определены с помощью операторов определения STORAGE (память), имеющих следующий формат:

имя STORAGE A Здесь имя - имя МКУ, используемое для ссылок на него; A - емкость (количество каналов обслуживания) МКУ, задаваемая константой. Для занятия и освобождения каналов обслуживания МКУ используется пара блоков ENTER (войти) и LEAVE (покинуть), имеющих следующий формат: 1

    имя ENTER A, B
    1. 5
    имя LEAVE A, B

В поле A указывается номер или имя МКУ, в поле B - число каналов МКУ, занимаемых при входе в блок ENTER или освобождаемых при входе в блок LEAVE. Обычно поле B пусто, и в этом случае по умолчанию занимается или освобождается один канал.

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

При входе транзакта в блок LEAVE текущее содержимое МКУ уменьшается на число единиц, указанное в поле B. Не обязательно освобождается такое же число каналов МКУ, какое занималось при входе данного транзакта в блок ENTER, однако текущее содержимое МКУ не должно становиться отрицательным.

Многоканальные устройства имеют следующие СЧА: S - текущее содержимое МКУ; R свободная емкость МКУ; SR - коэффициент использования в долях 1000; SA - целая часть среднего содержимого МКУ; SM максимальное содержимое МКУ; SC - число занятий МКУ; ST - целая часть среднего времени занятия МКУ. Воспользуемся блоками ENTER-LEAVE и оператором STORAGE для моделирования двухканальной СМО с ожиданием (рис. 8). Если текущее содержимое МКУ с именем STO2 меньше 2, т. е. в блоке ADVANCE находится один или ни одного транзакта, то очередной транзакт, поступающий в модель через блок GENERATE, может войти в блок ENTER и затем в блок ADVANCE. Если же текущее содержимое МКУ равно 2, то очередной транзакт остается в блоке GENERATE, образуя очередь в списке текущих событий. По истечении задержки одного из двух обслуживаемых транзактов в блоке ADVANCE и после входа его в блок LEAVE первый из заблокированных транзактов сможет войти в блок ENTER.

    1
    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 100, FN$EXP
    ENTER STO2
    ADVANCE 160, FN$EXP
    LEAVE STO2
    TERMINATE 1
    1. 5
    Рис. 8

К аппаратным объектам относятся также логические переключатели (ЛП), которые могут находиться в двух состояниях: "включено" и "выключено". В начале моделирования все ЛП находятся в состоянии "выключено". Отдельные переключатели могут быть установлены в начальное состояние "включено" с помощью оператора INITIAL (инициализировать), имеющего следующий формат: 1

    INITIAL LS$ имя
    1. 5
    INITIAL LS j

Здесь имя и j - соответственно имя и номер ЛП, устанавливаемого в начальное состояние "включено".

Для включения, выключения и инвертирования логических переключателей в процессе моделирования служит блок LOGIC (установить ЛП), имеющий следующий формат: имя LOGIC X A

В поле A указывается имя или номер ЛП. Вспомогательный операнд X указывает вид операции, которая производится с логическим переключателем при входе транзакта в блок: S - включение, R - выключение, I - инвертирование. Например: 1

    LOGIC S 9
    1. 5
    LOGIC R FLAG

Логические переключатели имеют единственный СЧА с названием LS. Значение СЧА равно 1, если ЛП включен, и 0, если он выключен.

    2. 3. Блоки для сбора статистических данных

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

Объекты типа очередь создаются в модели путем использования блоков регистраторов очередей: QUEUE (стать в очередь) и DEPART (уйти из очереди), имеющих следующий формат:

    1
    имя QUEUE A, B
    1. 5
    имя DEPART A, B

В поле A указывается номер или имя очереди, а в поле B - число единиц, на которое текущая длина очереди увеличивается при входе транзакта в блок QUEUE или уменьшается при входе транзакта в блок DEPART. Обычно поле B пусто, и в этом случае его значение по умолчанию принимается равным 1. Для сбора статистики о транзактах, заблокированных перед каким-либо блоком модели, блоки QUEUE и DEPART помещаются перед и после этого блока соответственно. При прохождении транзактов через блоки QUEUE и DEPART соответствующим образом изменяются следующие СЧА очередей: Q - текущая длина очереди; QM - максимальная длина очереди; QA - целая часть средней длины очереди; QC - общее число транзактов, вошедших в очередь; QZ - число транзактов, прошедших через очередь без ожидания (число "нулевых" входов); QT целая часть среднего времени ожидания с учетом "нулевых" входов; QX - целая часть среднего времени ожидания без учета "нулевых" входов. Дополним приведенную на рис. 7 модель одноканальной СМО блоками QUEUE и DEPART (рис. 9). Теперь транзакты, заблокированные перед блоком SEIZE из-за занятости устройства SYSTEM, находятся в блоке QUEUE, внося свой вклад в статистику о времени ожидания, накапливаемую в статистическом объекте типа "очередь" с именем LINE. При освобождении устройства первый из заблокированных транзактов войдет в блок SEIZE и одновременно в блок DEPART, прекращая накопление статистики об ожидании этого транзакта.

    1
    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 100, FN$EXP
    QUEUE LINE
    SEIZE SYSTEM
    DEPART LINE
    ADVANCE 80, FN$EXP
    RELEASE SYSTEM
    TERMINATE 1
    1. 5
    Рис. 9

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

Для создания в модели такой таблицы она должна быть предварительно определена с помощью оператора определения QTABLE (Q-таблица), имеющего следующий формат: имя QTABLE A, B, C, D Здесь имя - имя таблицы, используемое для ссылок на нее; A номер или имя очереди, распределение времени ожидания в которой необходимо получить; B - верхняя граница первого частотного интервала таблицы; C - ширина частотных интервалов; D - количество частотных интервалов.

Диапазон всевозможных значений времени ожидания в очереди, указанной в поле A, разбивается на ряд частотных интервалов, количество которых указано в поле D. Первый из этих интервалов имеет ширину от минус бесконечности до величины, указанной в поле B, включительно. Второй интервал включает значения, большие, чем величина первой границы в поле B, но меньшие или равные B+C, и т. д. Все промежуточные интервалы имеют одинаковую ширину, указанную в поле C. Наконец, последний интервал включает все значения, большие, чем последняя граница. Значения операндов B, C и D должны задаваться целыми константами. Операнд B может быть неположительным, хотя для Q-таблицы это не имеет смысла, так как время не может быть отрицательным. Операнды C и D должны быть строго положительными.

При прохождении транзакта через блоки QUEUE и DEPART его время ожидания фиксируется, и к счетчику частотного интервала таблицы, в который попало это время, добавляется 1. Одновременно в таблице накапливается информация для вычисления среднего значения и среднеквадратического отклонения (корня из дисперсии) времени ожидания. По окончании моделирования среднее значение и среднеквадратическое отклонение времени ожидания, а также счетчики попаданий в различные частотные интервалы выводятся в стандартный отчет GPSS/PC. Таблицы, как и другие объекты GPSS/PC, имеют СЧА: ТС - общее число транзактов, вошедших в очередь, связанную с таблицей; TB целая часть среднего времени ожидания в очереди; TD - целая часть среднеквадратического отклонения времени ожидания в очереди.

Дополним модель из примера на рис. 9 оператором QTABLE для получения распределения времени ожидания в очереди с именем LINE (рис. 10). 1

    WTIME QTABLE LINE, 50, 50, 10
    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 100, FN$EXP
    QUEUE LINE
    SEIZE SYSTEM
    DEPART LINE
    ADVANCE 80, FN$EXP
    RELEASE SYSTEM
    TERMINATE 1
    1. 5
    Рис. 10

Оператор определения таблицы с именем WTIME разбивает ось времени на 10 частотных интервалов. Первый интервал включает значения от 0 до 50, второй - от 50 до 100, третий - от 100 до 150 и т. д. Последний, десятый, интервал включает значения, превышающие 450. Если, например, время ожидания некоторого транзакта в очереди составило 145 единиц модельного времени, то к счетчику третьего частотного интервала будет добавлена 1. Следует заметить, что информация в таблицу с именем WTIME заносится автоматически, при входе транзактов в блоки QUEUE и DEPART, и никаких специальных мер для этого принимать не требуется. Таблицы в GPSS/PC могут использоваться в более общем случае не только для табулирования времени ожидания в очереди, но и для получения выборочных распределений произвольных СЧА любых объектов модели. Для определения таблиц служит оператор TABLE (таблица), формат которого совпадает с форматом оператора QTABLE. Отличие состоит лишь в том, что в поле A оператора TABLE записывается стандартный числовой атрибут, выборочное распределение которого необходимо получить, а операнды B, C и D определяют разбиение на частотные интервалы диапазона всевозможных значений этого СЧА.

Занесение информации в таблицу, определяемую оператором TABLE, уже не может быть выполнено симулятором автоматически, как в случае Q-таблиц. Для этого используется специальный блок TABULATE (табулировать), имеющий следующий формат:

    имя TABULATE A

В поле A указывается номер или имя таблицы, определенной соответствующим оператором TABLE.

При входе транзакта в блок TABULATE текущее значение табулируемого аргумента таблицы, указанного в поле A оператора TABLE, заносится в нее в соответствии с заданным в операторе TABLE разбиением области значений аргумента на частотные интервалы. Одновременно корректируются текущие значения СЧА таблицы: счетчик входов в таблицу TC, среднее время ожидания TB и среднеквадратическое отклонение времени ожидания TD.

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

Оператор TABLE определяет таблицу с именем TTIME, аргументом которой служит СЧА М1 - время пребывания транзакта в модели. В рассматриваемой модели значение СЧА M1 одновременно будет являться временем пребывания транзакта в СМО в том случае, если занесение информации в таблицу производить перед выходом транзакта из модели. Поэтому блок TABULATE, заносящий информацию о времени пребывания каждого транзакта в модели в таблицу TTIME, располагается перед блоком TERMINATE. Диапазон возможных значений времени пребывания транзакта в модели разбит в операторе TABLE на 12 частотных интервалов, ширина которых (кроме последнего) равна 100 единицам модельного времени.

    1
    TTIME TABLE M1, 100, 100, 12
    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 100, FN$EXP
    ENTER STO2
    ADVANCE 160, FN$EXP
    LEAVE STO2
    TABULATE TTIME
    TERMINATE 1
    1. 5
    Рис. 11
    2. 4. Блоки, изменяющие маршруты транзактов

Страницы: 1, 2, 3, 4, 5, 6



Реклама
В соцсетях
рефераты скачать рефераты скачать рефераты скачать рефераты скачать рефераты скачать рефераты скачать рефераты скачать