Você está na página 1de 22

Chapter

1
Planejamento de capacidade de sistemas através
de Cadeias de Markov

Rubens Matos, Julian Araújo, Francisco Vieira e Paulo Maciel

Resumo

Neste capítulo, pretende-se definir formalmente as cadeias de Markov e demons-


trar como elas podem ser utilizadas no planejamento de capacidade de sistemas compu-
tacionais, auxiliando na garantia de métricas de desempenho e disponibilidade. Serão
mostradas ferramentas que facilitam a análise de uma grande variedade de sistemas,
dando destaque a avaliação de redes de computadores e alguns tipos de sistemas dis-
tribuídos. Serão apresentados exemplos de avaliação de desempenho com métricas que
normalmente merecem interesse em diversos ambientes: tempo de resposta, taxa de con-
clusão de tarefas (throughput) e nível de utilização de recursos. Esses indicadores estão
diretamente relacionados à percepção do desempenho do sistema e podem também indi-
car a necessidade de mudanças, como atualização de componentes ou ajustes na confi-
guração.

1.1. Introdução
Em muitas atividades industriais, comerciais e humanas, bem como em fenômenos natu-
rais, está presente um alto grau de incerteza ou risco. Neste sentido, modelos matemáticos
probabilísticos têm sido utilizados para fazer previsões de valores para ajudar nas tomadas
de decisões. Dentre os modelos probabilísticos, um que se destaca é conhecido como pro-
cesso de Markov1 que corresponde a um fenômeno constituído de estados finitos e discre-
tos, e cuja probabilidade de transição entre tais estados, num intervalo de tempo também
discreto, depende apenas do estado corrente e do estado seguinte. Uma sequência de es-
tados seguindo este processo dá-se o nome de cadeia de Markov [20, 2, 4, 16, 22, 25]. Os
modelos Markovianos têm sido usados intensivamente na modelagem de desempenho e
dependabilidade desde a década de 50 [9]. As áreas onde os modelos de Markov podem
ser aplicados se incluem a Administração, Economia, Meteorologia, Física, Química e as
Engenharias.
1 Andrei Andrejevitch Markov (1856-1922) - matemático russo.
Markov obteve os primeiros resultados para estes processos em 1906. Uma gener-
alização para espaços de estados infinitos contáveis foi feita por Kolmogorov2 em 1936.
Cadeias de Markov estão relacionadas ao movimento Browniano e à hipótese ergódica,
dois importantes tópicos da Física nos primeiros anos do século XX, mas a motivação de
Markov para o desenvolvimento da teoria parece ter sido estender a teoria dos grandes
números a eventos dependentes.
Além do desempenho, aspectos de confiabilidade merecem grande atenção para a
garantia da qualidade do serviço prestado por um sistema. As cadeias de Markov podem
ser utilizadas para capturar o comportamento do sistema e permitir a descrição e previsão
de métricas de confiabilidade, como o tempo médio para falha, assim como a disponibil-
idade e o downtime anuais. A análise conjunta dos aspectos de desempenho e confiabil-
idade, chamada de análise de performabilidade, também será tratada neste estudo, uma
vez que muitos sistemas podem permanecer funcionais mesmo nas falhas. Além disso,
serão também apresentados os MRMs (Markov Reward Models) e uma introdução aos
modelos de
Neste capítulo, pretende-se mostrar como as cadeias de Markov podem ser uti-
lizadas no planejamento de capacidade de sistemas computacionais, auxiliando na garan-
tia de métricas de desempenho e disponibilidade almejadas. Serão apresentadas ferramen-
tas que facilitam a análise de uma grande variedade de sistemas. Como exemplos, serão
utilizados estudos de avaliação de desempenho com métricas que normalmente merecem
interesse em diversos ambientes, como tempo de resposta, taxa de conclusão de tare-
fas (throughput) e nível de utilização de recursos. Esses indicadores estão diretamente
relacionados à percepção do desempenho do sistema e podem indicar a necessidade de
mudanças, tais como upgrade de componentes ou ajustes na configuração.

1.2. Fundamentação teórica


Para entender o mecanismo das cadeias de Markov e suas aplicações, é essencial o con-
hecimento de conceitos fundamentais sobre probabilidade, diagramas de transição, ve-
tor de probabilidade, matriz de transição, cadeia ergódica, cadeia regular e regime esta-
cionário. Estes conceitos serão estudados a seguir.

1.2.1. Noções de probabilidade


As noções de experimentação, espaço amostral e eventos são fundamentais para o estudo
da teoria da probabilidade. Para este estudo a noção de conjunto é fundamental. Os
conjuntos podem ser finitos ou infinitos. Os conjuntos infinitos podem ser enumeráveis
ou não-enumeráveis. Um conjunto infinito é enumerável se for possível construir uma
bijeção entre ele e o conjunto N dos números naturais.
Um experimento probabilístico é alguma ocorrência similar ao lançamento de uma
moeda ou de um dado, cujos resultados não são determinísticos. No caso do lançamento
de uma moeda, pode aparecer cara (H) ou coroa (T). No caso do lançamento de um dado
podem aparecer qualquer valor entre 1 e 6.
Espaço amostral. Define-se como espaço amostral, associado a um experimento, e

2 Andrey Nilolaevich Kolmogorov (1903 - 1987) - matemático russo.


