Сдам Сам

ПОЛЕЗНОЕ


КАТЕГОРИИ







МОСКОВСКИЙ ЭНЕРГЕТИЧЕСКИЙ ИНСТИТУТ





(ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ)

______________________________________________________________

А. Н. ДОРОШЕНКО, В.Н. ФЁДОРОВ

МОДЕЛИРОВАНИЕ ДИСКРЕТНЫХ СИСТЕМ

 

 

Методическое пособие

по курсу

“Моделирование дискретных процессов”

Для студентов, оучающихся по направлению

«Системы автоматизированного проектирования»

 

 

Москва Издательство МЭИ 2001

 

УДК

621.398

Д-696

УДК 681.322.001.57(072)

Утверждено учебным управлением МЭИ

Подготовлено на кафедре вычислительной техники

Дорошенко А.Н., Федоров В.Н. Моделирование дискретных систем:

Методическое пособие по курсу «Моделирование дискретных процессов». - М.: Издательство МЭИ, 2001. – 44 с.

 

Излагаются краткие сведения о языке и системк моделирования GPSS и описаны принципы моделирования дискретных систем. Особое внимание уделяется моделированию параллельных независимых и взаимосвязанных процессов и систем с приоритетами. Даются примеры моделей процессов в ЭВМ и в локальных вычислительных сетях. Приводятся варианты заданий для выполнения лабораторных работ.

Учебное пособие предназначено для студентов старших курсов, изучающих основы имитационного моделирования дискретных процессов и систем и их прим в системах автоматизированного проектирования.

______________________________________

Учебное издание

ДОРОШЕНКО АЛЕКСАНДР НИКОЛАЕВИЧ

ФЁДОРОВ ВАЛЕНТИН НИКОЛАЕВИЧ

 

МОДЕЛИРОВАНИЕ ДИСКРЕТНЫХ СИСИТЕМ

Мтодическое пособие по курсу

“Моделирование дискретных процессов”

для студентов, обучающихся по направлению «Системы автоматизированного проектирования».

Редактоp издательства Е.Н. Касьянова

ЛР №020528 от 05.06.97

Темплан издания МЭИ 2000г., метод. Печать офсетная

Подписано к печати 21.12.00

Фоpмат бумаги 60х84/16

Печ.л. 2,5 Физ. печ. Л. 3,0

Тиpаж 200 экз. Изд. № 126. Заказ 213

Издательство МЭИ, 111250, Москва, Красноказарменная ул., д.14

Отпечатано в типографии ЦНИИ «Электроника»,

Москва, просп. Вернадского, д. 39

© Московский энергетический институт, 2001

 

 

ВВЕДЕНИЕ

 

 

Существует множество систем, процессы функционирования в которых могут быть представлены моделями информационных потоков, получившими название систем массового обслуживания (СМО). Это прежде всего процессы в технических системах - в системах телефонной, радиосвязи и телекоммуникаций, в вычислительных машинах, системах и вычислительных сетях, при анализе которых важнейшими являются задачи определения надежности, скорости передачи или обработки информации, оценки пропускной способности, загрузки оборудования и т.д., в транспортных системах, где важнейшими являются определение скорости и объема перевозок, сокращение простоев и др. Процессы жизнедеятельности в биологических системах требуют прежде всего определения благоприятных условий жизни, размножения и развития отдельных особей или популяции (колонии, сообщества) в целом. Многие процессы деятельности человекасоциальные, экономические, экологические могут быть представлены моделями типа СМО [1]. И даже сам процесс обучения, представляемый как сочетание усваивания знаний и забывания, также может быть описан такими моделями [2].

Любая подобная система неизбежно испытывает различного pода возмущения, источниками котоpых могут быть либо внешние воздействия, обусловленные случайными или систематическими изменениями окружающих условий, либо внутренние флуктуации, возникающие в самой системе в результате взаимодействия элементов. Пpи исследовании эти системы пpедставляются в виде стохастических моделей дискpетных пpоцессов. Несмотя на успешное pазвитие и пpименение методов аналитического моделиpования СМО [3], ведущим для pешения пpактических задач исследования дискретных систем и процессов остается имитационное моделиpование на ЭВМ с пpименением специализиpованных языков пpогpаммиpования [6 – 8].

