- •Теоретические и практические указания к выполнению лабораторной работы №1
- •Введение.
- •2. Теоретическое описание моделей и методов анализа
- •II. Расчет потребления ресурсов фрагментами программы.
- •2.2. Цепи Маркова
- •2.3. Классификация цепей Маркова.
- •2.5. Метод поуровневой детализации
- •A b c d
- •3. Проведение анализа моделей программ на основе фм пцм
- •3.1. Описание входного языка программы анализа
- •1. Задание 0-го уровня подробности файла протокола.
- •2. Задание 1-го уровня подробности файла протокола.
- •3. Задание 2-го уровня подробности файла протокола.
- •Задание на выполнение лабораторной работы 1-2
II. Расчет потребления ресурсов фрагментами программы.
В качестве потребляемых ресурсов будем рассматривать:
1. Временные ресурсы:
время выполнения программы
время задержки, вызванной обработкой запроса
Емкостные ресурсы (потребление байтов памяти в процессе выполнения программы)
Проблема назначения затрат потребления ресурсов зависит от уровня рассмотрения программы:
на машинном уровне – это требует представления программы на языке команд машины для всех исследуемых моделей машин. Это трудоемкий процесс, который облегчается только тем, что эквивалентные по потреблению ресурсов команды могут группироваться и взаимозаме-няться, т.к. модель программы не должна давать истинный результат вычисления.
повышение уровня описания фрагментов программы путем использования макрокоманд, реализующих типовые вычислительные процессы.
Однажды оценив потребление ресурсов макрокомандой можно использовать это значение в дальнейшем для всех вариантов ее использования в программе.
представление программы на языке высокого уровня: выбирается реализация типовых процессов обработки на выбранном языке и оценивается потребление ресурсов для каждого из этих процессов.
Для 2 и 3 повышается разброс(и, следовательно, уменьшается точность задания) потребляемых ресурсов из-за различиях в компиляторах и разброса входных данных.
В качестве математической модели исследуемых программ будем использовать цепи Маркова с дискретным временем. При этом вершинам графа соответствуют состояния цепи Маркова, а дугам соответствуют переходы между состояниями.
2.2. Цепи Маркова
Последовательность случайных величин t, где tT - время, называется цепью Маркова с состояниями S = { 1,2, ... , N }, если
N P( t=k ) = 1, tT (2.1) k=1
и при любых 0 t1 < t2 < ... tn < g < t, любых i,j S и любых подмножествах B1, B2, ..., Bn множества S выполняется равенство
P( t = j | t1 B1, ... , tn Bn, g = i ) = P( t = j | g = i ) (2.2)
Приведенное свойство означает, что при фиксированном положении системы в данный момент времени будущее поведение системы (t > g) не зависит от поведения системы в прошлом, или более кратко: при фиксированном настоящем будущее не зависит от прошлого. Данное свойство называется свойством марковости.
В приложениях значения случайных величин t интерпретируются как номера состояний изучаемой системы, которая в моменты времени t меняет свое состояние. Цепь Маркова, в которой моменты времени t изменения состояний дискретны (то есть t=0,1,2,…), называется цепью с дискретным временем (ДВ), в отличие от цепей с непрерывным временем (НВ), в которых изменение состояний происходит в произвольные моменты времени. В дальнейшем будем рассматривать только цепи с ДВ.
Будем называть цепь Маркова t однородной, если при любых i,j S, вероятности
P( t+1 = j | t = i ) = pij, t = 0,1,2,..., (2.3)
не зависят от t. Матрицу P = ║ pij ║, элементами которой являются вероятности, называют матрицей вероятностей переходов, а вектор q = ( q1, q2, ... , qN ), где qi = P( 0 = i ), i = 1,2, ... , N, - вектором начальных вероятностей. Очевидно, что значения pij и qi должны удовлетворять условиям
pij ≥ 0, qi ≥ 0 (2.4) N qj = 1 (2.5) j=1 N pij = 1 (2.6) j=1
Для цепи, заданной матрицей вероятностей переходов P и вектором начальных вероятностей q, можем получить вектор распределений вероятностей в некоторый момент времени t
-
t
q( t ) = q * P k
k = 1
для случая неоднородной цепи (2.7)
q( t ) = q * P t для случая однородной цепи (2.8)