Записать и запустить на выполнение программу для решения примера 1.



Пример 1.Поток требований, поступающий в систему каждые 5 мин., сначала направляется в первое устройство обслуживания. Каждые 55 мин. на время 15 мин. первое устройство становится недоступным. При этом каждые 11 мин. на время 9 мин. делается попытка прервать поток требований, поступающих в первое устройство. В случае недоступности первого устройства требования направляются на обслуживание во второе, третье и четвертое устройства. Длительность обслуживания первого устройства составляет 4 мин., остальных — 11 мин. Смоделировать работу системы по обслуживанию 100 требований.

Решение примера 1 приводится как программа 1.

 

GENERATE 5; Генерирование потока требований FACIL1 SEIZE 1; Устройство №1 с меткой FACIL1 ADVANCE 4 RELEASE 1 exit1 TERMINATE 1 ************************************************************** GENERATE 55; Генерирование потока команд по недоступности FUNAVAIL 1,re,FACIL2,,re,FACIL3,re,FACIL4; Недоступность 1-*го устройства ADVANCE 15 FAVAIL 1; Снятие недоступности TERMINATE ************************************************************** FACIL2 SEIZE 2; Устройство №2 с меткой FACIL2 ADVANCE 11 RELEASE 2 TRANSFER ,exit1 ************************************************************** FACIL3 SEIZE 3; Устройство №3 с меткой FACIL3 ADVANCE 11 RELEASE 3 TRANSFER ,exit1 ************************************************************** FACIL4 SEIZE 4; Устройство №4 с меткой FACIL4 ADVANCE 11 RELEASE 4 TRANSFER ,exit1 ************************************************************** GENERATE 11; Генерирование потока прерываний PREEMPT 1 ADVANCE 9 RETURN 1 TERMINATE ************************************************************** START 100; Задание числа счетчика завершений
Программа 1.

Блоки, связанные с устройствами, FUNAVAIL и FAVAIL, PREEMPT и RETURN действуют попарно. Попытка прерывания первого устройства блоком PREEMPT позволяет задействовать все рабочие поля блока FUNAVAIL. Один блок FUNAVAIL осуществляет распределение требований по устройствам.

Формат записи блока FUNAVAIL:

FUNAVAIL 1,re,FACIL2, ,re,FACIL3,re,FACIL4

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

— режим RE (режим удаления — remove) означает, что занимавший устройство транзакт, больше не может претендовать на устройство. Удаленный транзакт попытается войти в альтернативный блок, заданный в поле <C>. В программе использован режим RE (re в поле <B>);

— режим СО (режим продолжения — continue) позволяет транзакту использовать устройство в период недоступности;

— если режим не задан (режим по умолчанию). то это означает, что транзакт, использующий устройство, прерывается до тех пор, пока устройство вновь не станет доступным.

В поле <C> задается номер или имя блока, к которому направляется транзакт, использующий устройство в момент, когда оно становится недоступным (в программе транзакт отправляется в блок с меткой FACIL2).

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

Поле <E> может быть использовано в следующих допустимых режимах:

— режим RE (режим удаления) указывает на то, что прерванные транзакты (например, блоком PREEMPT) больше не могут претендовать на устройство. Эти транзакты пытаются войти в альтернативный блок, заданный в поле <F>. В программе задан режим удаления (в поле <E> задан операнд "re");

— режим СО (режим продолжения) допускает использование устройства всеми транзактами во время периода недоступности. Транзакты занимают устройство в порядке их приоритета;

— если режим не задан (режим по умолчанию — пустое поле), то прерванный транзакт покидает список прерывания устройства, и не допускается использование устройства во время периода недоступности.

В поле <F> задается номер или имя альтернативного блока, к которому направляется прерванный транзакт. Поле <F> используется, если в поле <E> задан режим удаления. В программе в поле <F> задан блок с меткой FACIL3.

Когда устройство становится недоступным поле <G> определяет действия с транзактами, пытающимися занять устройство или сгенерировать на нем прерывание (например, блоком PREEMPT) в момент, когда это устройство становится недоступным. Допускаются следующие режимы поля <G>:

— режим RE (режим удаления) указывает на то, что задержанные транзакты больше не должны претендовать на устройство. Эти транзакты не должны пытаться войти в блоки RETURN или RELEASE. Они удаляются из списков задержки с тем, чтобы в дальнейшем попытаться войти в альтернативный блок, заданный полем <H>. В программе используется режим удаления (в поле <G> задан операнд "re");

— режим СО (режим продолжения) предполагает, что всем транзактам будет разрешено использовать устройство во время периода его недоступности. Транзакты занимают устройство в порядке их приоритета;

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

Поле <H> задает номер или имя блока, к которому направляются задержанные транзакты в режиме RE поля <G>. В программе в поле <H> задан блок с меткой FACIL4.

Блок PREEMPT используется в простом режиме прерывания.

Распределение транзактов по устройствам может быть изменено, если для одного из устройств применить блок TERMINATE с пустым полем <A>.

Формат записи блока FAVAIL:

FAVAIL 1

В поле <A> блока FAVAIL задается номер или имя устройство, с которого снимается недоступность. В программе в поле <A> задано число 1 — номер первого устройства. Блок FAVAIL делает доступным заданное устройство после периода недоступности.

Чаще блок FUNAVAIL используется только для осуществления недоступности устройства.


Дата добавления: 2018-09-23; просмотров: 188; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!