
ЛР №4 Вар 1 Изменённая дисциплина обслуживания в системе с одним прибором и очередью
.docxМИНИСТЕРСТВО ЦИФРОВОГО РАЗВИТИЯ,
СВЯЗИ И МАССОВЫХ КОММУНИКАЦИЙ РОССИЙСКОЙ ФЕДЕРАЦИИ
ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ
«САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ТЕЛЕКОММУНИКАЦИЙ ИМ. ПРОФ. М.А. БОНЧ-БРУЕВИЧА»
(СПбГУТ)
Факультет Информационных систем и технологий
Кафедра Информационных управляющих систем
Моделирование процессов и систем
Отчет по лабораторной работе №4
Вариант №1
«Изменённая дисциплина обслуживания в системе с одним прибором и очередью»
Выполнил:
Студент гр. ИСТ-931
Гетманченко П.А.
Проверил:
к.т.н., доцент
Королёв В.В.
Санкт-Петербург
2021
Постановка задачи
В зубной кабинет с одним креслом пациент приходит каждые (15±2) мин. по записи. Каждые (60±10) мин. приходят пациенты с острой болью, которые проходят к стоматологу без очереди. Лечение плановых клиентов происходит за (14±6) мин., а пациентов с острой болью - за (10±3) мин. Начало приёма врача - 8:00, в 11:00 врач делает перерыв на 30 мин. Смоделируйте работу кабинета за шестичасовой рабочий день. Рассчитайте прибыль врача, если стоимость визита планового пациента 100 руб., а пациента с острой болью - 50 руб. На обед врач уходит, обслужив пациента, который сейчас находится в кресле.
Код:
SIMULATE
GENERATE 15,2,,,1
QUEUE b
SEIZE a
DEPART b
ADVANCE 14,6
RELEASE a
TERMINATE
GENERATE 60,10,,,2
QUEUE b
SEIZE a
DEPART b
ADVANCE 10,3
RELEASE a
TERMINATE
* блок перерыва
GENERATE ,,180,1,3 // 2 первые переменные – кто-то заходит в очередь, поэтому опускаем, 180 – смещение (действует через 180 мин., через 3 ч.), 3 – приоритет (самый высокий), если время подходит к перерыву, то ему приоритетнее уйти на перерыв
QUEUE b
PREEMPT a
DEPART b
ADVANCE 30
RETURN a
TERMINATE
GENERATE 360 // перевод в мин. (6 ч.)
TERMINATE 1
START 1
Пояснения:
GENERATE – создает поток транзакций и отправляет их на вход модели, например, каждые 330±250 единиц времени. Транзакции начинают свое существование после оператора GENERATE, проходят следующие операторы, и уходят из модели на операторе TERMINATE.
QUEUE – этот оператор симулирует очередь и собирает соответствующую статистику. В конце симуляции он выдаст максимальный размер очереди и среднее время ожидания. Каждому оператору QUEUE должен быть поставлен в соответствие оператор DEPART, который запускается тогда, когда транзакт выходит из очереди.
После оператора QUEUE транзакт попытается пройти оператор SEIZE.
SEIZE – симулирует “захват прибора”. Прибор имеет размерность один: если он уже занят, то SEIZE пропустит следующий транзакт. Каждому оператору SEIZE должен быть поставлен в соответствие оператор RELEASE, который запускается тогда, когда прибор оканчивает обрабатывать транзакт.
ADVANCE – замораживает объект, например, на 280±150 единиц времени.
PREEMPT - операция захвата устройства выполняется транзактом с помощью блока PREEMPT (прервать). Номер захватываемого устройства задается в этом блоке в поле А. Если транзакт захватил устройство посредством блока PREEMPT, то освобождать его он должен в блоке RETURN (восстановить). Номер освобождаемого устройства задается в блоке RETURN в поле А.
Результат работы программы
Результат работы программы виден на рисунках 1-2.
Рисунок 1 – результат работы программы №1
Рисунок 2 – результат работы программы №2