denota-se por S o conjunto de todos os possíveis resultados deste experimento, podendo
ser finito, infinito enumerável ou infinito não enumerável. Qualquer subconjunto do es-
paço amostral é conhecido como “evento”.
No caso do lançamento de uma moeda, S = {H, T }. No caso do lançamento de
um dado, S = {1, 2, 3, 4, 5, 6}. Se o experimento for o lançamento de 3 moedas ao mesmo
tempo, S = {HHH, T HH, HT H, HHT, T T H, T HT, T T H, T T T }, onde o elemento T T H
é diferente do elemento HT T devido à posição das caras e das coroas nos dois elementos.
Como um exemplo mais interessante para usuários da computação, pode-se citar
o espaço amostral derivado de um experimento que consiste na observação do número de
e-mails chegados ao provedor do NPD (Núcleo de Processamento de Dados) da UFPI em
cada dia. Este espaço amostral é infinito enumerável porque pode-se rotular cada e-mail
que chega com um único número natural, n ∈ N, ou seja, S = {n | n ∈ N}.
Outro exemplo interessante consiste na medida dos tempos de espera em um ponto
de ônibus. Neste caso, S é infinito e cada resultado é um número real não negativo, ou
seja, S = {t | t ≥ 0}.
A definição de eventos como um subconjuntos de um espaço amostral S, per-
mite que as operações e propriedades típicas sobre conjuntos também possam ser a eles
aplicadas. Entre estas operações e propriedades se incluem a união, interseção e comple-
mentação, as leis da comutatividade, da associatividade, da distribuição, da identidade, da
idempotência, da dominação, da absorção e a lei de de Morgan e estas propriedades po-
dem ser verificadas graficamente através dos diagramas de Venn. Além disso, elas podem
ser extendidas para qualquer número de eventos [25].
Cálculo de probabilidades. A forma clássica de se calcular a probabilidade de um
evento A, que será denotada por P(A), com m elementos em um espaço amostral finito
S = {a1 , a2 , · · · an }, onde os n pontos amostrais ai (i = 1, 2, · · · , n) devem ter a mesma
probabilidade de ocorrer, ou seja, eles são equiprováveis, é dada pela relação entre a quan-
tidade de casos favoráveis ao evento A e a quantidade de elementos do espaço amostral S,
apresentada como um número real ou em percentagem. Ou seja, P(A) = mn .
Exemplo. Ao se retirar aleatoriamente uma carta de um baralho com 52 cartas, todas elas
1
têm a mesma probabilidade de ser a carta escolhida. Neste caso, a probabilidade será 52 .
4
No entanto, a probabilidade de que esta carta seja uma dama é 52 , uma vez que existem 4
damas em um baralho.
Eventos exclusivos. Dois eventos A e B são ditos mutuamente exclusivos ou disjuntos
se a interseção entre eles for vazia, ou seja, se A ∩ B = 0.
/ Se os eventos A e B forem
mutuamente exclusivos, então não é possível que ambos ocorram no mesmo experimento.
Diz-se que os eventos de uma lista são mutuamente exclusivos se todas as interseções
entre eles resultarem no evento nulo.
Eventos independentes. Diz-se que dois eventos são estatisticamente independentes se a
ocorrência de um deles não afetar a ocorrência do outro. Desta forma, dois lançamentos
seguidos de um mesmo dado constituem dois eventos independentes porque o resultado
do primeiro lançamento não tem qualquer influência sobre o resultado do segundo, e vice-
versa.
Multiplicação de probabilidades. Sendo Ai eventos independentes, a probabilidade da
ocorrência conjunta é definida pela regra da multiplicação

P(A1 .A2 . · · · An ) = P(A1 ∩ A2 ∩ · · · ∩ An ) = P(A1 ).P(A2 ). · · · .P(An )

Exemplo. No lançamento de duas moedas, a probabilidade de se obter duas caras é


1
4 = 0, 25 ou 25%. Este mesmo resultado pode ser obtido utilizando o fato dos dois
lançamentos serem independentes fazendo a multiplicação das probabilidades, ou seja,
P{HH} = P(H).P(H) = 12 . 21 = 14 .
Probabilidade condicionada. Se a condição de independência não for satisfeita, é neces-
sário usar uma fórmula mais geral, que envolve as probabilidades condicionadas. Neste
caso, sendo dados dois eventos A e B, a probabilidade de que o evento B ocorra, mas com
a informação adicional de que o evento A já ocorreu, é denotada por P(B | A), que se lê:
“probabilidade de B dado que A já ocorreu”.
Exemplo. Seja a retirada ao acaso de uma carta em um baralho de 52 cartas e sejam
os eventos A = A carta é de paus e B = A carta é um 10. A probabilidade da carta
1
selecionada ser um 10 de paus é 52 . Porém, a probabilidade da carta ser um 10, mas
já sabendo antecipadamente que o naipe é paus, reduz o espaço amostral que passa a
ter somente 13 elementos, em vez de 52. Isto significa que a probabilidade com esta
1
inflormação é 13 .
De um modo geral, dados dois eventos não independentes A e B, a probabilidade
condicionada de A dado que B já aconteceu é dada por

P(A.B) P(A ∩ B)
P(A | B) = =
P(B) P(B)

Axiomas da probabilidade. Seja S um espaço amostral de um experimento randômico.


Se o evento A consistir do único ponto da amostra, s, então P(A) = P(s). A função de
probabilidade P deve satisfazer aos seguintes axiomas devidos a Kolmogorov.

A1 : 0 ≤ P(A) ≤ 1, para qualquer evento A ⊆ S.

A2 : P(S) = 1.

A3 : P(A1 ∪ A2 ∪ A3 ∪ · · · ) = P(A1 ) + P(A2 ) + P(A3 ) + · · · desde que todos os eventos


Ai sejam mutuamente exclusivos.

Exercícios resolvidos.

1. Para qualquer evento A, P(A) = 1 − P(A).


Prova: Como A e A são eventos mutuamente exclusivos, então S = A ∪ A. Pelo
axioma A2, P(S) = 1 = P(A) + P(A), donde P(A) = 1 − P(A).

/ = 0.
2. Sendo 0/ o evento impossível, então P(0)
/ Logo, P(S) = 1 − P(S) = 1 − 1 = 0, pelo axioma A2.
Prova: Sabe-se que S = 0.
Variáveis aleatórias. Dado um experimento e um espaço amostral S a ele associado,
denomina-se variável aleatória à função X que associa a cada elemento s de S um número
real X(s). Como pode ser notado, a definição de uma variável aleatória é a mesma
definição de função, o que pode gerar alguma dúvida, notadamente aos iniciantes neste
estudo.
Seja X uma variável aleatória. Se os valores de X formarem um conjunto finito ou
infinito enumerável, então X é denominada variável aleatória discreta. Se, no entanto,
este conjunto for um intervalo ou uma coleção de intervalos, ela é denominada variável
aleatória contínua.
Função de probabilidade. Seja X uma variável aleatória discreta. Sejam x1 , x2 , x3 , · · · ,
seus possíveis valores. A cada resultado xi associamos um número real p(xi ) = P(X = xi ),
que é a probabilidade do ponto xi , de forma que:

1. p(xi ) ≥ 0, para todo xi e

2. ∑∞
i=1 p(xi ) = 1

Esta função é denominada função de probabilidade da variável aleatória X.


Lei da probabilidade total. Sendo A e B dois eventos, sabe-se que a interseção de A com
o espaço amostral S é igual a A e que a interseção de B com seu complemento BC é o
conjunto vazio, ou seja,
A = A ∩ S e B ∪ BC = S

substituindo a segunda equação na primeira e aplicando-se o Teorema de de Morgan,


encontra-se
A = A ∩ (B ∪ BC ) = (A ∩ B) ∪ (A ∩ BC )

No entanto, os eventos A ∩ B e A ∩ BC são mutuamente exclusivos e isto pode ser


verificado através dos diagramas de Venn para dois conjuntos A e B. Desta forma, pode-se
utilizar o axioma A3 das probabilidades para encontrar

P(A) = P(A ∩ B) + P(A ∩ BC )

Esta equação além de facilitar os cálculos de probabilidade em muitas situações


pode ainda ser utilizada para qualquer partição de eventos que sejam mutuamente exclu-
sivos. Neste caso, sendo dados n eventos mutuamente exclusivos, Bi , i = 1, 2, · · · , n de
um espaço amostral S e um evento qualquer A, a equação generalizada é dada por
n
P(A) = ∑ P(A ∩ Bi ), n ≥ 1
i=1

