Блок SELECT в логическом режиме


SELECT X A,B,C,,,F

В качестве Х может использоваться либо LS, либо LR.

А- № параметра, который записывается ( № логического переключателя, удовлетворяющего условию либо S, либо R, см. Х );

В,С- нижняя и верхняя границы номеров логических переключателей;

F- может отсутствовать (см. блок SELECT).

 

Пр.:SELECT LS 3,7,9

Проверяются последовательно переключатели 7.8.9. Если 7 RESET, то смотрят 8, если 8 SET, то №8 становится значением третьего параметра.

 

Другое использование блока SELECT:

Если Х принимает значение U, NU, то проверяются уже устройства.

Возможные значения операнда Х:

U- используется устройство;

NU- не используется устройство;

SF- многоканальное устройство полностью заполнено;

SNF- многоканальное устройство не полностью заполнено;

SE- многоканальное устройство пусто;

SNE- в многоканальном устройстве что-то есть.

 

Организация цикла

Можно использовать блок TEST :

 

NEXT ...........................  
  ASSIGN 2-,1
  TEST E P2,0,NEXT

 

Каждый раз при прохождении блока ASSIGN из второго параметра вычитается единица. Цикл закончится тогда, когда содержимое параметра №2 станет равно 0.

Можно использовать блок LOOP.

LOOP 2,NEXT

Когда транзакт заходит в этот блок, из второго параметра вычитается единица и получившееся значение сравнивается с 0. Если значение параметра 2 больше нуля. То переход на блок, имеющий метку NEXT.

LOOP A,B

А- имя параметра

В- метка перехода

Булевские переменные

Ранее было введено понятие арифметической переменной:

Имя BVARIABLE булевское выражение

Значением булевской переменной может быть либо TRUE- èñòèíà, либо F FALSE- ëîæü (либо 0, либо 1).

Пр.:Примеры булевских выражений:

1. Логический переключатель LS5 .(включен, выключен);

2. SF19 – многоканальное устройство 19 заполнено полностью? (да, нет)

3. Могут быть отношения:

СЧА1 <оператор отношения> СЧА2

P1 G P2 - если значение параметра 1 больше, чем значение параметра 2, то истина (1).

 

Блок BUFFER

В системе моделирования GPSS интерпретатор просматривает транзакты, находящиеся в цепи текущих событий, по порядку, от начала к концу списка. Интерпретатор берет сначала первый транзакт и пытается его продвинуть. Но существуют ситуации, когда интерпретатор вместо того, чтобы рассматривать транзакт, идущий следом за уже обработанным, начинает просмотр с начала очереди, например, после прохождения блока RELEASE. Если транзакт попадает в блок BUFFER, то интерпретатор прекращает продвижение данного события и возвращается обратно в цепь текущих событий за следующим транзактом.

 

Пример № 8.1: Рассмотрим схему прерываний. На эту схему (на регистр) поступают запросы на прерывание. Будем считать, что операционная система следит за состоянием этого регистра, и если в нем есть запрос, то операционная система начинает его обслуживать. После чего данный запрос обнуляется. Запросы обрабатываются некоторое время.

 

* Генерация транзактов в соответствии с экспоненциальным законом * распределения

  GENERATE 300,FN$EXP,,1    
  QUEUE A
  GATE LS G1
M GATE LS W
  DEPART A
  TERMINATE  

* Ãåíåðèðóåòñÿ 1 òðàíçàêò

  GENERATE ,,,1

* Ïðîâåðêà òåêóùåãî ñîäåðæèìîãî î÷åðåäè À íà ðàâåíñòâî íóëþ. Åñëè

* ðàâíî íóëþ, òî òðàíçàêò èäåò äàëüøå, èíà÷å - áëîêèðóåòñÿ.

N TEST W$A,0
  LOGIC S C1
  ADVANCE FN$BC
  LOGIC S W
  BUFFER  
  LOGIC R W
  TRANSFER ,N

 

Àðãóìåíò ôóíêöèè ÂÑ äîëæåí çàâèñåòü îò ÷èñëà ñãåíåðèðîâàííûõ òðàíçàêòîâ.

BC FUNCTION W$M,C10

За время обработки функции ВС в первом блоке GENERATE будут генерироваться следующие транзакты.

 

