Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Занятие и освобождение многоканального устройства (памяти)

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

Единица модельного времени определяется разработчиком модели, который задает все временные интервалы в одних и тех же, выбранных им, единицах;

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

Транзакт входит в блок, функцией которого является задержка транзакта на некоторое определенное в модели время (блок ADVANCE);

Транзакт входит в блок TERMINATE;

Цепь будущих событий (ЦБС) включает в себя транзакты, планируемое время продвижения которых больше текущего времени, т.е. события, связанные с продвижением этих транзактов, должны произойти в будущем. Этот список организуется в порядке возрастания планируемого времени продвижения транзактов. Уровень приоритета не влияет на место транзакта в этой цепи.

Первые два вида списков формируется интерпретатором всегда. Остальные списки организуются по мере необходимости и в количестве более одного.

Он находится (отмечен) в одном или нескольких цепях (списках) GPSS.

Он находится в каком-либо конкретном блоке.

Теперь рассмотрим более подробно логику работы интерпретатора GPSS.

Логика работы интерпретатора

START 1

TERMINATE 1

GENERATE 1440

*

* Далее идет управляющая команда

*

В любой момент времени место транзакта может быть определено двояко:

В GPSS World имеются 8 видов цепей:

· цепь текущих событий (CURRENT Events Chain);

· цепь будущих событий (Future Events Chain);

· цепь задержки (Delay Chain); и др. цепи.

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

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

Если транзакт начал свое движение, он перемещается от блока к блоку по пути, предписанному блок-схемой. В тот момент, когда транзакт входит в некоторый блок, на исполнение вызывается подпрограмма интерпретатора, соответствующая типу этого блока, а после ее выполнения, при котором реализуется функция данного блока, транзакт "пытается" войти в следующий блок. Такое продвижение транзакта продолжается до тех пор, пока не произойдет одно из следующих возможных событий:

3) транзакт "пытается" войти в следующий блок, однако блок "отказывается" принять его. В этом случае транзакт удаляется из ЦТС и помещается в цепь задержки, связанную с данным моделирующим элементом GPSS (например, с прибором TLG из предыдущего примера). С точки зрения пользователя он как бы остается в том блоке, где находился, и позднее будет повторять свою попытку войти в следующий блок. Когда условия в модели изменятся, такая попытка может оказаться успешной, и транзакт сможет продолжить свое перемещение по блок-схеме.

Итак, логика работы интерпретатора состоит в следующем:

1. Активный транзакт продвигается по модели от блока к блоку.

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

3. Если приоритеты в модели разные, то в ЦТС могут попасть транзакты, имеющие более высокий приоритет, чем у активного транзакта, и тогда происходит смена активного транзакта.

Когда в ЦТС не остается ни одного транзакта, которые могли бы быть продвинуты в модели в текущий момент модельного времени, интерпретатор изменяет модельное время так, чтобы оно стало равным планируемому времени движения первого транзакта в ЦБС. Этот, а также все другие транзакты, движение которых может быть возобновлено в тот же момент модельного времени, из ЦБС переносятся в ЦТС, где и размещаются в порядке убывания приоритета. Начинается новый просмотр ЦТС интерпретатором. Эта последовательность действий производится при каждом новом значении модельного времени до тех пор, пока не будет выполнено условие окончания моделирования.

Проходя через блоки модели, каждый транзакт вносит вклад в содержимое счетчиков блоков. Значения этих счетчиков доступны программисту через СЧА блоков: W - текущее содержимое блока и N - общее количество входов в блок.

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

Таймер GPSS World имеет следующие особенности:

Значения таймера доступны программисту через системные СЧА C1 (относительное время) и AC1 (абсолютное время).

Для создания в модели многоканальных устройств (МКУ) они должны быть предварительно определены с помощью операторов определения STORAGE (память), имеющих следующий формат:

<== предыдущая лекция | следующая лекция ==>
В модели при этом не должны быть другие блоки terminate с ненулевым операндом а | Mku1 storage 5
Поделиться с друзьями:


Дата добавления: 2014-01-07; Просмотров: 468; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




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