que é conhecida como a lei da probabilidade total. Esta equação normalmente é apresen-
tada sob a forma de probabilidades condicionais, ou seja,
n n
P(A) = ∑ P(A ∩ Bi ) = ∑ P(A | Bi )P(Bi )
i=1 i=1
Distribuição das probabilidades. Uma distribuição de probabilidades é um modelo
matemático que relaciona o valor da variável aleatória com a probabilidade de ocorrên-
cia desse valor no espaço amostral ou na população. Estes pontos, na forma (xi , p(xi )) ∈
S ×R, podem ser plotados em um gráfico para se verificar a forma como eles se distribuem
ao londo do espaço amostral S. Esta distribuição pode ser discreta ou contínua.
Distribuição discreta de probabilidades. Quando o parâmetro que está sendo medido só
pode assumir certos valores, como por exemplo valores inteiros 0, 1, 2, . . . , a distribuição
de probabilidades é chamada discreta. Por exemplo, o lançamento de um dado só pode
apresentar os resultados 1, 2, 3, 4, 5 e 6. Portanto a distribuição de suas probabilidades é
discreta.
Exemplo. Seja encontrar a distribuição discreta das probabilidades da variável aleatória
discreta que consiste no lançamento de três moedas. Neste caso o espaço amostral S =
{HHH, HHT, HT H, T HH, HT T, T HT, T T H, T T T } e X = {0, 1, 2, 3} (o número de caras).
Ou seja,
X = 0 ⇒ {T T T }
X = 1 ⇒ {HT T, T HT, T T H}
X = 2 ⇒ {HHT, HT H, T HH}
X = 3 ⇒ {HHH}
xi 0 1 2 3
Desta forma, pode-se construir uma tabela como 1 3 3 1
p(xi ) 8 8 8 8
e plotar os pontos (xi , p(xi )) em um gráfico para se ter a noção da forma como a dis-
tribuição se comporta. Isto pode ser visto na Figura 1.1.

p(x i)
3/8

1/8

0 1 2 3 xi

Figure 1.1. Gráfico de uma distribuição discreta de probabilidades.

Distribuição contínua de probabilidades. Quando a variável que está sendo analisada


tem valores em intervalos reais, a distribuição das probabilidades destes valores é con-
tínua. Uma função matemática cujos valores sejam as probabilidades em cada ponto do
intervalo real, é chamada de função densidade de probabilidade, normalmente denotada
por fdp. A área sob a curva que expressa a fdp é igual a 1 que é o valor total das probabil-
idades. Esta forma pode ser verificada no gráfico da Figura 1.2.
A definição da função que dá a distribuição de probabilidades é feita encontrando-
se a função que passe pelos pontos (xi , p(xi ). Esta tarefa nem sempre á fácil de ser real-
izada. Felizmente existem alguns modelos de distribuição de probabilidades que podem
p(x)

P(a < x < b)

a b x

Figure 1.2. Gráfico de uma função densidade de probabilidades.

minorizar este problema, evitando a tarefa de encontrar esta função para cada experi-
mento. No caso do exemplo de distribuição discreta mostrado anteriormente, a função é
dada por ( )
1 3
p(x) = para x = 0, 1, 2, 3
8 x
Entre as distribuições discretas de probabilidades se destacam a distribuição bi-
nomial, a distribuição de Poisson, a distribuição hipergeométrica e outras. Entre as dis-
tribuições contínuas, as mais comuns são a distribuição normal ou de Gauss, a distribuição
exponencial, a distribuição qui-quadrado, a distribuição t de Student, a distribuição Erlang
e outras. Este tema deve ser estudado na bibliografia adequada sobre Probabilidade e Es-
tatística.

1.3. Introdução às cadeias de Markov


Um modelo Markoviano pode ser descrito como um diagrama de espaço de estados as-
sociado a um processo Markoviano, que constitui uma classe especifica de processo es-
tocástico. Uma definição de processo estocástico é apresentada a seguir:

Um processo estocástico é definido como uma classe de variáveis aleatórias


{Xt : t ∈ T }, em que cada variável Xt é indexada por um parâmetro t ∈ T , que
normalmente é chamado parâmetro de tempo se T ⊂ R+ = [0, ∞), i.e., T está
contido no conjunto dos números reais não-negativos. O conjunto de todos
os valores possíveis de Xt (para cada t ∈ T ) é conhecido como o espaço de
estados S do processo estocástico [2].

Muitos sistemas têm a propriedade de que conhecendo-se seu estado atual, os es-
tados passados não têm qualquer influência sobre os estados futuros. Esta propriedade é
conhecida como propriedade Markoviana e sistemas com esta característica são descritos
como processos estocásticos Markovianos [1]. Dito de outra forma, um processo estocás-
tico é dito Markoviano se, dado o valor de Xt , o valor de Xs , onde s > t, não depende dos
valores de Xu , ∀u, tal que u < t.
Um processo Markoviano se caracteriza por esta “ausência de memória”, uma vez
que a distribuição condicional do estado no futuro depende apenas da informação mais
recente.
As cadeias de Markov são casos particulares de processos estocásticos Marko-
vianos, em que o número de estados possíveis é finito ou infinito enumerável. Na real-
idade, elas são tipos mais simples de processos estocásticos que possuem propriedades
importantes quando o número de transições cresce.
As propriedades a seguir são válidas para as cadeias de Markov.

1. Pi j ≥ 0 para quaisquer estados i e j.

2. Pi j ≤ 1 para quaisquer estados i e j.

3. ∑∞j=0 Pi j = 1 para todo i = 0, 1, 2, · · ·

Matriz de transição. Para efeito deste estudo, as probabilidades de transições dos estados
Xn = i para os estados Xn+1 = j são conhecidas como probabilidades de transições de
passo único ou apenas probabilidades de transições das cadeias de Markov, ou seja,

pi j = P{Xn+1 = j | Xn = i}, ∀n

A matriz P formada pelos elementos pi j da linha i e da coluna j, para todos os i


e j, é chamada de matriz de probabilidades de transições ou apenas matriz de transições.
Assim temos
 
p00 (n) p01 (n) p02 (n) ··· p0 j (n) · · ·
 p10 (n) p11 (n) p12 (n) ··· p1 j (n) · · · 
 
 p20 (n) p21 (n) p22 (n) ··· p2 j (n) · · · 
 .. 
P(n) =  .. .. .. .. .. 
 . . . . . . 
 
 pi0 (n) pi1 (n) pi2 (n) ··· pi j (n) · · · 
.. .. .. .. .. ..
. . . . . .

Uma maneira simples de visualizar uma cadeia de Markov é através de uma


máquina de estados finitos ou por meio de um grafo dirigido, onde cada aresta é rotu-
lada com as probabilidades de transição de um estado para o outro, sendo estes estados
representados pelos nós, conectados pelas arestas. Vamos introduzir esta idéia através de
um exemplo.
Exemplo. Considere uma cadeia de Markov que descreve as mudanças climáticas diárias
de uma dada localidade. Vamos considerar apenas três tipos de padrão de tempo: chu-
voso (0), nublado (1) e ensolarado (2), onde o tempo é observado diariamente. Em um
determinado dia chuvoso, a probabilidade de que vai chover no dia seguinte é estimada
em 0, 8 e a probabilidade de que será nublado é de 0, 15, enquanto a probabilidade de que
o dia seguinte seja ensolarado é apenas 0, 05. Se um dia está nublado, a probabilidade
de que o dia seguinte também seja nublado é 0, 2, de que seja chuvoso é 0, 7, e de que
seja ensolarado é 0, 1. Se um dia é ensolarado, a probabilidade de que o dia seguinte seja
também ensolarado é 0, 2, de que o dia seguinte seja nublado é 0, 3 e de que o dia seguinte
seja chuvoso é 0, 5. Graficamente, isto pode ser observado na Figura 1.3, onde também
está mostrada a matriz de transições.
p 0,8 0,15
p 01 0,2
p
00 11
0 1 0 1
0,7
p
10

p p 0,5 0,3
p 20 21 0,1
p 0,05
02 12

p
2

0,2
[0,8 0,15
P = 0,7 0,2
0,5 0,3
0,05
0,1
0,2
]
22

a) b) c)

