Моделирование на языке GPSS
Операнд X может принимать следующие значения: U (устройство занято); NU (устройство свободно); I (устройство захвачено); NI (устройство не захвачено); SE (МКУ пусто); SNE (МКУ не пусто); SF (МКУ заполнено); SNF (МКУ не заполнено); LS ( ЛП включен), LR (ЛП выключен), FNV (ОКУ недоступно), FV (ОКУ доступно).
4.3 Блоки SEIZE и RELEASE
Для моделирования ограниченных ресурсов СМО в модели до
лжны присутствовать аппаратные объекты: одноканальные или многоканальные устройства. Одноканальные устройства создаются в текущей модели при использовании блоков SEIZE (занять) и RELEASE (освободить), имеющих следующий формат:
имя SEIZE A
имя RELEASE A
В поле A указывается номер или имя устройства. Если транзакт входит в блок SEIZE, то устройство, указанное в поле A, становится занятым и остаётся в этом состоянии до тех пор, пока этот же транзакт не пройдёт соответствующий блок RELEASE, освобождая устройство. Если устройство, указанное в поле A блока SEIZE, уже занято каким-либо транзактом, то никакой другой транзакт не может войти в этот блок и остаётся в предыдущем блоке. Транзакты, задержанные (заблокированные) перед блоком SEIZE, остаются в списке текущих событий и при освобождении устройства обрабатываются с учетом приоритетов и очередности поступления. Каждое устройство имеет следующие СЧА: F - состояние устройства (0 - свободно,1 - занято); FR - коэффициент использования в долях 1000; FC - число занятий устройства; FT - целая часть среднего времени занятия устройства.
4.4 Блок ADVANCE
Для задержки транзактов на определенный отрезок модельного времени, служит блок ADVANCE (задержать), имеющий следующий формат:
имя ADVANCE A,B
Операнды в полях A и B имеют тот же смысл, что и в соответствующих полях блока GENERATE. Следует отметить, что транзакты, входящие в блок ADVANCE, переводятся из списка текущих событий в список будущих событий, а по истечении вычисленного времени задержки возвращаются назад, в список текущих событий, и их продвижение по блок-схеме продолжается. Если вычисленное время задержки равно 0, то транзакт в тот же момент модельного времени переходит в следующий блок, оставаясь в списке текущих событий.
Только блоки GENERATE и ADVANCE позволяют поместить транзакты в список будущих событий. С помощью этих блоков моделируется продолжительность какого-либо события или промежуток времени между наступлениями каких-либо событий.
4.5 Блок TERMINATE
Блок TERMINATE (завершить) служит для удаления транзактов из модели, и имеет следующий формат:
имя TERMINATE A
Значение поля A указывает, на сколько единиц уменьшается содержимое так называемого счетчика завершений при входе транзакта в данный блок TERMINATE. Если поле A не определено, то оно считается равным 0, и транзакты, проходящие через та кой блок, не уменьшают содержимого счетчика завершений.
Начальное значение счетчика завершений устанавливается управляющим оператором START (начать), предназначенным для запуска прогона модели. Поле A этого оператора содержит начальное значение счетчика завершений. Прогон модели заканчивается, когда содержимое счетчика завершений обращается в 0. Таким образом, в модели должен быть хотя бы один блок TERMINATE с непустым полем A, иначе процесс моделирования никогда не завершится.
4.6 Блок FUNAVAIL
Блоком FUNAVAIL (символом F обозначает ОКУ, UNAVAIL - недоступный) моделируется недоступность ОКУ. При использовании этого блока статистика ОКУ не искажается. Форма блока:
FUNAVAIL A, B, C, D, E, F, G, H
Блок делает недоступным ОКУ с именем или номером, указываемым операндом A.
Все транзакты, обрабатываемые блоком FUNAVAIL, разделяются на три класса, которые и определяют назначение операндов:
ü транзакт, занимающий ОКУ (по SEIZE или PREEMPT) в момент перевода его в недоступное состояние (операнды B, C, D);
ü ранее прерванные транзакты, находящиеся в списке прерываний (операнды E, F);
ü транзакты, находящиеся в списке отложенных прерываний и в списке задержки ОКУ (операнды G, Н). Операндом В задаются режимы обработки транзакта, занимающего ОКУ в момент перевода его в недоступное состояние:
ü СО - режим продолжения: продолжить обработку занимающего ОКУ транзакта во время недоступности;
ü RE - режим удаления: удалить и направить занимающий ОКУ транзакт к блоку, метка которого должна быть указана операндом С;
ü по умолчанию - прервать обработку и поместить в список прерываний ОКУ, после восстановления доступности этот транзакт может занять ОКУ и «дообслужиться».
Операнд С - метка блока, в который будет направлен в режиме удаления транзакт, занимавший ОКУ в момент перевода его в недоступное состояние.
Операнд D - номер или имя параметра транзакта, занимавшего ОКУ в момент перевода его в недоступное состояние; если он будет удален (режим RE), т. е. исключен из СБС, в этот параметр будет записано время, оставшееся удаленному транзакту до конца обслуживания.
Операндом Е задаются режимы обработки транзактов, находящихся к моменту перевода ОКУ в недоступное состояние в списке прерываний, т. е. тех транзактов, обслуживание которых на данном ОКУ было ранее прервано:
ü СО - режим продолжения: продолжить работу ОКУ во время недоступности - обслуживать транзакты из списка прерываний;
ü RE - режим удаления: удалить и направить транзакты из списка прерываний к новому блоку, метка которого должна быть указана операндом F;
ü по умолчанию - оставить ранее прерванные транзакты в списке прерываний ОКУ и запретить им занимать его во время недоступности.
Операнд F указывает метку блока, к которому будут направлены транзакты из списка прерываний ОКУ, вследствие чего они не могут находиться в СБС, поэтому для них нет возможности занесения в их параметры времени, оставшегося до конца обслуживания.
Операнд F может использоваться и тогда, когда отсутствует операнд Е (по умолчанию). В этом случае для перемещенных к новому блоку транзактов прерывание обслуживания сохраняется.
Операндом G задаются режимы обработки транзактов, находящихся к моменту перевода ОКУ в недоступное состояние в списке отложенных прерываний, т. е. ожидающих выполнения с прерыванием, и в списке задержки:
ü СО - режим продолжения: продолжить работу ОКУ во время недоступности - обслуживать транзакты из списка отложенных прерываний и списка задержки;
ü RE - режим удаления: удалить и направить транзакты из списка отложенных прерываний и списка задержки к новому блоку, метка которого должна быть указана операндом Н
ü по умолчанию - оставить транзакты в списке отложенных прерываний и списке задержки ОКУ и запретить им занимать его во время недоступности. Операндом Н указывается метка нового блока, к которому в режиме удаления (RE) направляются транзакты из списка отложенных прерываний и списка задержки. Когда операнд G не используется, нельзя использовать и операнд Н.
4.7 Блок FAVAIL
Блок FAVAIL изменяет состояние ОКУ на доступное, т. е. восстанавливает обычный режим вхождения транзактов в ОКУ. Блок имеет следующий формат:
Другие рефераты на тему «Программирование, компьютеры и кибернетика»:
Поиск рефератов
Последние рефераты раздела
- Основные этапы объектно-ориентированного проектирования
- Основные структуры языка Java
- Основные принципы разработки графического пользовательского интерфейса
- Основы дискретной математики
- Программное обеспечение системы принятия решений адаптивного робота
- Программное обеспечение
- Проблемы сохранности информации в процессе предпринимательской деятельности