Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

книги / Моделирование систем. Практикум

.pdf
Скачиваний:
7
Добавлен:
12.11.2023
Размер:
17.79 Mб
Скачать

SIMULATE

10 GENERATE 5,2„100

20 TRANSFER PICK,3,6

30TRANSFER ,CHAN 1

31TRANSFER ,CHAN2

32TRANSFER ,CHAN3

33TRANSFER ,CHAN4

********************1 _й канал обслуживания****

35 CHAN1 SEIZE 1;

40 ADVANCE 12,2

50 RELEASE 1

60 TRANSFER,EXIT

********************2-й канал обслуживания****

70CHAN2 SEIZE 2;

80 ADVANCE 9,2

90 RELEASE 2

100 TRANSFER ,EXIT

********************3 _jg каиал обслуживания****

110CHAN3 SEIZE 3;

120 ADVANCE 7,2

130 RELEASE 3

140 TRANSFER,EXIT

********************4 „g канал обслуживания****

150CHAN4 SEIZE 4;

160 ADVANCE 13,2

170 RELEASE 4

************************************************

180 EXIT TERMINATE 1 START 100

;CLEAR ;START 100 ;CLEAR ;START 100 ;CLEAR END

Р и с . 3.20. П рограмма EX A M 10.G PS

Программа решения примера 3.9 EXAM10.GPS приведена на рис. 3.20. В программе предусматривается возможность повторных прогонов (операторы CLEAR и START 100).

Формат записи блока TRANSFER в режиме PICK имеет следующий

вид:

20 TR A N SFE R PIC K ,3,6

В поле < А> стоит зарезервированное слово PICK. В этом режиме блок TRANSFER случайным образом с равной вероятностью отправляет транзакт в один из блоков, которые составляют ряд от начального блока, указанного в поле <В>, до блока, указанного в поле <С>. Если блок поля <В> обозначить как N, а блок поля <С> как М, то вероятность отправле­ ния транзакта на один из блоков с номерами N ,N + 1,N + 2, ...,М равна

61

1

(M -N )+l

Для программы EXAM 10.GPS эта вероятность равна ^ -- ^ —- = 025 .

Некоторая ограниченность применения блока TRANSFER в режиме PICK может быть обусловлена необходимостью расположения прини­ мающих блоков в строгой последовательности друг за другом. Но, как следует из программы EXAMI0.GPS, с помощью блока TRANSFER в ре­ жиме безусловного перехода можно проводить распределение транзактов в любую точку модели (к любому блоку).

Результаты моделирования EXAMI0.RPT (рис. 3.21) для программы EXAMI0.GPS демонстрируют особенности работы блока TRANSFER в режиме PICK. Несколько прогонов программы приводят к изменению результатов. Это объясняется тем, что рассматриваемый режим работы является вероятностным. В случае обслуживания одного транзакта (уста­ новить START I) он случайным образом попадает в какой-то канал об­ служивания. При различных прогонах транзакт будет попадать равнове­ роятно в разные каналы.

GPSS/PC R e p o rt f i l e