Figure 1.3. Diagrama de transições.

Uma cadeia de Markov é dita homogênea se para todos os estados i e j


P{Xn+1 = j | Xn = i} = P{Xn+m+1 = j | Xn+1 = i}

para n = 0, 1, 2, · · · e m ≥ 0. A probabilidade de ir para o estado j no passo n + 1 e para o


estado k no passo n + 2, dado que a cadeia está no estado i no passo n é dada por
P{Xn+2 = k, Xn+1 = j | Xn = i}
= P{Xn+2 = k, Xn+1 = j, Xn = i}P{Xn+1 = j | Xn = i}
= P{Xn+2 = k, Xn+1 = j}P{Xn+1 = j | Xn = i}
= p jk (n + 1)pi j (n)

onde foram usadas inicialmente as propriedades da probabilidade condicional e depois a


propriedade da cadeia de Markov. Uma sequência de estados visitados por uma cadeia é
chamada de caminho da amostra. Assim, p jk (n + 1)pi j (n) é a probabilidade do caminho
da amostra i, j, k que inicia no estado i no passo de tempo n.
Exemplo (uma cadeia de Markov não homogênea). Seja a cadeia discreta de Markov
{Xn , n = 1, 2, · · · } com apenas os estados a e b. No passo n a probabilidade de que a
cadeia permaneça em seu estado atual é dada por paa (n) = pbb (n) = 1/n, enquanto a
probabilidade de que ela mude de estado é pab (n) = pba (n) = (n − 1)/n, conforme pode
ser visualizado na Figura 1.4.

1/n (n-1)/n 1/n


a b

(n-1)/n
Figure 1.4. Uma cadeia de Markov de dois estados.

A matriz de transições é dada por


[ ]
1/n (n − 1)/n
P(n) =
(n − 1)/n 1/n

e as primeiras quatro matrizes de transições são dadas por


[ ] [ ] [ ] [ ]
1 0 1/2 1/2 1/3 2/3 1/4 3/4
P(1) = , P(2) = , P(3) = , P(4) =
0 1 1/2 1/2 2/3 1/3 3/4 1/4
Como pode ser observado pelas matrizes de transições, as probabilidades de que a
cadeia mude de estado vai aumentando, enquanto as probabilidades de que ela permaneça
nos estados anteriores vai diminuindo a medida que o tempo passa. Pode-se observar o
comportamento markoviano, onde cada matriz depende apenas do estado anterior e não
de outros estados. A probabilidade de que seja tomado o caminho que inicia no estado a e
permaneça neste estado após as duas primeiras transições e depois move-se para o estado
b lá permanece após o terceiro e quarto passos é dada por

P{X5 = b, X4 = b, X3 = a, X2 = a | X1 = a}
= paa (1)paa (2)pab (3)pbb (4)
= 1 × 1/2 × 2/3 × 1/4 = 1/12

1.3.1. Tipos de cadeias de Markov


Cadeias de Markov podem ser classificadas quanto à natureza do tempo de transição entre
os estados, ou seja, discreto (DTMC - Discrete-Time Markov Chain) ou contínuo (CTMC
- Continuous-Time Markov Chain). Nas cadeias de Markov de Tempo Discreto as tran-
sições podem ocorrer somente em intervalos de tempo conhecidos, isto é, passo-a-passo.
Este é o caso dos exemplos apresentados anteriormente. Sistemas que são bem represen-
tados por DTMCs incluem aqueles onde as transições ocorrem seguindo uma base diária,
como visto na Figura 1.3, e aqueles que seguem um relógio discreto como o escalonador
de tarefas num computador. Se as transições entre estados puderem ocorrer em instantes
de tempo arbitrários (contínuos) a cadeia de Markov é uma CTMC. A propriedade Marko-
viana de ausência de memória é mantida para ambos os tipos de cadeias [2]. No caso da
DTMC, as transições obedecem a uma distribuição geomérica, pois esta é a única dis-
tribuição de tempo discreto que apresenta tal propriedade. No caso da CTMC, o tempo
das transições segue uma distribuição exponencial.
A Figura 1.5 é um exemplo simples de cadeia de Markov de tempo contínuo.
Neste caso, a matriz de transição é chamada de matriz geradora infinitesimal pois, neste
caso, as transições ocorrem com uma taxa, em vez de uma probabilidade, devido à na-
tureza contínua desse tipo de modelo. Considerando o modelo da Figura 1.5, a matriz
geradora Q é composta por elementos qii e qi j , onde i 6= j e ∑ qi j = −qii , ou seja, em uma
CTMC os elementos da diagonal têm seus valores definidos de forma que a soma de cada
linha da matriz seja igual a 0. Considerando um espaço de estados S = {0, 1, 2}, a matriz
Q será:

   
q00 q01 q02 −0, 001 0, 001 0
Q =  q10 q11 q12  =  0 −2 2 
q20 q21 q22 0, 2 0 −0, 2

Para calcular o vetor de probabilidade de uma CTMC, usa-se a Equação 1 (no


caso de probabilidades transientes, dependentes do tempo) ou o sistema de Equações 2
(no caso de probabilidades estacionárias, quando o tempo tende a infinito).

π 0 (t) = π (t)Q, given π (0). (1)


Figure 1.5. Uma cadeia de Markov de tempo contínuo.

π Q = 0, ∑ πi = 1 (2)
i∈S

