Навигация
Главная
Поиск
Форум
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
HACK F.A.Q 65535
Бип из системно... 65535
Гостевая книга ... 65535
Invision Power ... 65535
Пример работы с... 65535
Содержание сайт... 65535
ТЕХНОЛОГИИ ДОСТ... 65535
Организация зап... 65535
Вызов хранимых ... 65535
Создание отчето... 65535
Программируемая... 65535
Эмулятор микроп... 65535
Подключение Mic... 65535
Создание потоко... 65535
Приложение «Про... 65535
Оператор выбора... 65535
Модуль Forms 65535
Имитационное мо... 60108
Реклама
Сейчас на сайте
Гостей: 3
На сайте нет зарегистрированных пользователей

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

Движение шарика в эллиптическои параболоиде на Delphi [OpenGL] + Блок схемы
База данных студентов на Turbo Pascal (Списки) + Пояснительная записка
Информационная система - продуктовый магазин на Turbo Pascal (База данны...

Реклама



Подписывайся на YouTube канал о программировании, что бы не пропустить новые видео!

ПОДПИСЫВАЙСЯ на канал о программировании
Управление перемещением транзактов. Работа с логическими ключами (блоки TRANSFER, TEST, GATE, LOGIC, LOOP, MATCH)


Блок TRANSFER изменяет маршрут движения транзактов в зависимости от значения первого операнда (в основном или альтернативном направлении) при определенном состоянии оборудования: обслуживающих устройств, очереди, логических ключей и т.п.: TRANSFER [A],B,[C],[D] А - режим перехода; В - метка первого альтернативного блока; С - метка второго альтернативного блока; D - константа, используемая для относительной переадресации транзактов. Если операнд А блока TRANSFER отсутствует, то транзакт, поступивший в блок TRANSFER, безусловно отправляется в блок с меткой, указанной в операнде В. Если операнд А - число от 0 до 1, то он определяет вероятность перехода транзакта по адресу С. При этом операнд В определяет альтернативный адрес. Если операнд А равен «ВОТН», то транзакт делает попытку перемещения в блок с меткой В. При невозможности войти в блок с адресом В, транзакт перемещается в блок с меткой, указанной в операнде С. Если операнд А равен «ALL», то транзакт делает попытку перемещения в блок с меткой В. При невозможности войти в данный блок, транзакт делает попытку перемещения в блок, следующий за блоком с адресом В через D блоков, если и эта попытка безуспешна - то в блок, следующий за блоком с адресом В через 2D блоков. Адрес последнего блока, в который может перемещаться транзакт, записывается в операнде С. Например:
TRANSFER ,LABEL1 TRANSFER 0.6,KASSA2,KASSA1 TRANSFER BOTH,OTCH1,OTCH2 TRANSFER BOTH,,KASSA2 TRANSFER ALL,FIRST,LAST,3 ; перемещение транзакта к блоку с меткой LABEL1 ; с вероятностью 0,6 транзакт перемещается к блоку с меткой KASSA1, с вероятностью 0,4 - к блоку с меткой KASSA2 ; транзакт перемещается к блоку с меткой ОТСН1, но в случае невозможности войти в блок с меткой ОТСН1, транзакт перемещается к блоку с меткой ОТСН2 ; транзакт делает попытку войти в следующий блок, если это ему не удается, транзакт перемещается к блоку с меткой KASSA2 ; транзакт перемещается к блоку с меткой FIRST, в случае невозможности войти в блок с меткой FIRST, транзакт делает попытку войти в блок, следующий за блоком с меткой FIRST через 3 блока. В случае неудачи - через 6, 9, 12,... блоков, пока не будет достигнут блок с меткой LAST


В GPSS дополнительно используется относительная адресация блоков, не имеющих меток:
TRANSFER ,LABEL1 ; перемещение транзакта к блоку с меткой LABEL1 TRANSFER , * + 5 ; перемещение транзакта к блоку, следующему


за данным блоком через 5 блоков TRANSFER ,LABELl+2 ; перемещение транзакта к блоку, следующему за блоком с меткой LABEL1 через 5 блоков Блок TEST определяет направление движения транзакта в зависимости от выполнения условия, заданного алгебраическим соотношением: TEST XX А,В,[С] XX - знак логической операции: L - меньше, G - больше, Е - равно, LE - меньше или равно, GE - больше или равно, NE - не равно; А, В - сравниваемые значения или СЧА; С - метка блока, куда перемещается транзакт в случае невыполнения заданного условия. При выполнении условия, записанного в блоке TEST, транзакт переходит в следующий блок. В противном случае он направляется в блок с меткой, содержащейся в операнде С. Если операнд С не задан, то транзакт задерживается в блоке TEST до выполнения условия. Например: Например:
TRANSFER ,LABEL1 TRANSFER 0.6,KASSA2,KASSA1 TRANSFER BOTH,OTCH1,OTCH2 TRANSFER BOTH,,KASSA2 TRANSFER ALL,FIRST,LAST,3 TEST LE Q$0TH1,Q$OTH2,LABEL2 ; транзакт переходит к следующему блоку, если текущая длина очереди ОТН1 меньше или равна длине очереди ОТН2. В противном случае транзакт направляется в блок с меткой LABEL2 TEST G 10,S$KASSA ; транзакт переходит к следующему бло ку, если 10 больше числа занятых приборов многоканального устройства с именем KASSA. В противном случае транзакт задерживается в данном блоке


Блок GATE разрешает движение транзактам (в основном или альтернативном направлении) при определенном состоянии оборудования: обслуживающих устройств, очереди, логических ключей и т. п. Блок имеет следующий формат: GATE XXX А,[В] XXX - логический указатель (определяется таблицей 2); А - имя или номер оборудования;
GATE FNU OKNOl, KASSA2 GATE LS KEY1


В - метка альтернативного блока. Таблица 2 - Значения логического указателя блока GATE

Таблица 2 - Значения логического указателя блока GATE

Тип объекта

Логический указатель

Значение

Одноканальное

FV

Устройство занято

устройство

FNV

Устройство не занято

 

FI

Устройство обслуживает прерывание

 

FNI

Устройство не обслуживает прерывание

Многоканальное

SF

Устройство заполнено

устройство

SNF

Устройство не заполнено

 

SE

Устройство пусто

 

SNE

Устройство не пусто

Логический ключ

LR

Логический переключатель сброшен

 

LS

Логический переключатель установлен

При выполнении условия, записанного в логическом указателе XXX, транзакт переходит в следующий за GATE блок. В противном случае он направляется в блок с меткой, содержащейся в операнде В. Если операнд В не задан, то транзакт задерживается в блоке GATE до выполнения условия, определяемого указателем XXX. Например: GATE SNF OTK,LABELl ; транзакт переходит к следующему блоку, если многоканальное устройство ОТК не заполнено. В противном случае транзакт направляется в блок с меткой LABEL1 ; транзакт перемещается в блок с меткой KASSA2, если одноканальное устройство 0KN01 занято ; транзакт переходит к следующему блоку, если логический ключ KEY1 установлен в единицу. В противном случае транзакт задерживается в блоке GATE Для изменения в ИМ значений логических ключей используется блок LOGIC, который имеет следующий формат: LOGIC X А X - указатель операции с логическим ключом: S - установить (единица), R - сбросить (обнулить), I - инвертировать; А - имя или номер логического ключа. Например:
LOGIC S KEY1 ; установить единичное значение ключа с именем KEY1 LOGIC R 2 ; обнулить значение второго ключа, определенного в модели LOGIC I KEY2 ; инвертировать значение ключа с именем KEY2


Для организации циклов перемещения транзактов используется блок LOOP А,В А - номер параметра транзакта, используемого в качестве счетчика цикла с указанием формата: «слово» (PF), «полуслово» (РН), «байт» (РВ); В - метка блока, являющегося начальным в повторяющейся группе блоков. При каждом вхождении транзакта в блок значение счетчика уменьшается на 1. Если оно становится равным нулю, транзакт переходит к следующему блоку. Допускается изменение параметра-счетчика внутри цикла. Если вам понадобилась спецтехника то взять ее можно тут - http://www.rtk-ld.ru/. Например:
ASSIGN 5,3,,РН ; присвоить 5-му параметру текущего транзакта значение 3 и формат «полуслово» LABEL1 ADVANCE 15,10 ; выполнение задержки транзакта на 15±10 единиц модельного времени LOOP PH5,LABEL1 ; организация цикла (многократной задержки транзакта), число повторений равно 3


Для синхронизации движения двух транзактов из семейства используются два сопряженных блока MATCH, например:
LABELl MATCH LABEL2 ; транзакт, вошедший в блок с меткой LABEL1, будет ожидать в этом блоке прихода транзакта того же семейства в блок с меткой LABEL2 LABEL2 MATCH LABELl ; транзакт, вошедший в блок с меткой LABEL2, будет ожидать в этом блоке прихода транзакта того же семейства в блок с меткой LABELl


Опубликовал Kest June 02 2012 18:06:00 · 0 Комментариев · 6830 Прочтений · Для печати

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


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



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

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

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

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

Пароль



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

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

Случайные загрузки
Illusion
FatScrollbar
Советы от Даниилы...
Иллюстрированный ...
Песочные часы
Пример работы с б...
Язык программиров...
PDJXPPack
Добавление басса ...
Autorunner
CS:Source - монит...
Упорядоченный дин...
База данных фильм...
PHP в примерах
Язык программиров...
Работа с базами д...
Факториал [Исходн...
Программирование ...
IconCut [Исходник...
Программирование ...

Топ загрузок
Приложение Клие... 100519
Delphi 7 Enterp... 91140
Converter AMR<-... 20098
GPSS World Stud... 15146
Borland C++Buil... 12885
Borland Delphi ... 9074
Turbo Pascal fo... 7105
Калькулятор [Ис... 5158
Visual Studio 2... 5028
FreeSMS v1.3.1 3557
Случайные статьи
Группировка симво...
Отчет по доходам н...
Как работает опера...
Работа с «пустыми»...
Безызбыточное коди...
Проектирование реш...
Глава 2. Эпизод из...
Индексированные об...
Сколько изображени...
Завершение работы ...
Формы расширенного...
• доступ к архивны...
Обычно они указыва...
Датчики приближения
Этап 3 - сколемизация
Раздел 2.6
последний месяц, п...
Архитектурные реше...
Где взять денег в ...
Стили и парадигмы ...
Понятие "документ"...
вопросами организа...
Книга посвящена пр...
Если вы рассчитыва...
Казино
Статистика



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


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