Модель системы передачи пакетов данных
Постановка задачи для машинного моделирования, определение параметров и переменных. Алгоритмизация модели и её машинная реализация. Реализация алгоритма моделирования на общесистемном языке программирования. Описание диалога с пользователем, интерфейс.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 14.01.2013 |
Размер файла | 703,1 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru
Размещено на http://www.allbest.ru
Введение
Моделирование в широком смысле является основным методом исследований во всех областях знаний и научно обоснованным методом оценок характеристик сложных систем, используемым для принятия решений в различных сферах инженерной деятельности. Существующие и проектируемые системы можно эффективно исследовать с помощью математических моделей (аналитических и имитационных), реализуемых на современных ЭВМ, которые в этом случае выступают в качестве инструмента экспериментатора с моделью системы.
В данном курсовом проекте нам необходимо спроектировать и реализовать модель системы передачи пакетов данных. Для этого необходимо написать программы с использованием языка имитационного моделирования GPSS и любого общесистемного языка программирования. Мной была выбрана среда программирования Delphi 7.
Необходимо добиться, чтобы обе программы выдавали одинаковые результаты моделирования.
1. Теоретическая часть
1.1 Общие сведения о моделировании
Моделирование - исследование объектов познания на их моделях, построение и изучение моделей реально существующих предметов, процессов или явлений с целью получения объяснений этих явлений, а также для предсказания явлений, интересующих исследователя.
Модель - объект произвольной природы, который отражает главные, с точки зрения решаемой задачи, свойства объекта моделирования. Главными функциями модели являются упрощение получения информации о свойствах объекта, передача информации и знаний, управление и оптимизация объектами и процессами, прогнозирование и диагностика.
Процесс моделирования включает три элемента: субъект (исследователь), объект исследования и модель, определяющую (отражающую) отношения познающего субъекта и познаваемого объекта.
Первый этап построения модели предполагает наличие некоторых знаний об объекте-оригинале. Познавательные возможности модели обусловливаются тем, что модель отображает (воспроизводит, имитирует) какие-либо существенные черты объекта-оригинала. Вопрос о необходимой и достаточной мере сходства оригинала и модели требует конкретного анализа. Очевидно, модель утрачивает свой смысл как в случае тождества с оригиналом (тогда она перестает быть моделью), так и в случае чрезмерного во всех существенных отношениях отличия от оригинала. Таким образом, изучение одних сторон моделируемого объекта осуществляется ценой отказа от исследования других сторон. Поэтому любая модель замещает оригинал лишь в строго ограниченном смысле. Из этого следует, что для одного объекта может быть построено несколько «специализированных» моделей, концентрирующих внимание на определенных сторонах исследуемого объекта или же характеризующих объект с разной степенью детализации.
На втором этапе модель выступает как самостоятельный объект исследования. Одной из форм такого исследования является проведение «модельных» экспериментов, при которых сознательно изменяются условия функционирования модели и систематизируются данные о ее «поведении». Конечным результатом этого этапа является множество (совокупность) знаний о модели.
На третьем этапе осуществляется перенос знаний с модели на оригинал - формирование множества знаний. Одновременно происходит переход с «языка» модели на «язык» оригинала. Процесс переноса знаний проводится по определенным правилам. Знания о модели должны быть скорректированы с учетом тех свойств объекта-оригинала, которые не нашли отражения или были изменены при построении модели.
Четвертый этап -- практическая проверка получаемых с помощью моделей знаний и их использование для построения обобщающей теории объекта, его преобразования или управления им.
Моделирование является циклическим процессом. Это означает, что за первым четырехэтапным циклом может последовать второй, третий и т.д. При этом знания об исследуемом объекте расширяются и уточняются, а исходная модель постепенно совершенствуется. Недостатки, обнаруженные после первого цикла моделирования, обусловленные малым знанием объекта или ошибками в построении модели, можно исправить в последующих циклах [5].
Процессы функционирования различных систем и сетей связи могут быть представлены той или иной совокупностью систем массового обслуживания - стохастических, динамических, дискретно-непрерывных математических моделей. Исследование характеристик таких моделей может проводиться либо аналитическими методами, либо путем имитационного моделирования.
Имитационная модель отображает стохастический процесс смены дискретных состояний системы в непрерывном времени в форме моделирующего алгоритма. При его реализации на ЭВМ производится накопление статистических данных по тем атрибутам модели, характеристики которых являются предметом исследований. По окончании моделирования накопленная статистика обрабатывается, и результаты моделирования получаются в виде выборочных распределений исследуемых величин или их выборочных моментов. Таким образом, при имитационном моделировании систем массового обслуживания речь всегда идет о статистическом имитационном моделировании [6].
К имитационному моделированию прибегают, когда дорого или невозможно экспериментировать на реальном объекте, невозможно построить аналитическую модель, в системе есть время, причинные связи, последствие, нелинейности, стохастические (случайные) переменные, необходимо сымитировать поведение системы во времени.
Цель имитационного моделирования состоит в воспроизведении поведения исследуемой системы на основе результатов анализа наиболее существенных взаимосвязей между ее элементами.
Имитационное моделирование позволяет имитировать поведение системы, во времени. Причём плюсом является то, что временем в модели можно управлять: замедлять в случае с быстропротекающими процессами и ускорять для моделирования систем с медленной изменчивостью. Можно имитировать поведение тех объектов, реальные эксперименты с которыми дороги, невозможны или опасны.
Имитация, как метод решения нетривиальных задач, получила начальное развитие в связи с созданием ЭВМ в 1950х - 1960х годах [5].
Сложные функции моделирующего алгоритма могут быть реализованы средствами универсальных языков программирования (Паскаль, Си), что предоставляет неограниченные возможности в разработке, отладке и использовании модели. Однако подобная гибкость приобретается ценой больших усилий, затрачиваемых на разработку и программирование весьма сложных моделирующих алгоритмов, оперирующих со списковыми структурами данных. Альтернативой этому является использование специализированных языков имитационного моделирования.
Специализированные языки имеют средства описания структуры и процесса функционирования моделируемой системы, что значительно облегчает и упрощает программирование имитационных моделей, поскольку основные функции моделирующего алгоритма при этом реализуются автоматически. Программы имитационных моделей на специализированных языках моделирования близки к описаниям моделируемых систем на естественном языке, что позволяет конструировать сложные имитационные модели пользователям, не являющимся профессиональными программистами.
Одним из наиболее эффективных и распространенных языков моделирования сложных дискретных систем является в настоящее время язык GPSS. Он может быть с наибольшим успехом использован для моделирования систем, формализуемых в виде систем массового обслуживания. В качестве объектов языка используются аналоги таких стандартных компонентов систем массового обслуживания, как заявки, обслуживающие приборы, очереди и т.п. Достаточный набор подобных компонентов позволяет конструировать сложные имитационные модели, сохраняя привычную терминологию систем массового обслуживания.
1.2 Общие сведения о GPSS
Язык GPSS представляет собой интерпретирующую языковую систему, применяющуюся для описания пространственного движения объектов. Такие динамические объекты в языке GPSS называются транзактами и представляют собой элементы потока. В процессе имитации транзакты «создаются» и «уничтожаются». Функцию каждого из них можно представить как движение через модель с поочередным воздействием на ее блоки. Функциональный аппарат языка образуют блоки, описывающие логику модели, сообщая транзактам, куда двигаться и что делать дальше.
В состав GPSS входят следующие типы объектов: транзакты, блоки, списки, устройства, памяти, логические ключи, очереди, таблицы, ячейки, функции, переменные. Любую модель на языке GPSS можно представить в виде комбинации компонентов, взятых из числа званных объектов. Модель имеет три уровня представления:
верхний уровень, определяемый комбинацией основных функциональных объектов: устройств, памяти, ключей, очередей;
средний уровень, представляемый схемой из типовых блоков, между которыми перемещаются транзакты;
нижний уровень -- уровень физической реализации языка GPSS в виде программ и наборов данных, составляющих основу моделирующей системы.
Объекты GPSS:
Блоки. Разработчик конструирует модель из блоков, прибегая, как правило, к наглядной форме ее отображения в виде блок-схемы. Для удобства графического представления модели каждый блок GPSS имеет принятое стандартное обозначение. Построенная схема является одновременно программой на языке GPSS. Для ее ввода в ЭВМ необходимо последовательность блоков представить в виде списка операций, добавив к названиям блоков требуемые операнды. Каждый блок GPSS имеет входы и выходы, с помощью которых осуществляется их связь в модели. Существуют два особых блока: GENERATE, имеющий только выход, и TERMINATE, имеющий только вход. Через блок GENERATE транзакты вводятся в модель. Блок TERMINATE удаляет транзакты из модели. Любую модель на языке GPSS можно представить в виде совокупности блоков.
Транзакты. Транзакты, или сообщения, являются абстрактными подвижными элементами, которые могут моделировать различные объекты реального мира: сообщения, программы, транспортные средства, людей и т.п. Перемещаясь между блоками модели, транзакты вызывают (и испытывают) различные действия. Возможны их задержки в некоторых точках модели, изменения маршрутов и направлений движения, расщепление транзактов на несколько копий и т.п. С каждым транзактом связан упорядоченный набор данных.
Списки. Списки относятся к элементам внутренней организации системы GPSS. Они представляют собой структуры данных, в которых размещается полная информация о транзактах. С помощью списков обеспечивается внутренняя логика работы моделирующей системы. Список будущих событий содержит транзакты, которые смогут начать движение в модели в будущие моменты времени. Это те транзакты, для которых моменты начала движения определены в блоках GENERATE и ADVANCE. В список текущих событий входят транзакты, которые должны перемещаться в модели в текущий момент модельного времени. Если при этом транзакт входит в блок ADVANCE с ненулевым временем задержки, то он перемещается в список будущих событий. В список прерываний помещаются транзакты, обслуживание которых прервано блоком PREEMPT.
Устройства. Устройства моделируют объекты, в которых может происходить обработка транзактов. Как правило, она связана с затратами времени. Особенность устройств состоит в том, что каждое из них в данный момент времени может быть занято лишь одним транзактом.
Логические ключи. Для представления в модели коммутируемых объектов с двумя состояниями (включено - выключено) используют логические ключи, моделируемые блоками LOGIC и GATE.
Очереди. Транзакты в процессе движения могут задерживаться перед блоками, вход в которые в данных условиях невозможен. При поступлении транзактов на вход задерживающих блоков образуются очереди.
Таблицы. Для сбора статистических данных и их представления используют таблицы. Занесение информации в таблицу осуществляется блоком TABULATE в момент входа очередного транзакта в этот блок.
Ячейки. Для записи в процессе моделирования текущих значений СЧА используют ячейки.
Функции и переменные. Функции служат для отображения зависимостей между двумя СЧА [7].
2. Разработка модели и алгоритма функционирования системы
2.1 Постановка задачи для машинного моделирования
В данном курсовом проекте стоит задача реализации модели работы системы передачи данных.
Система передачи данных обеспечивает передачу пакетов данных из пункта А в пункт С через транзитный пункт В. В пункт А пакеты поступают через 10 ± 5 мс. Здесь они буферизуются в накопителе ёмкостью 20 пакетов и передаются по любой из двух линий АВ1 - за время 20 мс или АВ2 - за время 20 ± 5 мс. В пункте В они снова буферизуются в накопителе, ёмкостью 25 пакетов и далее передаются по линиям ВС1 (за 25 ± 3 мс) и ВС2 (за 25 мс). Причём пакеты из АВ1 поступают в ВС1, а из АВ2 - в ВС2.
Чтобы не было переполнения накопителя, в пункте В вводится пороговое значение его ёмкости - 20 пакетов. При достижении очередью порогового значения происходит подключение резервной аппаратуры и время передачи снижается для линий ВС1 и ВС2 до 15 мс. Смоделировать прохождение через систему передачи данных 500 пакетов. Определить вероятность подключения резервной аппаратуры и характеристики очереди пакетов в пункте В. В случае возможности его переполнения определить необходимое для нормальной работы пороговое значение ёмкости накопителя.
2.2 Определение параметров и переменных
Прежде чем перейти к построению концептуальной схемы модели, необходимо определить входные и выходные переменные.
Экзогенные (независимые) переменные - вводятся извне, это исходная информация, они задаются до начала построения модели.
Экзогенными переменными в данной модели будут являться время передачи пакетов по каналам связи, максимальные длины очередей, критическая длина очереди В, при достижении которой включается резервная аппаратура.
Эндогенные (зависимые) переменные - формируются внутри модели, являются результатом её решения, определяются в ходе расчётов по модели.
Эндогенными переменными в данной модели будут являться количество потерянных пакетов в пункте А, количество пакетов прошедших через резервную аппаратуру, вероятность включения резервной аппаратуры, количество пакетов прошедших через систему.
2.3 Построение концептуальной модели системы
Концептуальная модель системы - это формализованный замысел модели, реализованный в виде конкретной формализованной схемы, то есть адекватная математическая модель системы, построенная на основе её описания.
На первом этапе разработки концептуальной модели построим структурную схему модели, приведенную на рисунке 1.
Рисунок 1 - Структурная схема модели
В данном случае стрелками показаны направления движения пакетов. Как можно заметить, часть пакетов не обрабатывается из-за переполнения очередей и пропадает.
На втором этапе разработки концептуальной модели для её формализации построим систему на базе Q - схем. В качестве элементов структуры Q - схем будем рассматривать элементы трех типов: И - источник; Н - накопитель; К - каналы передачи пакетов. Структурная схема, сформированная на базе Q - схем, представлена на рисунке 2.
Рисунок 2 - Структурная схема модели на базе Q-схем
Источник И генерирует пакеты. К1-К4 - каналы передачи пакетов между пунктами, К5-К6 резервные каналы передачи. Накопители Н1 и Н2 имитируют емкость пунктов А и В соответственно, поступление пакетов в которые регулируют клапаны 1-2. В случае достижения емкости в пункте В порогового значения закрывается клапан 2 и подключаются резервные каналы К5 и К6.
2.4 Алгоритмизация модели и её машинная реализация
На данном этапе моделирования необходимо провести реализацию идей и математических схем в виде машинной модели, ориентированной на использование конкретных программно-технических средств.
В качестве языка имитационного моделирования был выбран язык GPSS, благодаря способности моделирования систем массового обслуживания.
На данном этапе нужно построить блок-диаграмму модели. Изобразим её на рисунке 3. По полученной блок-диаграмме составим текст программы на языке имитационного моделирования GPSS.
Также необходимо построить общий алгоритм работы программы. Структурная схема данного алгоритма представлена на рисунке 4.
АВ
Размещено на http://www.allbest.ru
Размещено на http://www.allbest.ru
Рисунок 4 - Общая структурная схема алгоритма работы программы
В цикле программы происходит создание потоков. Каждый такой поток представляет собой транзакт, который движется по модели. Учёт системного времени не ведется, происходят задержки потока на заданное время.
При переполнении буфера А происходит удаление лишних транзактов, при этом происходит считывание их количества. Информация о количестве удаленных транзактов выводится пользователю.
Для нахождения вероятности подключения резервной аппаратуры необходимо разделить количество пакетов, прошедших через резервную аппаратуру на общее число пакетов, прошедших через систему.
Отчёт работы программы, написанной на языке имитационного моделирования GPSS, поместим в приложении Б. Исходные тексты программ, написанных на GPSS и общесистемной языке программирования, поместим в приложения А и В соответственно.
3. Реализация модели на общесистемном языке программирования
3.1 Структура программы
Для реализации алгоритма моделирования на общесистемном языке программирования была выбрана система объектно-ориентированного программирования Borland Delphi 7.0. Данный выбор обоснован простотой и малым временем, требующимся для разработки программного обеспечения в данной среде. Также немалую роль сыграл тот факт, что откомпилированные в ней приложения совместимы с семейством Microsoft Windows 9x и Microsoft Windows NT, а данные операционные системы широко распространены.
В программе реализован режим быстрого моделирования, при котором моделирование производится непрерывно, после чего выдаются окончательные результаты.
3.2 Описание диалога с пользователем
Исполняемый файл программы называется Project1.exe. При его запуске на экране появляется окно, показанное на рисунке 5.
Рисунок 5 - Основное окно программы
В левой части окна представлен текст поставленной задачи. Имеется возможность изменить входные значения, такие как максимальная длина очереди в пункте А, время генерации пакетов, и т.д.
В правой части окна представлено описание процесса моделирования.
При нажатии кнопки «Моделировать» на экране появляется окно, показанное на рисунке 6.
В ходе работы программы в правой части окна можно наблюдать за степень загруженности буферов А и В соответственно, а также за количеством потерянных транзактов и изменение вероятности подключения резервной аппаратуры.
Рисунок 6 - Процесс моделирования
моделирование данный алгоритм
На рисунках 7 и 8 представлены результаты, полученные в ходе процесса моделирования при неизменных исходных входных данных.
Рисунок 7 - Результат моделирования (1).
Рисунок 8 - Результат моделирования (2).
3.3 Сравнение результатов
Теперь выполним несколько прогонов полученных программ, написанных на GPSS и общесистемном языке программирования, и средние результаты занесём в таблицу 1 и сравним.
Вероятность запуска аппаратуры вычислим по формуле
(1)
где К1 - количество транзактов, прошедших через резервную аппаратуру, а К - число пакетов, прошедших через систему.
Таблица 1 - Сравнение полученных результатов
Характеристика |
Значение, полученное в программе |
||
на GPSS |
на Delphi |
||
Количество пакетов, потерянных перед А |
0 |
0 |
|
Число пакетов, прошедших через систему |
500 |
500 |
|
Количество транзактов, прошедших через резервную аппаратуру |
72 |
74 |
|
Вероятность использования резервной аппаратуры |
0,144 |
0,148 |
Из данной таблицы видно, что результаты, выдаваемые обеими программами, близки друг к другу, следовательно составленные алгоритмы работают верно.
Следует заметить, что при данных входных величинах возможно переполнение буфера в пункте А и потеря пакетов, поэтому необходимо оптимизировать входные данные таким образом, чтобы все пакеты заходили в блок А.
При данных входных величинах наблюдается переполнение буфера в пункте В, поэтому необходимо оптимизировать входные данные таким образом, чтобы не было подключений резервной аппаратуры. Путём ряда запусков программ и экспериментального ввода различных значений в качестве входных данных, было установлено, что при установке значения емкости буфера в пункте В равным 27 пакетов, резервная аппаратура не подключается .
Таким образом, разработанный нами алгоритм моделирования исходной системы является работоспособным. Отличие результатов моделирования программ, написанных в GPSS и Borland Delphi, обусловлено неравномерностью распределение случайной величины.
Заключение
При разработке курсового проекта были рассмотрены основные определения и понятия моделирования систем, общие сведения о языке имитационного моделирования GPSS.
Кроме этого была спроектирована и реализована модель работы системы по передаче пакетов данных.
В ходе выполнения курсового проекта были разработаны 2 алгоритма реализации модели и на их основе написаны программы на языке имитационного моделирования GPSS и в среде объектно-ориентированного программирования Borland Delphi.
Результаты, выдаваемые обеими программами, несущественно различаются, что вызвано особенностями работы функции получения случайного числа в Borland Delphi.
Следует заметить, что решение поставленной задачи средствами GPSS занимает гораздо меньше времени, а следовательно может быть признано более оптимальным.
Список литературы
Аляев Ю.А., Козлов О.А. Алгоритмизация и языки программирования Pascal, C++, Visual Basic: учебно-справочное пособие. - М.: Финансы и статистика, 2004. - 320с.
Васильков Ю. В.. Компьютерные технологии вычислений в математическом моделировании М., «Финансы и статистика» 1999
Воробьев Э. И. Моделирование и анализ сложных систем: Учеб. пособие. Воронеж: Воронеж. гос. техн. ун-т, 2005. 118с.
Кормен Т., Лейзерсон Ч., Ривест Р Алгоритмы: построение и анализ. М., «МЦНМО», 1999.
Самарский А.А., Михайлов А.П. Математическое моделирование: Идеи. Методы. Примеры. -- М: Наука, 1997. -- 320 с. -- ISBN 5-9221-0120-X.
Советов Б.Я., Яковлев С.А. Моделирование систем: Учеб. для вузов по спец. «Автоматизир. Системы обработки информ. и упр.». - 2-е изд., перераб. и доп.- М.: Высш. шк., 1998. - 319 с.: ил.
Советов Б.Я., Яковлев С.А. Моделирование систем: Курсовое проектирование: Учеб. пособие для вузов по спец. АСУ. - М.: Высш. шк., 1988. - 135 с.: ил.
Хомоненко А.Д. Гофман В.Э. Самоучитель Delphi. СПб: В-Петербург, 2005. - 576с.:ил.
Приложение А
(обязательное)
Листинг программы в GPSS
5 simulate
10 GENERATE 10,5,0,500
15 AB storage 20
20 BC storage 25
25 enter AB
30 Transfer .5,metAB1,metAB2
40 metAB1 seize AB1
41 leave AB
50 ASSIGN 1,1
60 ADVANCE 20
70 RELEASE AB1
80 Transfer,metBC
90 metAB2 SEIZE AB2
91 leave AB
100 ASSIGN 1,2
110 ADVANCE 20,5
120 RELEASE AB2
130 metBC enter BC
131 SAVEVALUE SAV+,1
140 TEST L X$SAV,20,RezervBC
150 test E p1,1,metBC2
152 seize BC1
153 leave BC
170 ADVANCE 25,3
180 savevalue countStandartMode+,1
182 SAVEVALUE SAV-,1
190 release BC1
200 terminate 1
210 metBC2 seize BC2
213 leave BC
220 ADVANCE 25
230 savevalue countStandartMode+,1
232 SAVEVALUE SAV-,1
240 release BC2
250 terminate 1
260 RezervBC test E p1,1,metRBC2
261 seize RBC1
262 leave BC
270 ADVANCE 15
280 savevalue countRezervMode+,1
282 SAVEVALUE SAV-,1
290 release RBC1
300 terminate 1
320 metRBC2 seize RBC2
324 leave BC
340 ADVANCE 15
350 savevalue countRezervMode+,1
352 SAVEVALUE SAV-,1
360 release RBC2
370 terminate 1
390 start 500
400 clear
410 start 500
420 clear
430 start 500
440 clear
Приложение Б
(справочное)
Отчёты программы, реализованной с помощью GPSS
GPSS World Simulation Report - var4_2.151.2
Monday, May 30, 2011 03:56:09
START TIME END TIME BLOCKS FACILITIES STORAGES
0.000 5730.267 48 6 2
NAME VALUE
AB 10000.000
AB1 10004.000
AB2 10006.000
BC 10001.000
BC1 10010.000
BC2 10012.000
COUNTREZERVMODE 10015.000
COUNTSTANDARTMODE 10011.000
METAB1 4.000
METAB2 10.000
METBC 15.000
METBC2 26.000
METRBC2 41.000
RBC1 10014.000
RBC2 10016.000
REZERVBC 33.000
SAV 10007.000
VEROYATNOSTREZERVA 10017.000
LABEL LOC BLOCK TYPE ENTRY COUNT CURRENT COUNT RETRY
1 GENERATE 500 0 0
2 ENTER 500 0 0
3 TRANSFER 500 0 0
METAB1 4 SEIZE 257 0 0
5 LEAVE 257 0 0
6 ASSIGN 257 0 0
7 ADVANCE 257 0 0
8 RELEASE 257 0 0
9 TRANSFER 257 0 0
METAB2 10 SEIZE 243 0 0
11 LEAVE 243 0 0
12 ASSIGN 243 0 0
13 ADVANCE 243 0 0
14 RELEASE 243 0 0
METBC 15 ENTER 500 0 0
16 SAVEVALUE 500 0 0
17 TEST 500 0 0
18 TEST 436 0 0
19 SEIZE 229 0 0
20 LEAVE 229 0 0
21 ADVANCE 229 0 0
22 SAVEVALUE 229 0 0
23 SAVEVALUE 229 0 0
24 RELEASE 229 0 0
25 TERMINATE 229 0 0
METBC2 26 SEIZE 207 0 0
27 LEAVE 207 0 0
28 ADVANCE 207 0 0
29 SAVEVALUE 207 0 0
30 SAVEVALUE 207 0 0
31 RELEASE 207 0 0
32 TERMINATE 207 0 0
REZERVBC 33 TEST 64 0 0
34 SEIZE 28 0 0
35 LEAVE 28 0 0
36 ADVANCE 28 0 0
37 SAVEVALUE 28 0 0
38 SAVEVALUE 28 0 0
39 RELEASE 28 0 0
40 TERMINATE 28 0 0
METRBC2 41 SEIZE 36 0 0
42 LEAVE 36 0 0
43 ADVANCE 36 0 0
44 SAVEVALUE 36 0 0
45 SAVEVALUE 36 0 0
46 RELEASE 36 0 0
47 TERMINATE 36 0 0
48 SAVEVALUE 0 0 0
FACILITY ENTRIES UTIL. AVE. TIME AVAIL. OWNER PEND INTER RETRY DELAY
AB1 257 0.897 20.000 1 0 0 0 0 0
AB2 243 0.853 20.118 1 0 0 0 0 0
BC1 229 0.994 24.880 1 0 0 0 0 0
BC2 207 0.903 25.000 1 0 0 0 0 0
RBC1 28 0.073 15.000 1 0 0 0 0 0
RBC2 36 0.094 15.000 1 0 0 0 0 0
STORAGE CAP. REM. MIN. MAX. ENTRIES AVL. AVE.C. UTIL. RETRY DELAY
AB 20 20 0 20 500 1 11.046 0.552 0 0
BC 25 25 0 18 500 1 13.532 0.541 0 0
SAVEVALUE RETRY VALUE
SAV 0 0
COUNTSTANDARTMODE 0 436.000
COUNTREZERVMODE 0 64.000
Приложение В
(обязательное)
Листинг модуля с основным алгоритмом на общесистемном языке программирования
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls, Spin, Math, ComCtrls, Gauges;
type
MyThread = class(TThread)
private
{ Private declarations }
protected
procedure Execute; override;
procedure PlusGauge1;
procedure MinusGauge1;
procedure PlusGauge2;
procedure MinusGauge2;
procedure UpdateLabels;
end;
TForm1 = class(TForm)
GroupBox1: TGroupBox;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
SpinEdit1: TSpinEdit;
SpinEdit2: TSpinEdit;
SpinEdit3: TSpinEdit;
SpinEdit4: TSpinEdit;
SpinEdit5: TSpinEdit;
SpinEdit6: TSpinEdit;
SpinEdit7: TSpinEdit;
SpinEdit8: TSpinEdit;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Label9: TLabel;
Label10: TLabel;
Label11: TLabel;
Label12: TLabel;
Label13: TLabel;
Label14: TLabel;
Label15: TLabel;
Label16: TLabel;
Label17: TLabel;
Label18: TLabel;
Label19: TLabel;
SpinEdit9: TSpinEdit;
SpinEdit10: TSpinEdit;
SpinEdit11: TSpinEdit;
SpinEdit12: TSpinEdit;
SpinEdit13: TSpinEdit;
SpinEdit14: TSpinEdit;
Label20: TLabel;
Label21: TLabel;
Label22: TLabel;
Label23: TLabel;
Label24: TLabel;
Label25: TLabel;
Label26: TLabel;
Label27: TLabel;
Label28: TLabel;
Label29: TLabel;
Label8: TLabel;
Label30: TLabel;
Label31: TLabel;
SpinEdit15: TSpinEdit;
Label32: TLabel;
Label33: TLabel;
Label34: TLabel;
Button1: TButton;
Button2: TButton;
GroupBox2: TGroupBox;
Gauge1: TGauge;
Gauge2: TGauge;
Label37: TLabel;
Label38: TLabel;
Label39: TLabel;
Label40: TLabel;
Label41: TLabel;
Label42: TLabel;
Label35: TLabel;
Label36: TLabel;
Label43: TLabel;
Label44: TLabel;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
co: MyThread;
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
var
transacts, VolumeA, VolumeB, LostTransacts, AB1, AB2, BC1, BC2, RBC1, RBC2, reserve, through_AB1_AB2: integer;
AB1_uses, AB2_uses, BC1_uses, BC2_uses, RBC1_uses, RBC2_uses, exit: boolean;
// + -
function PlusMinus (osnova,dopoln:integer):integer;
var
itog, pp:integer;
begin pp:=random(2);
case pp of
0: itog:=osnova + random (dopoln+1);
1:itog:=osnova - random (dopoln+1);
end;
PlusMinus:=itog;
end;
procedure MyThread.PlusGauge1;
begin
Priority:=tpNormal;
Form1.Gauge1.Progress:=Form1.Gauge1.Progress+1;
end;
procedure MyThread.MinusGauge1;
begin
Form1.Gauge1.Progress:=Form1.Gauge1.Progress-1;
Priority:=tpLower;
end;
procedure MyThread.PlusGauge2;
begin
Form1.Gauge2.Progress:=Form1.Gauge2.Progress+1;
end;
procedure MyThread.MinusGauge2;
begin
Form1.Gauge2.Progress:=Form1.Gauge2.Progress-1;
end;
procedure MyThread.UpdateLabels;
begin
Form1.Label43.Caption:=IntToStr(LostTransacts);
Form1.Label35.Caption:=IntToStr(through_AB1_AB2);
Form1.Label36.Caption:=IntToStr(reserve);
Form1.Label44.Caption:=FormatFloat('0.000', reserve/through_AB1_AB2);
end;
procedure MyThread.Execute;
var
AB_way: integer;
begin
FreeOnTerminate:=true;
try
if VolumeA < StrToInt(Form1.SpinEdit3.Text) then
begin
inc(VolumeA);
Synchronize(PlusGauge1);
AB1:=PlusMinus(StrToInt(Form1.SpinEdit4.Text),StrToInt(Form1.SpinEdit5.Text));
AB2:=PlusMinus(StrToInt(Form1.SpinEdit6.Text),StrToInt(Form1.SpinEdit7.Text));
while AB1_uses and AB2_uses do
begin end;
if Min(AB1,AB2)=AB1 then
begin
if AB1_uses=False then
begin
AB1_uses:=True;
Sleep(AB1);
dec(VolumeA);
AB1_uses:=False;
AB_way:=1;
inc(through_AB1_AB2);
end
else
begin
AB2_uses:=True;
Sleep(AB2);
dec(VolumeA);
AB2_uses:=False;
AB_way:=2;
inc(through_AB1_AB2);
end;
end
else
begin
if AB2_uses=False then
begin
AB2_uses:=True;
Sleep(AB2);
dec(VolumeA);
AB2_uses:=False;
AB_way:=2;
inc(through_AB1_AB2);
end
else
begin
AB1_uses:=True;
Sleep(AB1);
dec(VolumeA);
AB1_uses:=False;
AB_way:=1;
inc(through_AB1_AB2);
end;
end;
Synchronize(MinusGauge1);
RBC1:=15;
RBC2:=15;
if (VolumeB < StrToInt(Form1.SpinEdit13.Text)) or (RBC1_uses or RBC1_uses) then
begin
BC1:=PlusMinus(StrToInt(Form1.SpinEdit9.Text),StrToInt(Form1.SpinEdit10.Text));
BC2:=PlusMinus(StrToInt(Form1.SpinEdit11.Text),StrToInt(Form1.SpinEdit12.Text));
if (RBC1_uses or RBC1_uses) then
begin
BC1:=15;
BC2:=15;
end;
inc(VolumeB);
Priority:=tpLowest;
Synchronize(PlusGauge2);
case AB_way of
1: begin
while BC1_uses do begin end;
BC1_uses:=True;
Sleep(BC1);
dec(VolumeB);
BC1_uses:=False;
end;
2: begin
while BC2_uses do begin end;
BC2_uses:=True;
Sleep(BC2);
dec(VolumeB);
BC2_uses:=False;
end;
end;
Priority:=tpLowest;
Synchronize(MinusGauge2);
Priority:=tpLower;
end
else
begin
BC1:=PlusMinus(StrToInt(Form1.SpinEdit14.Text),StrToInt(Form1.SpinEdit15.Text));
BC2:=PlusMinus(StrToInt(Form1.SpinEdit14.Text),StrToInt(Form1.SpinEdit15.Text));
case AB_way of
1: begin
while RBC1_uses do begin end;
RBC1_uses:=True;
Sleep(RBC1);
RBC1_uses:=False;
inc(reserve);
end;
2: begin
while RBC2_uses do begin end;
RBC2_uses:=True;
Sleep(RBC2);
RBC2_uses:=False;
inc(reserve);
end;
end;
end;
end
else
begin
inc(LostTransacts);
end;
except end;
Synchronize(UpdateLabels);
Terminate;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
transacts:=0;
VolumeA:=0;
VolumeB:=0;
LostTransacts:=0;
reserve:=0;
through_AB1_AB2:=0;
AB1_uses:=False;
AB2_uses:=False;
BC1_uses:=False;
BC2_uses:=False;
RBC1_uses:=False;
RBC2_uses:=False;
exit:=False;
Gauge1.MaxValue:=SpinEdit3.Value;
Gauge2.MaxValue:=SpinEdit13.Value;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
transacts:=0;
VolumeA:=0;
VolumeB:=0;
LostTransacts:=0;
reserve:=0;
through_AB1_AB2:=0;
AB1_uses:=False;
AB2_uses:=False;
BC1_uses:=False;
BC2_uses:=False;
RBC1_uses:=False;
RBC2_uses:=False;
while (transacts < 500) and (exit=False) do
begin
inc(transacts);
Sleep(PlusMinus(StrToInt(SpinEdit1.Text),StrToInt(SpinEdit2.Text)));
co:=MyThread.Create(False);
co.Priority:=tpLower;
Application.ProcessMessages;
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
exit:=True;
Application.Terminate;
end;
end.
Размещено на www.allbest.
Подобные документы
Методы материального моделирования в среде GPSS. Построение и разработка концептуальной модели. Алгоритмизация модели и ее машинная реализация. Экспериментальное моделирование на ЭВМ. Определение максимальной длины очереди готовых к обработке пакетов.
курсовая работа [189,0 K], добавлен 14.09.2011Определение закона и построение формальной схемы функционирования системы. Алгоритмизация модели и ее машинная реализация. Составление алгоритма моделирующей программы, ее верификация (тестирование). Получение и интерпретация результатов моделирования.
курсовая работа [1,1 M], добавлен 30.05.2012Построение концептуальной модели системы и ее формализация. Алгоритмизация модели системы и ее машинная реализация. Построение логической схемы модели. Проверка достоверности модели системы. Получение и интерпретация результатов моделирования системы.
курсовая работа [67,9 K], добавлен 07.12.2009Рассмотрение проблемы моделирования процессов в Q-схемах – математических схемах, разработанных для формализации процессов функционирования систем массового обслуживания. Разработка моделирующего алгоритма, машинная реализация и математическое описание.
курсовая работа [781,9 K], добавлен 03.07.2011Концептуальная модель операции. Математическая постановка задачи. Описание метода ветвей и границ, прямого перебора. Проектирование сценария диалога. Описание структур данных. Ручная реализация решения задачи с помощью алгоритма Литла и перебора.
курсовая работа [202,6 K], добавлен 14.12.2013Виды социальных медиа. Критерии эффективности продвижения аккаунта в социальных сетях. Программная реализация алгоритма моделирования распространения информации в социальной сети "Twitter". Разработка клиентского приложения. Апробация интерфейса системы.
дипломная работа [5,4 M], добавлен 08.02.2016Особенности метода неопределенных множителей Лагранжа, градиентного метода и метода перебора и динамического программирования. Конструирование алгоритма решения задачи. Структурная схема алгоритма сценария диалога и описание его программной реализации.
курсовая работа [1010,4 K], добавлен 10.08.2014Основные численные методы моделирования. Понятие метода конечных элементов. Описание основных типов конечных элементов и построение сетки. Реализация модели конструкции в пакете ANSYS, на языке программирования C#. Реализация интерфейса пользователя.
курсовая работа [2,3 M], добавлен 22.01.2016Создание библиотеки классов имитационного моделирования и реализация алгоритма имитационного моделирования системы массового обслуживания "Модель комиссионного магазина". Использование для разработки среды программирования C++. Словарь предметной области.
курсовая работа [581,0 K], добавлен 23.01.2013Расчет параметров моделирования в системе Fortran. Описание алгоритма и математической модели системы, их составляющих. Моделирование шума с заданной плотностью распределения вероятностей. Выполнение моделирования работы системы при входном сигнале N(t).
курсовая работа [896,3 K], добавлен 20.06.2012