Навигация
Главная
Поиск
Форум
FAQ's
Ссылки
Карта сайта
Чат программистов

Статьи
-Delphi
-C/C++
-Turbo Pascal
-Assembler
-Java/JS
-PHP
-Perl
-DHTML
-Prolog
-GPSS
-Сайтостроительство
-CMS: PHP Fusion
-Инвестирование

Файлы
-Для программистов
-Компонеты для Delphi
-Исходники на Delphi
-Исходники на C/C++
-Книги по Delphi
-Книги по С/С++
-Книги по JAVA/JS
-Книги по Basic/VB/.NET
-Книги по PHP/MySQL
-Книги по Assembler
-PHP Fusion MOD'ы
-by Kest
Professional Download System
Реклама
Услуги

Автоматическое добавление статей на сайты на Wordpress, Joomla, DLE
Заказать продвижение сайта
Программа для рисования блок-схем
Инженерный калькулятор онлайн
Таблица сложения онлайн
Популярные статьи
OpenGL и Delphi... 65535
Форум на вашем ... 65535
21 ошибка прогр... 65535
HACK F.A.Q 65535
Бип из системно... 65535
Гостевая книга ... 65535
Invision Power ... 65535
Пример работы с... 65535
Содержание сайт... 65535
ТЕХНОЛОГИИ ДОСТ... 65535
Организация зап... 65535
Вызов хранимых ... 65535
Создание отчето... 65535
Имитационное мо... 65535
Программируемая... 65535
Эмулятор микроп... 65535
Подключение Mic... 65535
Создание потоко... 65535
Приложение «Про... 65535
Оператор выбора... 65535
Реклама
Сейчас на сайте
Гостей: 11
На сайте нет зарегистрированных пользователей

Пользователей: 13,372
новичок: vausoz
Новости
Реклама
Выполняем курсовые и лабораторные по разным языкам программирования
Подробнее - курсовые и лабораторные на заказ
Delphi, Turbo Pascal, Assembler, C, C++, C#, Visual Basic, Java, GPSS, Prolog, 3D MAX, Компас 3D
Заказать программу для Windows Mobile, Symbian

Движение шарика в эллиптическои параболоиде на Delphi [OpenGL] + Блок схемы
Игра Sokoban на Delphi + Блок схемы
Обработка задач на ЭВМ на GPSS + Пояснительная записка

БЛОКИ ДЛЯ ОБРАБОТКИ СООБЩЕНИЙ, ПРИНАДЛЕЖАЩИХ ОДНОМУ СЕМЕЙСТВУ


Блок SPLIT имеет следующий формат:
SPLIT A,[B],[C]



Блок SPLIT выполняет функцию копирования входящего в него сообщения, которое называется исходным или порождающим.
В поле А задается число создаваемых копий.
Поле В задает номер следующего блока, к которому переходят копии исходного сообщения, причем значение вычисляется для каждой копии отдельно.
В поле С может быть задан номер параметра, используемого для присвоения копиям последовательных номеров.
Блок ASSEMBLE имеет следующий формат:
ASSEMBLE A



Блок ASSEMBLE объединяет заданное число сообщений, принадлежащих к одному семейству, в одно сообщение (т.е. осуществляет сборку заданного числа сообщений). После сборки из блока ASSEMBLE выходит только одно сообщение, которое переходит в следующий по номеру блок. В одном и том же блоке ASSEMBLE возможна одновременная сборка сообщений нескольких семейств. Когда сообщение входит в блок ASSEMBLE, интерпретатор просматривает семейство, к которому принадлежит это сообщение, и проверяет, есть ли другое сообщение из того же семейства в данном блоке ASSEMBLE.
Поле А задает число сообщений, участвующих в сборке. Операнд А может быть именем, положительным целым, СЧА, СЧА*<параметр>. Первоначальное значение аргумента поля А не должно быть больше или равно единице. Если при входе исходного сообщения в блок ASSEMBLE, значение счетчика стало равным нулю (т.е. нужно было "объединить" только одно сообщение), сообщение немедленно покидает блок ASSEMBLE и переходит в следующий по номеру блок. Если результат отрицательный (вычисленное значение аргумента поля А нулевое или отрицательное), происходит ошибка выполнения. Обычно значение счетчика сборки больше единицы, поэтому при входе в блок ASSEMBLE исходного сообщения результат вычитания единицы из счетчика положительный. Этот результат (новое значение счетчика сборки) сохраняется, а исходное сообщение исключается из списка текущих событий и переходит в состояние синхронизации. Это сообщение не будет возвращено в список текущих событий до тех пор, пока в блок ASSEMBLE не войдет заданное число сообщений, и счетчик сборки не станет равным нулю.
Блок GATHER имеет следующий формат записи:
GATHER A



Блок GATE накапливает заданное число сообщений, принадлежащих к одному семейству. Ни одно из накапливаемых сообщений не уничтожается. Когда в блоке GATHER накопится заданное число сообщений, все эти сообщения одновременно попытаются войти в следующий по номеру блок. Сообщения никогда не задерживаются на входе блока GATHER. Одновременно в одном блоке GATHER может происходить накопление сообщений нескольких семейств.
Поле А задает число сообщений, принадлежащих к одному семейству, которое нужно накопить.
Блок MATCH имеет следующий формат:
MATCH A



