Навигация
Главная
Поиск
Форум
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
Реклама
лев хасис сбербанк
Сейчас на сайте
Гостей: 12
На сайте нет зарегистрированных пользователей

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

Обратное размещение элементов ЭВС на Delphi + Пояснительная записка
Метод половинного деления для нахождения корня уровнения на Turbo Pascal...
Метод конечных разностей для интерполяции/экстраполяции на Delphi

Блоки работы с приборами

Блок SEIZE

Назначение. Блок позволяет активному транзакту занять прибор или встать в очередь к прибору.

Синтаксис. SEIZE A

Назначение операндов.

Операнд

Назначение

Значение

Значение по умолчанию

A

Имя занимаемого прибора

Имя, число,

СЧА

Обязательный операнд

Особенности выполнения.

1.      При попытке транзакта войти в блок SEIZE всегда проверяется, свободен ли прибор и находится ли в состоянии «готов к использованию».

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

3.      Блок SEIZE отказывает во входе транзакту, если прибор занят или находится в состоянии «не готов к использованию». При этом устанавливается его индикатор задержки и транзакт помещается в список задержки прибора в конец своего приоритетного класса

 

Пример использования.

SEIZE Server

Активный транзакт пытается занять прибор с именем Server.

 

Блок PREEMPT

Назначение. Блок позволяет транзакту, в зависимости от условий, заданных в операндах блока, занять прибор.

Синтаксис. PREEMPT A,[B],[C],[D],[E]

Назначение операндов.

Операнд

Назначение

Значение

Значение по умолчанию

A

имя занимаемого прибора

Имя, число,

СЧА

Обязательный операнд

B

Условия занятия прибора

PR

Режим прерывания

C

Блок, куда должен перейти прерванный транзакт

Имя, число,

СЧА

Нет

D

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

Имя, число,

СЧА

Нет

E

Режим удаления

RE

Нет

Особенности выполнения.

 

1.      Если прибор находится в состоянии «не готов к использованию», то транзакт помещаются в список задержки прибора в конец своего приоритетного класса.

2.      Операнд В задает приоритетный режим (PR) или режим прерывания, если операнд опущен.

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

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

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

6.      Прерванные транзакты помещаются в список прерываний в порядке приоритета.

7.      Операнд С задает блок, куда должен попытаться перейти прерванный транзакт в этот же момент модельного времени.

8.      Если прерываемый транзакт находится в списке будущих событий(вошел в блоке ADVANCE), то для него выполняются следующие действия:

·        вычисляется остаток времени, в течение которого транзакт должен был находиться в блоке ADVANCE, равный разнице планируемого времени  выхода транзакта из блока ADVANCE и текущего значения абсолютного условного времени; Операнд D задает номер параметра прерванного транзакта, куда записывается вычисленный остаток времени. Если такой параметр не существует, то он создается.

·        транзакт удаляется из списка будущих событий;

·        транзакт рассматривается, как находящийся в состоянии прерывания и помещается в список прерывания;

·        счетчик прерываний увеличивается на единицу.

9.        Прерываемый транзакт может находиться в списке текущих событий (например, когда блок ADVANCE имеет нулевую задержку). В этом случае удаление транзакта из списка текущих событий и перевод его в состояние прерывания производится не сразу. Сначала устанавливается индикатор состояния прерывания. Транзакт, занимающий прибор, будет обрабатываться интерпретатором как обычно и перейдет в состояние прерывания  только тогда, когда оно войдет в блок ADVANCE с ненулевой задержкой.

10.  Поле Е задает один из следующих режимов:

-режим удаления(RE). Задание этого режима означает, что прерванный транзакт более не претендует на пользование прибором. Прерванный транзакт пытается войти в блок, заданный полем С (если в поле Е стоит RE, то должно быть указано и поле С). При использовании RE прерванный транзакт не должен входить в блоки RELEASE и RETURN, связанные с прерванным транзактом;

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

11.  Прерванный транзакт борется за прибор, даже если он перемещен операндом С (если RE не используется в операнде Е). Если прерванный транзакт все еще борется за прибор, то попытка транзакта войти в блок TERMINATE приводит к ошибке. Такой транзакт перед входом в блок TERMINATE должен войти в блок RELEASE или блок RETURN.

12.  Транзакт может быть прерван на любом количестве приборов и продолжать циркулировать в модели при выполнении следующих двух условий:

-транзакт вошел в блок ADVANCE с положительным временем;

-транзакту не разрешается покинуть блоки ASSEMBLE, GATHER или MATCH до тех пор, пока в них не войдет заданное число транзактов из того же семейства.

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

14.  При использовании операндов C, D, E следует учитывать следующее:

-при задании полей D и (или) E, поле С также должно быть задано;

-если приоритетный режим не задан (PR в операнде B), то операнды C, D и (или) E игнорируются.

 

Примеры использования.

PREEMPT UNIT

