119
правая граница доверительного интервала (ПГДИ) числа версий записи;
среднее значение времени обработки версий (вариант 1) или обновлений
(вариант 2) клиентом;
ПГДИ времени обработки.
Для вычисления правых границ необходимо
задать требуемых уровень
надежности g: 0.95, 0.99 или 0.999. В этом случае правая граница R
рассчитывается по формуле:
x
M
R
,
(4.2)
где M – математическое ожидание случайной величины,
σ – среднеквадратичное отклонение случайной величины,
x(0.95) = 1.96, x(0.99) = 2.58, x(0.999) = 3.29.
GPSS имеет встроенные средства сбора статистики, с
помощью которых
можно получить значения M и σ через стандартные числовые атрибуты (СЧА).
Для модели ведения версий записи можно задавать сразу несколько
значений входных параметров для одного процесса моделирования – это число
клиентов K и коэффициент k (в модели r), учитывающий время обдумывания
пользователем результатов обработки (через точку с запятой). Такая организация
входных данных позволяет проектировщику проследить
динамику изменения
показателей при изменении k для каждого K.
Окно программы (вторая вкладка, рисунок 4.3) содержит элементы
управления для настройки имитационной модели: вариант модели (1 или 2), число
клиентов, коэффициент k, время моделирования (на один прогон), дискретную
функцию распределения вероятностей времени обработки клиентом одной версии
записи (вариант 1) или одного обновления записи (вариант 2). Само
моделирование выполняется в среде GPSS. Для автоматической замены исходных
данных в тексте модели разработана программа на языке PLUS [70].
Текст
программы на PLUS и модели на GPSS генерируется инструментальным
средством автоматически после ввода исходных данных. На рисунке 4.4
представлена схема работы инструментального средства с моделью версий
записи.
120
Инструментальн
ое средство (C#
.Net)
Клиент
Ввод исходных данных
Программа на
языке PLUS
Входные
данные
GPSS модель
Выполнить
прогон
Результат
Библиотека
отображения
результатов
(C++ MFC)
Начать
моделирование
Отобразить текущий прогон
Закончить
моделирование
Файл с
результатами
моделирования
Рисунок 4.4 – Схема работы инструментального средства с моделью версий
записи.
Язык PLUS предоставляет возможность вызова программ на «C» из кода
программы на GPSS через функцию CALL.
Для отображения процесса и
результатов моделирования (блок «Библиотека отображения результатов» на
рисунке 4.4) была разработана библиотека на языке C++ (MFC фрэймворк [72])
NoSQLGPSSLib.dll
(входит в состав инструментального средства). Ниже
представлены функции библиотеки, вызов которых осуществляется из PLUS:
1.
SetResultFileName
– функция, принимающая строковый аргумент – путь к
файлу результатов моделирования. Вызывается до начала моделирования
для инициализации имени файла с результатами моделирования.
2.
SetTotalProgress
– функция, принимающая числовой аргумент – число
прогонов модели. Она устанавливает общее число прогонов (см. стрелку
«Начать моделирование» на рисунке 4.4).
3.
SetProgress
– функция, принимающая числовой аргумент – номер
текущего прогона модели. Она устанавливает
прогресс согласно номеру
текущего прогона (см. стрелку «Отобразить текущий прогон» на рисунке
4.4).
121
4.
SetFinishVersions
– функция без параметров, сообщает системе, что
моделирование завершено и необходимо отобразить результаты
моделирования (см. стрелку «Закончить моделирование» на рисунке 4.4).
Для упрощения программы PLUS основной
модуль передает не массив
коэффициентов k, а массив рассчитанных средних значений времени
обдумывания клиентом результатов работы с версиями записи.
Алгоритм работы программы на языке PLUS.
Вход: массив числа клиентов NKL_ARR, размер массива числа клиентов
NKL_ARR_SIZE, массив времени обдумывания LBMD_ARR, размер массива
времени обдумывания LMBD_ARR_SIZE,
имя файла с результатами
FILE_NAME, время одного прогона модели ITER_TIME.
Do'stlaringiz bilan baham: