Главная Случайная страница


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 4. Как сделать так, чтобы вас уважали и ценили? Как сделать лучше себе и другим людям Как сделать свидание интересным?


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Программа модели. Для задания исходных данных используем переменные пользователя





Для задания исходных данных используем переменные пользователя. Они задаются с помощью команды EQU. Переменным пользователя даны такие же имена, как и в постановке задачи, но добавлен знак подчеркивания. Например, T1_, S1_ и т. д. Время моделирования зададим переменной пользователя VrMod.

Арифметическая переменная для расчета времени обработки VrObr запроса на сервере:

VrObr VARIABLE (Normal(2,S1_#Koef,S2_#Koef))/Q_

Переменная пользователя Koef введена для удобства изменения (пропорционального изменения) характеристик нормального закона распределения, которому подчиняется вычислительная сложность запросов. Особенно целесообразно использование этой переменной при проведении экспериментов. Примеры применения приведены в главе 7.

Вероятность обработки VerObr запросов на сервере будем определять как отношение количества обработанных N$ObrZap запросов к количеству всего поступивших N$KolZap запросов:

VerObr VARIABLE N$ObrZap/N$KolZap

В арифметическом выражении VerObr, например, N$ObrZap - системный числовой атрибут - количество транзактов, вошедших в блок с меткой ObrZap, а N$KolZap - количество транзактов, вошедших в блок с меткой KolZap.

Все необходимое для написания программы модели имеется. Напишем программу решения прямой задачи.

; Обработка запросов сервером. Прямая задача

; Задание исходных данных

T1_ EQU 120; Средний интервал поступления запросов, с

S1_ EQU 60000000; Среднее значение вычислительной сложности запросов, оп

S2_ EQU 200000; Стандартное отклонение вычислительной сложности запросов, оп

Q_ EQU 600000; Среднее значение производительности сервера, оп/с

Koef EQU 1; Коэффициент изменения характеристик нормального распределения

VrObr VARIABLE (Normal(2,(S1_#Koef),(S2_#Koef))/Q_

VerObr VARIABLE N$ObrZap/N$KolZap

VrMod EQU 3600; Время моделирования, 1 ед. мод. времени = 1 с.

; Сегмент имитации обработки запросов

GENERATE (Exponential(1,0,T1_)); Источник запросов

KolZap GATE NU Server,PotZap; Свободен ли сервер? Если да, то

SEIZE Server; занять сервер

ADVANCE V$VrObr; Имитация обработки запроса

RELEASE Server; Освободить сервер ObrZap TERMINATE; Обработанные запросы

PotZap TERMINATE; Потерянные запросы

; Сегмент задания времени моделирования и расчета результатов

GENERATE VrMod

TEST L X$Prog,TG1,Met1; Если X$Prog < TG1,

SAVEVALUE Prog,TG1; то X$Prog = TG1

Met1 TEST E TG1,1,Met2; Если TG1 = 1, то

SAVEVALUE VerObr, V$VerObr; расчет и сохранение

в ячейке VerObr вероятности обработки запросов

SAVEVALUE Res,(INT(N$ObrZap/X$Prog)); расчет и сохранение в ячейке Res количества обработанных запросов

Met2 TERMINATE 1

START 1000,NP; Прогоны до установившегося режима

RESET; Сброс накопленной статистики

START 9604; Количество прогонов модели

При расчете количества обработанных запросов

SAVEVALUE Res,(INT(N$ObrZap/X$Prog))

в арифметическом выражении N$ObrZap/X$Prog используется число прогонов. В арифметическом выражении указано не явное число прогонов, а в виде содержимого ячейки X$Prog. Число прогонов заносится предварительно в эту ячейку по завершении первого прогона модели, но до того момента, когда из счетчика завершений TG1 будет вычтена первая единица. В этом случае арифметическое выражение не зависит от числа прогонов, которое может меняться на различных этапах создания и эксплуатации модели, в том числе и в зависимости от исходных данных, а также от точности и достоверности результатов моделирования. Поскольку количество обработанных запросов не может быть дробным числом, то для получения целого числа, записываемого в ячейку Res, используется процедура INT из встроенной библиотеки.

Для уменьшения машинного времени расчет искомых показателей производится не после каждого прогона, а после завершения последнего прогона, т. е. когда содержимое счетчика завершений будет равно единице (TG1 = 1).

Date: 2015-07-17; view: 350; Нарушение авторских прав; Помощь в написании работы --> СЮДА...



mydocx.ru - 2015-2024 year. (0.006 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию