На бирже курсовых и дипломных проектов можно найти образцы готовых работ или получить помощь в написании уникальных курсовых работ, дипломов, лабораторных работ, контрольных работ, диссертаций, рефератов. Так же вы мажете самостоятельно повысить уникальность своей работы для прохождения проверки на плагиат всего за несколько минут.

ЛИЧНЫЙ КАБИНЕТ 

 

Здравствуйте гость!

 

Логин:

Пароль:

 

Запомнить

 

 

Забыли пароль? Регистрация

Повышение уникальности

Предлагаем нашим посетителям воспользоваться бесплатным программным обеспечением «StudentHelp», которое позволит вам всего за несколько минут, выполнить повышение уникальности любого файла в формате MS Word. После такого повышения уникальности, ваша работа легко пройдете проверку в системах антиплагиат вуз, antiplagiat.ru, etxt.ru или advego.ru. Программа «StudentHelp» работает по уникальной технологии и при повышении уникальности не вставляет в текст скрытых символов, и даже если препод скопирует текст в блокнот – не увидит ни каких отличий от текста в Word файле.

Результат поиска


Наименование:


курсовая работа СМО

Информация:

Тип работы: курсовая работа. Добавлен: 31.05.2012. Сдан: 2011. Страниц: 10. Уникальность по antiplagiat.ru: < 30%

Описание (план):


 

СОДЕРЖАНИЕ 
 
 
 
 
 

Введение

 
        За последнее время  в самых разных областях жизнедеятельности человека возникла необходимость в решении различных вероятностных задач, связанных с работой так называемых систем массового обслуживания (СМО). Под системой массового обслуживания (СМО) понимают динамическую систему, предназначенную для эффективного обслуживания потока заявок (требований на обслуживание) при ограничениях на ресурсы системы.
        Модели СМО удобны для описания отдельных подсистем  современных вычислительных систем, таких как подсистема процессор - основная память, канал ввода-вывода и т. д. Примерами таких систем могут служить: телефонные станции, ремонтные мастерские, билетные кассы, стоянки такси, парикмахерские и т.п.
        Целью данного курсового проекта является исследование параметров функционирования разомкнутых систем массового обслуживания с отказами, т.е. рассматривается поток поступления заявки в систему и поток обслуживания заявки системой.
        Практическое решение  задачи осуществлено с помощью объектно-ориентированного подхода и написания программы в среде Borland C++ Builder 6.
 


1. Разбор задания на курсовое проектирование

1.1 Постановка задачи

        Необходимо построить модель разомкнутой системы массового обслуживания с отказами и исследовать поведение характеристик её эффективности. Имеется m канальная СМО с n местами в очереди. Когда все места в очереди заняты, заявка получит отказ.
        При выполнении данной работы необходимо разработать приложение с применением объектно-ориентированного подхода.
        Приложение должно обеспечить работу со списком элементов любых размерностей, а также при разработке необходимо учитывать то, что элементы могут быть расположены в любой последовательности. Необходимо реализовать механизмы ввода данных, с которыми будет работать приложение  с клавиатуры.