За всю историю pазвития вычислительной техники насчитывается более 300 языков моделирования дискретных процессов. Одним из первых языков моделирования СМО был предложенный еще в 60-х годах язык блок-диаграмм, идеи которого оказались на столько плодотворны, что использовались во многих последующих pазpаботках в нашей стране и за рубежом. На основе языка блок-диагамм в 70-х годах был создан и в последующем адаптиpован к персональным компьютерам широко используемый в настоящее вpемя для моделиpования большого класса систем язык и система GPSS – General Purpouse Simulation System [4].

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

 

РАЗДЕЛ I. GPSS – ЯЗЫК И СИСТЕМА МОДЕЛИРОВАНИЯ.

СТРУКТУРА ПРОГРАММЫ НА ЯЗЫКЕ GPSS

 

GPSS – это система моделирования общего назначения. Она предназначена для моделирования дискретных систем (ДС) на уровне структуры и информационных (или материальных) потоков в системе, т. е. когда работу ДС можно задать множеством состояний и графом переходов системы из одного состояния в другое. Изменение состояния системы называется событием. Моделирование ДС – это имитация на ЭВМ процесса функционирования ДС во времени как совокупности переходов ДС из одного состояния в другое. Модель ДС представляет собой последовательность операторов или, по терминологии GPSS – блоков, отображающих структуру и задающих или регулирующих условия перемещения элементов потока (заявок – в системах массового обслуживания, или транзактов – в GPSS ). Физическому времени, в котором работает реальная система (ДС), ставится в соответствие модельное время. В моделирующей системе это время задается с помощью таймера и представляет собой целочисленную (дискретную) величину, измеряемую в условных единицах. Изменение модельного времени происходит в соответствии с принципами событийного моделирования, которые изложены ниже (см. 2.1.3).

Идеи, заложенные в систему моделирования GPSS, относятся к семидесятым годам, когда высокоуровневые языки программирования по существу только начали развиваться. Поэтому с точки зрения программиста модель на языке GPSS по структуре близка к программе на языке ассемблера: каждое предложение занимает одну строку, содержащую либо управляющий оператор (например, REALLOCATE, SIMULATE, START, END), либо объявление имени объекта, либо функциональный оператор (БЛОК). Комментарий к блоку может быть написан в этой же строчке после символа “;” (точка с запятой). Если комментария в строке нет, то точка с запятой может не ставиться. Отдельная строка-комментарий должна начинаться символом “*”, располагающимся в первой позиции строки.

Структура программы на языке GPSS состоит из следующих разделов:

- раздел объявлений и описаний, содержащий:

. объявление символических имен объектов по форме:

имя_объекта EQU порядковый_номер_объекта_данного_типа

. описание функций;

. описание зависимых переменных (для вычисления по формулам);

. задание предельной емкости памяти;

. инициализация ячеек и логических ключей;

SIMULATE

- раздел операторов, содержащий:

. последовательность блоков, т.е. последовательность функциональных

операторов, по сути представляющих собой программу моделирования;

START – управляющий оператор;

END – оператор окончания программы.

Функциональные операторы или блоки являются собственно языком описания модели. Каждый блок занимает одну строку GPSS-программы и имеет следующую структуру:

[метка] идентификатор_блока список_полей [; комментарий]

Поля в списке отделяются друг от друга запятой и имеют фиксированные позиции, назначение и количество полей зависит от типа блока. С точки зрения программиста блоки являются именами подпрограмм, а поля блока – параметрами подпрограммы.

Все блоки можно разделить на группы:

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

· блоки, влияющие на значения атрибутов и параметров транзактов;

· блоки, влияющие на изменение направления перемещения транзактов по модели;

· блоки, обеспечивающие копирование и синхронизацию перемещения транзактов по модели.

 