Блок MATCH используется для синхронизации движения двух сообщений, принадлежащих к одному семейству, без удаления этих сообщений из модели.
Блоки MATCH не объединяют синхронизируемые сообщения. Синхронизация осуществляется путем подбора пар сообщений из одного семейства и задержки этих сообщений до тех пор, пока оба сообщения из одной пары не поступят в заданные точки модели. Сообщения никогда не задерживаются в блоке MATCH. Сообщения, для которых выполнилось условие синхронизации, переходят к следующему по номеру блоку. В одной паре блоков MATCH могут одновременно находиться в состоянии синхронизации пары сообщений из различных семейств. Возможна также одновременная синхронизации пар сообщений из одного семейства в нескольких блоках MATCH.
Поле А задает имя или номер другого блока MATCH, называемого "сопряженным блоком MATCH". Если такого блока нет, происходит останов по ошибке. Операнд А может быть именем, положительным целым, СЧА, СЧА*<параметр>.
Допускается использование блока MATCH в качестве сопряженного самому себе. В этом случае блок MATCH действует как блок GATHER с начальным значением счетчика, равным 2. При входе сообщения в блок MATCH интерпретатор определяет номер блока, заданного в поле А, и затем просматривает семейство, к которому принадлежит вошедшее в блок MATCH сообщение.
Если для сообщения, вошедшего в блок MATCH, нет сообщения из того же семейства, находящегося в состоянии синхронизации в сопряженном блоке MATCH, то это сообщение удаляется из списка текущих событий и помещается в список синхронизации. Это сообщение не возвращается в список текущих событий до тех пор, пока другое сообщение из этого же семейства не войдет в сопряженный блок MATCH. Счетчики Nj и Wj блока увеличиваются на единицу. Индикатор синхронизации устанавливается в единицу, как в блоках ASSEMBLE и GATHER. Интерпретатор переходит затем к следующему сообщению из списка текущих событий.
Если в сопряженном блоке MATCH есть сообщение из того же семейства и оно находится в состоянии синхронизации, то индикатор синхронизации устанавливается в "0". Затем сообщение, которое находилось в сопряженном блоке MATCH, возвращается в список текущих событий, где оно становится последним среди сообщений с таким же значением приоритета. Тем временем интерпретатор продолжает обработку второго сообщения данной пары, вошедшего в рассматриваемый блок MATCH. Это сообщение обрабатывается так, как если бы оно проходило через блок ADVANCE с нулевой задержкой.
Опубликовал Kest January 19 2010 20:39:21 · 0 Комментариев · 7036 Прочтений · Для печати

• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •


Комментарии
Нет комментариев.
Добавить комментарий
Имя:



smiley smiley smiley smiley smiley smiley smiley smiley smiley
Запретить смайлики в комментариях

Введите проверочный код:* =
Рейтинги
Рейтинг доступен только для пользователей.

Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.

Нет данных для оценки.
Гость
Имя

Пароль



Вы не зарегистрированны?
Нажмите здесь для регистрации.

Забыли пароль?
Запросите новый здесь.
Поделиться ссылкой
Фолловь меня в Твиттере! • Смотрите канал о путешествияхКак приготовить мидии в тайланде?
Загрузки
Новые загрузки
iChat v.7.0 Final...
iComm v.6.1 - выв...
Visual Studio 200...
CodeGear RAD Stud...
Шаблон для новост...

Случайные загрузки
Архив значков
Панель Наша Кнопка
База Allsubmitter...
DelTrayIcon [Исхо...
FilesInfo
Программирование ...
Создание лабиринт...
ATComponents
C# в кратком изло...
Распознавание иде...
Таймер и секундомер
NotePad Pro [Исхо...
Размещение элемен...
Панель Календарь
Progressbar
DFileDeleter
3D Тетрис [Исходн...
AlignEdit
RAS
Панель случайной ...

Топ загрузок
Приложение Клие... 100800
Delphi 7 Enterp... 98063
Converter AMR<-... 20302
GPSS World Stud... 17067
Borland C++Buil... 14261
Borland Delphi ... 10388
Turbo Pascal fo... 7398
Калькулятор [Ис... 6093
Visual Studio 2... 5241
Microsoft SQL S... 3676
Случайные статьи
Задано натуральное...
Университет
Упорядочение Массива
Работа со списками...
Вулкан Платинум ка...
• Кэширование.
Представления дере...
Системные включаем...
Программирование л...
чтобы определить, ...
Чтобы заменить вст...
Задача о укладке в...
Казино Вулкан Плат...
ОБРАЗОВАНИЕ ПЕРВОГ...
Где купить укрывно...
Символы, используе...
Хэш-функция
Функции приведения
Модельное время. С...
В чем отличие ANI/...
Создание справки к...
1хбет казино
Здесь мы рассмотри...
Любителям острых о...
Ключевые факты об ...
Статистика



Друзья сайта
Программы, игры


Полезно
В какую объединенную сеть входит классовая сеть? Суммирование маршрутов Занимают ли таблицы память маршрутизатора?