В режиме прерывания, если прибор UNIT уже занят, поступивший транзакт помещается в список отложенных прерываний

 

PREEMPT UNIT,PR,NODE2,P_Time

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

 

Блок RELEASE

Назначение. Блок позволяет активному транзакту освободить занятый прибор или исключить транзакт из списка прерываний прибора.

Синтаксис. RELEASE A

Назначение операндов.

Операнд

Назначение

Значение

Значение по умолчанию

A

Имя освобождаемого прибора

Имя, число,

СЧА

Обязательный операнд

 

Особенности выполнения.

1.      Если прибор занят активным транзактом, он освобождает прибор и пытается войти в следующий по порядку блок.

2.      Если активный транзакт был ранее вытеснен из прибора, он исключается из списка прерываний прибора и пытается войти в следующий по порядку блок.

3.       Если он не занимает прибор и не вытеснен из него, происходит останов по ошибке.

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

5.      Активизируются транзакты из списка задержки блоков GATE NU.

6.      После того, как новый занимающий транзакт выбран из списка задержки или списка отложенных прерываний, он входит в блок SEIZE или PREEMPT, и помещается в список текущих событий в конец своего приоритетного класса.

 

Пример использования.

RELEASE WorkStation

Освобождается прибор с именем WorkStation. Следующий транзакт выбирается из списка отложенных прерываний, списка прерываний или списка задержки. Если в списках транзакты отсутствуют, прибор становится не занятым. Новый занимающий транзакт входит в блок SEIZE или PREEMPT, и помещается в список текущих событий в конец своего приоритетного класса.

 

Блок RETURN

Назначение. Блок позволяет активному транзакту освободить занятый прибор или исключить транзакт из списка прерываний прибора.

Синтаксис. RETURN A

Назначение операндов.

Операнд

Назначение

Значение

Значение по умолчанию

A

Имя освобождаемого прибора

Имя, число,

СЧА

Обязательный операнд

 

Особенности выполнения(см. блок RELEASE).

 

Пример использования.

RETURN WorkStation

Освобождается прибор с именем WorkStation

 

Блок FAVAIL

Назначение. Блок обеспечивает перевод прибора в состояние «готов к использованию» .

Синтаксис. FAVAIL A

Назначение операндов.

Операнд

Назначение

Значение

Значение по умолчанию

A

Имя переводимого прибора

Имя, число,

СЧА

Обязательный операнд

 

Особенности выполнения.

1.     Блок переводит прибор в состояние «готов к использованию»

2.     Если прибор был до этого в состоянии «не готов к использованию», блок пытается передать его ожидающему транзакту

 

Пример использования.

FAVAIL Server

Прибор с именем Server переводится в состояние «готов к использованию»

 

Блок FUNAVAIL

Назначение. Блок обеспечивает перевод прибора в состояние «не готов к использованию».

Синтаксис. FUNAVAIL A,[B],[C],[D],[E],[F],[G],[H]

Назначение операндов.

Операнд

Назначение

Значение

Значение по умолчанию

A

Имя переводимого прибора

Имя, число,

СЧА

Обязательный операнд

B

Режим для транзакта, занимающего в данный момент прибор

RE,

CO

 

C

Блок, куда должен перейти занимающий прибор транзакт

Имя, число,

СЧА

Нет

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



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

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

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

Нет данных для оценки.

Гость
Имя

Пароль



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

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

Случайные загрузки
PRNDbgrid
Род Стивенс. Delp...
SMLPack v1.0
DirHTMLReportBuil...
Converter AMR<->W...
CarGame [Исходник...
GamesBase 3.0
Turbo Pascal for ...
PDJ_Anima
Последнее загруж...
Прграммирование в...
MpegPlay
Программирование ...
С. Г. Горнаков - ...
Введение в станда...
Пример создания W...
Дешифратор содерж...
KOL & MCK v1.69
Ранги для форума
БД студентов

Топ загрузок
Приложение Клие... 100774
Delphi 7 Enterp... 97860
Converter AMR<-... 20270
GPSS World Stud... 17022
Borland C++Buil... 14197
Borland Delphi ... 10307
Turbo Pascal fo... 7376
Калькулятор [Ис... 5997
Visual Studio 2... 5207
Microsoft SQL S... 3661
Случайные статьи
Использование прог...
На практике
Я запустил все три...
14.1. Структура да...
Хакинг
Блокировка файлов
16.10.
Глава 14. Разде...
Тотальный мониторинг
Программы-генераторы
Оператор поиска в ...
Комментарии в языке С
Требования к быстр...
Простейшие комбина...
Снова об интерфейс...
Линии не имели общ...
Оптимизация кода
Умеете ли вы делат...
пользователям
Статические маршру...
Диаграмма связей к...
]2ошСв edsfes
Регистры последова...
Казино Parimatch
Наиболее элементар...
Статистика



Друзья сайта
Программы, игры
Error: Incorrect password!
Error: Incorrect password!


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