1.2 Анализ метода  решения поставленной  задачи

        Объектно-ориентированное  программирование основано на трех важнейших принципах, придающих объектам новые свойства. Этими принципами являются инкапсуляция, наследование и полиморфизм.
        Инкапсуляция есть объединение в единое целое данных и алгоритмов обработки этих данных. В рамках ООП данные называются полями объекта, а алгоритмы - объектными методами.
        Инкапсуляция позволяет  в максимальной степени изолировать  объект от внешнего окружения. Она существенно  повышает надежность разрабатываемых  программ, т.к. локализованные в объекте  алгоритмы обмениваются с программой сравнительно небольшими объемами данных, причем количество и тип этих данных обычно тщательно контролируются. В результате замена или модификация алгоритмов и данных, инкапсулированных в объект, как правило, не влечет за собой плохо прослеживаемых последствий для программы в целом (в целях повышения защищенности программ в ООП почти не используются глобальные переменные).
        Другим немаловажным следствием инкапсуляции является легкость обмена объектами, переноса их из одной  программы в другую. Можно сказать, что ООП «провоцирует» разработку библиотек объектов, таких как Turbo Vision.
        Наследование есть свойство объектов порождать своих потомков. Объект-потомок автоматически наследует от родителя все поля и методы, может дополнять объекты новыми полями и заменять (перекрывать) методы родителя или дополнять их.
        Принцип наследования решает проблему модификации свойств  объекта и придает ООП в  целом исключительную гибкость. При  работе с объектами программист  обычно подбирает объект, наиболее близкий по своим свойствам для решения конкретной задачи, и создает одного или нескольких потомков от него, которые «умеют» делать то, что не реализовано в родителе.
        Последовательное  проведение в жизнь принципа «наследуй  и изменяй» хорошо согласуется с  поэтапным подходом к разработке крупных программных проектов и во многом стимулирует такой подход.
        Полиморфизм - это свойство родственных объектов (т.е. объектов, имеющих одного общего родителя) решать схожие по смыслу проблемы разными способами. В рамках ООП поведенческие свойства объекта определяются набором входящих в него методов. Изменяя алгоритм того или иного метода в потомках объекта, программист может придавать этим потомкам отсутствующие у родителя специфические свойства. Для изменения метода необходимо перекрыть его в потомке, т.е. объявить в потомке одноименный метод и реализовать в нем нужные действия. В результате в объекте-родителе и объекте-потомке будут действовать два одноименных метода, имеющие разную алгоритмическую основу и, следовательно, придающие объектам разные свойства. Это и называется полиморфизмом объектов.

1.2.1 Преимущества ООП

        ООП хорошо применяется в практике программирования для более лёгкого создания управляемых проектов.
        ООП обучает любой  язык программирования более хорошему программному коду и используется, для получения более высокой производительности и написания больших проектов, не боясь запутаться в их управлении. ООП даёт вам возможность создавать объекты которые можно будет использовать многократно, для того что бы вы или другие разработчики могли использовать их в своих проектах не переделывая их снова и снова. ООП убирает барьеры и сложности в написании и управлении большими приложениями.
        Программный код с использованием ООП более читабельный и легче для восприятия. Код с ООП организован лучше потому что в нём понятно какой объект чем обрабатывается.
        Таким образом, исходя из изложенного выше, можно вынести преимущества использования ООП:
        ООП был создан что  бы облегчить жизнь разработчикам. Используя ООП вы можете разбить  ваши большие проблемы на маленькие проблемы, которые решать гораздо проще.
        Основное требование ООП: всё что вы хотите сделать - делайте  объектами. Объекты это отдельная  маленькая часть кода которая  может объединять данные и свойства вместе. В приложениях все объекты  взаимодействуют друг с другом.
        ООП может быть рассмотрен лучше с разных сторон, особенно когда вам важно время разработки и последующее развитие приложения:
      Повторное использование: Объект это логический объект у которого есть комплект свойств и методов и он может взаимодействовать с другими объектами. Объект может быть абсолютно независимым или может зависеть от других объектов. Объект обычно создают для решения специфических поставленных проблем. Следовательно когда другие разработчики сталкиваются с похожими проблемами,они могут подключить ваш класс к своему проекту и использовать его не боясь что он нарушит процесс их разработки.
      Рефакторинг: Когда вам необходимо в проекте использовать рефакторинг, ООП предоставляем вам максимум преимуществ, так как все объекты это маленькие элементы и содержат свои свойства и методы как часть себя. По этому использовать рефакторинг относительно легко.
      Расширяемость: Если вам необходимо расширять функциональность вашего проекта, вы можете достичь лучших результатов при помощи ООП. Одна из основных функциональностей ООП это расширяемость. Вы можете использовать рефакторинг объектов что бы добавить функциональность. Работая над этим, вы по прежнему можете сохранить прежнюю совместимость объекта - следовательно вы можете прекрасно работать и с прежним кодом. Или же вы можете расширить объект и создать абсолютно новый, который будет содержать все необходимые свойства и методы родительского объекта от которого происходит новый, а потом уже добавить в него новые функции. Это называется "наследование" и это очень важная возможность ООП.
      Поддержка: объектно-ориентированный код легче поддерживать так как он следует весьма жёстким соглашениям написания кода и пишется в самопоясняющейся форме. К примеру, когда разработчик дополняет, перерабатывает код, или отлаживает его, он может легко найти внутреннюю структуру кода и поддерживать код время от времени.
      Эффективность: Идея ООП в действительности была разработана для повышения эффективности и облегчения процесса разработки . Несколько шаблонов проектирования разработаны что бы создавать более эффективный и хороший код. Более того в ООП вы можете вы можете размышлять над вашими решениями в более удобной форме чем в процедурном подходе. Поскольку вы разбиваете вашу проблему на несколько маленьких проблем и вы находите решение для каждой из них отдельно, большая проблема решается сама по себе.