Explicações detalhadas sobre como chegar a essas equações podem ser encon-
tradas em [2].
Cadeias de Markov também podem ser classificadas de acordo com a frequência
com que seus estados podem ser alcançados ao longo do tempo. Em uma cadeia irre-
dutível, cada estado pode ser alcaçado a partir de qualquer outro estado, de forma que
todos os estados são recorrentes3 nesse tipo de modelo. Se, uma vez que o sistema deixa
um determinado estado, aquele estado não puder mais ser visitado, a cadeia de Markov é
dita acíclica. Se uma cadeia não for acíclica nem irredutível, é classificada como phase-
type [18]. Ela irá, eventualmente, alcançar um estado absorvente4 , mas enquanto isso
não acontece, a cadeia passa por um ou mais estados transientes5 . A Figura 1.6 mostra
exemplos dos três tipos de cadeias.

Figure 1.6. Tipos de cadeias de Markov de acordo com a frequência de visitas


aos estados.

3 Um estado é chamado recorrente se o sistema é capaz de retornar a esse estado inúmeras vezes [18].
4 Um estado é chamado absorvente se uma vez que ele é alcançado, a cadeia não for capaz de sair desse
estado.
5 Um estado é chamado transiente se, durante um período de tempo finito, o sistema visitar esse estado

um número finito de vezes [18].


1.3.2. Modelos Markovianos com Recompensa
Os modelos Markovianos com recompensa (Markov reward models - MRM) [21] são
usados geralmente para obter métricas compostas, provendo a análise integrada de de-
sempenho e confiabilidade, por exemplo. Para construir um MRM, uma taxa constante de
recompensa ri é associada a cada estado i de uma cadeia de Markov. Também é possível
associar taxas de recompensa às transições da cadeia [24], e nesse caso elas são conheci-
das como recompensas de impulso (impulse rewards). Em geral, a recompensa associada
a um estado denota o nível de desempenho6 obtido pelo sistema enquanto encontra-se
naquele estado [18]. Usando novamente o modelo da Figura 1.5, se as taxas de recom-
pensas forem definidas como um vetor r = (r1 , r2 , r3 ) = (5, 0, −2), representando a receita
obtida em cada estado, a taxa de reward instantânea esperada para o tempo t é:

E[X(t)] = ∑ ri πi (t) = 5π0 (t) + 0π1 (t) + −2π2 (t). (3)


i∈S

E[X(t)] pode ser considerado como a receita média obtida pela operação do sis-
tema no tempo t. Outros tipos de recompensa podem ser usados, tais como poder com-
putacional, status de disponibilidade do sistema, finalização de tarefas por unidade de
tempo. Independentemente da taxa de recompensa, ri que é adotada, a recompensa esper-
ada em estado estacionário pode ser computada na forma da Equação 4.

E[X] = ∑ ri πi (4)
i∈S

Devido à possibilidade de calcular métricas como ganho médio em estado esta-


cionário e ganho total em um determinado intervalo de tempo, os modelos Markovianos
de recompensa têm sido vastamente adotados em estudos de performabilidade, que com-
binam aspectos de performance e dependabilidade como ferramentas unificadas [23].

1.3.3. Modelos de geração automática


DTMCs e CTMCs permitem a análise de muitos tipos de sistemas, com acurácia e poder
de modelagem adequados. Outros formalismos de modelagem, tais como as redes de
filas [7], redes de Petri estocásticas (SPNs) [15, 10], e redes de Petri determinísticas e
estocásticas (DSPNs) [11], podem ser consideradas técnicas de especificação de alto nível
para geração de cadeias de Markov. Esses formalismos são úteis em muitas ocasiões,
devido à possibilidade de explosão do espaço de estados da cadeia de Markov, à medida
que aumenta o número de componentes e a complexidade das interações num sistema.
Uma cadeia de Markov de tempo contínuo (CTMC) pode ser associada a uma
rede de Petri temporizada e estocástica. Em redes de Petri (RdP) isso é garantido devido
a ausência de memória no atraso dos disparos das transições (distribuição exponencial)
[14]. Nesse sentido, uma rede de Petri estocástica [8] é isomórfica ao formalismo da
CTMC.
6A palavra “desempenho” aqui é usada num sentido amplo, significando qualquer aspecto mensurável
do comportamento do sistema.
(a) Exemplo de uma rede de Petri.

M0 = (1,0,0,0)
t0 t1

M1 = (0,1,0,0) M2 = (0,0,1,0)
t2 t3
M3 = (0,0,0,1)
t4

M0
(b) Árvore de alcançabilidade.

t0 0
t1

1 2 t4
t2 t3
3
(c) Cadeia de Markov.

Figure 1.7. Exemplo da equivalência entre cadeia de Markov e rede de Petri.

Adicionalmente, para auxiliar na geração da cadeia de Markov equivalente à rede


de Petri estocástica, constrói-se a árvore de alcançabilidade. A árvore de cobertura ou
alcançabilidade baseia-se na geração de uma árvore que possibilite a representação de
todas as possíveis marcações de uma RdP. A Figura 1.7(a) representa um modelo em
RdP, sua representação através da árvore de alcançabilidade (Figura 1.7(b)) e a cadeia de
Markov equivalente (Figura 1.7(c)).
A partir da árvore de alcançabilidade, pode-se construir a cadeia de Markov equiv-
alente ao modelo. O espaço de estados da cadeia de Markov correspondente à árvore de
alcançabilidade de uma rede de Petri estocástica, sendo esta equivalente às marcações
encontradas. Por conseguinte, na Figura 1.7(b), a árvore de alcançabilidade possui 4 mar-
cações que são equivalentes aos estados da Cadeia de Markov.
1.4. Modelos clássicos para avaliação de desempenho e disponibilidade
Quando busca-se avaliar aspectos de desempenho e disponibilidade de um sistema, podem
ser gerados diferentes modelos, a depender da habilidade e experiência de quem os cria,
ou do nível de generalização utilizado, entre outras questões. Esta seção visa apresentar
exemplos de modelos que servem como base para muitos estudos, dos mais simples aos
mais complexos, envolvendo os aspectos de desempenho e disponibilidade de um sistema.

1.4.1. Cadeias de nascimento-morte


Uma cadeia de Markov homogênea, irredutível, de parâmetro contínuo é denominada
processo de nascimento e morte se as únicas mudanças permitidas, a partir de um deter-
minado estado i do processo, são para seus vizinhos imediatos, ou seja, para os estados
i + 1 (nascimento) ou para o estado i − 1 (morte). Um nascimento se processa com a taxa
λi e uma morte com a taxa µi , ou seja, dependem apenas do estado i. Este processo pode
ser visto graficamente na Figura 1.8.

λ0 λ1 λ2 λ3 λ4
0 1 2 3 4 ...........
μ1 μ2 μ3 μ4 μ5

Figure 1.8. Diagrama de um processo de nascimento e morte.

