![]() |
|
сделать стартовой | добавить в избранное |
![]() |
Компьютеры, Программирование
Программное обеспечение
Разработка модели теории массового обслуживания |
Министерство информационных технологий и связи РФ Сибирский государственный университет телекоммуникаций и информатики Факультет информатики и вычислительной техники Кафедра вычислительных систем Курсовая работа по курсу Моделирование Выполнили: Степанов Е.Е. Гордеев С.А. Гомзяков А.В. студенты гр.ВМ-37 Проверил: Рудых Я.И. Новосибирск 2005 Содержание Постановка задачи Описание модели в терминах PDEVS формализма Атомарные компоненты Полученные результаты Основные фрагменты кода Вывод Постановка задачи Модель состоит из трех обслуживающих серверов. Каждый сервер имеет очередь, в которой заявки могут ожидать своей очереди. Также есть генератор сообщений. Первая очередь бесконечная, остальные конечные. Обработки заявок всех серверов распределены экспоненциально. В начальный момент времени очереди. Необходимо построить модель в терминах PDEVS-формализма и произвести эксперименты над моделью с помощью пакета DEJaView. Необходимо ответить на следующие вопросы: Выдать статистику по всем очередям. Максимальную длину первой очереди. Сколько процентов сообщений прошло через очередь без задержек - «сквозняки». Рис. 1. Схематическое изображение модели Описание модели в терминах PDEVS формализма В PDEVS-модели существует 7 компонент: Queue1, Queue2 и Queue3 – это три очереди. Server1, Server2 и Server3 – это три прибора (сервера). Время обслуживания распределено экспоненциально. MessageGe era or - генератор сообщений. Рассмотрим более подробно логику работы компонент. 1. Генератор подает сообщение в очередь Queue1. 2. В начальный момент времени все серверы находятся в состоянии free (свободен). Cерверы Server1, Server2 посылают сообщение на очереди Queue2 и Queue3 соответственно, это говорит о готовности серверов принимать сообщения. Приняв сообщение каждая очередь подаёт сообщение на выход o ex и он приходит на вход fromPrev соответствующего каждой очереди сервера. Сервет меняет своё состояние с free (свободен) на busy (занят) и через некоторое время подаёт сообщение на выход o ex и после этого ждёт от следующей очереди подтверждения что в данной очереди ещё есть хотя бы одно место. После того как сервер отправил сообщение слёдующей очереди, он переходит в состояние free (свободен) и посылает предыдущей очереди сообщение, которое говорит о готовности сервера принимать следующее сообщение. Также существует возможность перехода сообщения с Серверов в очередь Queue1 с вероятностями P1, P2, P3. 3.Атомарные компоненты Класс атомарной компоненты Объекты класса атомарной компоненты Возможные состояния компоненты Входные порты Выходные порты Server1 Server1 Free, Busy FromPrev,From ex oPrev, o ex ,Vozvra Server2 Server2 Free, Busy FromPrev,From ex oPrev, o ex ,Vozvra Server3 Server3 Free, Busy FromPrev,From ex oPrev,Vozvra Queue1 Queue1 Free, Full FromPrev,From ex ,Vozvra oPrev, o ex Queue2 Queue2 =={1,2,3,4,5} FromPrev,From ex oPrev, o ex Queue3 Queue3 =={1,2,3,4,5} FromPrev,From ex oPrev, o ex Алгоритмы функционирования компонент: Компоненты классов Server1 и Server2: Del a i : Остаемся в текущем состоянии Del a exp Если (пришел новый пакет от очереди) { переходим в состояние “busy” } Lambda Если(Сообщение от предыдущей очереди){ Если пакет обработан, то пытаемся отправить его следующей очереди.
Случайно определяем куда пойдёт сообщение – или в начало цепи, или в следующую очередь. Отсылаем предыдущей очереди уведомление о том что сервер освободился. } Компоненты класса Queue2,Queue3: Del a i : остаемся в текущем состоянии Del a exp Если (пришёл новый пакет) { Если (Флаг ожидания, ожидания освобождения сервера) { Увеличиваем счётчик поступивших пакетов на 1 Так же выполняем действия необходимые для вычисления средней длины очереди } Иначе Если (Очередь не ждёт освобождения сервера ) { «Сквозняк» Выполняем действия по вычислению доли сквозняков } Иначе Если (пришло сообщение от сервера) { Флаг готовности сервера ставим в значение истина } Lambda Если (пришёл новый пакет) { Если (Сервер свободен) { Отсылаем сообщение серверу «Сквозняк» Выполняем операции по вычислению доли сквозняков } Если (Ожидаем сервер) { Если очередь переполнилась посылаем сообщение серверу } } Если (пришло сообщение от сервера) { Если(Очередь не пуста){ Посылаем пакет на порт o ex очереди Уменьшаем длину очереди на 1 } } Компоненты классов Server3: Del a i : Остаемся в текущем состоянии Del a exp Если (пришел новый пакет от очереди) { переходим в состояние “busy” } Lambda Если (сообщение от предыдущей очереди){ Если пакет обработан, то пытаемся отправить его следующей очереди. Случайно определяем куда пойдёт сообщение – или в начало цепи, или на выход из цепи. Отсылаем уведомление предыдущей очереди о том, что сервер освободился. } Компонент класса Queue1: Del a i : остаемся в текущем состоянии Del a exp Если (пришёл новый пакет(или из цепи, или из генератора сообщений)) { Если (Флаг ожидания, ожидания освобождения сервера) { Увеличиваем счётчик поступивших пакетов на 1 Выполняем действия по нахождению макс максимальной длины очереди } Иначе Если (Сервер свободен ) { «Сквозняк» Выполняем действия по вычислению доли сквозняков } Иначе Если (пришло сообщение от сервера) { Флаг готовности сервера ставим в значение истина } Lambda Если( пришёл новый пакет(из генератора или из цепи)) { Если (Сервер свободен) { Отсылаем сообщение серверу «Сквозняк» Выполняем операции по вычислению доли сквозняков } Если (Ожидаем сервер) { } } Если (пришло сообщение от сервера) { Если(Очередь не пуста){ Посылаем пакет на порт o ex очереди Уменьшаем длину очереди на 1 Выполняем действия по вычислению максимальной длины очереди } } Компонент класса: MessageGe era or. Если(пришло системное сообщение) { Отправляем сообщение первой очереди Увеличиваем число сгенерированных сообщений на 1 } 4. Полученные результаты Рис. 3. Результаты работы модели Основные фрагменты кода 1.QueueModel.java package DEJaView.modelLibs.a; impor DEJaView.modelLibs.a.MessageGe era or; impor DEJaView.modelLibs.a.Queue1; impor DEJaView.modelLibs.a.Server1; impor DEJaView.modelLibs.a.Queue2; impor DEJaView.modelLibs.a.Server2; impor DEJaView.modelLibs.a.Queue3; impor DEJaView.modelLibs.a.Server3; impor DEJaView.core. ; impor java.u il. ; public class QueueModel ex e ds MULC { public s a ic void mai (S ri g args[]) { MULC queuemodel = ew MULC(&quo ;queuemodel&quo ;); MessageGe era or MessageGe era or1 = ew MessageGe era or(&quo ;MessageGe era or1&quo ;); Queue1 Queue1 = ew Queue1(&quo ;Queue1&quo ;); Queue2 Queue2= ew Queue2(&quo ;Queue2&quo ;); Queue3 Queue3= ew Queue3(&quo ;Queue3&quo ;); Server1 Server1 = ew Server1(&quo ;Server1&quo ;); Server2 Server2= ew Server2(&quo ;Server2&quo ;); Server3 Server3= ew Server3(&quo ;Server3&quo ;); queuemodel.A
ddCompo e (MessageGe era or1); queuemodel.AddCompo e (Queue1); queuemodel.AddCompo e (Queue2); queuemodel.AddCompo e (Queue3); queuemodel.AddCompo e (Server1); queuemodel.AddCompo e (Server2); queuemodel.AddCompo e (Server3); queuemodel.i i (); Da e d1 = ew Da e(); double ime =10000.0; while ( !(queuemodel.ge Local ime()&g ; ime)) { queuemodel.ge Processor().Simula e(); } Sys em.ou .pri l (&quo ;Пакетов отправлено: &quo ; MessageGe era or1. um); Sys em.ou .pri l (&quo ;Число отказов во 2 ой очереди: &quo ; Queue2. umOfRej); Sys em.ou .pri l (&quo ;Число отказов в 3 ей очереди: &quo ; Queue3. umOfRej); / Sys em.ou .pri l (&quo ;Осталось в первой очереди &quo ; Queue1. umOfMessages); / Sys em.ou .pri l (&quo ;Число возвратов с первого сервера &quo ; Server1.vozvra ); Sys em.ou .pri l (&quo ;Число возвратов со второго сервера &quo ; Server2.vozvra ); Sys em.ou .pri l (&quo ;Число возвратов с третьего сервера &quo ; Server3.vozvra ); Sys em.ou .pri l (&quo ;Число возвратов в первую очередь &quo ; Queue1.vozvra ); Sys em.ou .pri l (&quo ;Средняя длина 2 ой очереди &quo ; (double)Queue2.Dli a/(double)Queue2.Chislo); Sys em.ou .pri l (&quo ;Средняя длина 3 ей очереди &quo ; (double)Queue3.Dli a/(double)Queue3.Chislo); Sys em.ou .pri l (&quo ;Максимальная длина 1 ой очереди &quo ; Queue1.max); Sys em.ou .pri l (&quo ;Процент сквозняков в первой очереди &quo ;%&quo ;); Sys em.ou .pri l (&quo ;Процент сквозняков во второй очереди &quo ;%&quo ;); Sys em.ou .pri l (&quo ;Процент сквозняков в третей очереди &quo ;%&quo ;); Da e d2= ew Da e(); lo g d = d2.ge ime()-d1.ge ime(); Sys em.ou .pri l (&quo ;Время моделирования:&quo ; d); } } 2.Queue1.java. package DEJaView.modelLibs.a; impor DEJaView.core. ; impor java.u il. ; / Класс, реализующий работу очереди сообщений (требований) / public class Queue1 ex e ds A omicPDEVS { / Счётчик, подсчитывающий число пакетов в очереди / public i umOfMessages = 0; / Флаг, показывающий свободен ли сервер / priva e boolea serverIsFree = rue; public i vozvra ; public i skvoz=0; public i um=0; public i max=0; / Создает объект Queue с заданным именем @param ame имя создаваемого объекта ксласса Clie / pro ec ed Queue1(S ri g ame) { super( ame); / Объекты класса Queue могут находится в одном из 5-тии состояний, в зависимости от количесва сообщений в очереди / addS a e(&quo ;free&quo ;); addS a e(&quo ;full&quo ;); } / Инициализация компонента / pro ec ed void i i () { / Описание системного порта / Por p; / Задание начального времени / his.se Las ime(0); / Задание начального состояния / / Далее генерируем начальное системное сообщение / MessagePDEVS i i m = ew MessagePDEVS(&quo ;&quo ;, Double.POSI IVE I FI I Y, his.ge Las ime()); / Далее передаем системное сообщение сообщение в очередь сообщений мультикомпонента, непосредственно содержащего данный компонент: / / 1. Назначение порта / p = resolveOu Por (&quo ;sys em&quo ;); / 2. Назначение сообщения / p.se Message(i i m); / 3. Собственно передача сообщения / p.ge ame()); } / Функция продвижения времени / pro ec ed double a() { re ur Double.POSI IVE I FI I Y; } / Внутренняя функция транзакции / pro ec ed S a e del a i () { re ur his.g
В составе Национального организационного комитета, осуществляющего подготовку и проведение XXV летних Олимпийских игр (г. Барселона, Испания, 1992), имелось отделение логистики. Аппарат НАТО еще в 50-е гг. включал отделение логистики (logistics division), фактически выполнявшее функции управления тыла в штабе главнокомандующего вооруженными силами. Для решения различных практических задач в логистике широко применяются математический аппарат теории запасов, теории вероятностей, теории графов, теории статистических решений, теории информации, теории массового обслуживания, математической статистики, методы линейного программирования, математического программирования, динамического программирования, имитационного моделирования, методы оптимизации, сетевые методы планирования и управления и др. Практические задачи логистики наиболее эффективно могут решаться с применением программно-аппаратных средств вычислительной техники, включая мини-ЭВМ, микро-ЭВМ и персональные ЭВМ; пакетов прикладных программ в рамках различных систем организации производства и снабжения, средств искусственного интеллекта и экспертных систем
1. Разработка имитационной модели системы массового обслуживания
2. Модель системы массового обслуживания на GPSS
3. Создание модели системы массового обслуживания
9. Разработка модели управления гостиницы делового назначения и отдыха на 100 мест
10. Классификация систем массового обслуживания и их основные элементы
11. Разработка модели взаимодействия подсистем производства в районных АПК
12. Имитационное моделирование системы массового обслуживания
13. Моделирование системы массового обслуживания
14. Разработка модели анализа и объектно-ориентированного компонента для игры Terrarium 2.0
17. Моделирование систем массового обслуживания
18. Инвариантность стационарного распределения трехузловой сети массового обслуживания
19. Система массового обслуживания с ограниченным временем ожидания
20. Моделирование систем массового обслуживания
25. Разработка и исследование модели отражателя-модулятора (WinWord zip-1Mb)
26. Разработка бизнес-плана предприятия по обслуживанию оргтехники
27. Модель разработки стратегии для ОАО "Аливария"
28. Модель человека в экономической теории
31. Использование модели briefcase при разработке приложений баз данных
33. Разработка имитационной модели транспортной сети
35. Разработка математической модели на основе описанных методов
36. Разработка подсистемы визуализации моделей и их модификации
37. Разработка физической модели базы данных "Учёт характеристик сигналов телемеханики"
41. Разработка новых моделей школьной формы с показом мод
42. Выбор модели и разработка конструкции одежды для определенной группы потребителей
43. Разработка 3D модели балки с применением "SolidWorks"
44. Разработка электромеханического привода подачи станка модели 6С12Ц
45. Пенитенциарные теории и модели тюремных учреждений, диагностика и классификация заключенных
48. Теория портфеля Г.Марковица и модель оценки доходности финансовых активов
49. Модель IS-LM як теорія сукупного попиту у закритій економіці
50. Модель человека в институциональной теории
51. Разработка динамических моделей для транспортно-производственной системы
52. Разработка основных разделов проекта производства работ
53. Техническое обслуживание летательных аппаратов (шпаргалки)
57. Происхождение человека. Эволюция человека. Теории и гипотезы
58. О роли эксперимента в разработке научных гипотез происхождения жизни
59. Теории зарождения жизни на Земле
60. Теория Дарвина
61. Антропогенез: эволюционная теория происхождения человека
62. Альбом схем по основам теории радиоэлектронной борьбы
63. Оружие массового поражения
64. Воздействие оружия массового поражения
65. Особенности Японской модели экономики
66. Разработка Мыковского карьера лабрадоритов
67. Шведская модель социальной экономики
68. Разработка региональной справочной общегеографической карты Смоленской области для Атласа Центра РФ
69. Расчет показателей разработки элемента трехрядной системы
73. Правовой режим земель, предоставленных для разработки недр
74. Теория этногенеза Л.Н.Гумилева
76. Шпаргалка по теории и истории кооперативного движения
77. Проблема нераспространения и не использования оружия массового уничтожения (ОМУ)
79. Государственный долг: понятие, состав и его обслуживание (по Казахстану)
80. Деловой язык и культура речи юриста - тема "Разработка стратегии общения"
81. Разработка рекламной программы для страховой компании
82. Лекции (часть) по теории государства и права
84. Договорная теория возникновения государства и права
85. Теория государства и права
90. Шпаргалка по теории государства и права
91. Теория государства и права. Правовой статус личности
92. Ответы к экзаменационным билетам по Теории государства и права
93. Происхождение права, теории происхождения права, понятие признаки, виды, функции, принципы
94. Теория государства и права (в таблицах)
95. Теория государства и права
96. Теория государства иправа. Проблемно-тематический курс
97. Диагностика банкротства предприятия и разработка антикризисной программы (на примере ООО «Оптима»)
98. Теория книговедения в работах М.Щелкунова
99. Искусство в жизни общества. Искусство и "массовая культура"