Полезное:
Как сделать разговор полезным и приятным
Как сделать объемную звезду своими руками
Как сделать то, что делать не хочется?
Как сделать погремушку
Как сделать так чтобы женщины сами знакомились с вами
Как сделать идею коммерческой
Как сделать хорошую растяжку ног?
Как сделать наш разум здоровым?
Как сделать, чтобы люди обманывали меньше
Вопрос 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: 383; Нарушение авторских прав |