Блок 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;