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

Дёмина / Лабораторная работа2

.docx
Скачиваний:
39
Добавлен:
12.03.2015
Размер:
30.14 Кб
Скачать

Лабораторная работа № 2

МОДЕЛИРОВАНИЕ ПРОЦЕССОВ С ВЕТВЛЕНИЯМИ И ЦИКЛАМИ

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

Одним из блоков изменения маршру­та движения транзактов является блок TRANSFER в различных вариантах. Чаще используются следующие варианты блока TRANSFER:

1 Безусловный переход. Поле операнда А пустое, а операндом В задается метка, куда должен быть передан транзакт. Метка - имя некоторого из блоков программы, к которому должен быть направлен транзакт из данного блока TRANSFER Таким образом. После такого типа блока транзакт в любом случае направляется в указанный полем В блок. Этот вариант блока TRANSFER можно использовать в программе для обхода некоторой последовательности блоков.

2. Вероятностный переход. В поле операнда А указывается вероят­ность Р, с которой транзакт переходит на метку, заданную операндом С, а с вероятностью (1 - Р) транзакт переходит на метку, заданную операндом В. При статистическом переходе в качестве очередного блока осуществляется вероятностный выбор одного из двух возможных блоков. Поле В может быть пустым, тогда альтернативным считается следующий блок..

3. Условный выбор. В этом случае в поле операнда А блока TRANSFER записывается слово BOTH. Транзакт пытается сначала перейти на метку, заданную операндом В, если же это невозможно, то на метку, заданную операндом С. Если переход ни в первом ни во втором варианте невозможен (например, из-за занятости устройства), то транзакт не продвигается по модели, оставаясь в блоке TRANSFER.

Блок TEST также изменяет маршрут движения. Изменение маршрута происходит в зависимости от сложившихся ус­ловий. Формат блока следующий:

TEST R A, B, C

Расширение R блока TEST конкретизирует проверяемое условие. Входящий в блок TEST транзакт является проверяющим. Проверка заключается в определении истинности отношения R, в котором участвуют операнды А и В (табл.1). Обычно операнды А и В представляют собой СЧА. В поле С может быть размещена метка. При истинном результате проверки условия проверяющий транзакт пропускается в следующий блок, при ложном - направляется в блок с меткой, указанной в поле C. Если в этом случае поле C является пустым, транзакт задерживается в блоке TEST до наступления момента, когда условие станет истинным.

Табл.1

R Отношение Пример с комментарием

G A больше; B TEST G C1,100,ALFA - если системное время С1 боль

ше 100, пропустить транзакт в следую щий

блок, в противном случае – отправить в

блок с мет­кой ALFA.

GE A больше TEST GE Q$och, BETA, 10, BETA - если длина оче

или равно B реди och, превышает 10, пропустить

транзакт в следующий блок, в противном

случае – отправить в блок с мет­кой BETA.

Е A равно B TEST E P1, P3 - если содержимое 1-го и 3-го

параметров равны, транзакт пропускается

в следующий блок, иначе – задерживается.

NE A не равно B TEST NE P1, P3 - если содержимое 1-го и 3-го

параметров не равны, транзакт пропускается

в следующий блок, иначе – задерживается

L A меньше; B TEST L Q1,5, LBL - если, чем длина первой очереди

меньше 5 то переход в следующий блок; в

противном -отправить в блок с мет­кой LBL.

LE A меньше TEST LE Q1, Q2 - транзакт будет задержан, пока

или равно B длина 1-ой очереди не станет меньше или

равна длине 2- ой очереди.

Блок GATE также обеспечивает возможность ветвления в маршруте движения транзакта. Дальнейший после блока GATE маршрут движения выбирается в зависимости от логических условий. Логическое условие представляет собой результат проверки со­стояния устройств, памятей, логических ключей, блоков синхронизации. Поле операции блока GATE дополняется расширением R, которое конкретизирует проверяемое условие (табл.2). Формат блока следующий:

GATE R A, B

Операнд A содержит номер или имя объекта, для которого осуществляется проверка. Операнд B - метка для перехода (альтернативный выход), которая может отсутствовать. Если условие истинно (условие выполняется), проверяющий транзакт пропускается в следующий блок программы.. При ложном результате проверки условия транзакт направляется на метку перехода. Если поле операнда B пусто, блок GATE задержит транзакт до выполнения условий.

Табл.2.

R Проверяемое условие

NU Устройство, указанное в операнде А, свободно

U Устройство, указанное в операнде А, занято

NI Устройство, указанное в операнде А, не прервано

I Устройство, указанное в операнде А, обслуживает прерывание

FV Устройство, указанное в операнде А, доступно

FNV Устройство, указанное в операнде А, не доступно

SE Многоканальное устройство, указанное в операнде А, пусто

SNE Многоканальное устройство, указанное в операнде А, не пусто

SF Многоканальное устройство, указанное в операнде А, заполнено

SN Многоканальное устройство, указанное операндом А, не заполнено

S Многоканальное устройство, указанное в операнде А, доступно

SN Многоканальное устройство, указанное операндом А, не доступно

.

Например:

GATE SF MKU1,ALFA - если многоканальное устройство MKU1 заполнено,

транзакт передается в следующей блок; в противном случае - на

метку ALFA.

GATE FV, 1 - транзакт задерживается в данном блоке, пока устройство с но

мером 1 не станет доступно.

Блок LOOP используется для организации циклов, когда транзакт должен многократно пройти через одну и ту же последовательность блоков. Начальный блок этой последовательности обязательно снабжается меткой (это начало цикла). Последним блоком цикла является блок LOOP следующего формата: LOOP А. В