РАЗДЕЛ II. ОБЪЕКТЫ СИСТЕМЫ МОДЕЛИРОВАНИЯ

 

В языке GPSS применяются два класса объектов:

- статические объекты, которые объявляются в тексте программы: УСТРОЙСТВА (FACility), ПАМЯТИ (STOrage), ОЧЕРЕДИ (QUEue), ЛОГИЧЕСКИЕ КЛЮЧИ (LOGic), ПЕРЕМЕННЫЕ (VARiable), ЯЧЕЙКИ (полнословные FSV, полусловные HSV), ФУНКЦИИ (FUNction), ТАБЛИЦЫ (TABle);

- динамические, порождаемые в процессе моделирования: ТРАНЗАКТЫ (XAC).

Примечания.

1. В тексте GPSS-программы допускается сокращение идентификаторов до первых трех букв. В скобках приведены сокращения имен объектов, используемые в программе. Например, управляющий оператор REАLLOCATE, задающий максимальное количество объектов данного типа, которое может использоваться в конкретной программе, записывается так:

REA XAC,150,STO,3,LOG,2

2. Оператор REA располагается в первой строчке программы, до оператора

SIMULATE.

Далее рассматриваются типы объектов, используемые в GPSS.

2.1. ТРАНЗАКТЫ – ДИНАМИЧЕСКИЕ ОБЪЕКТЫ МОДЕЛИ

 

2.1.1. СОЗДАНИЕ И УДАЛЕНИЕ ТРАНЗАКТОВ

 

ТРАНЗАКТЫ (заявки, запросы, сообщения) - это динамические объекты, которые в процессе моделирования порождаются в блоке GENERATE, перемещаются по функциональным блокам модели, имитирующим структуру и алгоритм работы моделируемой системы, и удаляются из модели в блоке TERMINATE.

Правила порождения транзактов и свойства порождаемых транзактов задаются полями A,…,G блока GENERATE:

GENERATE A,B,C,D,E,F,G

где A – среднее значение интервала времени, через которое создается транзакт;

B – отклонение от среднего, задающее диапазон (А - В, А + В) значений интервала времени появления транзакта с равновероятным распределением;

C – задержка времени появления первого транзакта (фаза смещения);

D – общее число генерируемых транзактов (по умолчанию – неограниченно);

E – уровень приоритета каждого транзакта (от 0 до 127, по умолчанию – 0);

F – число параметров (по умолчанию – 12);

G – тип параметра (F - полнословный, т.е. для современного компьютера - 32-разрядный, с плавающей точкой, H - полусловный, целочисленный).

Структура блока TERMINATE имеет вид:

TERMINATE A

где в поле А указывается целое число (по умолчанию – 0), на которое с приходом транзакта в этот блок уменьшается значение числа, записанное в поле А управляющего оператора

START A

Транзактам могут соответствовать, в зависимости от природы моделируемой ДС и детальности ее представления в модели, различные динамические объекты ДС:

· в ЭВМ, вычислительных системах и сетях - программы или фрагменты программ, команды на запуск программы, сигналы в схемах,

· в транспортных системах - транспортные средства, материальные ресурсы, перевозимые по магистралям,

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

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

ТРАНЗАКТ реализуется в GPSS в виде упорядоченного набора данных, включающих:

¾ номер транзакта;

¾ номер блока, в котором в данный момент находится транзакт;

¾ номер следущего блока;

¾ время перехода в следующий блок;

¾ приоритет, характеризующий очередность обработки транзактов в определенных случаях;

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

Все объекты GPSS имеют числовые характеристики, называемые стандартными числовыми атрибутами (СЧА), за которыми закреплены соответствующие обозначения. Некоторые объекты имеют стандартные логические атрибуты (СЛА).

Транзакты имеют четыре СЧА:

PR$ - приоритет;

P$j - параметр с номером j; по умолчанию транзакт имеет 12 параметров (j = 1… 12);

M$1 - время прохождения транзактом участка модели;

MP$j - промежуточное время, записываемое в параметре j;