REPORT.GPS. (V 2 ,

# 37349)

0 2 -1 0 -2 0 0 1 05 :2 2 * 19

p a g e

1

START

TIME

END TIME

BLOCKS

FACILITIES STORAGES

FREE MEMORY

 

 

0

 

504

22

 

4

 

0

285568

 

 

LINE

LOC

 

BLOCK TYPE

ENTRY COUNT

CURRENT COUNT

RETRY

10

1

 

GENERATE

 

 

100

 

0

 

 

0

20

2

 

TRANSFER

 

100

 

0

 

 

0

30

3

 

TRANSFER

 

26

 

0

 

 

0

31

4

 

TRANSFER

 

27

 

0

 

 

0

32

5

 

TRANSFER

 

25

 

0

 

 

0

33

6

 

TRANSFER

 

 

22

 

0

 

 

0

35

CHAN1

 

SEIZE

 

 

26

 

0

 

 

0

40

8

 

ADVANCE

 

 

26

 

0

 

 

0

50

9

 

RELEASE

 

 

26

 

0

 

 

0

60

10

 

TRANSFER

 

 

26

 

0

 

 

0

70

CHAN2

 

SEIZE

 

 

27

 

0

 

 

0

80

12

 

ADVANCE

 

 

27

 

0

 

 

0

90

13

 

RELEASE

 

 

27

 

0

 

 

0

100

14

 

TRANSFER

 

 

27

 

0

 

 

0

110

CHAN3

 

SEIZE

 

 

25

 

0

 

 

0

120

16

 

ADVANCE

 

 

25

 

0

 

 

0

130

17

 

RELEASE

 

 

25

 

0

 

 

0

140

18

 

TRANSFER

 

 

25

 

0

 

 

0

ISO

CKAN4

 

SEIZE

 

 

22

 

0

 

 

0

160

20

 

ADVANCE

 

 

22

 

0

 

 

0

170

21

 

RELEASE

 

 

22

 

0

 

 

0

180

EXIT

 

TERMINATE

 

100

 

0

 

 

0

FACILITY

ENTRIES

 

U TIL.

AVE

TIME

AVAILABLE

OWNER PEND

INTER

RETRY DELAY

1

26

0 .5 6 1

10 80

1

0

0

0

0

 

0

2

27

0

494

9

22

1

0

0

0

0

 

0

3

25

0

351

7

08

1

0

0

0

0

 

0

4

22

0

579

1 3 .2 7

1

0

0

0

0

 

0

XACT_GROUP

 

GROUP SIZE

 

RETRY

 

 

 

 

 

 

POSITION

 

 

0

 

 

0

 

 

 

 

 

 

Р и с . 3.21. Стандартный $*чет ЮОДШ.ЕРТ

62

3.1.3. Блоки ASSIGN, LOOP, PREEMPT, RETURN.

Оператор EQU

Блок ASSIGN является основным средством для задания зна­ чений параметров транзактов. Параметры транзактов принимают значения из множества (свыше 1000) целых чисел. Каждый транзакт может иметь один или более параметров. Параметры транзак­ тов применяются для их различия в потоке сообщений, проходя­ щих через модель. Номера параметров используются для ссылок на значения, присвоенные параметрам. В общем случае интерпре­ тация смысла параметра произвольна и обычно задается разработ­ чиком модели. Блок ASSIGN заменяет, увеличивает или уменьша­ ет текущее значение параметра сообщения (транзакта) на заданное значение.

Блок LOOP используется для организации циклов. В поле <А> блока задается параметр, который используется в качестве счетчи­ ка цикла. Как правило, блок LOOP применяется в паре с блоком ASSIGN.

Блоки PREEMPT и RETURN относятся к аппаратной катего­ рии и к группе устройств. Эти блоки работают в паре. Блок PREEMPT — это блок захвата устройства. Он переводит устройст­ во в прерванное состояние, а блок RETURN — блок возврата за­ хваченного устройства.

Оператор EQU предназначен для присвоения числовых значе­ ний именам, используемым в модели. Назначение числовых зна­ чений может происходить при выполнении каких-либо выраже­ ний, задании стандартных числовых атрибутов и т. д. Результат вы­ числения выражения преобразуется к целому виду.

Пример ЗЛО. Видоизменим условие примера 3.4. Пусть каждая заявка проходит пять циклов обработки в обслуживающем канале в течение 3 ± 1 мин с равномерным законом распределения. Входной поток заявок подчиняется равномерному закону со временем 5 ± 2 мин. Смоделиро­ вать процесс обработки Q -схемой равно 100 заявок. Программа решения примера EXAM11.GPS приведена на рис. 3.22.

В данном примере организация пятикратного цикла обработки осу­ ществляется блоками ASSIGN и LOOP. Обращение к заданным число­ вым значениям (5 и 7) осуществляется через метки МЕТ1, МЕТ2 посред­ ством оператора EQU. Формат записи блока ASSIGN имеет вид:

20 A S SIG N 13.М ЕТ1

В поле <А> задан параметр транзакта под номером 13 (произвольно). Этому параметру сопоставляется число 5, которое переопределяется че­ рез метку МЕТ1 поля <В>. Значение поля <В> присваивается параметру,

63

SIM U L A T E

 

MET1

E Q U sqr(25)

 

M ET2

EQU (sqr(9)+2A2)

 

10

G EN ER A TE 5,2„100;

Генерация 100 транзактов

20

ASSIG N 13,MET1

 

30

SEIZE 1

 

40 CY C L5 AD V A N C E M ET2,2

 

50

LOOP 13,CYCL5

 

60

R ELEA SE 1

 

70

TER M IN A TE 1

Уничтожение транзакто в

STA RT 100;

Задание числа счетчика заверш ений

END

 

Р и с

3.22 Программа EX A M 11.G PS

номер которого задается в поле <А> Заданное число 5 осуществляется оператором EQU. Формат записи оператора EQU:

М ЕТ1

EQU

SQ R (25)

М ЕТ2

EQ U

(S Q U (9) + 2 А2)

Метка МЕТ1 — это имя в поле метки оператора. В поле <А> вычисля­ ется выражение л/25 = 5. Оператор EQU с меткой МЕТ2 вычисляет выра­ жение л/9 + 22 = 3 + 4 = 7.

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

50 LOOP 13, CYCL5

В поле <А> задан номер параметра (такой же, как и в поле <А> парно­ го блока ASSIGN), определяющего число циклов. В поле <В> задан по метке блок, на который переходит транзакт, если параметр, на который сделана ссылка в поле <А>, не равен нулю. Прохождение транзактом од­ ного цикла уменьшает значение поля <А> на единицу. Когда значение параметра в поле <А> становится равным нулю, то транзакт переходит к следующему по номеру блоку (в рассматриваемом случае к блоку RELEASE под номером 60). Начало цикла начинается с блока ADVANCE с меткой CYCL5 под номером 40, окончание цикла — с блока LOOP под номером 50. Если транзакт входит в блок LOOP со значением параметра, равным п , то этот транзакт войдет в блок LOOP п раз и вернется к началу этого цикла (п — 1) раз.

Стандартный отчет моделирования Q-схем ы по программе ЕХАМ11.GPS представлен на рис. 3.23. Задача повторного пятикратного обслуживания осуществляет блок LOOP, который отправляет транзакты на блок ADVANCE. Видно, что через блоки LOOP и ADVANCE проходит в 5 раз больше транзактов, чем через остальные блоки. Среднее время об­ служивания в устройстве также в 5 раз больше (в позиции AVEJTIME), чем время обслуживания, которое задается в поле <А> блока временнбй задержки ADVANCE (см. EXAM11.GPS).

Пример 3.12. На обработку по равномерному закону поступает два по­ тока заготовок деталей: 1-й поток со временем 10 ± 1 мин, а 2-й со време-

64

GPSS/PC

Report

file

REPORT GPS. (V 2,

# 37349)

02-10-2001

05-23 21

page 1

START^ TIME

END_TIME

BLOCKS

FACILITIES

STORAGES

FREEJ4EMORY

 

0

 

3499

7

X

0

77824

 

LINE

LOC

 

BLOCK_TYPE

ENTRY_COUNT CURRENT_COUNT

RETRY

10

1

 

GENERATE

100

0

0

20

2

 

ASSIGN

100

0

0

30

3

 

SEIZE

100

0

0

40

CYCLS

ADVANCE

500

0

0

50

5

 

LOOP

500

0

0

60

6

 

R E L E A S E

100

0

0

70

7

 

TERMINATE

100

0

0

FACILITY

ENTRIES

UTIL.

AVE._TIME

AVAILABLE

OWNER PEND

INTER RETRY DELAY

1

 

100 0 .9 9 8

3 4 .9 4

1

0 0 0 * 0

0

XACTJ3ROUP

GROUP_SIZE

RE TRY

 

 

 

POSITION

 

 

0

 

0

 

 

 

 

 

Р и с .

3.23. Стандартный отчет

EXA M 11.RPT

 

нем 25 ± 2 мин. Причем 2-й поток прерывает изготовление деталей 1-го потока. Время обработки деталей 1-го потока 7 ± 3 мин, а 2-го — 15 ± 1 мин. Смоделировать процесс обработки 100 деталей, образующих два по­ тока.

Рассмотрим особенности использования при моделировании такой системы S блоков PREEMPT и RETURN. Программа решения примера 3.11 EXAM12.GPS приведена на рис. 3.24.

Два блока GENERATE (под номерами 10 и 60) формируют два незави­ симых потока транзактов. Блок PREEMPT позволяет получать в пользо­ вание устройство, указанное в поле <А> этого блока, т. е. устройство под именем FACIL1. Это соответствует тому состоянию системы, когда про-

SIM ULATE

************************************************************

10

G ENERA TE 5,2;

Ф ормирование 1-го потока деталей

20

SEIZE FACIL1;

У стройство под именем FACIL1

30

AD VAN CE 7,2

 

40

RELEASE FACIL1

 

50

TER M IN A TE 1;

Вы вод деталей 1-го потока

************************************************************

60

G ENERA TE 25,2;

Ф ормирование 2-го потока деталей

70

PREEM PT FACIL1;

П реры вание обработки 1-го потока

80

ADVAN CE 11,2;

Время обработки 2-го потока

************************************************************

90 RETURN FACIL1; Снятие преры вания 1-го потока

100 EXIT TERM IN ATE 1; Вы вод деталей 2-го потока

************************************************************

START 100; Задание числа счетчика заверш ений (количество деталей) END

Р и с . 3.24. П рограмма EX A M 12.G PS

5 - 3083

65

исходит прерывание обработки деталей 1-го потока в устройстве и начи­ нается обработка деталей 2-го потока. Длительность обработки деталей 2-го потока задается блоком ADVANCE под номером 80. Стандартная ста­ тистика системы G P S S /P C определяется только для одного устройства FACIL1.

Для блока PREEMPT могут быть задействованы пять полей. Поле операнда <А> является обязательным. В программе EXAM12.GPS фор­ мат записи блока PREEMPT имеет вид:

70 PREEMPT <А>

В поле <А> блока PREEMPT (под номером 70) задается имя устройст­ ва (по метке FACIL1), на котором происходит прерывание 1-го потока транзактов от блока GENERATE под номером 10. Длительность прерыва­ ния задается блоком ADVANCE под номером 80. В то же время устройство FACIL1 во время прерывания 1-го потока деталей начинает обслуживать детали 2-го потока, который формируется блоком GENERATE под номе­ ром 60. Снятие прерывания осуществляется блоком RETURN.

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

90 RETURN <А>

В поле <А> блока RETURN задается имя устройства (по метке FACIL1), с которого снимается прерывание. Прерывание может быть снято только тем транзактом, которым оно было сгенерировано. Приве­ денный формат блока возврата RETURN является единственным. Име­ ются некоторые дополнительные возможности блока PREEMPT.

Рассмотрим файл стандартного отчета PRIM12.RPT. В программе EXAM12.GPS есть два блока TERMINATE, которые осуществляют вывод транзактов из системы: один блок для вывода деталей 1 -го потока, другой блок — для вывода деталей 2-го потока. Статистика устройства обслужи­ вания FACILI показывает, что через него проходили транзакты как 1-го, так и 2-го потоков. Число транзактов, которые не вошли в устройство об­ служивания, равно 105 (поля DELAY и CURRENT_COUNT). Из 1-го по­ тока количество обслуженных транзактов (деталей) составило 67, а со 2-го потока —33. В сумме получается 100 деталей, что и требовалось по условию примера. Стандартный отчет EXAM12.RPT приведен на рис. 3.25.

Пример 3.12. Пусть в условиях примера 3.11 детали, обработка кото­ рых прервана на время обработки деталей из 2-го потока, выводятся из системы. В этом случае бблыная часть условий задачи остается неизмен­ ной: на обработку по равномерному закону поступает два потока загото­ вок деталей: 1-й поток со временем 10+1 мин, 2-й — 25 ± 2 мин. Причем 2-й поток прерывает изготовление деталей 1-го потока. Время обработки деталей 1-го потока равно 7 ± 3 мин, а 2-го — 15 ± 1 мин. Смоделировать процесс обработки 100 деталей, разделенных на два потока. Данный при­ мер решается по программе EXAMI2.GPS с дополнительными полями блока PREEMPT, которые позволяют использовать блок PREEMPT в ре­ жиме удаления транзактов на повторный захват устройства и отправки их

66

GPSS/PC

R e p o r t f i l e

REPORT.GPS. (V 2 ,

» 37349)

0 2 - 1 0 - 2 0 0 1 0 5 :2 5 - 2 3

p a g e 1

START_TIME

END_TIME

BLOCKS

FA CILITIES STORAGES

FREE_MEMORY

 

0

838

10

1

 

0

78016

 

LINE

LOC

BLOCK_TYPE

ENTRY^COUNT

CURR£NT_COUNT

RETRY

 

 

 

 

10

1

GENERATE

 

173

 

105

 

0

20

2

SEIZE

 

68

 

1

 

0

30

3

ADVANCE

 

67

 

0

 

0

40

4

RELEASE

 

67

 

0

 

0

50

5

TERMINATE

 

67

 

0

 

0

60

6

GENERATE

 

33

 

0

 

0

70

7

PREEMPT

 

33

 

0

 

0

80

8

ADVANCE

 

33

 

0

 

0

90

9

RETURN

 

33

 

0

 

0

100

EXIT

TERMINATE

 

33

 

0

 

0

FACILITY

ENTRIES

UTIL.

AVE.JTIME

AVAILABLE

OWNER PEND

INTER RETRY DELAY

FAC I LI

101

0 .9 9 4

8 .2 5

1

81

0

0

0

105

XACT_GROUP

GROUP_SIZE

RETRY

 

 

 

 

 

POSITION

0

 

0

 

 

 

 

 

Р и с . 3.25. Стандартный отчет EXAM12.RPT

по метке к заданному блоку. Программа EXAM13.GPS приведена на рис. 3.26.

Формат записи блока PREEMPT для программы EXAM13.GPS:

70PREEMPT <A>,[<B>],<0..,[<D>L<F>

Вполе <А> задается метка прерываемого устройства FACIL1, поле <В> пусто, в поле <С> указывается имя блока (EXIT), куда направляются транзакты прерванного потока, поле <D> пусто, в поле <Е> устанавлива­ ется режим удаления RE.

SIM U L A T E

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

10

G EN ER A TE 5,2;

Ф ормирование I-го потока деталей

20

SEIZE FACIL1;

Устройство под именем FACIL1

30

AD V A N C E 7,2

 

40

RELEASE FACIL1

 

50

TER M IN A TE 1;

Вы вод деталей 1-го потока

***********************************************************

60

G EN ER A TE 25,2;

Ф ормирование 2-го потока деталей

70

PR EEM PT FACfLI„EXJT„RE; П реры вание обработки 1-го потока

80

AD V A N C E 11,2;

Время обработки 2-го потока (время прерывания)

90

RETU RN FACIL1;

Снятие прерывания 1-го потока

100 exit TER M IN A TE 1; Вы вод деталей 1-го и 2-го потоков

************************************************ ***************

STA RT 100;

Задание числа счетчика заверш ений

END

 

Р и с .

3.26. Программа EXAM13.GPS

5*

67

GPSS/PC R e p o r t f i l e

REPORT

GPS

(V 2 ,

# 37349)

0 3 - 1 0 - 2 0 0 1 05

27 25

p a g e

1

START

TIME

ENDJTIME

BLOCKS

FACILITIES STORAGES

FREE

MEMORY

 

 

0

 

706

 

10

 

 

1

 

0

80256

 

 

LINE

LOC

 

BLOCK_TYPE

 

ENTRY_COUNT

CURR£NT_COUNT

RETRY

10

1

 

G E N E R A T E

 

 

144

 

71

 

 

0

20

2

 

SEIZE

 

 

 

73

 

1

 

 

0

30

3

 

ADVANCE

 

 

 

69

 

0

 

 

0

40

4

 

RELEASE

 

 

 

44

 

0

 

 

0

50

5

 

TERMINATE

 

 

44

 

0

 

 

a

60

6

 

GENERATE

 

 

28

 

0

 

 

0

70

7

 

PREEMPT

 

 

 

28

 

0

 

 

0

80

8

 

ADVANCE

 

 

 

28

 

0

 

 

0

90

9

 

RETURN

 

 

 

28

 

0

 

 

0

100

EXIT

 

TERMINATE

 

 

56

 

0

 

 

0

FACILITY

ENTRIES

 

UTIL

 

AVE._TIME

AVAILABLE

OWNER PEND

INTER RETRY D EL A Y

FACIL1

101

0

992

 

 

6

94

1

88

0

0

0

 

71

XACTJ3ROUP

 

GROUP_SlZE

 

 

RETRY

 

 

 

 

 

 

POSITION

 

 

 

0

 

 

 

0

 

 

 

 

 

 

 

 

Р и с

3 27. Программа EXAM13.GPS

 

 

 

 

Операнд поля <С> задает номер или имя (метку) блока, куда должен попытаться войти прерванный транзакт. Режим удаления RE поля <Е> означает, что прерванный транзакт не будет претендовать на использова­ ние устройства, на котором произошло прерывание. Прерванный тран­ закт пытается войти в блок, заданный полем <С>. Поскольку в поле <С> задано имя блока уничтожения транзактов TERMINATE, то попытка войти в это блок всегда будет успешной. Через блок с меткой EXIT выво­ дятся также и обработанные детали 2-го потока.

В поле <В> блока PREEMPT может быть задан приоритетный режим. При работе в этом режиме транзакт, занимающий устройство, может быть прерван только транзактом, приоритет которого выше приоритета данного транзакта. Поле <D> задает номер параметра, связанного с пре­ рванным транзактом. Поле <D> следует задавать только в том случае, если приоритет прерывающего транзакта больше приоритета прерывае­ мого транзакта.

В файле стандартного отчета для программы EXAM13.GPS, представ­ ленной на рис. 3.27 приведены результаты моделирования системы, для которой предусмотрен вывод деталей на момент прерывания устройства по обслуживанию 1 -го потока. Видно, что через блок TERMINATE по вы­ воду деталей второго потока проходят также и детали первого потока. Если в блок TERMINATE под номером 100 входило и уничтожалось 33 транзакта при обычном режиме прерывания блока PREEMPT, то при на­ личии режима удаления (поля <F> и <С> блока PREEMPT) число входя­ щих транзактов в блок TERMINATE под номером 100 увеличилось до 56. Число транзактов, которые были сгенерированы, но не вошли в устрой­ ство обслуживания под именем FACIL1, равно 71 (поля DELAY и

68

CURRENT_COUNT) Это означает, что устройство было меньше занято, поскольку исключены повторные попытки занять устройство транзактами первого потока. Следует отметить также, что и общее время моделиро­ вания (поля END_TIME) изменилось: в режиме удаления транзактов вре­ мя уменьшилось с 838 до 706 мин (в общем случае единиц времени).

3.1.4. Блоки ENTER, LEAVE, GATE, TEST. Операторы STORAGE, VARIABLE, INITIAL

Для моделирования Q -сх е м с ограниченной очередью или с ог­ раниченной емкостью накопителя в GPSS/PC используют блоки ENTER, LEAVE и оператор STORAGE. Эти блоки и оператор обра­ зуют группу памятей или г р у п п у описания накопителей. Памяти или накопители относятся к аппаратной категории, которые име­ ют визуализацию в виде специальных окон (в рабочей строке GPSS/PC следует набрать сочетание клавиш Alt + S).

Блок GATE проверяет состояние устройств, памятей, логиче­ ских ключей. Блок TEST сравнивает два стандартных числовых ат­ рибута по вычисляемому отношению. Оба блока управляют пото­ ком сообщений (транзактов).

Пример 3.13. Поток заявок поступает в накопитель Q -схемы с допус­ тимой емкостью, равной 3 единицам, равномерно каждые 5 ± 1 мин. Если заявки после накопителя застают 1-й обслуживающий канал (устройст­ во) занятым, то они поступают на обработку во 2-й канал. Время обработ­ ки 1-го канала равно 9 ± 1 мин, 2-го — 13 ± 1 мин. Смоделировать обра­ ботку Q -схемой 100 заявок.

Программа реш ения представлена под именем EXAM14.GPS на рис. 3.28. В данном примере поступающие в Q-схему заявки сначала буферируются в накопителе емкостью в 3 единицы, а потом пытаются попасть на обработку в 1-й канал обслуживания. Если 1-й канал оказывается заня­ тым, т. е. в нем осуществляется обслуживание, то очередная заявка посту­ пает на обслуживание во 2-й канал.

В программе EXAM14.GPS используются следующие форматызаписи оператора STORAGE, блоков ENTER, LEAVE и GATE.

Формат записи оператора STORAGE:

NAK3 STORAGE 3

Описание оператора находится вне основного тела программы, без нумерации Метка NAK3 служит для обращения или ссылки на оператор. Операнд поля <А> определяет объем накопителя (это 3). Операнд поля <А> должен быть положительным целым Когда транзакт пытается войти в блок ENTER, то запрос на емкость накопителя сравнивается с доступ­ ной емкостью Если запрос может быть выполнен, то транзакт входит в блок ENTER, и текущая емкость накопителя уменьшается. Если запрос

69

SIM U LA TE

 

NAK3 STO RA G E 5;

Накопитель емкостью в 3 единицы

10

GENERATE 4,1

 

20

GATE SNF NAK3,QUE2j

Анализ состояния накопителя

30

ENTER NAK3

 

35

Q UEUE 1

 

40

SEIZE I;

1-й канал

45

DEPAR T 1

 

50

LEAVE NAK3

 

60

AD VAN CE 13,1

 

70

RELEASE 1

 

80

TERM IN ATE

 

90 Q U E 2 QUEUE 2

 

100 FACIL2 SEIZE 2;

2-й канал с меткой FACIL2

110

DEPART 2

 

200

ADVAN CE 11,1

 

300

RELEASE 2

 

400 TERM IN ATE

 

500 G ENER A TE 180

 

600

TER M IN A TE 1

 

STA R T 1

END

Р и с . 3.28. Программа E X A M 14.G PS

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

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

30ENTER <А >

Вполе <А> указывается номер или имя накопителя (это NAK3). Когда транзакт входит в блок ENTER, то операнд поля <А> используется для на­ хождения накопителя с указанным именем (это накопитель с именем NAK3). Если такого накопителя не существует, то происходит ошибка выполнения программы.

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

50 LEAVE < А > ,[< В > ]

Блок LEAVE освобождает определенное число единиц накопителя под именем, заданным в поле <А> (это NAK3). Поле <А> также определя­ ет номер или имя накопителя (это NAK3). Поле <В> определяет число ос­ вобождаемых единиц накопителя, если это поле пусто, предполагается 1. Число освобождаемых единиц не должно превышать текущее содержи­ мое накопителя. Обычно поле <В> не используется.

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

20 GATE <Х ><А >,<В >

Поле <А> содержит имя или номер объекта (в данном случае накопи­ теля с меткой NAK3), для которого проводится проверка во вспомога­ тельном поле операции <Х>. Поле <В> содержит номер или имя следую-

70

Соседние файлы в папке книги