ТЕМА (1086517), страница 15
Текст из файла (страница 15)
Рис.2В.5
-
На рис. 2В.5 показано, как собрать статистику об очереди агрегированным и дифференцированным образом.
Покажите, как собрать такую же статистику о приборе.
Иначе говоря, покажите, каким образом перестроить модель, чтобы она не только продолжала собирать дифференцированную статистику, но также имела возможность измерять процент времени, который парикмахер затрачивает на обслуживание только стригущихся, и процент времени, затрачиваемый на стригущихся и бреющихся клиентов; среднее время, затрачиваемое на обслуживание каждого из клиентов этих двух типов, и т.д.
§16 "Второй пример использования цепей текущих и будущих событий"
Глядя на рис. 2В.2, можно подумать, что прибор JOE и очередь JOEQ использованы неверно. Хочется задать вопрос: "Каким образом можно использовать прибор в двух совершенно различных местах ?"
Вопрос этот возникает из-за существования в модели двух пар блоков SEIZE - RELEASE.
Число пар блоков SEIZE - RELEASE в модели вовсе не должно совпадать с числом обслуживающих приборов моделируемой системы. В примере моделирования 2В существует только один прибор, однако при этом можно использовать две или большее число пар блоков SEIZE - RELEASE.
Рис.2В.2.Блок-схема примера моделирования 2В.
Рассмотрим еще один пример использования интерпретатором GPSS цепей текущих и будущих событий в процессе моделирования.
На рис. 2.32 представлено повторение распечатки программы из примера моделирования 2В.
В табл. 2.16 даны последовательности интервалов времени прихода и времени обслуживания, которые имеют место в блоках GENERATE и ADVANCE модели.
Рис.2.32.
| BLOCK NUMBER *LOG OPERATION A,B,C,D,E.F,G COMMENTS SIMULATE * * MODEL SEGMENT 1 * 1 GENERATE 35,10 HAIRCUT-ONLY CUSTOMERS ARRIVE 2 QUEUE JOEQ ENTER THE LINE 3 SEIZE JOE CAPTURE THE BARBER 4 DEPART JOEQ LEAVE THE LINE 5 ADVANCE 18,6 USE BARBER 6 RELEASE JOE FREE THE BARBER 7 TERMINATE LEAVE THE SHOP * * MODEL SEGMENT 2 * 8 GENERATE 60,20 SHAVE-AND-HAIRCUT CUSTOMERS ARRIVE 9 QUEUE JOEQ ENTER THE LINE 10 SEIZE JOE CAPTURE THE BARBER 11 DEPART JOEQ LEAVE THE LINE 12 ADVANCE 10,2 USE BARBER FOR SHAVE 13 ADVANCE 18,6 USE BARBER FOR HAIRCUT 14 RELEASE JOE FREE THE BARBER 15 TERMINATE LEAVE THE SHOP * * MODEL SEGMENT 3 * l6 GENERATE 480 TIMER ARRIVES AT TIME <80 17 TERMINATE 1 SHUT OFF THE RUN * * CONTROL CARDS * START 1,,,1 START THE RUN; GET CHAIN PRINTOUT AT END END RETURN CONTROL TO OPERATING SYSTEM |
Таблица 2.16.
| Интервалы времени прихода и времени обслуживания во втором примере использования цепей | |||
| Номер строки | Тип блока | Моделируемое системное событие | Предлагаемая последовательность интервалов времени |
| 1 | GENERATE | Приход только стригущихся клиентов | 44, 28, 35, 40, ... |
| 5 | ADVANCE | Обслуживание только стригущихся клиентов | 20, 18, 22, 17, ... |
| 8 | GENERATE | Приход стригущихся и бреющихся клиентов | 41, 72, 52, 60, ... |
| 12 | ADVANCE | Бритье стригущихся и бреющихся клиентов | 9, 11, 10, 12, ... |
| 13 | ADVANCE | Стрижка стригущихся и бреющихся клиентов | 14, 15, 20, 19, ... |
| 16 | GENERATE | Таймер | 480 |
Вспомним вид пятипозиционной записи, используемой для обозначения информации о транзактах:
[Номер транзакта; Время движения; Текущий блок; Уровень приоритета; Номер следующего блока ].
На рис. 2.33 показаны состояния транзактов, находящихся в цепях текущих и будущих событий для нескольких первых значений таймера модельного времени.
Рис.2.33.
| Состояния цепей для второго примера их использования | |||
| Номер строки | Модельное время | Цепь текущих событий к началу цепи | Цепь будущих событий к началу цепи |
| 1 | До фазы ввода | Пусто | Пусто |
| 2 | После фазы ввода | Пусто | [2,41,НЕТ,0,8] [1,44,НЕТ,0,1][3,480,НЕТ,0,16] |
| 3 | 41 | [2,KMP,НЕТ,0,8] | [1,44,НЕТ,0,1] [3,480,НЕТ,0,16] |
| 4 | 41 | Пусто | [1,44,НЕТ,0,1] [2,50,12,0,13] [4,113,НЕТ,0,8] [3,480,НЕТ,0,16] |
| 5 | 44 | [1,KMP,НЕТ,0,1] | [2,50,12,0,13] [4,113,НЕТ,0,8] [3,480,НЕТ,0,16] |
| 6 | 44 | [1,KMP,2,0,3] | [2,50,12,0,13] [5,72,НЕТ,0,1] [4,113,НЕТ,0,8] [3,480,НЕТ,0,16] |
| 7 | 50 | [1,KMP,2,0,3] [2,KMP,12,0,13] | [5,72,НЕТ,0,1] [4,113,НЕТ,0,8] [3,480,НЕТ,0,16] |
| 8 | 50 | [1,KMP,2,0,3] | [2,64,13,0,14] [5,72,НЕТ,0,1] [4,113,НЕТ,0,8] [3,480,НЕТ,0,16] |
| 9 | 64 | [1,KMP,2,0,3] [2,KMP,13,0,14] | [5,72,НЕТ,0,1] [4,113,НЕТ,0,8] [3,480,НЕТ,0,16] |
| 10 | 64 | Пусто | [5,72,НЕТ,0,1] [1,84,5,0,6] [4,113,НЕТ,0,8] [3,480,НЕТ,0,16] |
Фаза ввода (от строки 1 к строке 2). Как показано в первой строке рис. 2.33, в начале фазы ввода цепи пусты.
В процессе выполнения этой фазы оказывается, что блок 1 является блоком GENERATE.
Транзакт 1 выбирается из вершины пассивного буфера и помещается в цепь будущих событий; планируется вход в блок 1 в момент времени, равный 44 (см. табл. 2.16).
Далее карта GENERATE будет обнаружена в блоке номер 8.
Теперь транзакт 2 выбирается из буфера и помещается в цепь будущих событий; планируется его вход в блок 8 в момент времени 41, что соответствует табл. 2.16.
И, наконец, третья карта GENERATE обнаруживается в позиции 16,
Затем уже транзакт 3 помещается в ЦБС; планируется его вход в блок 16 в момент времени 480 в соответствии с табл. 2.16.
УПРАЖНЕНИЯ §16
"Второй пример использования цепей текущих и будущих событий"
-
Вопросы касаются рис. 2.33.
Рис.2.33.
| Состояния цепей для второго примера их испльзования | |||
| Номер строки | Модельное время | Цепь текущих событий к началу цепи | Цепь будущих событий к началу цепи |
| 1 | До фазы ввода | Пусто | Пусто |
| 2 | После фазы ввода | Пусто | [2,41,НЕТ,0,8] [1,44,НЕТ,0,1][3,480,НЕТ,0,16] |
| 3 | 41 | [2,KMP,НЕТ,0,8] | [1,44,НЕТ,0,1] [3,480,НЕТ,0,16] |
| 4 | 41 | Пусто | [1,44,НЕТ,0,1] [2,50,12,0,13] [4,113,НЕТ,0,8] [3,480,НЕТ,0,16] |
| 5 | 44 | [1,KMP,НЕТ,0,1] | [2,50,12,0,13] [4,113,НЕТ,0,8] [3,480,НЕТ,0,16] |
| 6 | 44 | [1,KMP,2,0,3] | [2,50,12,0,13] [5,72,НЕТ,0,1] [4,113,НЕТ,0,8] [3,480,НЕТ,0,16] |
| 7 | 50 | [1,KMP,2,0,3] [2,KMP,12,0,13] | [5,72,НЕТ,0,1] [4,113,НЕТ,0,8] [3,480,НЕТ,0,16] |
| 8 | 50 | [1,KMP,2,0,3] | [2,64,13,0,14] [5,72,НЕТ,0,1] [4,113,НЕТ,0,8] [3,480,НЕТ,0,16] |
| 9 | 64 | [1,KMP,2,0,3] [2,KMP,13,0,14] | [5,72,НЕТ,0,1] [4,113,НЕТ,0,8] [3,480,НЕТ,0,16] |
| 10 | 64 | Пусто | [5,72,НЕТ,0,1] [1,84,5,0,6] [4,113,НЕТ,0,8] [3,480,НЕТ,0,16] |
а). В строке 7 необходимо пояснить смысловое значение транзакта 2, находящегося в цепи текущих событий.
б). В строке 8 необходимо пояснить смысловое значение транзакта 2, находящегося в цепи будущих событий.
в). В какой момент времени выйдет от парикмахера первый транзакт?
г). В момент времени 64 транзакт 2 вернулся в вершину пассивного буфера транзактов. При каком значении таймера модельного времени этот транзакт вернется обратно в модель?
Кого он будет представлять, только стригущегося или стригущегося и бреющегося клиента? (Быть может, для ответа на этот вопрос придется продолжить таблицу на рис. 2.33 с состояниями цепей. Если вы это сделаете, воспользуйтесь значениями временных интерва- лов, представленных в табл. 2.16).
Таблица 2.16.
| Интервалы времени прихода и времени обслуживания во втором примере использования цепей | |||
| Номер строки | Тип блока | Моделируемое системное событие | Предлагаемая последовательность интервалов времени |
| 1 | GENERATE | Приход только стригущихся клиентов | 44, 28, 35, 40, ... |
| 5 | ADVANCE | Обслуживание только стригущихся клиентов | 20, 18, 22, 17, ... |
| 8 | GENERATE | Приход стригущихся и бреющихся клиентов | 41, 72, 52, 60, ... |
| 12 | ADVANCE | Бритье стригущихся и бреющихся клиентов | 9, 11, 10, 12, ... |
| 13 | ADVANCE | Стрижка стригущихся и бреющихся клиентов | 14, 15, 20, 19, ... |
| 16 | GENERATE | Таймер | 480 |
-
С использованием номеров блоков, приведенных на рис. 2.32, составлена табл. У4 последовательности интервалов времени прихода и времени обслуживания для блоков GENERATE и ADVANCE. Используя значения из этой таблицы, постройте таблицу состояний цепей, аналогичную таблице на рис. 2.33, до десятой строки включительно.
Рис.2.32
| BLOCK NUMBER *LOC OPERATION A,B,C,D,E,F.G COMMENTS SIMULATE * * MODEL SEGMENT 1 * 1 GENERATE 35,10 HAIRCUT-ONLY CUSTOMERS ARRIVE 2 QUEUE JOEQ ENTER THE LINE 3 SEIZE JOE CAPTURE THE BARBER 4 DEPART JOEQ LEAVE THE LINE 5 ADVANCE 18,6 USE BARBER 6 RELEASE JOE FREE THE BARBER 7 TERMINATE LEAVE THE SHOP * * MODEL SEGMENT 2 * 8 GENERATE 60,20 SHAVE-AND-HAIRCUT CUSTOMERS ARRIVE 9 QUEUE JOEQ ENTER THE LINE 10 SEIZE JOE CAPTURE THE BARBER 11 DEPART JOEQ LEAVE THE LINE 12 ADVANCE 10,2 USE BARBER FOR SHAVE 13 ADVANCE 18,6 USE-BARBER FOR HAIRCUT 14 RELEASE JOE FREE THE BARBER 15 TERMINATE LEAVE THE SHOP * * MODEL SEGMENT 3 * 16 GENERATE 480 TlMER ARRIVES AT TIME 480 17 TERMINATE 1 SHUT OFF THE RUN * * CONTROL CARDS * START 1,,,1 START THE RUN: GET CHAIN PRINTOUT AT END END RETURN CONTROL TO OPERATING SYSTEM |
Таблица.У4
| Таблица У4 | |||
| Номер блока | Тип блока | Моделируемое событие | Предполагаемые значения последовательностей |
| 1 | GENERATE | Приход только стригущихся клиентов | 31, 38, 29, 42, ... |
| 5 | ADVANCE | Обслуживание только стригущихся клиентов | 15, 19, 14, ... |
| 8 | GENERATE | Приход стригущихся и бреющихся клиентов | 51, 32, 64, 49, ... |
| 12 | ADVANCE | Бритье стригущихся и бреющихся клиентов | 9, 11, 10, ... |
| 13 | ADVANCE | Стрижка стригущихся и бреющихся клиентов | 14, 17, 12, ... |
| 16 | GENERATE | Таймер | 480 |
Рис.2.33
| Состояния цепей для второго примера их использования | |||
| Номер строки | Модельное время | Цепь текущих событий к началу цепи | Цепь будущих событий к началу цепи |
| 1 | До фазы ввода | Пусто | Пусто |
| 2 | После фазы ввода | Пусто | [2,41,НЕТ,0,8] [1,44,НЕТ,0,1][3,480,НЕТ,0,16] |
| 3 | 41 | [2,KMP,НЕТ,0,8] | [1,44,НЕТ,0,1] [3,480,НЕТ,0,16] |
| 4 | 41 | Пусто | [1,44,НЕТ,0,1] [2,50,12,0,13] [4,113,НЕТ,0,8] [3,480,НЕТ,0,16] |
| 5 | 44 | [1,KMP,НЕТ,0,1] | [2,50,12,0,13] [4,113,НЕТ,0,8] [3,480,НЕТ,0,16] |
| 6 | 44 | [1,KMP,2,0,3] | [2,50,12,0,13] [5,72,НЕТ,0,1] [4,113,НЕТ,0,8] [3,480,НЕТ,0,16] |
| 7 | 50 | [1,KMP,2,0,3] [2,KMP,12,0,13] | [5,72,НЕТ,0,1] [4,113,НЕТ,0,8] [3,480,НЕТ,0,16] |
| 8 | 50 | [1,KMP,2,0,3] | [2,64,13,0,14] [5,72,НЕТ,0,1] [4,113,НЕТ,0,8] [3,480,НЕТ,0,16] |
| 9 | 64 | [1,KMP,2,0,3] [2,KMP,13,0,14] | [5,72,НЕТ,0,1] [4,113,НЕТ,0,8] [3,480,НЕТ,0,16] |
| 10 | 64 | Пусто | [5,72,НЕТ,0,1] [1,84,5,0,6] [4,113,НЕТ,0,8] [3,480,НЕТ,0,16] |
Oтветьте на следующие вопросы.
а). Транзакт с каким номером первым представляет только стригущихся клиентов?
б). Какое значение таймера соответствует строке 10?
в). Куда успел переместиться первый из только стригущихся клиентов?
г). Куда успел переместиться первый из стригущихся и бреющихся клиентов?
д). Какой тип клиента представляет собой транзакт с номером 4?