X$j - номер j - го транзакта.

Примечание.

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

2.1.2. CПИСКИ ТРАНЗАКТОВ

 

Все транзакты, порождаемые в процессе моделирования, образуют списки, в которых транзакты отсортированы, во-первых, по времени и, во-вторых, по приоритету.

Различаются следующие типы списков:

1) список текущих событий – содержит транзакты, которые должны перемещаться в текущий момент модельного времени; все транзакты этого списка имеют одинаковое время и если их приоритеты равны, то они выбираются из списка для перемещения по модели по правилу FIFO (First-In-First-Out) – обслуживание в порядке поступления транзакта (заявки) в очередь;

2) список будущих событий – содержит транзакты, которые будут перемещаться по модели в будущие моменты времени; в этот список попадают транзакты, входящие в блоки задержки ADVANCE, и транзакты, генерируемые блоками GENERATE;

3) список прерываний – содержит транзакты, обслуживание которых прервано блоком прерывания PREEMPT. После снятия прерывания в блоке RETURN прерванные транзакты из этого списка возвращаются в список будущих событий;

4) список синхронизации содержит транзакты, ожидающие объединения с другими транзактами в блоках GATHER и ASSEMBLE или находящихся в блоках MATCH. После выполнения условия синхронизации в этих блоках транзакты возвращаются в список текущих событий;

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

2.1.3. АЛГОРИТМ ПЕРЕМЕЩЕНИЯ ТРАНЗАКТОВ – АЛГОРИТМ МОДЕЛИРОВАНИЯ В СИСТЕМЕ GPSS

 

Процесс моделирования ДС во времени проводится по шагам и начинается сустановки в ноль таймера (счетчика модельного времени) и генерации (порождения) транзактов в блоках GENERATE (присваивание значений СЧА транзакту выполняется автоматически в соответствии с описанием работы этого блока - см. ниже).

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

· из-за задержки в блоке ADVANCE, тогда транзакт переписывается в список будущих событий;

· из-за блокировки в одном из блоков SEIZE, TEST, GATE, тогда транзакт остается в списке текущих событий, но из-за блокировки переводится в пассивное состояние до снятия условия блокировки;

· из-за невыполнения условия синхронизации в одном из блоков ASSEMBLE, GATHER, MATCH, тогда транзакт переписывается в список синхронизации и возвращается в список текущих событий при выполнении условий синхронизации.

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

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

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

Примечания.

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

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

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

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

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

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

А. Ситуации, приводящие к аварийному останову:

§ В МОДЕЛИ НЕТ НИ ОДНОГО ТРАНЗАКТА или

§ СПИСОК ТЕКУЩИХ СОБЫТИЙ ПУСТ, А ОСТАЛЬНЫЕ ТРАНЗАКТЫ - в других списках - ЗАБЛОКИРОВАНЫ, т.е. не могут перемещаться по блокам модели, или

§ КОЛИЧЕСТВО ТРАНЗАКТОВ В МОДЕЛИ ПРЕВЫШАЕТ ДОПУСТИМОЕ, принятое по умолчанию – 100 или задаваемое исследователем в модели с помощью управляющего оператора REALLOCATE (ПЕРЕРАСПРЕДЕЛЯТЬ), располагаемого в начале описания модели и имеющего следующий формат

REA объект, количество, объект, количество, …, объект, количество

где объектами могут быть устройства FACILITY - (FAC,20), память STORAGE - (STO,20), функции FUNCTION- (FUN,20), очереди QUEUE - (QUE,35), логические ключи LOGIC - (LOG,100), таблицы TABLE - (TAB,15), переменные VARIABLE - (HSV,20), ячейки для записи чисел в форме с фиксированной точкой (FSV,100) или с плавающей точкой (FSV,100), транзакты (XAC,100).

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

Примечание.

Ситуации 1 и 2 возникают, если модель содержит логические ошибки.

