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

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

Поиск пути в графе заданном списками инцедентности на 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...
Шаблон для новост...

Случайные загрузки
Java 2 - Эффектив...
Система баннеро...
C# 2005 и платфор...
Х. М. Дейтел, П. ...
Формирование отче...
CarGame [Исходник...
База каталогов ( ...
PDJ_Anima
С. Г. Горнаков - ...
Правила программи...
Функции Visual Basic
Battle.Net - мони...
Язык программиров...
Plasma
БД студентов
AddPage [Исходник...
Пример создания W...
Создание меню на ...
JBlabel3D
Аватары в комме...

Топ загрузок
Приложение Клие... 100794
Delphi 7 Enterp... 98040
Converter AMR<-... 20298
GPSS World Stud... 17060
Borland C++Buil... 14246
Borland Delphi ... 10376
Turbo Pascal fo... 7393
Калькулятор [Ис... 6084
Visual Studio 2... 5236
Microsoft SQL S... 3674
Случайные статьи
Разработайте струк...
Игры. Как играть в...
Каждый новый узел ...
Язык С: операции н...
Процедура SetWrite...
1.1. Набросок решения
Функция ImageSize ...
Вопросы проектиров...
FRAD, удовлетворяю...
Настройте коммутир...
Автомат Secret Forest
OpenAP — это абсол...
6.4. Работа с утв...
Глава 21. Жизне...
Атрибуты, содержащ...
Работа с папками SMS
Вулкан Делюкс - дл...
Обзор букмекера 1xBet
Функции для работы...
Проектирование реш...
ОШИБКИ ОКРУГЛЕНИЯ
3.2. АНТИПАТТЕРН: ...
Программа содержи...
при создании масси...
Все слышали про Ву...
Статистика



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


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