Моделирование работы в библиотеке
Курсовой проект - Компьютеры, программирование
Другие курсовые по предмету Компьютеры, программирование
ится автоматически. Каждый оператор 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>