В поле А размещается параметр. (номер или имя параметра). После каждого повтора при появлении транзакта в блоке LOOP значение этого параметра уменьшается на 1. Если параметр обнулился, транзакт из блока LOOP направляется ниже, в следующий за блоком LOOP блок. Если параметр больше нуля, транзакт из блока LOOP направляется в начало цикла, т.е. на блок с меткой указанной в поле С.

Например, если деталь обрабатывается последовательно на пяти станках с одинаковым временем обработки, фрагмент моделирующей программы может быть представлен так:

. . .

; NACH - метка начала цикла

ASSIGN 1,5 ; в 1-й параметр записали число 5;

NACH SEIZE P1 ; занять устройство с номером 5 (затем - 4,3,2,1);

advancе 10, ; обработка детали

RELEASE P1 ; освободить устройство

LOOP 1, NACH ; конец цикла

Здесь блок SEIZE P1 обеспечивает занятие (блок RELEASE P1- освобождение) 5-го, затем – 4-го, 3-го ит.д., устройства при каждом следующем проходе транзакта. Таким образом, используя СЧА, параметры транзактов в логических условиях, можно разветвлять маршруты транзактов. Кроме того, можно строить процесс обработки различным образом в зависимости от приоритета транзакта. Как упоминалось, приоритет может быть назначен сразу при генерации транзакта блоком GENERATE. При этом в качестве приоритета может быть назначено целое число до 127 (по умолчанию устанавливается приоритет 0). В дальнейшем приоритет можно изменить, повысив или понизив его. Делается это в блоке PRIORITY. При прохождении через такой блок транзакт приобретает приоритет, который указан в поле операнда A этого блока.

Порядок выполнения работы.

  1. Разработать схему и программу модели с использованием блоков перехода. Проанализировать результаты модельного эксперимента.

  2. Оформить и сдать отчет по работе.

Задания для лабораторной работы № 2

1. В аудиторию с интервалом 14-30 мин. Приходят пользователи ПК. Зарегистрировавшись у диспетчера в течение 5-10 мин., они занимают один из компьютеров, размещенных в аудитории с вероятностями 0.5; 0.3 и 0.2, соответственно. Пользователи занимают компьютеры от 40 до 70 мин. Распределение интервалов времени – равномерное. Возникают ли очереди при обслуживании? Сравнить загруженность компьютеров в течении8 часов.

2. В гавань входят корабли двух типов. Время появления кораблей равномерно распределено в интервале 20+-6 час. Половина кораблей (первого типа) приходят для ремонта. Время ремонта составляет от 1 до 2 суток (равномерное распределение). Второй тип кораблей приходит к другому причалу для разгрузки-погрузки, которая выполняется в течение 6-12 час. (равномерное распределение). Проанализировать работы двух причалов порта за неделю.

3. В парикмахерской работает 1 мужской и 2 дамских мастера. Время обслуживания мужчин составляет 20-40мин., женщин – 30-60мин. Если очередь к мужскому мастеру составляет более 2-х человек, клиент уходит. Женщины уходят не обслуженными, если в очереди более 4-х человек. Клиенты-мужчины составляю 40% в равномерном потоке посетителей, время между появлением которых от 5 до 13мин. Рабочий день составляет 8 час. Какое количество клиентов теряет парикмахерская?

4. С 5 до 22 час. на автовокзале появляются пассажиры, желающие воспользоваться услугами 12-местного автобуса-такси. Промежуток между появлением пассажиров равномерно распределен в интервале 5+-3мин. Автобус отправляется каждый час. Следует ли увеличить частоту рейсов?

5. Поток из 500 заготовок, поступающих с интервалом 10-20 сек. равновероятно распределяются на 2 линии обработки. На каждой из линий деталь проходит 4-х кратную обработку длительностью по 3-5 сек. на одном станке и 3-хкратную обработку длительностью по 2-4 сек. на втором станке.

Через каждый час первый станок первой линии выходит из строя на 0.5 часа. В этой ситуации к обработке деталей первой линии подключается резервный станок такого же типа.

Интервалы времени имеют равномерное распределение.

6. 1000 деталей поступают с интервалом 142 сек. и обрабатываются одним рабочим по пяти последовательно идущим друг за другом операциям с длительностью 2-4 сек. каждая. Затем детали разделяются на два потока, поступающих к контролерам, обрабатывающим их со временем 5-10 сек. Через 2 часа один из двух контроллеров заканчивает свою работу и его поток деталей направляется в оставшемуся контроллеру.

Контрольные вопросы

  1. В чем отличие при применении блока TRANSFER в случае вероятностного и условного перехода?

  2. В чем отличие при применении блока TRANSFER в случае равновероятного перехода и перехода при использовании варианта BOTH.?

3. Какие действия выполняются при попадании транзакта в блок

TRANSFER BOTH, ALFA, BETA ?

4. Какие действия выполняются при попадании транзакта в блок

TEST NE P1, 3, ALFA ?

5. Какие действия выполняются при попадании транзакта в блок

TEST E P1,100, ALFA ?

6. Как организовать цикл с количеством повторов, равным значению

второго параметра транзакта?

  1. Какие действия выполняются при попадании транзакта в блок

GATE FV 1, ААА ?

8. . Какие действия выполняются при попадании транзакта в блок

GATE U Р1, ВВВ ?

9. Как изменить маршрут транзакта, если его приоритет, в отличие от

других транзактов, равен 3?

  1. Как направить транзакт, претендующий на устройство 1, при занятости

устройства 1 к устройству 2?

Соседние файлы в папке Дёмина