Записать и запустить на выполнение программу для решения примера 2.



Изучение блоков PREEMPT, RETURN.

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

Решение примера 2 приводится как программа 2.

 

SIMULATE ***************************************************************** GENERATE 5,2; Формирование 1-го потока деталей SEIZE FACIL1; Устройство под именем FACIL1 ADVANCE 7,2 RELEASE FACIL1 TERMINATE 1; Вывод деталей 1-го потока ***************************************************************** GENERATE 25,2; Формирование 2-го потока деталей PREEMPT FACIL1; Прерывание обработки 1-го потока ADVANCE 11,2; Время обработки 2-го потока=времени прерывания RETURN FACIL1; Снятие прерывания 1-го потока EXIT TERMINATE 1; Вывод деталей 2-го потока ***************************************************************** START 100; Задание числа счетчика завершений=общему количеству *деталей
Программа 2.

 

Два блока GENERATE формируют два независимых или разнородных потока транзактов. Блок PREEMPT позволяет получать в пользование устройство, указанное в поле <A> этого блока, т.е. устройства под именем FACIL1. Это соответствует тому состоянию системы, когда происходит прерывание обработки деталей 1 потока в устройстве и начинается обработка деталей 2 потока в том же устройстве. Длительность обработки деталей 2 потока задается блоком ADVANCE. Стандартная статистика системы GPSS/PC определяется только для одного устройства — под именем FACIL1.

Для блока PREEMPT могут быть задействованы пять полей. Только поле операнда <A> является обязательным. В программе 2 формат записи блока PREEMPT следующий:

PREEMPT < A >

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

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

RETURN <A>

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

Задание к примеру 2: попарно изменить среднее время генерирования транзактов в соответствии с рядом чисел: 7 и 15; 9 и 11; 13 и 9; 21 и 7. Попарно изменить среднее время обработки требований в соответствии с рядом чисел: 5 и 13; 9 и 9; 11 и 7; 15 и 5. Объяснить результаты выполнения программ по файлу стандартного отчета.

Записать и запустить на выполнение программу для решения примера 3.

Рассмотрим некоторые дополнительные возможности блока PREEMPT.

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

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

Программа решения примера 3 приводится как программа 3.

 

GENERATE 5,2; Формирование 1-го потока деталейSEIZE FACIL1; Устройство под именем FACIL1ADVANCE 7,2RELEASE FACIL1TERMINATE 1; Вывод деталей 1-го потока ***************************************************************** GENERATE 25,2; Формирование 2-го потока деталей PREEMPT FACIL1,,exit,,re; Прерывание обработки 1-го потока ADVANCE 11,2; Время обработки 2-го потока=времени прерывания RETURN FACIL1; Снятие прерывания 1-го потока exit TERMINATE 1; Вывод деталей 1-го и 2-го потоков START 100; Задание числа счетчика завершений=общему количеству *деталей
Программа 3.

 

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

PREEMPT <A>,[<B>],<C>,[<D>],<E>

В поле <A> задается метка прерываемого устройства — FACIL1, поле <B> — пусто, в поле <C> указывается имя блока (EXIT), куда направляются транзакты прерванного потока, поле <D> — пусто, в поле <E> устанавливается режим удаления — RE.

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

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

Задание к примеру 3. Видоизменить программу 3 так, чтобы в ней прерванные транзакты отправлялись бы в дополнительное устройство с временем обработки 5±1 мин. При этом вывод из системы транзактов из дополнительного устройства не должны быть связаны со счетчиком завершений. Также попарно изменить среднее время генерирования транзактов в соответствии с рядом чисел: 7 и 15; 9 и 11; 13 и 9; 21 и 7. Объяснить результаты моделирования по файлу стандартного отчета.


Дата добавления: 2018-09-23; просмотров: 249; Мы поможем в написании вашей работы!

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






Мы поможем в написании ваших работ!