1.2.2 Основные термины  и положения ООП

        Объе?ктно-ориенти?рованное программи?рование (ООП) — парадигма программирования, в которой основными концепциями являются понятия объектов и классов (либо, в менее известном варианте языков с прототипированием — прототипов).
        Класс — это тип, описывающий устройство объектов. Понятие «класс» подразумевает некоторое поведение и способ представления. Понятие «объект» подразумевает нечто, что обладает определённым поведением и способом представления. Говорят, что объект — это экземпляр класса. Класс можно сравнить с чертежом, согласно которому создаются объекты. Обычно классы разрабатывают таким образом, чтобы их объекты соответствовали объектам предметной области.
        Класс является описываемой  на языке терминологии (пространства имён) исходного кода моделью ещё не существующей сущности, т. н. объекта.
        Объект — сущность в адресном пространстве вычислительной системы, появляющаяся при создании экземпляра класса (например, после запуска результатов компиляциилинковки) исходного кода на выполнение).
        Прототип — это объект-образец, по образу и подобию которого создаются другие объекты.
        Объектное и объектно-ориентированное  программирование (ООП) возникло в результате развития идеологии процедурного программирования, где данные и подпрограммы (процедуры, функции) их обработки формально не связаны. Кроме того, в современном объектно-ориентированном программировании часто большое значение имеют понятия события (так называемое событийно-ориентированное программирование) и компонента (компонентное программирование).
        В настоящее время  количество прикладных языков программирования (список языков), реализующих объектно-ориентированную парадигму, является наибольшим по отношению к другим парадигмам. В области системного программирования до сих пор применяется парадигма процедурного программирования, и общепринятым языком программирования является язык C. Хотя при взаимодействии системного и прикладного уровней операционных систем заметное влияние стали оказывать языки объектно-ориентированного программирования. Например, одной из наиболее распространенных библиотек мультиплатформенного программирования является объектно-ориентированная библиотека Qt, написанная на языке C++.
        Структура данных «класс», представляющая собой объектный тип данных, внешне похожа на типы данных процедурно-ориентированных языков, такие как структура в языке Си или запись в Паскале или QuickBasic. При этом элементы такой структуры (члены класса) могут сами быть не только данными, но и методами (то есть процедурами или функциями). Такое объединение называется инкапсуляцией.
        Наличие инкапсуляции достаточно для объектности языка  программирования, но ещё не означает его объектной ориентированности  — для этого требуется наличие наследования.
        Но даже наличие  инкапсуляции и наследования не делает язык программирования в полной мере объектным с точки зрения ООП. Основные преимущества ООП проявляются только в том случае, когда в языке программирования реализован полиморфизм.
        ООП имеет уже более чем сорокалетнюю историю, но, несмотря на это, до сих пор не существует чёткого общепринятого определения данной технологии. Основные принципы, заложенные в первые объектные языки и системы, подверглись существенному изменению (или искажению) и дополнению при многочисленных реализациях последующего времени. Кроме того, примерно с середины 1980-х годов термин «объектно-ориентированный» стал модным, в результате с ним произошло то же самое, что несколько раньше с термином «структурный» (ставшим модным после распространения технологии структурного программирования) — его стали искусственно «прикреплять» к любым новым разработкам, чтобы обеспечить им привлекательность.

1.3. Понятие СМО