Este tipo de cadeia de Markov é muito utilizado para representar sistemas que fun-
cionam com base na simples chegada de requisições, que serão atendidas por n servidores.
A chegada de uma nova requisição é um nascimento na cadeia e, portanto, acontece com
uma taxa λi , ocupando um servidor do sistema. Já o serviço oferecido pelo sistema é efe-
tuado a uma taxa µi , configurando-se como uma morte na cadeia, que libera um servidor
para atender outras possíveis requisições.
Aspectos importantes do desempenho do sistema podem ser conhecidos através
da probabilidade de se estar em determinados estados da cadeia de nascimento e morte.
Um exemplo é a probabilidade do sistema encontrar-se ocioso, que corresponde a π0 . Se
essa probabilidade for calculada para estado estacionário do sistema, ainda pode-se obter
o tempo médio (em horas) de ociosidade do sistema ao longo do período de um ano. Para
isso, basta multiplicar π0 por 8760 horas, que é corresponde ao número de horas de 1
ano. De forma semelhante, se o sistema possui somente n servidores e chegarem novas
requisições com uma taxa λn , que não poderão ser atendidas devido a todos os servidores
estarem ocupados, a probabilidade de uma requisição ser rejeitada devido ao sistema estar
completamente ocupado é calculada como πn · λn .
Sistemas de fila também podem ser representados por cadeias de nascimento e
morte, com a finalidade de se obter métricas como ocupação média da fila e nível de
utilização do sistema. O custo energético médio do sistema também pode ser calculado,
ao associar recompensas (rewards) referentes à energia consumida em cada estado da
cadeia.
1.4.2. Modelos simples de falha e reparo
Quando se deseja analisar aspectos relacionados a eventuais falhas e reparos de um sis-
tema computacional, um modelo simples como o apresentado na Figura 1.9 pode servir
como base para as construções de outras cadeias mais complexas. Nesse modelo, há
apenas 3 estados possíveis para o sistema: Funcionando, Quebrado, ou Em Reparo.
Considerando-se, por exemplo, que o sistema esteja funcionando, uma falha ocorrerá
com uma taxa λ , que deve ser igual ao inverso do tempo médio para falha do sistema,
conhecido como MTTF (Mean Time To Failure). Se o MTTF do sistema for 1000 horas,
então o valor de λ será 1/1000, ou 0, 001.

Figure 1.9. Diagrama de um modelo simples de falha e reparo.

A ocorrência de uma falha coloca o sistema no estado Quebrado, à espera de


que a equipe de reparo seja acionada e possa efetivamente iniciar o conserto. A taxa δ
corresponderá ao inverso desse tempo gasto desde a falha até o início do reparo. Se esse
tempo for de 30 minutos, δ será igual a 2, pois deve-se considerar o inverso do tempo
em horas (1/0, 5). A partir do instante em que o sistema já se encontra em reparo, caso o
tempo médio desta atividade seja 2 horas, a taxa µ será igual a 0, 5.
Dentre as métricas mais importantes que se pode obter deste modelo, estão o per-
centual de disponibilidade (ou indisponibilidade) em estado estacionário (A) e o downtime
(tempo de indisponibilidade) anual (D). O percentual de disponibilidade é calculado sim-
plesmente através da probabilidade do sistema estar no estado Funcionando, πFuncionando .
É importante citar que o percentual de indisponibilidade (U) pode ser calculado indire-
tamente pelo percentual de disponibilidade, como 1 − A, ou diretamente através da soma
das probabilidades dos estados Quebrado e Em Reparo. Já o downtime anual, em horas,
será igual ao percentual de indisponibilidade multiplicado por 8760, que é o tempo em
horas correspondente a um ano. Obtém-se então D = U · 8760.
Cadeias de Markov mais complexas podem ser geradas ao conhecer aspectos de
falhas isoladas em componentes específicos de um sistema, de forma que ele continua
a funcionar mesmo após a quebra de algumas partes. Em muitos casos, o tamanho da
cadeia de Markov cresce exponencialmente à medida que mais componentes do sistema
vão sendo representados, com suas respectivas falhas e reparos independentes. Diante
deste fato, é comum utilizar algumas simplificações que tornam o modelo mais fácil de
ser entendido e diminui o tempo exigido para sua solução.
1.5. Ferramenta de apoio à modelagem e soluções de cadeias de Markov
Nos últimos anos, diversos trabalhos têm sido desenvolvidos para avaliação e modelagem
de cadeias de Markov. Nesse sentido, algumas ferramentas são acadêmicas e comerciais.
Podemos citar Sharpe [3], JMT [3], Isograph [6] e R [17].

• SHARPE (Symbolic Hierarchical Automated Reliability and Performance Evalu-


ator) é uma ferramenta acadêmica para modelagem e avaliação de desempenho,
disponiblidade, confiabilidade e performabilidade. A ferramenta suporta a mode-
lagem através de árvore de falha, diagrama de blocos de confiabilidade, cadeia de
Markov, rede de Petri estocástica generalizada, entre outros.

• JMT (Java Modelling Tools) é um framework para avaliação de desempenho, plane-


jamento de capacidade e estudos de caracterização de carga. A ferramenta disponi-
biliza a modelagem de cadeia de Markov, redes de filas, entre outros.

• Isograph é uma ferramenta comercial para modelagem e avaliação de confiabili-


dade, predição de confiabilidade e manutenção. Além disso, a ferramenta oferece
análise através de diagrama de blocos de confiabilidade, análise dos efeitos dos mo-
dos de falha, análise por árvores de eventos e análise de árvore de eventos e análise
de Markov.

• R é um ambiente open source para análises estatísticas e gráficos. Adicionalmente,


a ferramenta suporta a modelagem de cadeia de Markov.

1.6. Estudos de casos


Os estudos de caso expostos a seguir ilustram algumas possibilidades de utilização das
cadeias de Markov, auxiliando na avaliação de cenários e descrevendo o comportamento
de sistemas que estão sempre exigindo altos níveis de desempenho, confiabilidade e
disponibilidade.

1.6.1. Planejamento de redundância em redes de computadores


Este estudo de caso é baseado em [12] e apresenta o planejamento de redundância em
uma rede de computadores, com base na análise da disponibilidade prevista para cada
arquitetura. Apenas roteadores e enlances entre os roteadores são considerados aqui.
Duas cadeias de Markov de tempo contínuo foram construídas para analisar as
arquiteturas de rede visadas. Na Figura 1.10, a cadeia de Markov representa o cenário
mais simples, sem redundância. Há somente um enlace, rotulado como L0, conectando
o roteador R0 ao roteador R1. Nesse modelo, a operação normal de um componente é
denotada por um rótulo U (up/ativo), e um componente quebrado é representado por um
rótulo D (down/inativo). Nessa cadeia de Markov, um estado é definido por uma sequência
de rótulos, representado o roteador R0, roteador R1 e enlace L0, respectivamente. λR0 ,
λR1 e λL0 são as respectivas taxas de falha de R0, R1 e L0. De modo similar, µL0 , µR0
e µR1 são as taxas de reparo de cada componente do sistema. Uma vez que qualquer
componente (R0, R1, ou L0) tenha falhado, o sistema completo está num estado de falha
e consequentemente nenhuma falha adicional pode ocorrer até que o componente seja
reparado. Para esse modelo, o sistema está ativo e funcionando somente no estado UUU.
Todos os outros estados estão acinzentados na Figura 1.10, representando os estados de
falha do sistema.

