Главная / Моделирование систем / Имитация обслуживания заявок с абсолютными приоритетами

Имитация обслуживания заявок с абсолютными приоритетами

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

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

PREEMPT A, B,C, D,E

Где A — имя устройства, в которое входит транзакт;

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

Значение по умолчанию (операнд B не указан): транзакт, входящий в устройство через оператор PREEMPT, в любом случае прерывает обслуживание транзакта, находящегося в этот момент в устройстве;

PR: транзакт, проходящий через оператор PREEMPT, прерывает обслуживание транзакта, находящегося в этот момент в устройстве, только при условии, что приоритет транзакта, входящего через оператор PREEMPT, выше, чем у транзакта, находящегося в устройстве. Приоритет транзактов устанавливается при их создании (в операторе GENERATE) или оператором PRIORITY;

C — метка оператора, на который передается транзакт, обработка которого была прервана;

D — номер параметра транзакта, обработка которого была прервана; в этот параметр записывается время, остававшееся до конца обработки транзакта в устройстве в момент поступления прерывающего транзакта;

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

значение по умолчанию (операнд E не указан): обработка транзакта в устройстве прерывается, а после выхода прерывающего транзакта из устройства — возобновляется и доводится до конца;

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

Примечание. Действие операндов C, D,E оператора PREEMPT аналогично действию операндов C, D,B (соответственно) оператора FUNAVAIL.

Для имитации выхода прерывающего транзакта из устройства используется следующий оператор:

RETURN A

Где A — имя устройства, из которого выходит транзакт.

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

Пример 3. На компьютере решаются задачи по заказам пользователей. Поток задач можно считать пуассоновским; средний интервал между моментами поступления задач — 10 минут. Решение задачи на компьютере занимает от 4 до 8 минут. Примерно 65% задач, поступающих для решения — обычные задачи, 25% — срочные, 10% — особо срочные.

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

Прибыль от решения обычной задачи составляет 10 денежных единиц (д. е.), срочной — 12 д. е., особо срочной — 15 д. е.

Разработать GPSS-модель для исследования процесса решения задач в течение 100 часов. Предусмотреть подсчет прибыли.

10 SIMULATE

20 XPDIS FUNCTION RN1,C24

… таблица соответствия для имитации экспоненциального распределения…

30 TIP FUNCTION RN1,D3

0.1,3/0.35,2/1,1

40 GENERATE 600,FN$XPDIS

50 PRIORITY FN$TIP

60 TEST E PR,1,SROCHN

70 QUEUE 1

80 SEIZE COMP

90 DEPART 1

100 ADVANCE 360,120

110 RELEASE COMP

120 SAVEVALUE PRIB+,10

130 TRANSFER, KON

140 SROCHN QUEUE 1

150 PREEMPT COMP, PR

160 DEPART 1

170 ADVANCE 360,120

180 RETURN COMP

190 TEST E PR,2,PRIB3

200 SAVEVALUE PRIB+,12

210 TRANSFER ,KON

220 PRIB3 SAVEVALUE PRIB+,15

230 KON TERMINATE

240 GENERATE 36000

250 TERMINATE 1

Модель работает следующим образом. Оператор 40 имитирует поступление потока задач. В операторе 50 каждому транзакту (имитирующему задачу) назначается приоритет; для этого используется дискретная функция TIP. 10% всех транзактов получают приоритет 3, 25% — приоритет 2, остальные (65%) — приоритет 1. В операторе 60 происходит разделение транзактов по приоритетам; для этого проверяется значение стандартного числового атрибута PR (приоритет транзакта). Транзакты с приоритетом 1 (обычные задачи) направляются в оператор 70, остальные (срочные и особо срочные) — в оператор с меткой SROCHN. Операторы 70-130 имитируют решение обычных задач, операторы 140-220 — решение срочных и особо срочных задач. Операнд PR в операторе PREEMPT необходим для того, чтобы решение задачи не прерывалось при поступлении задачи, имеющей такой же (или низший) приоритет.

Примечание. Транзакты, занимающие устройство через оператор PREEMPT, учитываются в результатах моделирования точно так же, как и транзакты, занимающие устройство через оператор SEIZE. Эти транзакты учитываются при подсчете количества транзактов, входивших в устройство, и при определении среднего времени пребывания транзакта в устройстве (величины ENTRIES и AVE. TIME в файле выходной статистики).