1.3.1 Основные определения СМО

        Под системой массового обслуживания (СМО) понимают динамическую систему, предназначенную для эффективного обслуживания потока заявок (требований  на  обслуживание) при ограничениях на ресурсы системы.
        Первые задачи теории систем массового обслуживания (ТСМО) были рассмотрены сотрудниками Копенгагенской телефонной компании, датским ученым А.К. Эрлангом (1878г. – 1929г.) в период между 1908 и 1922гг. Эти задачи были вызваны к жизни стремлением упорядочить работу телефонной сети и разработать методы, позволяющие заранее повысить качество обслуживания потребителей в зависимости от числа используемых устройств. Оказалось, что ситуации, возникающие на телефонных станциях, являются типичными не только для телефонной связи. Работа аэродромов, работа морских и речных портов, магазинов, терминальных классов, радиолокационных комплексов, радиолокационных станций и т.д. и т.д. может быть описана в рамках ТСМО.
        Реальные системы, с которыми приходится иметь дело на практике, как правило, очень сложны и включают в себя ряд этапов (стадий) обслуживания. Причем на каждом этапе может существовать вероятность отказа в выполнении или существует ситуация приоритетного обслуживания по отношению к другим требованиям. При этом отдельные звенья обслуживания могут прекратить свою работу (для ремонта, подналадки и т.д.) или могут быть подключены дополнительные средства. Могут быть такие обстоятельства, когда требования, получившие отказ, вновь возвращаются в систему (подобное может происходить в информационных системах).

1.3.2. Структура СМО

        Все СМО имеют  вполне определенную структуру, изображенную на рис. 1
 
 
 
 
 
 
 
 
 
 

Рис. 1. Структура СМО
    Потоком называют последовательность событий. Поток, состоящий из требований на обслуживание, назовем потоком требований.
    Поток требований, поступающих в обслуживающую систему, назовем входным потоком.
    Поток требований, которые обслужены, называется выходным потоком.
    Совокупность очередей и приборов (каналов) обслуживания называется системой обслуживания.
    Каждое требование поступает на свой канал, где подвергается операции обслуживания.
    Каждая СМО имеет правила формирования очереди и правила или дисциплину обслуживания.

1.3.3 Классификация СМО

        СМО делятся на системы  с отказами и системы без отказов.
        В системе с отказами (с потерями, с конечной длиной очереди) заявка, пришедшая в момент, когда все каналы обслуживания заняты или заняты все места в очереди, получает отказ и покидает систему.
        В системе без отказов (без потерь, с бесконечной длиной очереди) такая заявка не покидает систему, а становится в очередь и ждет, пока не освободится какой-нибудь канал. Время ожидания в общем случае неограниченно. Неограниченным может быть и количество требований, поступающих в систему.
        СМО делятся на замкнутые и разомкнутые.
        В замкнутых СМО в системе циркулирует определенное конечное число заявок (конечное число требований). В разомкнутых СМО количество, поступающих заявок бесконечно.
        СМО делятся на многоканальные и одноканальные системы в зависимости от количества обслуживающих каналов.
        В n-канальной CМО одновременно может обслуживаться n заявок. Каналы обслуживания иногда называют обслуживающими аппаратами (ОА).
        В простейшем случае каждый ОА характеризуется своей  производительностью (интенсивностью обслуживания заявок). Если в СМО поступают заявки нескольких типов, то для каждого типа заявок может быть задана соответствующая интенсивность обслуживания.
        Длительность обслуживания заявки в ОА в общем виде - это  случайная величина с законом  распределения  и математическим ожиданием (средним значением) M.
        СМО также делятся  по приоритету заявок:
     - СМО с заявками, имеющими разный  приоритет (абсолютный, относительный);
     -   СМО с заявками, имеющими одинаковый приоритет.