Лекция № 9

 

Пример 9.1:Имеется некоторая ВС, например ILLIAC-IV, которая работает некоторое время, затем может произойти отказ. Отказавший модуль этой системы поступает в ремонт. Для этого надо затратить время. Вместо отказавшего модуля используют новый модуль из числа запасных.. Тот модуль, который поступил в ремонт, ремонтируется каким-то мастером. Если нет отказавших модулей в этой системе, мастер ремонтирует отказавшие модули из других систем. Отремонтированные модули поступают обратно в систему во множество запасных модулей. Сколько должно быть запасных модулей?

 

 


Âàðèàíò ¹1.

* Случайная величина PARTS принимает значение 3

INITIA1L Х$PARTS, 3

* ñòàíäàðòíàÿ íîðìàëüíàÿ ôóíêöèÿ ðàñïðåäåëåíèÿ

SNORM FUNCTION RN1,C25

0, …5/…

* Ìàñøòàá 1 ÷àñ = 10 åäèíèöàì

ATIME FVARIABLE 700*FN$SNORM+350  
BTIME FVARIABLE S*FN$SNORM+80  

* Ãåíåðèðóåòñÿ 3 òðàíçàêòà

  GENERATE ,,,X$PARTS  
L GATE LR N
  LOGIC S N

* Установка ВМ в машину

  ADVANCE
  SEIZE MACH

* Время, которое ВС будет работать до первого отказа

  ADVANCE V$ATIME
  RELEASE MACH

* ВМ вытаскивают из ВС

  ADVANCE
  LOGIC R N
  SEIZE MASTER

* Время ремонта ВМ мастером

  ADVANCE V$BTIME
  RELEASE MASTER
  TRANSFER ,L

* Моделирование работы мастера

  GENERATE 90,FN$EXP

* Åñëè óñòðîéñòâî MASTER çàíÿòî, òî òðàíçàêò ïîñòóïàåò â áëîê

* ADVANCE è òàì æäåò íóëåâîå âðåìÿ (îñîáåííîñòè èíòåðïðåòàòîðà ÿçûêà

* GPSS).

  ADVANCE  
  SEISE MASTER
  ADVANCE 80,4
  RELEASE MASTER
  TERMINATE  

*Счетчик времени

  GENERATE
  TERMINATE
  START
  END  

 

Вариант № 2

(приводится только та часть программы, которая потерпела изменения по сравнению с вариантом №1)

 

* ñòàíäàðòíàÿ íîðìàëüíàÿ ôóíêöèÿ ðàñïðåäåëåíèÿ

SNORM FUNCTION RN1,C25

0, …5/…

* Ìàñøòàá 1 ÷àñ = 10 åäèíèöàì

ATIME FVARIABLE 700*FN$SNDRM+350  
BTIME FVARIABLE S*FN$SNDRM+80  
  GENERATE ,,,1
  SEIZE MACH
  ADVANCE V$ATIME

 

  RELEASE MACH
  ADVANCE
  SPLIT 1,M
  SEIZE MASTER
  SAVEVALUE 1+,1
  TERMINATE  
M TEST G X1,0
  SAVEVALUE 1-,1

* Вставление ВМ в ВС

  ADVANCE
  TRANSFER ,L

*Счетчик времени

  GENERATE
  TERMINATE
  START
  END  

 

Х1 эквивалентно X$PARTS из варианта №1(сколько есть запасных деталей).

SPLIT A,B,C

А- сколько потомков дополнительно появятся по отношению к текущему транзакту.

В- метка блока куда поступают потомки.

С- параметр, в котором для каждого родителя и потомка содержится свой номер.

В данном примере родитель интерпретирует роль мастера, поток – ход ВМ.

В первом варианте число транзактов в системе равно числу запасных деталей. Во втором варианте один транзакт связан с функционированием системы.

 



Дата добавления: 2016-11-04; просмотров: 1277;


Поиск по сайту:

Воспользовавшись поиском можно найти нужную информацию на сайте.

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

Считаете данную информацию полезной, тогда расскажите друзьям в соц. сетях.
Poznayka.org - Познайка.Орг - 2016-2024 год. Материал предоставляется для ознакомительных и учебных целей.
Генерация страницы за: 0.014 сек.