Ситуация 3 возникает часто при неверном соотношении интенсивности входных потоков и обслуживания транзактов в модели. Поэтому рекомендуется до начала моделирования на ЭВМ ориентировочно оценивать загрузку оборудования моделируемой системы и подобрать отношение "интенсивности входного потока к интенсивности обслуживания" не более 0.95.

Б. Нормальное завершение работы модели - счетчик числа завершений, задаваемый полем А управляющего оператора START A принимает значение 0 или меньше нуля.

Исходя из условия нормального завершения процесса моделирования, возможно задать два критерия останова:

§ ОСТАНОВ ПО КОЛИЧЕСТВУ ТРАНЗАКТОВ, ПРОШЕДШИХ ПО МОДЕЛИ.

Это достигается тем, что во всех блоках TERMINATE А, участвующих в подсчете числа транзактов, проходящих по модели, задается значение А=1 и в процессе моделирования при входе транзакта в блок TERMINATE 1 содержимое поля А оператора STARТ А (счетчик числа завершений) уменьшается на 1. Процесс моделирования останавливается при нулевом значении счетчика числа завершений, т.е. после прохождения через все блоки TERMINATE 1 общего количества транзактов, равного числу А, записанному в поле управляющего оператора STАRT A.

§ ОСТАНОВ ПО ВРЕМЕНИ МОДЕЛИРОВАНИЯ.

Это достигается тем, что в модели, во-первых, все блоки удаления транзактов имеют в поле А=0 (по умолчанию опускается, т.е. записывается блок TERMINATE без поля), и, во-вторых, добавляеется еще один сегмент, содержащий только два блока – генерации и удаления транзактов, а счетчик числа завершений равен 1:

GENERATE ТМMAX

TERMINATE 1

START 1

где ТМMAX - максимальное время моделирования, по истечении которого генерируемый транзакт поступает в блок TERMINATE 1 и уменьшает значение поля А=1 оператора STARТ 1 до нуля. При этом останов системы моделирования происходит также по нулевому значению счетчика завершений, но при наступлении текущего времени моделирования, равного TMMAX. Очевидно, что если в операторе START поле A больше 1, то длительность времени моделирования будет равна А* ТМMAX.

 

2.2. УСТРОЙСТВА

Устройство (FACILITY) в системе GPSS представляет собой объект, в котором могут выполняться операции обработки транзакта (обслуживания заявок). Особенность устройства состоит в том, что в любой данный момент времени оно может быть занято лишь одним транзактом. Если устройство занято и текущий транзакт не может войти в устройство, то транзакт прекращает перемещение по модели (становится заблокированным) и ожидает освобождения данного устройства. Занятие и освобождение устройства моделируют соответственно блоки

SEIZE A

RELEASE А

где A – имя или номер устройства.

Как правило, обработка связана с затратами времени. В системе моделирования длительность обработки отображается блоком задержки транзакта, имеющим вид:

ADVANCE A,B

где A – среднее время задержки, задаваемое числом (целое без знака) или идентификатором ячейки, переменной, содержащих целочисленное значение задержки;

B – разброс времени задержки транзакта относительно среднего значения А с равновероятным распределением в интервале (А-В, А+В). Очевидно, что В должно быть меньше или равно A.

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

В GPSS имеется возможность моделировать обслуживание заявок (транзактов) с учетом их приоритетов. Различают два типа приоритетов: относительный и абсолютный.

Приоритет называется относительным, если из множества заявок, пытающихся войти в устройство, такое право предоставляется той заявке, которая имеет наибольший приоритет. При этом выбор следующей заявки для обслуживания в данном устройстве происходит после освобождения устройства от обслуживания предыдущей заявки, имеющей произвольное значение приоритета. Заявки, имеющие одинаковые приоритеты, обслуживаются в устройстве в порядке поступления в очередь к данному устройству (дисциплина обслуживания FIFO – First-In-First-Out). В GPSS есть два способа задания относительного приоритета транзакта – в блоке GENERATE (см. 2.1.1) и в блоке PRIORITY (см. 2.9).

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

PREEMРT A

RETURN A