1.3.4. Характеристики СМО

        Перечень характеристик систем массового обслуживания можно представить следующим образом:
    среднее время обслуживания;
    среднее время ожидания в очереди;
    среднее время пребывания в СМО;
    средняя длина очереди;
    среднее число заявок в СМО;
    количество каналов обслуживания;
    интенсивность входного потока заявок;
    интенсивность обслуживания;
    интенсивность нагрузки;
    коэффициент нагрузки;
    относительная пропускная способность;
    абсолютная пропускная способность;
    доля времени простоя СМО;
    доля обслуженных заявок;
    доля потерянных заявок;
    среднее число занятых каналов;
    среднее число свободных каналов;
    коэффициент загрузки каналов;
    среднее время простоя каналов.

1.3.4 Теоретическое представление задачи

        Интенсивность поступления  заявок входного потока - l. Интенсивность обслуживания заявок системой - ?. Поток поступления заявок характеризуется распределением Эрланга с k=2, поток обслуживания заявок характеризуются показательным законом распределения. Тогда интервал времени поступления заявок 1-го потока представляет собой случайную величину с одним и тем же распределением вероятностей F (t). 
            , (1)  где l>0 – постоянная.
        Плотность распределения  показательного закона задается формулой:
        
        где l>0, - интенсивность поступления заявок.
        Аналогично, интервал времени обслуживания заявок представляет собой случайную величину с одним и тем же распределением вероятностей F(t). 
          , (1)  где ? >0 – постоянная.
        Плотность распределения  показательного закона задается формулой:
        
        где ? >0, - интенсивность обработки заявок системой.
Выводы
        Следовательно, объектно-ориентированный подход является сейчас одним из самых распространенных и эффективных в программировании различных информационных процессов.
        С помощью среды  объектно-ориентированного программирования Borland С++ Builder и языка C++ возможно реализовать информационную систему практически любой сложности. Поэтому эта среда подходит для описания параметров систем массового обслуживания и проверки их эффективности.
 


2. Решение задачи

2.1 Разработка алгоритма СМО:

        Рассмотрим алгоритм решения поставленной задачи:
    Рассматриваемая в задаче система представляет собой СМО с многоканальным обслуживанием;
    Определение времен поступления и обслуживания заявок:
    Времена поступления и обслуживания заявок генерируются случайно с            
     заданным показательным законом распределения;
    Интенсивности поступления и обслуживания заявок заданы;
    Функционирование рассматриваемой СМО:
    Каждый канал обслуживает в каждый момент времени одну заявку;
    Если в момент поступления новой заявки свободен хотя бы один канал, то пришедшая заявка поступает на обслуживание;
    Если отсутствуют заявки, то система простаивает.
    Дисциплина обслуживания:
    Если к моменту поступления заявки оба канала заняты, то поступившая заявка попадает в очередь.
    Если к моменту поступления заявки все места в очереди заняты, то заявка получает отказ.
        Зная параметры входных потоков заявок промоделировать поведение системы и вычислить её основные характеристики эффективности.
        Характеристики эффективности функционирования СМО выделим следующие:
    Вероятность отказа;
    Абсолютная пропускная способность;
    Вероятность простоя;
    Доля обслуженных заявок;
    Среднее количество занятых каналов.
 
        Таким образом, общий  алгоритм выглядит так:
    Вводим начальные условия: общее время работы системы, значения интенсивностей потока заявок и потока обслуживания заявок; число реализаций работы системы;
    Генерируем моменты времени, в которые прибывают заявки, время обслуживания каждой заявки;
    Считаем сколько заявок было обслужено, а сколько получило отказ;
    Рассчитываем характеристики эффективности СМО:

