русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

TERMINATE


Дата добавления: 2014-11-28; просмотров: 653; Нарушение авторских прав


 

Рис. 3.5

Например, в сегменте, приведенном на рис.3.5, транзакты, поступающие в модель из блока GENERATE через случайные интервалы времени, имеющие равномерное распределение на отрезке [60;140], попадают в блок ADVANCE. Здесь определяется случайное время задержки транзакта, имеющее равномерное распределение на отрезке [30;130]. По истечении времени задержки транзакт входит в блок TERMINATE, где и уничтожается.

2) Блоки, связанные с аппаратными объектами.

Все примеры моделей, рассматривавшиеся выше, пока еще не являются моделями систем массового обслуживания, так как в них не учтена основная особенность СМО: конкуренция заявок на использование некоторых ограниченных ресурсов системы (например, времени работы устройства). Все транзакты, входящие в эти модели через блок GENERATE, немедленно получают возможность «обслуживания» в блоке ADVANCE, который никогда не «отказывает» транзактам во входе, сколько бы транзактов в нем не находилось.

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

имя SEIZE A

имя RELEASE А

В поле А указывается номер или имя устройства. Если транзакт входит в блок SEIZE, то устройство, указанное в поле А, становится занятым и остаётся в этом состоянии до тех пор, пока этот же транзакт не пройдёт соответствующий блок RELEASE, освобождая устройство. Если устройство, указанное в поле А блока SEIZE, уже занято каким-либо транзактом, то никакой другой транзакт не может войти в этот блок и остаётся в предыдущем блоке. Транзакты, задержанные (заблокированные) перед блоком SEIZE, остаются в списке текущих событий и при освобождении устройства обрабатываются с учетом приоритетов и очередности поступления.



Воспользуемся блоками SEIZE и RELEASE для моделирования одноканальной СМО (рис 3.6):

GENERATE 100.20

SEIZE SYSTEM

ADVANCE 80.10

RELEASE SYSTEM

TERMINATE 1

 

Рис.3.6

3) Операторы для сбора статистических данных

Для регистрации статистической информации о процессе ожидания транзактов в модели должны присутствовать статистические объекты: очереди или таблицы.

Объекты типа очередь создаются в модели путем использования операторов — регистраторов очередей: QUEUE (стать в очередь) и DEPART (уйти из очереди), имеющих следующий формат:

имя QUEUEА, В

имя DEPART А,В

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

4)Блоки, изменяющие маршруты транзактов.

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

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

имя TRANSFER А,В,С

Смысл операндов в полях А, В и С зависит от режима работы оператора.

В режиме безусловной передачи поля А и С пусты, а в поле В указывается имя блока, к которому безусловным образом направляется транзакт, вошедший в блок TRANSFER. Например:

TRANSFER ,FIN

В режиме статистической передачи операнд А определяет вероятность, с которой транзакт направляется в оператор, указанный в поле С.

С вероятностью (1-А) транзакт направляется в оператор, указанный в поле В (или в следующий, если поле В пусто).

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

Например, оператор

TRANSFER .75,THIS,THAT

с вероятностью 0,75 направляет транзакты в блок с именем THAT, a с вероятностью 0,25 — в блок с именем THIS.

С помощью перечисленных операторов возможно моделирование многих несложных производственных и экономических систем.

3.2.4 Примеры простых моделей в GPSSW.

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

Пример 3.2Контролер проверяет качество изготовленных деталей. Время между поступлением деталей распределено равномерно со средним значением 10 минут и среднеквадратичным отклонением 10±5 минут. Время, затрачиваемое на контроль одной детали, также распределено равномерно и составляет 8±7 минут.

Промоделировать средствами GPSSW работу участка контроля. Определить среднее время, затрачиваемое на контроль 100 деталей, загрузку контролера, характеристики очереди деталей.

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

Исходный текст программы модели представлен на рис. 3.6:

Операторы исходного текста программы Пояснения
GENERATE 10,5 Поступление деталей каждые 10±5 минут
QUEUEVHOD Занять очередь с именем VHOD
SEIZEKONTR Попытка занять контролера
DEPART VHOD Если попытка удалась, покинуть очередь деталей
ADVANCE 8,7 Задержка на время операции контроля
RELEASE KONTR Освобождение контролера
TERMINATE 1 Деталь (транзакт) удаляется из системы, одновременно из содержимого счетчика завершений вычитается единица

 

Рис. 3.6

Программа запускается управляющим оператором START 100.

После прогона модели выдается стандартный отчет (см. Таблица 3.2):

Содержимое стандартного отчета к примеру 3.2 Таблица 3.2

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

· об обрабатывающем устройстве: на контроль всех 100 деталей будет затрачено в среднем 1014 минут, коэффициент загрузки контролера составит 0,808, на контроль одной детали затрачивается в среднем 8,199 минуты.

· статистика очереди: общее количество деталей, подвергнутых контролю, составило 100 штук, 46 из них поступили на контроль с нулевым временем простоя в очереди (т.е. контролер был не занят в момент их поступления). Максимальная длина очереди составила 5 деталей, средняя длина очереди ­ 0,496 детали, а среднее время простоя в очереди одной детали составило 5,027 минуты.

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

START 100 (надо обработать 100 транзактов) в счетчик завершений засылается число 100. Каждый транзакт, проходящий через оператор TERMINATE, вычитает из счетчика завершений 1, т.к. параметр А этого блока равен 1. Таким образом, моделирование завершится, когда 100-ый по счету транзакт войдет в оператор TERMINATE. При этом точное значение таймера в момент завершения прогона непредсказуемо. Следовательно, в приведенном примере продолжительность прогона устанавливается по количеству транзактов, прошедших через модель.

Пример 3.3Изменена цель предыдущей задачи: необходимо исследовать работу участка контроля за одну смену. т.е. задано время моделирования. Поскольку все временные интервалы должны быть представлены одинаковыми единицами измерения, время моделирования представим в минутах (длительность смены ­ 8 часов): 60*8=480 минут. В этом случае программа примет следующий вид (рис.3.7):

GENERATE 10,5
QUEUEVHOD
Сегмент 1: сохранившаяся часть программы
SEIZEKONTR

DEPART VHOD
ADVANCE 8,7
RELEASE KONTR
TERMINATE

Сегмент 2: сегмент времени моделирования.
GENERATE ,,480



<== предыдущая лекция | следующая лекция ==>
Вопросы по теме | TERMINATE 1


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.189 сек.