Блок А
Задание 1. Транзакты должны водить в блок GENERATE каждые 0,6 ± 0,2 дня. Укажите, какие значения должны принимать операнды А и В в блоке GENERATE, если выбранная единица времени равна:
а) 0,1 дня, б) 1/5 дня.
Решение:
а) Если выбранная единица времени равна 0,1 дня, то есть, изначальная единица времени (1 день) уменьшилась в 10 раз, то параметры блока GENERATE должны быть соответственно увеличены в 10 раз для того, чтобы интенсивность поступления заявок в систему не поменялась. Т. е., значение операнда А будет: 0,6 * 10 = 6 (1 день*0,6 = 0,1 дня*6); значение операнда В будет: 0,2 * 10 = 2 (1 день*0,2 = 0,1 дня*2).
Проверка:
Рассмотрим время моделирования, равное 10 дням. За единицу модельного времени примем 1 день. Интенсивность поступления заявок в систему: 0,6 ± 0,2 дня. За это время в систему поступит от 10*(1/(0,6 + 0,2)) = 10,25 до 10*(1/(0,6 – 0,2)) = 20,5 заявок.
Текст модели:
*1-я часть. Блоки модели
GENERATE 0.6,0.2 ; время между поступлением заявок распределено равномерно от 0.4 до 0.8 ед. модельного времени
TERMINATE ; транзакт покидает систему, но значение счетчика завершений не меняется
*2-я часть. «Часы» модельного времени
GENERATE 1 ; время поступления между транзактами данного блока = 1 ед. модельного времени, т. е. 1 день
TERMINATE 1 ; уменьшить счетчик завершений на 1
START 10 ; установить значение счетчика завершений TG1=10, т. е., моделирование 10 дней работы системы
Результаты моделирования:
START TIME END TIME BLOCKS FACILITIES STORAGES
0.000 10.000 4 0 0
LABEL LOC BLOCK TYPE ENTRY COUNT CURRENT COUNT RETRY
1 GENERATE 15 0 0
2 TERMINATE 15 0 0
3 GENERATE 10 0 0
4 TERMINATE 10 0 0
- В систему поступило 15 заявок за 10 дней моделирования.
Изменим теперь единицу модельного времени на 0,1 дня. Тогда для моделирования 10 дней работы системы нам нужно установить модельное время, равное (0,1*10)*10 = 100, а значения операндов А и В в блоке заменить на GENERATE на 6 и 2 ед. модельного времени, чтобы задать время поступления заявок в систему равным 0,6 (0,1 ед. модельного времени * 6) ± 0,2 дня (0,1 ед. модельного времени * 2).
Текст модели:
*1-я часть. Блоки модели
GENERATE 6,2 ; время между поступлением заявок распределено равномерно от 4 до 8 ед. модельного времени
TERMINATE ; транзакт покидает систему, но значение счетчика завершений не меняется
*2-я часть. «Часы» модельного времени
GENERATE 1 ; время поступления между транзактами данного блока = 1 ед. модельного времени, т. е. 0,1 дня
TERMINATE 1 ; уменьшить счетчик завершений на 1
START 100 ; установить значение счетчика завершений TG1=100, т. е., моделирование 100 ед. модельного времени (0,1) = 10 дней работы системы
Результаты моделирования:
START TIME END TIME BLOCKS FACILITIES STORAGES
0.000 100.000 4 0 0
LABEL LOC BLOCK TYPE ENTRY COUNT CURRENT COUNT RETRY
1 GENERATE 15 0 0
2 TERMINATE 15 0 0
3 GENERATE 100 0 0
4 TERMINATE 100 0 0
- В систему поступило 15 заявок за 10 дней моделирования (за 100 ед. модельного времени, равного 0,1 дня).
б) единица модельного времени - 1/5 дня
По аналогии с предыдущим примером, если выбранная единица времени равна 0,2 дня, то есть, изначальная единица времени (1 день) уменьшилась в 5 раз, то параметры блока GENERATE должны быть соответственно увеличены в 5 раз для того, чтобы интенсивность поступления заявок в систему не поменялась. Т. е., операнд А = 0,6 * 5 = 3 (1 день * 0,6 = 0,2 дня * 3); операнд В = 0,2 * 5 = 1 (1 день * 0,2 = 0,2 дня * 1).
Ответ:
а) Операнды А и В в блоке GENERATE должны принимать значения 6 и 2.
б) Операнды А и В в блоке GENERATE должны принимать значения 3 и 1.
Задание 2. Предположим, что операнд А команды START в упражнении 1 заменяется на 3, а все прочие условия остаются прежними. В какой момент времени интерпретатор завершит моделирование? Какое будет окончательное значение счетчика завершений в этом случае?
Решение:
Операнд А команды START задает начальное значение счетчика завершений. Операнд А команды TERMINATE задает число, которое будет вычитаться из счетчика завершений каждый раз, как очередной транзакт будет покидать систему. По условию упражнения 1, транзакты должны водить в блок GENERATE каждые 0,6 ± 0,2 дня.
а) Если в модели использовать только один блок, без задания конкретного времени моделирования, то изменение значения операнда А команды START на 3 остановит работу модели, когда систему покинут 3 транзакта. Окончательное значение счетчика завершений всегда равно 0, если прогон модели прошел без ошибок – это признак окончания моделирования.
Текст модели:
GENERATE 0.6,0.2 ; время между поступлением заявок распределено равномерно от 0.4 до 0.8 ед. модельного времени
TERMINATE 1; транзакт покидает систему, из счетчика завершений вычитается 1
START 3 ; установить начальное значение счетчика завершений TG1=3
Результаты моделирования:
START TIME END TIME BLOCKS FACILITIES STORAGES
0.000 2.200 2 0 0
LABEL LOC BLOCK TYPE ENTRY COUNT CURRENT COUNT RETRY
1 GENERATE 3 0 0
2 TERMINATE 3 0 0
- В систему поступило и покинуло ее 3 заявки за 2,2 дня моделирования (за 2,2 ед. модельного времени, равного 1 дню).
б) Если в модели использовать два блока, то во втором блоке значение операнда А команды START будет задавать время моделирования (3 дня).
Текст модели:
*1-я часть. Блоки модели
GENERATE 0.6,0.2 ; время между поступлением заявок распределено равномерно от 0.4 до 0.8 ед. модельного времени
TERMINATE ; транзакт покидает систему, но значение счетчика завершений не меняется
*2-я часть. «Часы» модельного времени
GENERATE 1 ; время поступления между транзактами данного блока = 1 ед. модельного времени, т. е. 1 день
TERMINATE 1 ; уменьшить счетчик завершений на 1
START 3 ; установить значение счетчика завершений TG1=10, т. е., моделирование 3 дней работы системы
Результаты моделирования:
START TIME END TIME BLOCKS FACILITIES STORAGES
0.000 3.000 4 0 0
LABEL LOC BLOCK TYPE ENTRY COUNT CURRENT COUNT RETRY
1 GENERATE 4 0 0
2 TERMINATE 4 0 0
3 GENERATE 3 0 0
4 TERMINATE 3 0 0
- В систему поступило и покинуло ее 4 заявки за 3 дня моделирования (за 3 ед. модельного времени, равного 1 дню).
Ответ:
а) Если в модели использовать только один блок, без задания конкретного времени моделирования, то интерпретатор завершит моделирование в момент времени, когда систему покинут 3 заявки: 2,2 дня. Значение счетчика завершений в конце моделирования будет равно 0.
б) Если в модели использовать два блока, и во втором блоке с помощью команды START задать время моделирования - 3 дня, то интерпретатор завершит моделирование в момент, когда время моделирования станет равным 3 дням. Значение счетчика завершений в конце моделирования также будет равно 0.
Задание 3. Для управления процессом моделирования разработчик использует два двухблочных сегмента модели.
GENERATE 25
TERMINATE 2
GENERATE 15
TERMINATE 1
Если используется START со значением операнда А, равным 25, когда завершится моделирование? Является ли окончательное значение счетчика завершений 0 или -1? Поясните ответ.
Решение:
Операнд А команды START задает начальное значение счетчика завершений. Операнд А команды TERMINATE задает число, которое будет вычитаться из счетчика завершений каждый раз, как очередной транзакт будет покидать систему. В данном примере используются 2 блока TERMINATE, в первом блоке каждая покинувшая заявка уменьшает счетчик завершений на 2 единицы, во втором – на 1.
Текст модели:
GENERATE 25 ; генерировать поступление заявок в систему через каждые 25 ед. мод. t
TERMINATE 2 ; уменьшить счетчик завершений на 2
GENERATE 15 ; генерировать поступление заявок в систему через каждые 15 ед. мод. t
TERMINATE 1 ; уменьшить счетчик завершений на 1
start 25 ; задать начальное значение счетчика завершений
Результаты моделирования:
START TIME END TIME BLOCKS FACILITIES STORAGES
0.000 175.000 4 0 0
LABEL LOC BLOCK TYPE ENTRY COUNT CURRENT COUNT RETRY
1 GENERATE 7 0 0
2 TERMINATE 7 0 0
3 GENERATE 11 0 0
4 TERMINATE 11 0 0
- Моделирование завершилось в момент времени 175, систему покинуло 7 заявок из первого блока GENERATE и 11 заявок из второго блока GENERATE.
Ответ:
Моделирование завершилось в момент времени 175. Из сегмента 1 вышло 7 заявок, из 2 – 11 заявок. Значение счетчика завершений уменьшилось на 7 * 2 + 11 * 1 = 14 + 11 = 25. Значение счетчика завершений равно 0: 25 – 25 = 0.
Задание 3.
1) GENERATE 950 3) GENERATE 900
QUEUE 1 ADVANCE 50,50
QUEUE 1
а) В какие моменты времени первые три транзакта войдут в блок QUEUE в сегменте 1?
в) Каковы наименьшее и наибольшее возможные времена, в которые первые три транзакта в сегменте 3 могут войти в блок QUEUE?
Решение:
а) В блок QUEUE транзакты войдут сразу после генерации в блоке GENERATE. В блоке GENERATE транзакты генерируются через каждые 950 ед. модельного времени, т. е. первый транзакт войдет в блок QUEUE в момент времени 950, второй – 950 + 950 = 1900, третий – в момент времени 1900 + 950 = 2850.
Текст модели:
INITIAL X1,-1 ; инициация переменной с номером 1 и присвоение ей начального значения -1; Будет использоваться для вывода значения времени входа в очередь QUEUE с номером 1 первого транзакта
INITIAL X2,-1 ; -//- время входа в очередь с номером 1 второго транзакта
INITIAL X3,-1 ; -//- время входа в очередь с номером 1 третьего транзакта
GENERATE 950 ; сгенерировать поступление заявок в систему через 950 ед. мод. t
QUEUE 1 ; занять очередь 1
ASSIGN 5,XN1 ; присвоить 5-му параметру транзакта значение номера активного (текущего) транзакта
SAVEVALUE P5,AC1 ; сохранить значение AC1 - текущего времени - в ячейку памяти, номер которой хранится в 5-м параметре транзакта
DEPART 1 ; освободить очередь с номером 1
TERMINATE 1 ; уменьшить счетчик завершений на 1
START 3 ; установить значение счетчика завершений TG1=3, т. е., моделирование выходов 3 транзактов из системы
Результаты моделирования:
START TIME END TIME BLOCKS FACILITIES STORAGES
0.000 2850.000 6 0 0
LABEL LOC BLOCK TYPE ENTRY COUNT CURRENT COUNT RETRY
1 GENERATE 3 0 0
2 QUEUE 3 0 0
3 ASSIGN 3 0 0
4 SAVEVALUE 3 0 0
5 DEPART 3 0 0
6 TERMINATE 3 0 0
QUEUE MAX CONT. ENTRY ENTRY(0) AVE. CONT. AVE. TIME AVE.(-0) RETRY
1 1 0 3 3 0.000 0.000 0.000 0
SAVEVALUE RETRY VALUE
1 0 950.000
2 0 1900.000
3 0 2850.000
- Времена входа первых трех транзактов в очередь с номером 1 отображены в значениях SAVEVALUE, и совпадают с предварительно рассчитанными.
б) Времена генерации первых трех транзактов будут, по аналогии с предыдущим примером: 900, 1800 и 2700. Время обслуживания транзактов в блоке ADVANCE 50,50 равно 50 ± 50 ед. модельного времени, т. е., равномерно распределено между значениями от 0 до 100. Таким образом:
- наименьшее время, через которое первый транзакт может войти в блок QUEUE, равно T1мин = 900 + 0 = 900;
- наибольшее время, через которое первый транзакт может войти в блок QUEUE, равно T1мах = 900 + 100 = 1000;
- наименьшее время, через которое второй транзакт может войти в блок QUEUE, равно T2мин = 1800 + 0 = 1800;
- наибольшее время, через которое второй транзакт может войти в блок QUEUE, равно T2мах = 1800 + 100 = 1900;
- наименьшее время, через которое третий транзакт может войти в блок QUEUE, равно T3мин = 2700 + 0 = 2700;
- наибольшее время, через которое третий транзакт может войти в блок QUEUE, равно T3мах = 2700 + 100 = 2800.
Ответ:
а) Первые три транзакта войдут в блок QUEUE в моменты времени 950, 1900 и 2850.
б) Наименьшие и наибольшие времена, в которые первые три транзакта войдут в блок QUEUE:
- для первого транзакта: 900 и 1000;
- для второго транзакта: 1800 и 1900;
- для третьего транзакта: 2700 и 2800.
Блок Б
Задание 4. Составить модель экзамена: в группе 20 чел., время экзамена 4 часа; в аудиторию студенты заходят по 6 чел.; 45 ± 10 мин. готовятся, затем беседуют с преподавателем 7 ± 2 мин. и выходят. 30% сдают на 4 и 5, 10% - на 2, остальные – на 3.
Определить:
1) сколько студентов успеют сдать экзамен за это время?
2) сколько студентов сдали на 4 и 5; на 3 и на 2?
3) максимальную длину очереди к преподавателю?
4) КПД преподавателя?
Решение:
Выберем в качестве единицы модельного времени 1 минуту. Тогда время экзамена будет 4 * 60 = 240 ед. модельного времени. Зададим ограничение по времени экзамена с помощью второго блока:
*2-я часть. «Часы» модельного времени
GENERATE 240 ; время моделирования - 4 часа
TERMINATE 1 ; уменьшить счетчик завершений на 1
START 1 ; начать моделирование.
То, что в группе 20 человек, зададим с помощью первого блока GENERATE со всеми пустыми значениями атрибутов, кроме D. Сразу добавим блок TERMINATE, через который обслуженные заявки будут покидать систему, не изменяя счетчик завершений:
*1-я часть. Модель системы
GENERATE,,,20 ; генерация поступления в систему 20 заявок
TERMINATE ; обслуженная заявка покидает систему
В качестве аудитории будем использовать многоканальное устройство STORAGE с емкостью 6 человек:
AUDITORIA STORAGE 6 ; задание многоканального устройства Аудитория с макс. емкостью 6 заявок
Занятие аудитории на время 45 ± 10 мин. смоделируем с помощью блока ADVANCE 45,10.
Текст модели:
AUDITORIA STORAGE 6 ; задание многоканального устройства аудитория
; с макс. емкостью 6 заявок
INITIAL X1,0 ; инициация ячейки для проверки возможности входа студента в
; аудиторию: 0 - можно войти, 1 - нельзя
INITIAL X$sdali_na_4_5,0 ; количество студентов, сдавших экзамен на 4 и 5
INITIAL X$sdali_na_2,0 ; количество студентов, сдавших экзамен на 2
INITIAL X$sdali_na_3,0 ; количество студентов, сдавших экзамен на 3
*1-я часть. Моделирование экзамена
GENERATE,,,20 ; генерация прихода на экзамен 20 студентов
QUEUE Ocher_na_exam ; встать в очередь в аудиторию
TEST E X1,0 ; проверка того, что значение ячейки номер 1 равно 0
; если да, то транзакт переходит на след. блок,
; иначе ждет в этом блоке
ENTER AUDITORIA ; студент входит в аудиторию
DEPART Ocher_na_exam ; выйти из очереди в аудиторию
TEST E SF$AUDITORIA,1,podgotovka ; проверка того, полностью ли заполнена
; аудитория, если да, то перейти на след. блок,
; иначе перейти на метку podgotovka
SAVEVALUE 1,1 ; присвоить ячейке с номером 1 значение 1: аудитория заполнена,
; больше студентов не могут войти в аудиторию
podgotovka ADVANCE 45,10 ; время на подготовку студентов
QUEUE Ocher_K_Prepodavatelu ; занять очередь к преподавателю
SEIZE PREPODAVTEL ; перейти к преподавателю
DEPART Ocher_K_Prepodavatelu ; освободить очередь к преподавателю
ADVANCE 7,2 ; беседа с преподавателем
RELEASE PREPODAVTEL ; освободить преподавателя
LEAVE AUDITORIA ; текущий студент покидает аудиторию
TEST E SE$AUDITORIA,1,podschet ; проверка того, что аудитория полностью
; освободилась. Если нет, то переход на метку podschet
SAVEVALUE 1,0 ; если да, то изменить значение ячейки № 1 на 0 для того,
; чтобы на экзамен могла войти следующая партия студентов
podschet transfer 0.3,ne_na_4_5,na_4_5 ; с вер. 30% перейти на метку na_4_5,
; иначе - на метку ne_na_4_5
na_4_5 SAVEVALUE sdali_na_4_5+,1 ; прибавить 1 к кол-ву студентов, сдавших
; экзамен на 4-5
transfer, ter ; перейти на метку ter
ne_na_4_5 transfer 0.1429,na_3,na_2 ; с вероятностью 14,29% перейти на метку
; na_2, иначе - на метку na_3
; Тк вер. перехода на этот блок = 0.7, то чтобы получить вер. перехода на ; метку na_2, равную 10%, нужно 0.1 разделить на 0.7, в итоге получится
; приблизительно 0.1429
na_2 SAVEVALUE sdali_na_2+,1 ; прибавить 1 к кол-ву студентов,
; сдавших экзамен на 2
transfer, ter ; перейти на метку ter
na_3 SAVEVALUE sdali_na_3+,1 ; прибавить 1 к кол-ву студентов,
; сдавших экзамен на 3
ter TERMINATE ; студент сдал экзамен и уходит, вывести транзакт из системы
*2-я часть. «Часы» модельного времени
GENERATE 240 ; время моделирования - 4 часа (4 * 60 мин = 240)
TERMINATE 1 ; уменьшить счетчик завершений на 1
START 1 ; начать моделирование
Результаты моделирования:
START TIME END TIME BLOCKS FACILITIES STORAGES
0.000 240.000 24 1 1
NAME VALUE
AUDITORIA 10000.000
NA_2 19.000
NA_3 21.000
NA_4_5 16.000
NE_NA_4_5 18.000
OCHER_NA_EXAM 10004.000
PODGOTOVKA 8.000
PODSCHET 15.000
PREPODAVTEL 10005.000
SDALI_NA_2 10002.000
SDALI_NA_3 10003.000
SDALI_NA_4_5 10001.000
TER 22.000
LABEL LOC BLOCK TYPE ENTRY COUNT CURRENT COUNT RETRY
1 GENERATE 20 0 0
2 QUEUE 20 0 0
3 TEST 20 0 0
4 ENTER 20 0 0
5 DEPART 20 0 0
6 TEST 20 0 0
7 SAVEVALUE 3 0 0
PODGOTOVKA 8 ADVANCE 20 2 0
9 SEIZE 18 0 0
10 ADVANCE 18 0 0
11 RELEASE 18 0 0
12 LEAVE 18 0 0
13 TEST 18 0 0
14 SAVEVALUE 3 0 0
PODSCHET 15 TRANSFER 18 0 0
NA_4_5 16 SAVEVALUE 6 0 0
17 TRANSFER 6 0 0
NE_NA_4_5 18 TRANSFER 12 0 0
NA_2 19 SAVEVALUE 2 0 0
20 TRANSFER 2 0 0
NA_3 21 SAVEVALUE 10 0 0
TER 22 TERMINATE 18 0 0
23 GENERATE 1 0 0
24 TERMINATE 1 0 0
FACILITY ENTRIES UTIL. AVE. TIME AVAIL. OWNER PEND INTER RETRY DELAY
PREPODAVTEL 18 0.496 6.617 1 0 0 0 0 0
QUEUE MAX CONT. ENTRY ENTRY(0) AVE. CONT. AVE. TIME AVE.(-0) RETRY
OCHER_NA_EXAM 14 0 20 6 7.814 93.767 133.953 0
OCHER_K_PREPODAVATELU 4 0 18 3 0.559 7.453 8.943 0
STORAGE CAP. REM. MIN. MAX. ENTRIES AVL. AVE. C. UTIL. RETRY DELAY
AUDITORIA 6 4 0 6 20 1 4.573 0.762 0 0
SAVEVALUE RETRY VALUE
1 0 0
SDALI_NA_4_5 0 6.000
SDALI_NA_2 0 2.000
SDALI_NA_3 0 10.000
Ответ:
1) За 4 часа экзамен сдадут 18 студентов.
2) На 4 и 5 сдали 6 студентов; на 3 – 10 студентов; на 2 – 2 студента.
3) Максимальная длина очереди к преподавателю – 4 человека.
4) КПД преподавателя = 0.496.
Основные порталы (построено редакторами)