2.2 Выбор языка программирования

        С++ - это универсальный  язык программирования, задуманный так, чтобы сделать программирование более приятным для серьёзного программиста. За исключением второстепенных деталей  С++ является надмножеством языка  программирования С. Помимо возможностей, которые  дает С, С++ предоставляет гибкие и эффективные средства определения новых типов. Используя определения новых типов, точно отвечающих концепциям приложения, программист может разделять разрабатываемую программу на легко поддающиеся контролю части.  Такой метод построения программ часто называют абстракцией данных. Информация о типах содержится в некоторых объектах типов, определённых пользователем. Такие объекты просты и надёжны в использовании в тех ситуациях, когда их тип нельзя установить на стадии компиляции. Программирование с применением таких объектов часто называют объектно-ориентированным. При правильном использовании этот метод даёт более короткие, проще понимаемые и легче контролируемые программы.
        С++ обеспечивает полный набор операторов структурного программирования. Он также предлагает необычно большой набор операций. Многие операции С ++ соответствуют машинным командам, и поэтому допускают прямую трансляцию в машинный код. Разнообразие операций позволяет выбирать их различные наборы для минимизации результирующего поля.
        С++ поддерживает указатели не переменные и функции. Указатель на объект программы соответствует машинному адресу этого объекта. Посредством разумного использования указателей можно создавать эффективно-выполняемые программы, так как указатели позволяют ссылаться на объекты тем же самым путём, как  это делает машина. С++ поддерживает арифметику указателей, и тем самым позволяет осуществлять непосредственный  доступ и манипуляции с адресами памяти.
        В С++ содержится препроцессор, который обрабатывает текстовые файлы перед компиляцией. Среди его наиболее полезных приложений при написании программ на С ++ являются: определение программных констант, замена вызова функций аналогичными, но более быстрыми макросами, условная компиляция. Препроцессор не ограничен процессированием только исходных  текстовых файлов С ++, он может быть использован для любого текстового файла.
        Для реализации курсового проекта выбрана интегрированная среда программирования Borland C++ Builder 6.0, как наиболее мощная реализация языка программирования Object C++ с возможностью написания программ как под DOS так и под операционные системы Windows 95/98/2000 и NT. Расширенный «менеджер» проектов с множественными типами исполняемого кода, компилятор с оптимизацией кода, инкрементальный линкер, мощные средства интегрированной отладки, стройная архитектура распределенных приложений клиент/сервер, новые технологии разработки приложений для сети Интернет – наиболее известные достоинства Borland C++ Builder 6.0.
        Интегрированная среда  системы (Integrated Development Environment, IDE) обеспечивает ускорение визуального программирования, а также продуктивность повторно используемых компонентов в сочетании  с усовершенствованными инструментами IDE и разномасштабными средствами доступа к базам данных.
        Открытость среды IDE позволяет настраивать ее с  учетом наиболее модных тенденций в  области графических интерфейсов, что позволит создать современный  и дружественный интерфейс обучающей  среды.
        Borland C++ Builder 6.0 позволяет повысить быстродействие и надежность разрабатываемой подсистемы, придать пользовательскому интерфейсу качество профессионального уровня.
        Исходя из вышеизложенного  для написания программы, был  выбран среда программирования Borland С ++ Builder версии 6.0.

2.3 Программная реализация

 
        Программа была разработана  в среде программирования Borland C++ Builder 6.
        Процесс разработки программного обеспечения с использованием ООП включает четыре этапа: анализ и  уточнение спецификаций, проектирование, реализация, модификация. Рассмотрим их подробнее.
        Анализ  и уточнение спецификаций. Цель этапа - максимально полное описание задачи. На этом этапе выполняют анализ предметной области задачи, объектную декомпозицию разрабатываемой системы и определяют важнейшие особенности поведения объектов (описание абстракций). По результатам анализа разрабатывают диаграмму объектов программного продукта, на которой показывают основные абстракции (объекты) предметной области и сообщения, передаваемые между ними. Все выявленные абстракции и отношения между ними описывают.
        Алгоритм функционирования программы заключается в следующем: после считывания введенных пользователем параметров, производится генерация момента появления заявки. Затем выполняется процедура, реализующая СМО, представляющая собой цикл с условием выхода по истечению времени функционирования СМО.
        Проектирование различают:
      логическое проектирование, при  котором  принимаемые  решения практически не зависят от условий эксплуатации (операционной системы и используемого оборудования);
      физическое проектирование, при котором приходится принимать во внимание указанные факторы.
      и т.д.................


Перейти к полному тексту работы


Скачать работу с онлайн повышением уникальности до 90% по antiplagiat.ru, etxt.ru или advego.ru


Смотреть полный текст работы бесплатно


Смотреть похожие работы


* Примечание. Уникальность работы указана на дату публикации, текущее значение может отличаться от указанного.