Министерство образования и науки Республики Казахстан
Карагандинский Государственный Технический Университет
Кафедра ____САПР______
ПОЯСНИТЕЛЬНАЯ ЗАПИСКА
к курсовому проекту
По дисциплине: ”Прикладная теория систем”
Тема: «Разработка иммитационной модели системы
массового обслуживания»
Руководители
(подпись)(дата)
Студент
(подпись)(дата)
2009
Содержание
Введение
1. Техническое задание
2. Теоретическая часть
2.1 Предмет и задачи теории массового обслуживания
2.2 Классификация СМО
2.3 Характеристики СМО
2.4 Концептуальная модель СМО
2.5 Актуальность работы
2.6 Существующие алгоритмы решения
2.7 Технические требования
2.7.1 Общие требования
2.7.2 Центральный процессор
2.7.3 Материнская плата
2.7.4 Оперативная память
2.7.5 Видеоадаптер
2.7.6 Монитор
2.7.7 Жесткий диск
2.7.8 Клавиатура
2.7.9 Мышь
3. Практическая часть
3.1 Выбор среды разработки программирования
3.2 Выбор алгоритма решения
3.3 Структура программы
3.4 Результаты экспериментов
3.5 Руководство пользователю
Заключение
Список используемой литературы
Введение
Система массового обслуживания (СМО) — математическаямодель, разработанная для описания класса многочисленных и широкораспространенных сложных систем, назначением которых является очень широкопонимаемое обслуживание, причем обслуживание массовое.
В задачи курсового проекта входит:
получение знаний в области прикладной теории систем;
выработка способности системного рассмотрения проблем изадач;
развитие навыков программирования, полученных на предыдущихкурсах;
написание программы, соответственно варианту задания.
Целью выполнения данного курсового проекта являетсяприобретение практических навыков системного исследования реальной динамическойсложной системы на основе построения ее имитационной модели. В проекте производилосьмоделирование работы «Поликлиники» — многоканальной СМО с ожиданием.
Медицинское учреждение — это такая организация, в которойтребуется грамотное управление, так как от эффективности работы этойорганизации зависит то, насколько квалифицировано и своевременно будутобслужены клиенты. Поэтому была поставлена задача создания наиболее совершеннойсистемы моделирования для получения более точных результатов работы.
Разработанный проект демонстрирует имитационную модель СМО,работа с которой очень удобна для пользователя. Программа является оченьактуальной на сегодняшний день, она автоматизирует работу по расчетуэффективности системы массового обслуживания и предоставляет пользователю (оператору)понятный и дружественный интерфейс. Программа позволяет пользователю вводитьсвои параметры, менять настройки, производить анализ работы системы.
1. Техническое задание
По заданию к курсовому проекту необходимо разработатьпрограмму реализации алгоритма имитационного моделирования СМО «Поликлиника».Для разработки использовать любую визуальную среду программирования.
В интерфейсе программы предусмотреть возможность вводапараметров:
время моделирования;
число потоков заявок и параметры каждого потока (приоритет,min и max интервал генерирования);
число аппаратов обслуживания;
число очередей и max время пребывания заявки в очереди;
время обслуживания одной заявки (для каждого аппаратаопределяются min и max значения и время подготовки к обслуживанию).
Результаты работы программы должны включать:
на каждом шаге отображать модельное время;
статистика по поступившим, находящимся в системе наобслуживании и обработанным заявкам;
статистика по потокам заявок, очередям и аппаратамобслуживания.
Интерфейс программы должен включать описание СМО всоответствии с вариантом, сведения о разработчике, краткую справку (руководствопользователю).
По заданию аппаратами выступают процедуры (всего вполиклинике может быть от 3 до 9 процедур). Каждому больному могут назначатьнесколько процедур из списка возможных. Устанавливается время ожидания заявки вочереди, периодичность прихода клиентов, время обслуживания каждой процедуры (от5 до 60 минут), максимальная длина очереди, количество процедур для пациента. Определитьоптимальное число процедур для более эффективного обслуживания всех пациентов.
По результатам моделирования пользователь может производитьанализ о количестве необходимых аппаратов, которые обслуживают клиентов, и обэффективности их работы.
/>2. Теоретическая часть2.1 Предмет и задачи теории массового обслуживания
Теория массового обслуживания — область прикладнойматематики, занимающаяся анализом процессов в системах производства,обслуживания, управления, в которых однородные события повторяются многократно,например, на предприятиях бытового обслуживания; в системах приема, переработкии передачи информации; автоматических линиях производства и др.
Предметом теории массового обслуживания являетсяустановление зависимостей между характером потока заявок, числом каналовобслуживан6ия, производительностью отдельного канала и эффективнымобслуживанием с целью нахождения наилучших путей управления этими процессами.
Задача теории массового обслуживания — установитьзависимость результирующих показателей работы системы массового обслуживания (вероятноститого, что заявка будет обслужена; математического ожидания числа обслуженныхзаявок и т.д.) от входных показателей (количества каналов в системе, параметроввходящего потока заявок и т.д.). Результирующими показателями или интересующиминас характеристиками СМО являются — показатели эффективности СМО, которыеописывают способна ли данная система справляться с потоком заявок.
Задачи теории массового обслуживания носят оптимизационныйхарактер и в конечном итоге включают экономический аспект по определению такоговарианта системы, при котором будет обеспечен минимум суммарных затрат отожидания обслуживания, потерь времени и ресурсов на обслуживание и простоевканалов обслуживания.
Система обслуживания считается заданной, если известны:
1) поток требований, его характер;
2) множество обслуживающих приборов;
3) дисциплина обслуживания (совокупность правил, задающихпроцесс обслуживания).
Процесс работы СМО представляет собой случайный процесс сдискретными состояниями и непрерывным временем; состояние СМО меняется скачкомв моменты появления каких-то событий (или прихода новой заявки, или окончанияобслуживания, или момента, когда заявка, которой надоело ждать, покидаеточередь).2.2 Классификация СМО
Существует большое количество различных моделей СМО иметодов их классификации.
/>
Рисунок 2.1 — Классификация СМО
На рисунке 2.1 представлены основные классы моделеймассового обслуживания.
Прежде всего они разделяются на марковские и немарковские (рисунок2.1, а), что связано с определенными классами марковских процессов, с помощьюкоторых описывается их динамика. Эти два класса систем массового обслуживанияаналогичны соответственно линейным и нелинейным системам автоматическогорегулирования, динамика которых описывается линейными и нелинейнымидифференциальными уравнениями. Так же как и в теории автоматическогорегулирования, не существует общих методов расчета нелинейных СМО.
Аналитическому исследованию поддаются только частные случаинелинейных СМО, которые выделяются в отдельные классы полумарковских,линейчатых и других СМО. Далее СМО классифицируют на одноканальные имногоканальные (рисунок 2.1, б) в зависимости от числа приборов обслуживания,которые могут одновременно обслуживать входные заявки. При этом входной потокможет быть один или их может быть несколько.
В обоих случаях может быть большое разнообразие в режимахподключения каналов к обслуживанию.
Различают СМО без потерь и с потерями (как в одноканальном,так и в многоканальном вариантах) в зависимости от того, разрешается входнойзаявке ждать в очереди или нет, пока все каналы заняты обслуживанием (рисунок 2.1,в).
Система массового обслуживания без потерь имеет большоеколичество разновидностей, определяемых различными законами ожидания в очереди,дисциплиной очереди. Для исследования последовательного процесса обслуживаниянесколькими приборами введена модель многофазной СМО, в которой заявка послеобслуживания одним прибором поступает на следующий (рисунок 2.1, г). Далееможно ввести понятия разомкнутой и замкнутой СМО, в которой обслуженная заявкаснова поступает на обслуживание (рисунок 2.1, д). В современных системахуправления встречаются такие сложные комбинации всех рассмотренных выше СМО,что они образуют целую сеть СМО (рисунок 2.1, е).
2.3 Характеристики СМО
Перечень характеристик систем массового обслуживания можнопредставить следующим образом:
•среднее время обслуживания;
•среднее время ожидания в очереди;
•среднее время пребывания в СМО;
•средняя длина очереди;
•среднее число заявок в СМО;
•количество каналов обслуживания;
•интенсивность входного потока заявок;
•интенсивность обслуживания;
•интенсивность нагрузки;
•коэффициент нагрузки;
•относительная пропускная способность;
•абсолютная пропускная способность;
•доля времени простоя СМО;
•доля обслуженных заявок;
•доля потерянных заявок;
•среднее число занятых каналов;
•среднее число свободных каналов;
•коэффициент загрузки каналов;
•среднее время простоя каналов.2.4 Концептуальная модель СМО
Декомпозиция СМО как сложной системы и представление ее ввиде иерархии подсистем с позиции концепции имитационного моделированияпоказана на рисунке 2.2 на схеме показаны основные параметры каждого элемента,которые были учтены при выполнении данного проекта.
/>
Рисунок 2.2 – Концептуальная модель СМО2.5 Актуальность работы
Актуальной задачей на сегодняшний день является созданиемоделей систем массового обслуживания (СМО), так как такие системы окружаютповсюду. Примерами СМО могут служить телефонные станции, билетные кассы,магазины, парикмахерские, поликлиники и т.п. Каждая из этих систем состоит изопределенного числа обслуживающих единиц (аппаратов обслуживания). Такимиаппаратами могут быть кассы, продавцы, врачи и другие. Любая СМО предназначенадля обслуживания некоторого количества заявок, поступающие в какие-то случайныемоменты времени. Обслуживание заявки продолжается некоторое время, после чегоканал освобождается и готов к приему следующей заявки.
Таким образом, моделируя реальные процессы, которые могутпроисходить в жизни, мы можем прогнозировать качество работы системы. Изменяя параметрысистемы, пользователь может проследить, как изменяется эффективность работы. Азатем, можно принять решение о том, при каких установках система будет работатьмаксимально производительно; сколько следует установить аппаратов, чтобы времяпростоя аппарата было минимально, а время занятости максимальным. Изучиврезультаты данного моделирования, пользователь может применить их и в своейжизни. Например, открывая свое дело, каким-то образом касающееся массовогообслуживания населения.
Значит, можно сказать, что данные имитационные модели системмассового обслуживания имеют большое практическое применение, как для большихсистем, так и систем частного характера.
Конечно, абсолютно идеального варианта эффективной работысистемы гарантировать нельзя, но результаты данного моделирования будутмаксимально приближенными к реальным показателям.2.6 Существующие алгоритмы решения
Все возможности, которые могут представиться приобслуживании требования (от момента его поступления в систему массовогообслуживания до момента прекращения обслуживания) приведены в данном разделе, атакже описываются правила, определяющие поведение требования во всех этихслучаях.
а) Выбор свободного прибора. Если при поступлении требованияимеется несколько свободных приборов, должно быть задано специальное правило,согласно которому из их числа выбирается какой-то один. Это может быть прибор снаименьшим номером или прибор, освободившийся раньше (или позже) других. Частовыбор осуществляется случайным образом (например, с равной вероятностью).
б) Если же при поступлении требования свободных приборовнет, возможны два варианта:
требование тут же покидает систему, получает «отказ»- система с отказами;
требование остается ожидать освобождения прибора — системас ожиданием.
в) Очередь. Для системы с ожиданием к моментуосвобождения прибора может скопиться несколько ожидающих обслуживания требований,образующих очередь. Как правило, очередь бывает общей. Однако к каждому изстоящих рядом телефонов-автоматов выстраивается обычно отдельная очередь (такназываемые «параллельные очереди»). Аналогичную картину можнонаблюдать и в портах, если причалы находятся друг от друга достаточно далеко.
Важно отметить, что в этих примерах параллельные очередиимеют место в пределах одной и той же системы массового обслуживания, даже призапрещении переходов из одной очереди в другую, ибо входящий поток является общим.Если же несколько различных систем массового обслуживания (каждую со своимпотоком и множеством приборов) объединить в одну систему с параллельнымиочередями, считая, что входящие потоки образуют общий входящий поток (уженеоднородный), а совокупность множеств приборов — общее множество приборов (естественно,не обладающее свойством полнодоступности), такую систему массового обслуживанияпринято называть распадающейся.
г) Время обслуживаниязадается своей функциейраспределения. Естественно, что она может быть различной для различных приборов.
д) Дисциплина очереди. Для систем с ожиданиемнаиболее простой является, очевидно, следующая дисциплина: требование ожидаетдо тех пор, пока его не начнут обслуживать — система с неограниченным ожиданием.В общем случае дисциплина задается некоторой системой ограничений,накладываемых на основные характеристики системы массового обслуживания (сожиданием). Наиболее часто встречаются следующие ограничения:
1) На время ожидания — требование может ожидать начала обслуживаниякакое-то время, не превосходящее некоторой случайной величины. Если за этовремя обслуживание данного требования не начнется, оно теряется. Начавобслуживаться, требование не покидает систему до конца обслуживания.
2) На время пребывания (так называют сумму времени ожиданияи длительности обслуживания) — требование может находиться в системе время, непревосходящее некоторой (случайной) величины t, причем, если за это время обслуживание не будет закончено,требование теряется независимо от того, началось его обслуживание или нет. Такимобразом, могут представиться следующие случаи:
a) за время t требование начало обслуживаться, нообслуживание еще не закончено — потеря «недообслуженного» требования;
б) за время tтребование начало обслуживаться, обслужилось. Все эти возможности частовстречаются, например, в задачах военного характера, где какая-либо цельбывает, доступна для обстрела (или наблюдения) лишь некоторое время.
3) На длину очереди — требование, застав очередь длины k,остается в ней с вероятностью Pk и неприсоединяется к очереди с вероятностью gk=1- Pk,'. именно так обычно ведут себя люди вочередях.
В системах массового обслуживания, являющихсяматематическими моделями производственных процессов, возможная длина очередиограничена постоянной величиной (емкость бункера, например). Очевидно, эточастный случай общей постановки.
Некоторые возможные и встречающиеся на практике правила:
4) Время обслуживания требования зависит от того, сколькоему пришлось ожидать.
5) Среднее время обслуживания уменьшается с ростом очереди.
6) Число приборов возрастает с ростом очереди.
е) Назначение очередного требования. Если к моментуосвобождения одного из приборов имеется очередь ожидающих требований, одно изних (какое?) занимает этот прибор и приступает к обслуживанию.
В силу однородности потока различают требования либо подлительности фактического ожидания (т.е. по моментам их поступления), либо попродолжительности остающегося в их распоряжении времени ожидания (илипребывания). Некоторые частные случаи:
неупорядоченность — с равными вероятностями на обслуживаниепоступает любое из ожидающих требований;
строгая очередность — требования назначаются к обслуживаниюв порядке их поступления;
обратная очередность — первым начинает обслуживаться то изтребований, которое поступает последним (разбор груды ящиков, складываемых другна друга).
Таким образом, основными шагами процесса обслуживанияоднородного потока являются:
выбор свободного прибора;
задание времени обслуживания.
Для системы с отказом 1) и 2) исчерпывают весь процессобслуживания. Если рассматриваются системы массового обслуживания с ожиданием,то должны быть дополнительно заданы правила:
образования очереди;
назначения очередного требования.
2.7 Технические требования2.7.1 Общие требования
Выбор технического обеспечения обуславливается следующимиосновными параметрами:
производительность. Комплекс технических средств долженудовлетворять требованиям, предъявляемым программным обеспечением;
стоимость. Выбор компьютерной техники осуществляется израсчета экономической эффективности и уменьшения затрат на техническоеобеспечение для разработанного проекта;
качество. Данный параметр является связующим звеном междупроизводительностью и стоимостью и должен обеспечивать комфортную ибесперебойную работу комплекса технических средств.
Комплекс технических средств должен быть построен на базеПЭВМ IBM PC или совместимых с ней.
В качестве средств программной обработки данных следуетиспользовать ПЭВМ с процессором типа Intel Celeron (либо Intel Pentium) с тактовой частотой неменее 500 МГц.
В качестве запоминающего устройства, в котором реализуютсяпреобразования данных и программное управление процессами, должнаиспользоваться оперативная память. Ее объем должен позволять использоватьбазовую операционную систему, допускающую реализацию прикладных программ, исоставлять, как минимум, 64 Мбайт.
В качестве устройства для подготовки и ввода данныхнеобходима клавиатура (клавишное устройство). С ее помощью осуществляется вводкоманд пользователя, обеспечивающих доступ к ресурсам ПЭВМ; ввод икорректировка данных; ввод команд в процессе диалога человека с ПЭВМ. Дляоблегчения общения с машиной рекомендуется наличие манипулятора — мыши.
Для отображения информации, выводимой во время работы,необходим монитор с разрешающей способностью не менее 1024x768 и поддержкойотображения 16,5 млн. цветовых оттенков.2.7.2 Центральный процессор
Центральный процессор должен обеспечивать удовлетворительнуюработу операционной системы Windows 98/2000/XP, среды разработки проекта (AutoCAD)и самого проекта. В связи с этим для разрабатываемой системы рекомендуетсяиспользовать процессор Pentium IV, обладающий достаточной производительностью, надежностью,низкой стоимостью и низким энергопотреблением. В сравнении с процессором CeleronTM1.7 ГГц обладает большей кэш-памятью.
Надежность процессора Intel Pentiumобеспечивается более чем многолетним опытом корпорации Intel по созданиюмикропроцессоров высочайшего качества и надежности.2.7.3 Материнская плата
Материнская плата должна поддерживать выбранный процессор ииметь слот S-478 под процессор. Исходя из этого, сравним две материнские платы.Первая из них: MSI S-6580 845PE Neo Socket478 i845PE AGP 2DDR Audio ATA100 USB2.0 ATX Retail. Вторая: Asus P4P800 VM, чипсет Intel 865G, Socket478, FSB 800MHz (HT), ATA133 + SATA, 4xDDR3200, SVGA, AGP 8x, 6ch. AC'97, LAN,ATX.
Основой материнской платы MS-6580 845PE Neo послужил наборсистемной логики Intel 845PE. Вследствие наличияпроцессорного разъема Socket 478 эта модель материнской платы позволяетиспользовать процессоры Intel Celeron и Intel Pentium 4. Слот AGP 4x,оборудованный удобным фиксатором, дает возможность устанавливать 1,5-вольтовыеграфические платы расширения с интерфейсом AGP 4x. Плата MSI S-6580поддерживает работучетырёх портов USB 2.0, для чего используются возможности интегрированного вмикросхеме контроллера-концентратора ввода-вывода USB-контроллера. В качествезвукового кодека использована микросхема Realtek ALC650, поддерживающая двавыходных стереоканала. Для установки плат расширения предусмотрено шесть32-битных слотов PCI 2.2 и один CNR-слот.
После всего оговоренногоостановимся в своем выборе на материнской плате Asus P4P800 VM. Она организована набазе чипсета Intel 845E. В этом чипсете использован новыйконтроллер-концентратор ввода-вывода (I/O Controller Hub) 82801DB (ICH 4),который, помимо всех функциональных возможностей своего предшественника ICH 2,поддерживает новые спецификации популярных интерфейсов (главное новшество — поддержкашести портов USB 2.0).
Все ведущиепроизводители материнских плат поспешили представить новые модели своихпродуктов, построенные на базе чипсетов, поддерживающих высокоскоростнуюсистемную шину процессора Intel Pentium 4.2.7.4 Оперативная память
Оперативное запоминающее устройство (ОЗУ). Дляобщесистемного программного обеспечения необходимо ОЗУ с размером 64 Мбайт. Учитываято, что данный вид памяти уже не производится, и то, что при увеличении объемаОЗУ в два раза, почти на столько же увеличивается производительностьперсонального компьютера, выбираем Kingston Technology 128MB Module (DDR DIMM 128 Mb;168 pin; PC 2700МHz), согласнотехническим характеристикам материнской платы Asus P4P800 VM.
Можно сравнить выбранную с подобной ей — Viking Components 128MB Module. Однако последняя, согласнорейтингу, менее популярна и менее надежна. В технологии фирмы Kingstonтрадиционно используется позолота ножек микросхем. Это значительно повышаетнадежность работы изделий данной фирмы, так как отсутствует окисление ипропадание контакта.
DDR — Double Data Rate SDRAM — память с удвоенной скоростьюобмена данными. Другое обозначение этого типа памяти — SDRAM II (т.е. SDRAMвторого поколения). По принципам работы она похожа на SDRAM, но, в отличие отнее, может принимать и передавать данные на обоих фронтах тактовых импульсов. Этоудваивает скорость передачи данных. Кроме того, в DDR RAM используется протоколDLL (Delay Locked Loop), позволяющий сдвинуть во времени интервалдействительного значения выходных данных. Таким образом, сокращаются простоисистемной шины при считывании данных на нее из нескольких модулей памяти.2.7.5 Видеоадаптер
Типовой размер видеопамяти для современных компьютеровзависит от назначения компьютера.
По современным параметрам видеокарта должна обеспечиватьчастоту обновления экрана не менее 75 МГц.
Для более эффективной работы всего программного обеспечениявыбираем видеокарту A97 Radeon9500 Pro, обладающую большой надежностью и большим объемом памяти.2.7.6 Монитор
Если на других компонентах компьютера мы можем как-тосэкономить, то на мониторе экономить не следует. Он по-прежнему самый дорогойкомпонент компьютерной системы, его нельзя модернизировать в процессеэксплуатации, и «время жизни» у него наибольшее по сравнению со всемидругими компонентами.
Именно посредством монитора мы воспринимаем всю визуальнуюинформацию от компьютера. Неважно, работаем ли мы с офисной программой, рисуем,играем, пишем письма или находимся в Интернете — монитор нам необходим всегда. Крометого, от качества и безопасности монитора напрямую зависит наше здоровье.
Для работы рекомендуется использовать мониторы ЭЛТ (электронно-лучеваятрубка) с диагональю не менее 17".
На сегодняшний день мониторы ЭЛТ имеют следующиепреимущества:
текст выглядит лучше (особенно при малом размере точек);
цвета натуральнее и точнее;
отлаженная технология обеспечивает лучшее соотношениестоимости и эксплуатационных качеств.
Следовательно, такие мониторы можно рекомендовать дляуниверсального применения и домашнего использования.
Рассмотрим два типа мониторов фирмы LGи фирмы Samsung.
Монитор Samsung имеет большее максимальноеразрешение экрана и большую полосу пропускания видео сигнала.
Окончательно для вывода алфавитно-цифровой и графическойинформации на экран выбираем монитор Samsung 757DFX, с разрешающей способностью 1024х768, точкой растра 0,20 мкм,диагональю 17” и поддерживающий стандарт безопасности ТСО’99.2.7.7 Жесткий диск
В настоящее время минимальным объемом памяти на жесткомдиске считается 20 Гб.
Рассмотрим для примера два жестких диска: IC35L036UCD210 (фирма IBM)и IC25N020ATMR04(фирма Hitachi из серии Travelstar80 GN).
Объем диска. Первым и главным параметром любого винчестераявляется, конечно же, количество информации, который способен хранить вашвинчестер. Еще недавно эта емкость измерялась в мегабайтах, однако реальнаявеличина сегодня составляет до сотни гигабайт! Надо сказать, что разница в ценемежду винчестерами на порядок меньше их разницы в объеме — переплатив всеголишь 30%, вы можете приобрести винчестер вдвое большей емкости. Тем не менее,для нашего проекта большая емкость будет излишняя. Поэтому делаем выбор впользу накопителя IC25N020ATMR04.
Скорость чтения данных и спецификация. Как ни странно, наэтот параметр редко обращают внимание при покупке — считая, что скорости улюбого современного винчестера большой емкости практически одинаковы. Однако наделе разница доходит до 20%, что, согласитесь, не так уж и мало. Среднийсегодняшний показатель — около 10-15 Мбайт/с. В нашем выбранном варианте этобудет составлять — 32,5 Мбайт/с.
Среднее время доступа. Тоже достаточно важный показатель. Измеряетсяв миллисекундах и обозначает то время, которое необходимо диску для доступа клюбому выбранному вами участку. Средний показатель — 7-9 мс. В нашем выбранномварианте это будет составлять — 12 мс.
Скорость вращения диска. Показатель, напрямую связанный соскоростью доступа и скоростью чтения данных. Принято считать, что покупатьсегодня винчестеры со скоростью вращения меньше 5400 об/мин просто не имеетсмысла, 7200 об/мин — сегодняшний стандарт, ну а 10 000 об/мин (планка, впервыевзятая IBM) — это просто идеал! Существует, правда, идругая точка зрения. Некоторые специалисты утверждают, что чрезмерные скоростивращения диска на самом деле не слишком убыстряют чтение данных. А вот нанадежность хранения информации и срок службы винчестера влияют куда болееощутимо...
Иными словами, чем выше скорость вращения шпинделядисковода, тем больше его производительность (скорость записи и считыванияданных), но выше цена и сильней нагрев.
Выбранный нами НЖМД имеет скорость вращения шпинделя 4200оборотов в минуту, что будет вполне достаточно для разработки и использованиянашего проекта.
Размер кэш-памяти. Кэш-память — быстрая «буферная»память небольшого объема, в которую компьютер помещает наиболее частоиспользуемые данные. Она есть у процессоров, она есть у материнских плат. Новедь собственной кэш-памятью оборудован и жесткий диск! Ее размер у современныхмоделей винчестеров колеблется в диапазоне от 2 Мбайт до 8 Мбайт (у большинствасовременных винчестеров размер кэш-памяти составляет 2 Мбайт). Нетрудно понять,что чем кэш больше, тем быстрее и стабильнее работает жесткий диск...
Принимаем жесткий диск IC25N020ATMR04 емкостью 20 Гб, с частотойвращения 4200об/мин, средним временем поиска 12 мс. Эти значения являютсяследствием разумного компромисса между производительностью и стоимостью.
2.7.8 Клавиатура
Особых требований к клавиатуре нет, выбираем стандартнуюклавиатуру со 101 клавишей с разъёмом PS/2 (Genius Comfy KB-10X).2.7.9 Мышь
Мышь — это манипулятор для компьютера. Выбираем мышь попараметрам цены и качества, которым соответствуют мыши Genius NetScroll+PS/2.
3. Практическая часть
3.1 Выбор среды разработки программирования
В качестве внутреннего языка для данной работы был выбранObjectPascal, который используется в среде программирования Delphi. Этот языкиспользует принципы объектно-ориентированного и визуального программирования.
Язык ObjectPascalявляется одним из высокоразвитых языков объектно-ориентированногопрограммирования. И среди других, например, таких как Visual Basic или Visual C++, отличается простотойпрограммного кода, достаточным количеством литературы по этому языку.
Объектно-ориентированное программирование (ООП) — этометодика разработки программ, в основе которой лежит понятие объект. Объект — этонекоторая структура, соответствующая объекту реального мира, его поведению. Задача,решаемая с использованием методики ООП, описывается в терминах объектов иопераций над ними, а программа при таком подходе представляет собой наборобъектов и связей между ними.
По сравнению с традиционными способами программирования ООПобладает рядом преимуществ. Главное из них заключается в том, что эта концепцияв наибольшей степени соответствует внутренней логике функционированияоперационной системы (ОС) Windows. Программа, состоящая из отдельных объектов,отлично приспособлена к реагированию на события, происходящие в ОС. К другимпреимуществам ООП можно отнести большую надежность кода и возможностьповторного использования отработанных объектов.
Delphi — это комбинация нескольких важнейших технологий:
Высокопроизводительный компилятор в машинный код
Объектно-ориентированная модель компонент
Визуальное (а, следовательно, и скоростное) построениеприложений из программных прототипов
Масштабируемые средства для построения баз данных
Программирование в Delphi строится на тесном взаимодействиидвух процессов:
•процесса конструирования визуального проявления программы(т.е. ее Windows-окна),
•процесса написания кода, придающего элементам этого окна ипрограмме в целом необходимую функциональность.
Основные преимущества среды программирования Delphi:
Простота языка позволяет быстро его освоить и создаватьсложные программы;
Развитые средства представления структур данных обеспечиваютудобство работы, как с числовой, так и с символьной и битовой информацией;
Объектно-ориентированное программирование (ООП) в визуальнойсреде.
В процессе построения приложения разработчик выбирает изпалитры компонент готовые компоненты как художник, делающий крупные мазкикистью. Еще до компиляции он видит результаты своей работы — после подключенияк источнику данных их можно видеть отображенными на форме, можно перемещатьсяпо данным, представлять их в том или ином виде. В этом смысле проектирование вDelphi мало чем отличается от проектирования в интерпретирующей среде, однакопосле выполнения компиляции мы получаем код, который исполняется в 10-20 разбыстрее, чем то же самое, сделанное при помощи интерпретатора. Кроме того,компилятор компилятору рознь, в Delphi компиляция производится непосредственнов родной машинный код, в то время как существуют компиляторы, превращающиепрограмму в так называемый p-код, который затем интерпретируется виртуальнойp-машиной. Это не может не сказаться на фактическом быстродействии готовогоприложения.
Основной упор этой модели в Delphi делается на максимальномреиспользовании кода. Это позволяет разработчикам строить приложения весьма быстроиз заранее подготовленных объектов, а также дает им возможность создавать своисобственные объекты для среды Delphi. Никаких ограничений по типам объектов,которые могут создавать разработчики, не существует.3.2 Выбор алгоритма решения
Алгоритм моделирования выглядит так:
Устанавливаем начальное время моделирования равное нулю. Счетчикиочереди, количества обслуженных, необслуженных и неполностью обслуженныхклиентов, равными нулю.
Формируем динамический массив с процедурами, где имеетсясостояние каждой процедуры, время обслуживания каждой процедуры (выбираетсяслучайно из промежутка времени процедуры), количество обслуженных клиентов покаждой процедуре, время занятости, время простоя. Все данные, кроме времениобслуживания устанавливаются равными нулю.
Формируем время появления первого клиента, для этогослучайным образом выбираем момент времени из интервала периодичности клиента иприбавляем к времени начала работы. И формируем динамический массив, кудазаносим информацию по всем клиентам (время появления, количество процедур,время по каждой процедуре, номер выполнения текущей процедуры, количествопрошедших процедур, состояние, время ожидания в очереди, конечное состояние). Заносимв этот массив первого клиента.
Проверяем, не закончилось ли время моделирования (можнопредусмотреть остановку в любой момент по нажатии кнопки «стоп»). Еслитекущее время становится больше заданного времени моделирования, то закончитьработу и вывести отчет по результатам моделирования.
Проверяем, не наступило ли время появления первого клиента. Еслинет, значит увеличиваем время простоя всех процедур на единицу, если же клиентне первый смотрится по состоянию процедур и клиентов.
Если наступило время появления последнего клиента, значит,выполняем начало работы.
Смотрим по номеру первой процедуры клиента, свободна она илинет. Если нет, значит смотрим следующую процедуру клиента. Если все процедурызаняты, значит увеличиваем счетчик очереди на единицу, в массив клиентов ковремени ожидания клиента прибавляем единицу.
При этом формируем массив с клиентами, поступившими вочередь. Там содержится информация: время попадания в очередь, номер клиента вмассиве с клиентами, информация по процедурам.
Если какая-то процедура клиента свободна, состояние ееприравниваем 1 (означает, что процедура занята). В массив у клиента заносимномер текущей процедуры.
Затем проверяем по массиву клиентов информацию по каждомуклиенту. Если у клиента стоит номер текущей процедуры, значит в ячейке, гдестоит время данной процедуры у клиента, отнимаем единицу. А у процедурыприбавляем единицу к времени занятости. Смотрим, если у клиента времяпрохождения процедуры закончилось, состояние процедуры приравниваем к нулю(«Свободна»). К числу обслуженных клиентов в массиве процедурыприбавляем единицу. А у клиента прибавляем количество прошедших процедур ипереходим к пункту 6, т.е. опять начало работы. Если все процедуры пройдены,конечное состояние приравниваем 1 (полностью обслужился).
Если у клиента нет номера текущей процедуры и все остальныепроцедуры заняты, увеличиваем счетчик длины очереди на единицу, а у клиентаприбавляем время ожидания на единицу. Смотрим, не превысило ли время ожиданиямаксимального. Если да, смотрим, если ни одной процедуры не пройдено, конечноесостояние приравниваем 3 (полностью необслуженные); если хоть одна процедурапройдена, конечное состояние приравниваем 2 (не полностью обслуженные).
Затем проверяем по процедурам, если какая-то освободилась,смотрим, нет ли клиентов для данной процедуры в массиве процедур. Если есть,выбираем всех клиентов по данной процедуре, и выбираем того, у кого меньшеевремя попадания, т.е. тот, кто раньше попал в очередь; у процедуры состояниеприравниваем 1.
Смотрим массив процедур. Те процедуры, у которых состояние равнонулю, время простоя увеличиваем на единицу.
Увеличиваем время на 1 и переходим к п.3. Только если длинаочереди равна максимальной длине очереди, значит клиента сразу заносим в числополностью не обслуженных.3.3 Структура программы
Модуль «Unit2» проекта служит показательной формойпри загрузке имитационной модели СМО. Модуль «Unit1» является главнымв работе всей программы. Модуль «Unit3» предназначен для выводасправки об авторе.
В программе используются процедуры и функции, которыенаписаны для удобства работы и понимания программы.
procedure Klientov — Формирование новых клиентов;
procedure FormCreate (Sender: TObject) — Начальные установкипри открытии формы;
procedure Timer1Timer (Sender: TObject) — Процедурамоделирования;
procedure Button1Click (Sender: TObject) — Кнопка «Пуск»;
procedure FormCanResize (Sender: TObject; varNewWidth, NewHeight: Integer; var Resize: Boolean) — Процедура измененияразмеров формы;
procedure FormClose (Sender: TObject; varAction: TCloseAction) -Закрытие формы;
procedure BitBtn1Click (Sender: TObject) — Кнопка «Выход»;
procedure Button2Click (Sender: TObject) — Кнопка «Остановить»;
procedure Edit3Change (Sender: TObject) — Проверкана ошибки основных параметров;
procedure Edit3KeyUp (Sender: TObject; varKey: Word;
Shift: TShiftState) — Проверка на ошибки основных параметров;
procedure Edit8Change (Sender:TObject) — Проверка на ошибки основных параметров;
procedure Edit8KeyPress (Sender:TObject; var Key: Char) — Проверка на ошибки основныхпараметров;
procedure Edit2KeyPress (Sender: TObject; varKey: Char) — Проверка на ошибки основных параметров;
procedure Edit3KeyPress (Sender: TObject; varKey: Char) — Проверка на ошибки основных параметров;
procedure Edit4KeyPress (Sender: TObject; varKey: Char) — Проверка на ошибки основных параметров;
procedure Edit9KeyPress (Sender: TObject; varKey: Char) — Проверка на ошибки основных параметров;
procedure Edit5KeyPress (Sender: TObject; varKey: Char) — Проверка на ошибки основных параметров;
procedure Edit1KeyPress (Sender: TObject; varKey: Char) — Проверка на ошибки основных параметров;
procedure SpinEdit1Change (Sender: TObject)- Проверка на ошибки основных параметров;
procedure Edit2Change (Sender: TObject) — Проверкана ошибки основных параметров;
procedure Edit4Change (Sender: TObject) — Проверкана ошибки основных параметров;
procedure Edit9Change (Sender: TObject) — Проверкана ошибки основных параметров;
procedure Edit5Change (Sender: TObject) — Проверкана ошибки основных параметров;
procedure N10Click (Sender: TObject) — Выборвкладки главного меню «Запуск»;
procedure N11Click (Sender: TObject- Выборвкладки главного меню «Остановить»;
procedure r1KeyPress (Sender: TObject; varKey: Char) — Проверка на ошибки основных параметров;
procedure N2Click (Sender: TObject) — Выборвкладки главного меню «Сохранить отчет»;
procedure N1Click (Sender: TObject) — Выборвкладки главного меню «Файл»;
procedure N3Click (Sender: TObject) — Выборвкладки главного меню «Начальные параметры»;
procedure N4Click (Sender:TObject) — Выбор вкладки главного меню «Результаты»;
procedure N5Click (Sender: TObject) — Выборвкладки главного меню «Выход»;
procedure N12Click (Sender:TObject) — Выбор вкладки главного меню «Очиститьпараметры»;
procedure N13Click (Sender: TObject) — Выборвкладки главного меню «Показать отчет»;
procedure ToolButton1Click (Sender:TObject) — Нажатие на панели инструментов кнопки «Сохранитьотчет»;
procedure ToolButton2Click (Sender:TObject) — Нажатие на панели инструментов кнопки «Запуск»;
procedureToolButton4Click (Sender: TObject)- Нажатие на панели инструментов кнопки «Очистить параметры »;
procedure ToolButton3Click (Sender:TObject) — Нажатие на панели инструментов кнопки «Справка»;
procedure ToolButton5Click (Sender:TObject) — Нажатие на панели инструментов кнопки «Остановить»;
procedure N6Click (Sender: TObject) — Выборвкладки главного меню «Моделирование»;
procedure BitBtn1Click (Sender: TObject);
procedure N8Click (Sender: TObject) — Выборвкладки главного меню «О программе»;
procedure N9Click (Sender:TObject) — Выбор вкладки главного меню «Помощь»;
Ниже приведены глобальные переменные, используемые впрограмме.
i: integer; // минуты {общее время}
min: integer; // минуты {время моделирования}
chas: integer; // часы
vr_mod: integer; // время моделирования
klienty: array of array of integer; // массивс клиентами
proced: array of array of integer; // массивпроцедур
nom_pr: array of integer;
klient: integer;// кол-во клиентов
kol_proced: integer; // кол-во процедур
vremya: integer; // время появления каждого клиента
dlina: integer; // длина очереди
obsl: integer; // число обслуженных клиентов
nepol_obsl: integer; // число не полностью обслуженныхклиентов
neobsl: integer; // число необслуженных клиентов
proced_kl: integer; // кол-во процедур у каждого клиента
f,j,h,k: integer;
vr_pr: integer;
dopol_och, ochered: array of array ofinteger; // массив очереди
och_pr: array of array of integer;
maxim, max: integer; // максимальная длина очереди
stop,pusk, dl,x: integer; // счетчики
y,dlina_och2, est,c,q, t,l,null: integer;// счетчики
сlient, minim,pr, b: integer;
s_r, s: string;
na_obsl: integer; // клиенты на обслуживании
dlina_och: integer; // длина очереди
eff_rab: real; // эффективность работы процедуры
proiz_rab: real; // Производительность работы
obch_eff: real; // эффективность работы системы3.4 Результаты экспериментов
В данном проекте были проведены статистические исследования,чтобы проверить, как работает данная система при разных настройках. Результатыданного исследования приведены в таблице 3.1
Таблица 3.1 — Результаты статистического исследования
№
Экс-пери-мента Время модели-рования, часы Время ожидания заявки в очереди, минуты Число аппа-ратов обслу-живания Макси-мальная длина очереди Число обслу-женных клиентов
Число необслу-женных
клиентов
Общая эффекти-вность
работы системы,% Общая про-изво-дитель-ность,% 1 1 10 4 10 1 8 58,74 11,11 2 2 10 4 10 2 5 45,41 28,57 3 3 10 4 10 7 16 38,88 30,43 4 9 10 4 10 1 75 51,47 1,33 5 1 10 3 10 3 5 51,1 37,5 6 2 10 3 10 3 15 70,83 16,16 7 3 10 3 10 13 11 71,66 54,16 8 9 10 3 10 2 72 36,97 2,7 9 1 20 5 10 7 43,99 10 2 20 5 10 8 7 56,66 53,33 11 3 20 5 10 13 8 51,99 61,9 12 9 20 5 10 6 63 60,03 8,69 13 1 20 6 10 5 2 22,49 71,42 14 2 20 6 10 12 3 27,63 80 15 9 20 6 10 69 6 39,31 92
По полученным данным можно сказать, что при увеличении числааппаратов общая эффективность работы возрастает, а производительность системыпри этом падает. Из всех экспериментов лучшим результатом по эффективностиработы был при времени моделирования 3 часа, с количеством аппаратов — 3 (т.е. минимальноечисло аппаратов). Эффективность при этом была равна 71, 66%.
А по производительности лучший результат при временимоделирования 9 часов, с количеством аппаратов 6 (т. е максимальное числоаппаратов).3.5 Руководство пользователю
Для запуска программы необходимо открыть исполняемый файл«SMO. exe». При этомпоявится заставка программы (Рисунок 3.1). Если вы желаете начать работунеобходимо нажать кнопку «Старт», если вы желаете выйти выберите«Выход».
/>
Рисунок 3.1 — Заставка программы
При нажатии на кнопке «Старт» появляется главноеокно программы.
В начале работы активизируется вкладка «Начальныепараметры». Здесь пользователь может задать свои параметры системы, такиекак время моделирования, время ожидания в очереди, количество процедур,периодичность прихода клиентов, время процедуры, максимальная длина очереди,количество процедур для клиента (Рисунок 3.2). На вкладке также имеются кнопки«Пуск», «Остановить», «Выход», которыесоответственно позволяют начать процесс моделирования, остановить его изавершить работу.
/>
Рисунок 3.2 — Вкладка «Начальные параметры»
При запуске процесса моделирования на вкладке «Результаты»отображаются данные по текущему состоянию каждой процедуры, а также в видедиаграммы представляется эффективность работы каждой из них (Рисунок 3.3).
/>
Рисунок 3.3 — Вкладка «Результаты»
При остановке работы или после окончания процессамоделирования появляется отчет о проделанной работе. Его можно увидеть, есливыбрать вкладку «Отчет» в главном окне программы (Рисунок 3.4). В немуказывается вся общая информация, информация по всем процедурам (Числообслуженных клиентов, время занятости, время простоя, эффективность работы). Еслиесть необходимость отчет можно сохранить в текстовом файле.
/>
Рисунок 3.4 — Вкладка «Отчет»
Разработка меню. Меню проекта располагается в верхней строкеэкрана. Своим присутствием оно создает значительные удобства пользователям дляработы с программой. После открытия проекта пользователь может выбирать нужныекоманды.
В меню программы имеются вкладки: «Файл», «Моделирование»,«Справка».
В вкладке меню «Файл» находятся команды: «Сохранитьотчет», «Начальные параметры», «Результаты», «Показатьотчет», «Выход» (Рисунок 3.5).
/>
Рисунок 3.5 — Вкладка главного меню «Файл»
Команда «Сохранить» необходима для сохраненияотчета о проделанной работе после окончания процесса моделирования.
Команда «Начальные параметры» позволяет открыватьвкладку «Начальные параметры» для изменения настроек системы.
Команда «Результат» позволяет открывать вкладку«Результаты» для наблюдения текущего состояния каждой процедуры.
Команда «Показать отчет» позволяет открыватьвкладку «Отчет».
В вкладке меню «Моделирование» находятся команды:«Запустить», «Остановить», «Очистить параметры» (Рисунок3.6).
/>
Рисунок 3.6 — Вкладка «Моделирование» главногоменю
Команда «Запустить» необходима для запускапроцесса моделирования.
Команда «Остановить» позволяет остановить процессмоделирования.
Команда «Очистить параметры» позволяет очиститьвсе начальные параметры системы и удаляет результаты предыдущего моделирования.
Во вкладке меню «Справка» находятся команды:«О программе», «Помощь» (Рисунок 3.7).
/>
Рисунок 3.7 — Вкладка «Справка» главного меню
Команда «О программе» позволяет посмотретьинформацию о программе и авторе программы (Рисунок 3.8).
/>
Рисунок 3.8 — Вызов справки о программе
Команда «Помощь» позволяет ознакомиться с общимруководством по работе данной системы (Рисунок 3.9).
/>
Рисунок 3.9 — Вызов общей справки по системе
Панель инструментов. С помощью панели инструментов можнобыстро сохранить отчет, начать процесс моделирования, остановить процессмоделирования, очистить начальные параметры, а также посмотреть общую справкупо системе (Рисунок 3.10).
/>
Рисунок 3.10 — Панель инструментов
Заключение
Разработанная в ходе выполнения курсового проектаимитационная модель системы массового обслуживания «Поликлиника» являетсяактуальной на сегодняшний день, так как предоставляет большие возможности дляанализа работы системы и принятия решений в различных ситуациях на практике.
Моделируя реальные процессы, пользователь может проследить,как изменяется эффективность работы системы. А затем, может сделать выводы отом, при каких установках система будет работать максимально производительно, сколькоследует установить аппаратов, чтобы время простоя аппарата было минимально, авремя занятости максимальным.
В ходе разработки данного проекта были приобретеныпрактические навыки системного исследования реальной динамической сложнойсистемы на основе построения ее имитационной модели.
Также были решены задачи, поставленные в начале работы. Мнойбыли разработаны собственные алгоритмы для решения этих задач. Разработаннаяпрограмма устойчиво выполняет все свои функции, но теперь стоит задача сделатьее более совершенной и более расширенной.
Список используемой литературы
1. Лифшиц А.Л. Статистическое моделирование СМО, М., 1978.
2. Советов Б.А., Яковлев С.А. Моделирование систем, М: Высшая школа, 1985.
3. Пригодин Н.В. Системный подход в моделировании М., 1986.
4. А.Я. Архангельский. Программирование в Delphi 7.
5. Электронный учебник по курсу «Прикладная теория систем»
6. Методическое обеспечение по курсу «Прикладная теория систем»