Модель системы передачи пакетов данных

Постановка задачи для машинного моделирования, определение параметров и переменных. Алгоритмизация модели и её машинная реализация. Реализация алгоритма моделирования на общесистемном языке программирования. Описание диалога с пользователем, интерфейс.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 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

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.