Figure 1.10. Cadeia de Markov para a disponibilidade de uma rede sem redundância

A Figura 1.11 mostra a cadeia de Markov para o sistema com redundância em


nivel de enlace. A notação é similar à do modelo anteior. A condição ideal para esse
sistema é denotada pelo estado UUUU, no qual todos os componentes estão ativos, em
condições normais.
A cadeia mostra que o sistema pode falhar devido à quebra de um dos roteadores,
ou falhas em ambos os enlaces. Uma hipótese assumida nesse modelo é que há uma
política de reparo, que prioriza o enlace L0 sobre o enlace L1, quando ambos falharem.

Figure 1.11. Cadeia de Markov para a disponibilidade de uma rede com re-
dundância no enlace

Os MTTFs dos componentes usados nas duas arquiteturas são: 131.000 horas para
os roteadores e 11.988 horas para os enlaces. O tempo médio para reparo (MTTR) é igual
a 12 horas, para todos os compoentes. Note que todos os λi nos modelos são iguais a
1/MT T Fi e todos os µi são iguais a 1/MT T Ri . As taxas são exibidas em vez dos tempos
devido à sua forma compacta, que facilita o entendimento dos modelos.
A análise do modelo sem redundância, em estado estacionário, provê um valor de
0,9980 para a disponibilidade desse sistema. Calculando a mesma métrica com o modelo
que possui redundância de enlace obtém-se 0,9995. Esse aumento na disponibilidade se
traduz em uma redução do downtime anual de 7,53 horas para 1,88 horas, configurando-se
num ganho importante para empresas e organizações que precisam manter sua infraestru-
tura de comunicação funcionando de forma ininterrupta, sob pena de degradação da im-
agem corporativa e grandes prejuízos financeiros por quebras de contrato e/ou perda de
possíveis clientes. Além de servir para comparar as métricas estimadas para diferentes
arquiteturas candidatas, as cadeias de Markov aqui poderiam ser usadas para verificar até
que ponto aumentos na confiabilidade de um determinado componente podem suprir os
requisitos do sistema sem a necessidade de comprar e instalar equipamentos para servir
de réplicas dos servidores e dados críticos presentes no sistema.

1.6.2. Avaliação de desempenho e confiabilidade de composições de web services


Este estudo de caso aborda inicialmente a análise de um processo de agente de viagem.
Tal sistema é composto de múltiplos serviços Web, exigindo passos específicos para com-
pletar a reserva de uma viagem. A Figura 1.12 mostra um diagrama de atividades UML
(Unified Modeling Language) para este processo, adaptado de [19].

Inicialização

Consulta - Aérea 1 Consulta - Aérea 2

Reserva - Aérea

Reserva - Hotel

Resp. ao cliente

Figure 1.12. Processo de agente de viagem.

No início do processo, o sistema de reserva de viagem busca simultaneamente


por vagas em duas companhias aéreas. Quando elas respondem, uma é escolhida com
base em algum critéiro tal como preço ou calendário. Se uma das linhas aéreas falhar
em responder, a outra é selecionada, e no caso de ambas falharem, o sistema agente de
viagem desiste e aborta. Outros passos incluem a invocação efetiva para reserva do bilhete
da companhia aérea, a reserva do hotel e a notificação de sucesso para o cliente. Qualquer
um dos web services pode falhar em responder e, neste caso, o sistema tenta se recuperar
através de reinicializações, exceto pela busca em companhias aéreas concorrentes.
Uma CTMC para esse sistema é exibida na Figura 1.13. Esse modelo foi con-
struído para calcular o desempenho e a confiabilidade da composição de Web services e
Figure 1.13. CTMC para a composição de Web services.

assim planejar possíveis mudanças no sistema.


A tradução das atividades do modelo UML para os estados da cadeia de Markov
é quase direta, com exceção de poucos estados que foram adicionados. RIni, RAresv,
RHt, e RRep representam os estados de reinicialização do Web service após uma falha.
Por exemplo, quando o serviço de Inicialização falha, o sistema vai para o estado RIni,
de onde há 2 próximos estados possíveis: a) Inicialização, se a falha que ocorreu for
coberta, ou seja, se pode ser resolvida com a reinicialização; e b) Falha, se a falha não foi
resolvida pela reinicialização, de forma que o sistema inteiro falha. Os outros estados de
reinicialização tem significados similares.
Os parâmetros mrspi , mrspa1 , mrspa2 , mrspai , mrspht and mrsprep correspondem
ao tempo de resposta médio dos seguintes web services, respectivamente: inicialização,
consulta à companhia área 1, consulta à companhia aérea 2, reserva da passagem áerea
(invocação), reserva do hotel e resposta ao cliente. Os outros parâmetros seguem uma
notação similar. Note que algumas taxas de transição são iguais ao inverso do tempo de
resposta médio do Web service (mrspx ), ponderado pela probabilidade de que a transição
ocorra, isto é, a confiabilidade do respectivo Web service (rx ).
1−rx
Se qualquer web service x falhar, a taxa da transição será igual a mrsp x
. As taxas
de transição saindo dos estados de reinicialização são iguais ao inverso do tempo médio
de reinicialização (mrx ), ponderado pelo fator de cobertura das falhas para aquele Web
service (Cx ), no caso de uma reinicialização com sucesso. Se a reinicialização daquele
web service não obtiver sucesso, o sistema faz uma transição para o estado Falha, com
uma taxa 1−C x
mrx .
Table 1.1. Valores dos parâmetros para o modelo do Agente de Viagem.
Componente Conf. (r) T resp. (mrsp) Cobertura (C) T reinic. (mr)
Inicialização (init) 1,0 1s 1,0 0,15 s
Consulta - aérea 1 (a1) 0,9 2s - -
Consulta - aérea 2 (a2) 0,9 2s - -
Invocação - cia. aérea (ai) 0,9 1s 1,0 0,15 s
Reserva hotel (ht) 0,9 2s 0.0 0,15 s
Resp. ao cliente (rep) 1,0 1s - 0,15 s

Os valores usados como base para a análise da cadeia de Markov são mostrados
na Tabela 1.1.
Analisando o modelo da Figura 1.13, se obtém, entre outras métricas, a proba-
bilidade do sistema encontrar-se no estado “Completo” no instante t (πCompleto (t)). O
valor de πCompleto (t) é equivalente à probabilidade do tempo de resposta do sistema ser
menor ou igual ao tempo t: P[Resp ≤ t]. Supondo que o projetista, ou desenvolvedor,
desse sistema esteja interessado num tempo de resposta de 8 segundos, calculamos então
πCompleto (8) = 0, 5173, ou seja, há 51,83% de probabilidade do sistema responder em 8
segundos ou menos. Calculando essa probabilidade para diferentes valores de tempo t,
obtém-se a curva apresentada na Figura 1.14. Através dela, percebe-se que há uma prob-
abilidade próxima a 100% de que o tempo de resposta seja no máximo 25 segundos. Esse
tipo de análise pode ser utilizada como base para a definição de contratos de nível de
serviço (SLA - Service Level Agreement) entre o provedor da aplicação de Agente de Vi-
agem e seus clientes, fornecendo estimativas concretas sobre o desempenho da aplicação
em questão, já levando em consideração aspectos de confiabilidade.