Таким образом, работа устройства в GPSS-модели отображается тремя блоками:

SEIZE A; занять устройство

ADVANCE A, B; задержать транзакт

RELEASE A; освободить устройство

или

PREEMPT A; захватить устройство с прерыванием

ADVANCE A,B; задержать транзакт

RETURN A; освободить устройство с дообслуживанием

С устройствами связаны следующие СЧА:

SF$j – состояние j-го устройства: равно 0, если устройство свободно, и равно 1,

если устройство занято;

FR$j – коэффициент использования устройства j;

FC$j – число входов в устройство j;

FT$j – среднее время использования j -го устройства одним транзактом.

Устройства имеют также стандартные логические атрибуты, каждый из которых может принимать одно из двух значений: "истина" или "ложь":

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

I – устройство прервано; NI – не прервано.

Проверка состояния устройства осуществляется блоком GATE (структура блока описана в 3.2), который в зависимости от значения проверяемого СЛА либо беспрепятственно пропускает транзакты (если СЛА = "истина"), либо (если СЛА = "ложь") задерживает их в блоке GATE – при отсутствии поля С, а при наличии поля С направляет транзакты по другому маршруту – по метке, указанной в поле С.

 

 

2.3. ПАМЯТЬ

 

Память (STORAGE) представляет собой объект GPSS, обладающий определенной емкостью. Объекту STORAGE системы GPSS в реальных моделируемых системах могут соответствовать:

· емкости (накопители) для временного хранения заявок (например, запросов на решение потока задач в вычислительной системе, информации в памяти ЭВМ), или материальных объектов (приборов и оборудования на складе, автомобилей в многоместном гараже, документов и ценностей в сейфе, книг на стилаже в библиотеке,);

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

В теории массового обслуживания памяти соответствует многоканальное устройство обслуживания.

Ёмкость памяти задаётся в разделе объявлений GPSS-программы:

Num STORAGE A

где num - имя или номер памяти;

А - ёмкость памяти (целое без знака), по умолчанию А = 32767.

 

Работа памяти с именем, указанным в поле А, отображается блоками

ENTER A, B; войти в память

LEAVE A, B; выйти из памяти

Входящий в блок ENTER транзакт занимает в памяти часть емкости, указанную в поле B. При переходе в блок LEAVE память освобождается на величину, определяемую полем B и не обязательно равную при входе в блок ENTER. По умолчанию принимается В = 1.

С объектом STORAGE связаны следующие СЧА:

S$j – ёмкость памяти j;

R$j – свободная емкость памяти j;

SR$j – коэффициент использования памяти j;

SM$j – максимальное заполнение памяти j;

SA$j – среднее заполнение памяти j;

SC$j – число входов в память j;

ST$j – среднее время пребывания транзакта в памяти j.

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

SE$j – память j пуста; NE$j – память j не пуста;

SF$j – память j заполнена; SNF$j – память j не заполнена.

Проверка состояния памяти осуществляется блоком GATE аналогично проверке состояния устройства: если СЛА = "истина", то блок GATE беспрепятственно пропускает транзакт в следующий блок, если СЛА = "ложь", то при отсутствии поля С в блоке GATE транзакт задерживается в этом блоке, а при наличии поля С в блоке GATE транзакт направляется на ветку программы, указанную меткой в поле С.

2.4. ОЧЕРЕДИ

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

· SEIZE (если ранее вошедший в этот блок транзакт не вошел в блок RELEAZE),

· ENTER (если требуемая текущим транзактом емкость памяти больше емкости свободного участка данной памяти),

· GATE и TEST (если в этих блоках не указан альтернативный выход и проверяемое условие не выполняется).

При поступление транзактов на вход задерживающих блоков образуются очереди. Для сбора статистики об очереди в местах задержки транзактов ставят блок входа в очередь QUEUE A, B,где А - имя или номер очереди, В - число элементов, добавляемых в очередь транзактом, по умолчанию В=1. Этот блок сам по себе не создает очереди, а лишь являются средством ее регистрации. При входе в блок QUEUE текущая длина очереди получает приращение на величину, задаваемую полем В. Блок выхода из очереди имеет вид DEPART A, B, где А - имя или номер очереди, B - число элементов, удаляемых из очереди транзактом.

