Моделирование работы в библиотеке

Курсовой проект - Компьютеры, программирование

Другие курсовые по предмету Компьютеры, программирование

ится автоматически. Каждый оператор GPSS/PC относится к одному из четырех типов: операторы-блоки, операторы определения объектов, управляющие операторы и операторы-команды.

 

1.1 Операторы - блоки

 

Операторы - блоки формируют логику модели. В GPSS/PC имеется около 50 различных видов блоков, каждый из которых выполняет свою конкретную функцию. За каждым из таких блоков стоит соответствующая подпрограмма транслятора, а операнды каждого блока служат параметрами этой подпрограммы.

Блоки выполняют соответствующие операции в модели. В блоках могут происходить события четырех основных типов:

) создание или уничтожение сообщений;

) изменение числового атрибута объекта;

) задержка сообщения на определенный период времени;

) изменение маршрута сообщения в модели.

В спецификацию блока GPSS WORLD, кроме имени блока, описывающего основное функциональное назначение блока, входит необязательная метка и операнды.

Операнды блоков задают информацию, специфичную для действия данного блока. Число операндов каждого блока зависит от типа блока и не превышает семи. Операнды обозначаются символами А, В, С,D, E, F, G. Одни операнды в некоторых блоках должны быть всегда заданы, другие могут задаваться и не задаваться. В некоторых случаях операнды считаются заданными по умолчанию.

Метка (символическое имя) задается не более 5 символами, причем первые три должны быть обязательно алфавитными. Метки ставятся перед блоками, на которые есть ссылки из других частей модели.

Перечень основных блоков GPSS WORLD

ADVANCE - реализация задержки во времени

А - задержка на время обслуживания, В - половина поля допуска равномерно распределенного интервала времени задержки

ASSING - изменение и установка значений параметров транзактов

А - номер, имя модифицируемого параметра, В - величина, используемая для модификации

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

А - задает число сообщений, участвующих в сборке. Первоначальное значение аргумента поля А должно быть больше или равно единице. Если при входе исходного сообщения в блок ASSEMBLE значение счетчика стало равным нулю (т.е. нужно было "объединить" только одно сообщение), сообщение немедленно покидает блок ASSEMBLE и переходит в следующий по номеру блок. Если результат отрицательный (вычисленное значение аргумента поля А нулевое или отрицательное), происходит ошибка выполнения. Обычно значение счетчика сборки больше единицы, поэтому при входе в блок АSSEMBLE исходного сообщения результат вычитания единицы из счетчика положительный.

COUNT Х - определение числа объектов, удовлетворяющих заданному условию, где Х - логический или условный оператор, А - задается номер параметра вошедшего в блок сообщения, в котором будет организован счетчик числа объектов. В - определяется нижняя граница диапазона изменения номеров или имен объектов, для которых проверяется заданное условие. С - определяется верхняя граница диапазона изменения номеров или имен объектов, для которых проверяется заданное условие. D - задается сравниваемое значение (величина сравнения) для аргумента поля Е. Е - используется совместно с аргументом поля D и условным оператором Х. В поле Е задается какой-либо из стандартных числовых атрибутов просматриваемых объектов. Необходимо только записывать мнемоническое обозначение атрибута, поскольку диапазон изменения номеров объектов задан полями В и С.

Логический оператор может принимать следующие значения:

NU - (U) - устройство свободно (устройство занято);

NI - (I) - устройство не прервано (устройство прервано);

FV - (FNV) - устройство доступно (устройство недоступно);

SE - (SNE) - многоканальное устройство пусто (многоканальное устройство не пусто);

SF - (SNF) - многоканальное устройство заполнено (не заполнено);

SV - (SNV) - многоканальное устройство доступно (недоступно);

LS - (LR) - проверка логического ключа на состояние "вкл." ("выкл");

При использовании логических операторов поля D и E могут быть пустыми.

Условный оператор может принимать следующие значения:

L - (G) - условие выполняется, если СЧА объекта, заданного в Е, меньше СЧА объекта, заданного в D (если СЧА объекта, заданного в Е, больше СЧА объекта, заданного в D).

LE - (GE) - условие выполняется, если СЧА объекта, заданного в Е, меньше - равно СЧА объекта. заданного в D (если СЧА объекта, заданного в Е, больше - равно СЧА объекта, заданного в D).

E - (NE) - условие выполняется, если СЧА объекта, заданного в Е, равно СЧА объекта, заданного в D (если СЧА объекта, заданного в Е, не равно СЧА объекта, заданного в D).

MAX - (MIN) - наибольшее значение из всех значений СЧА объектов, удовлетворяющих заданному условию, (наименьшее значение из всех значений СЧА объектов, удовлетворяющих заданному условию).

При использовании условных операторов поля D и Е должны быть заданы.

DEPART - сбор статистики при ожидании (покинуть очередь), где А - имя очереди, длина очереди уменьшается на единицу.

ENTER - занять свободные параллельно работающие каналы, где А - им?/p>