0,8
Probabilidade

0,6

0,4

0,2

0
0 5 10 15 20 25 30
Tempo de resposta (s)

Figure 1.14. Curva de probabilidade de conclusão de acordo com o tempo.

1.7. Considerações finais e perspectivas


Este capítulo tratou sobre a teoria que envolve as cadeias de Markov assim como sua utili-
dade no planejamento de capacidade de sistemas computacionais. Os exemplos de mode-
los e análises aqui apresentados servem como uma introdução capaz de guiar a construção
e análise de outros modelos mais sofisticados, possibilitando a avaliação do desempenho
e dependabilidade de vários tipos de sistemas. Espera-se que o leitor possa aproveitar o
máximo do texto, e aplicá-lo em ambientes reais, na academia e na indústria, expandindo
o conhecimento e a utilização deste formalismo e suas ferramentas associadas.

References
[1] BARROS, Mônica; Processos Estocásticos; Papel Virtual Editora; Rio de Janeiro;
2004.
[2] BOLCH, G., GREINER, S., de MEER, H., and TRIVEDI, K. S.; Queuing Networks
and Markov Chains: modeling and performance evaluation with computer science
applications; John Wiley and Sons; 2 ed.; 2001.
[3] BERTOLI, Marco and CASALE, Giuliano and SERAZZI, Giuseppe; JMT: perfor-
mance engineering tools for system modeling; SIGMETRICS Perform. Eval. Rev.
vol36; March, 2009.
[4] GUNTER, B.; GREINER, S.; de MEER, H. and TRIVEDI, K. S.; Queueing Net-
works and Markov Chains: Modeling and Performance Evaluation with Computer
Science Applications; 2nd edition; John Wiley & Sons, Inc.; 2006.
[5] HAVERKORT, B. and MEEUWISSEN, A.; Sensitivity and uncertainty analysis of
Markov-reward models. IEEE Transactions on Reliability, 44(1):147–154; 1995.
[6] Isograph; Reliability Workbench 11 http://www.isograph-software.com/. Último
acesso em 09 de Outubro de 2011.
[7] KLEINROCK, L. Queueing Systems, volume 1. Wiley, New York; 1975.
[8] MACIEL, P. R. M.. LINS, R. D. and CUNHA, P. R. F.; Introdução às Redes de Petri
e Aplicações; Sociedade Brasileira de Computação; Campinas, São Paulo. 1996.
[9] MACIEL, P. R. M.; TRIVEDI, K.; MATIAS JR R.; and KIM, D.; Performance
and Dependability in Service Computing: Concepts, Techniques and Research Di-
rections; Dependability Modeling. IGI Global, Hershey, Pennsylvania; 2011.
[10] AJMONE MARSAN, M., CONTE, G., and BALBO, G.; A class of generalized
stochastic petri nets for the performance evaluation of multiprocessor systems. ACM
Trans. Comput. Syst., 2:93–122. 1984.
[11] MARSAN, M. A. and CHIOLA, G.; On petri nets with deterministic and expo-
nentially distributed firing times. In Advances in Petri Nets 1987, covers the 7th
European Workshop on Applications and Theory of Petri Nets, pages 132–145, Lon-
don, UK. Springer-Verlag. 1987.
[12] MATOS JÚNIOR, R. de S., GUIMARÃES, A. P., CAMBOIM, K. M. A., MA-
CIEL, P. R. M., TRIVEDI, K .S.; Sensitivity Analysis of Availability of Redun-
dancy in Computer Networks. In Proceedings of the Third International Conference
on Communication Theory, Reliability, and Quality of Service, CTRQ 2010, pages
115–121, Budapest. IARIA. 2011.
[13] MENASCÉ, D. A.; ALMEIDA, V. A.; and DOWDY, L. W.; Performance by Design:
Computer Capacity Planning by Example. Prentice Hall PTR.; 2004.

[14] MOLLOY, Michael Karl; On the integration of delay and throughput measures in
distributed processing models; Phd Thesis; University of California, Los Angeles,
1981.

[15] MOLLOY, M. K.; Performance analysis using stochastic petri nets. IEEE Trans.
Comput., 31:913–917. 1982.

[16] NORRIS, J. R.; Markov Chains; Cambridge Series in Statistical and Probabilistic
Mathematics; 2009.

[17] R Project Page The R Project for Statistical Computing; http://www.r-project.org/.


Último acesso em 10 de Outubro de 2011.

[18] SAHNER, R. A., TRIVEDI, K. S., and PULIAFITO, A. Performance and reliabil-
ity analysis of computer systems: an example-based approach using the SHARPE
software package. Kluwer Academic Publishers, Norwell, MA, USA; 1996.

[19] SATO, N. and TRIVEDI, K. S.; Stochastic modeling of composite web services for
closed-form analysis of their performance and reliability bottlenecks. In ICSOC,
pages 107–118; 2007.

[20] SHAMBLIN, James E.; Pesquisa Operacional: uma abordagem básica; Editora
Atlas, São Paulo, 1979.

[21] SMITH, M. R., TRIVEDI, S. K., and NICOLA, F. V.; The analysis of computer
systems using markov reward processes. Technical report, Durham, NC, USA; 1987.

[22] STEWART, William J.; Probability, Markov chains, queues and simulation: the
mathematical basis of performance modeling. 2009.

[23] TRIVEDI, K. S., MUPPALA, J. K., WOOLET, S. P., and HAVERKORT, B. R.;
Composite performance and dependability analysis. Performance Evaluation, 14(2-
3):197–215; 1992.

[24] TRIVEDI, K. S., MALHOTRA, M., and FRICKS, R. M. Markov reward approach
to performability and reliability analysis. In Proceedings of the Second International
Workshop on Modeling, Analysis, and Simulation On Computer and Telecommu-
nication Systems, MASCOTS ’94, pages 7–11, Washington, DC, USA. IEEE Com-
puter Society. 1994.

[25] TRIVEDI, K. S.; Probability and Statistics with Reliability, Queuing, and Computer
Science Applications. John Wiley and Sons, 2nd. edition; 2002.

[26] TRIVEDI, K. S. and SAHNER, R.; SHARPE at the age of twenty two; doi =
http://doi.acm.org/10.1145/1530873.1530884; SIGMETRICS Perform. Eval. Rev.;
vol 36; ACM; March, 2009.

Você também pode gostar