Таким образом, работа очереди в GPSS-модели отображается двумя блоками:

QUEUE A, B

DEPART A, B

Очереди имеют следующие СЧА:

Q$j – текущая длина очереди j;

QM$j – максимальная длина очереди j;

QA$j – средняя длина очереди j;

QC$j – число входов в очередь j;

QZ$j – число входов в очередь с нулевым временем пребывания

(транзакт прошел через блок QUEUE, не задерживаясь в очереди);

QT$j – среднее время пребывания в очереди j, включая нулевые входы;

QXSj – среднее время пребывания в очереди j без нулевых входов.

 

2.5. ЛОГИЧЕСКИЕ КЛЮЧИ

 

Имитация процессов коммутации в GPSS выполняется с использованием логических ключей, имеющих два состояния "Включено" - "Выключено". Работа логических ключей отображается блоком LOGIC_r A, где А - имя логического ключа, r - внутренний оператор, принимающий значения I - переключить, R - выключить, S - включить. При входе транзакта в блок LOGIC происходит срабатывание соответствующего ключа. Ключи не имеют СЧА. Их состояния задаются только стандартными логическими атрибутами:

LS$j - ключ j включен; LR$j - ключ j выключен.

Проверка состояния ключа осуществляется блоком GATE. Начальное состояние ключа по умолчанию принимается “ выключено” (RESET). Для принудительного начального включения группы ключей (для установки в состояние SET) применяется управляющий оператор

LINITIAL KL1,KL2,…,KL6; KL1,KL2,…,KL6 – имена ключей.

Одним оператором допускается устанавливать не более шести ключей.

 

Примеры.

LINITIAL 1,2, KL1, KL3; устанавливаются ключи 1 и 2, ключи KL1, KL3

LOGIC_S 5; включается логический ключ 5 при входе транзакта в данный блок

LOGIC_R KL3; выключается логический ключ KL3 при входе транзакта в данный блок

LOGIC _I P$4; переключается в противоположное состояние логический ключ, номер которого хранится в параметре 4 транзакта, вошедшего в данный блок.

 

2.6. ЯЧЕЙКИ

Ячейки используются для записи и хранения в процессе моделирования текущих значений СЧА. Занесение информации в ячейку производится блоком SAVEVALUE, имеющим формат

SAVEVALUE A,B,C

где А – имя ячейки (может сопровождаться в конце знаком плюс + или минус -), В – присваиваемое значение, С – тип ячейки. Если после А стоит знак + или -, то значение поля В прибавляется или вычитается из текущего содержимого ячейки А. Если знак не указан, то значение поля В присваивается ячейке А. Поле С определяет тип ячейки и может принимать значения: ХН – полусловная, ХF – полнословная, XL – с плавающей точкой. При отсутствии поля С по умолчанию принимается полнословная ячейка.

Начальное значение ячейки по умолчанию равно нулю. Для изменения начального значения применяется оператор инициализации

INITIAL Ячейка1, Значение1,…, Ячейка К, ЗначениеК







Конфликты в семейной жизни. Как это изменить? Редкий брак и взаимоотношения существуют без конфликтов и напряженности. Через это проходят все...

ЧТО ПРОИСХОДИТ ВО ВЗРОСЛОЙ ЖИЗНИ? Если вы все еще «неправильно» связаны с матерью, вы избегаете отделения и независимого взрослого существования...

Система охраняемых территорий в США Изучение особо охраняемых природных территорий(ООПТ) США представляет особый интерес по многим причинам...

Что будет с Землей, если ось ее сместится на 6666 км? Что будет с Землей? - задался я вопросом...





Не нашли то, что искали? Воспользуйтесь поиском гугл на сайте:


©2015- 2024 zdamsam.ru Размещенные материалы защищены законодательством РФ.