160

Pontifícia - inf.pucrs.br · Star ek r T. Os tos agradecimen ão v para: Meus pais, Neumar e Nelsi Brenner, p or to do o ap oio dado em to das as ... subsistemas quase indep tes

Embed Size (px)

Citation preview

Pontifí ia Universidade Católi a do Rio Grande do Sul

Fa uldade de Informáti a

MQNA - Analisador de Redes de Filas de Espera

Markovianas

Leonardo Brenner

para obtenção do grau de Ba harel em Ciên ia da Computação

da Pontifí ia Universidade Católi a do Rio Grande do Sul

Porto Alegre, Dezembro 2001

.

à meus pais, Neumar e Nelsi, de todo meu oração.

.

Que a força esteja om vo ê...

StarWars

...onde nenhum homem jamais esteve.

Star Trek

Os agrade imentos vão para:

� Meus pais, Neumar e Nelsi Brenner, por todo o apoio dado em todas as ir-

unstân ias, as minhas es olhas e de isões e é laro pelo "apoio" �nan eiro

in ondi ional.

� Meus dois irmãos, Rosália e Ri ardo, pela ajuda dispensada de todas as

maneiras, seja lavando a louça, limpando o apartamento até a ajuda em

pesquisas e trabalhos.

� Todos meus amigos e amigas, os quais não vou itar nenhum por que sempre

falta alguém, pelo momentos agradáveis e divertidos na sua ompanhia, pelas

festas a que muitas vezes me arrastaram e que foram ompensadoras.

� Meu orientador, Paulo Fernandes, por obrança e orientação dispensada du-

rante vários anos de bolsa de pesquisa e prin ipalmente durante esse trabalho

de on lusão.

� Finalmente e espe ialmente agradeço a minha namorada Marina, pela pa iên-

ia ao lado nos �nais de semana passados na frente do omputador, pela

atenção e apoio dedi ada a mim em todos os momentos, pela par eria e om-

panheirismo quanto aos meus planos futuros.

Em �m, agradeço a todos que de alguma maneira me apoiaram, mesmo que tenha

esque ido de men ioná-los aqui.

Resumo:

Redes de Filas de Espera (QN - Queueing Networks) é provavelmente o mais popular dos

formalismos para avaliação de desempenho via métodos analíti os. Parte desta populari-

dade se deve às soluções a forma-produto propostas na dé ada de 70. Bastante populari-

zada pela sua idéia de lientes passando através de �las ( entros de serviço), QN podem

ser traduzidas para Cadeias de Markov, mas esta onversão sofre limitações impostas pela

explosão do espaço de estados gerado. Na dé ada de 80, as Redes de Aut�matos Esto ásti-

os (SAN - Sto hasti Automata Networks) introduzem um formalismo mais poderoso que

as QN, baseado em me anismos de sin ronismo e paralelismo. Utilizando a idéia de um

sistema dividido em subsistemas quase independentes (que interagem o asionalmente), as

SAN provêem soluções numéri as e� ientes, podendo evitar os prejuízos da explosão do

espaço de estados das adeias de Markov. A fa ilidade de modelagem das QN e o poder

de resolução das SAN tornam interessante e extremamente útil uma ferramenta de onver-

são automáti a entre os dois formalismos itados. Este trabalho des reve uma ferramenta

(MQNA) que resolve QN om soluções a forma-produto quando possível e transforma as

QN sem soluções à forma-produto em SAN, podendo ser resolvidas numeri amente.

Palavras have: Avaliação de desempenho, Redes de �las de espera, Redes de aut�-

matos esto ásti os, Soluções numéri as.

Abstra t:

Queueing Networks (QN) is probably the most popular formalism to performan e evalua-

tion using analyti methods. This popularity is partially due to the produ t-form solution

proposed in the 70's. Well known by its very intuitive idea of lients passing by servi e

enters (queues), QN an be translated into Markov hains, but this translation su�ers

limitations imposed by the state spa e explosion problem. By the 80's, the Sto hasti

Automata Networks (SAN) formalism was introdu ed to extend the power of QN by in-

luding the me hanisms of parallelism and syn hronism. SAN models des ribe a system as

a olle tion of almost independent subsystems, i.e., subsystems that intera t o asionally.

Re ently, SAN models an be numeri ally solved by very e� ient methods that avoid most

of the problems due to the state spa e explosion. A tool to onvert QN into SAN mod-

els an ombine the modelling onfort of the QN and the power of solution of the SAN.

This work des ribes a tool (MQNA) to analyti ally solve produ t-form QN and to onvert

non-produ t-form QN into SAN that an be numeri ally solved.

Title: Markovian Queueing Networks Analyser.

Keywords: Queueing networks, Numeri al solutions, Performan e evaluation, Sto has-

ti automata networks.

i

Sumário

1 Introdução 1

1.1 Breve Históri o da Avaliação de Desempenho . . . . . . . . . . . . . . . . . 2

1.1.1 Monitoração . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

1.1.2 Simulação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

1.1.3 Métodos Analíti os . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

1.2 Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

1.3 Estrutura do Volume . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

I Fundamentação Teóri a 5

2 Formalismos de Modelagem 7

2.1 Pro essos de Nas imento e Morte . . . . . . . . . . . . . . . . . . . . . . . 8

2.1.1 Notação de Kendall . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

2.2 Cadeias de Markov . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

2.2.1 Es ala de Tempo . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

2.2.2 Propriedades . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

2.2.3 Análise Esta ionária . . . . . . . . . . . . . . . . . . . . . . . . . . 12

2.3 Redes de Aut�matos Esto ásti os . . . . . . . . . . . . . . . . . . . . . . . 14

2.3.1 Aut�matos Esto ásti os . . . . . . . . . . . . . . . . . . . . . . . . 15

2.3.2 Eventos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

2.3.3 Funções . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

2.4 Redes de Filas de Espera . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

2.4.1 Redes à Forma-Produto . . . . . . . . . . . . . . . . . . . . . . . . 20

2.4.2 De�nição . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

2.4.3 Número de Servidores . . . . . . . . . . . . . . . . . . . . . . . . . 23

2.4.4 Número de Classes . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

2.4.5 Redes de Filas de Espera Abertas . . . . . . . . . . . . . . . . . . . 26

2.4.6 Redes de Filas de Espera Fe hadas . . . . . . . . . . . . . . . . . . 29

3 Conversão entre Formalismos 35

3.1 Ferramenta PEPS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

3.2 Método de Conversão . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

3.2.1 Modelo Bási o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

3.2.2 Modelos Multi-Classe . . . . . . . . . . . . . . . . . . . . . . . . . . 38

ii SUMÁRIO

3.3 Gramáti a para Des rição de QN em MQNA . . . . . . . . . . . . . . . . . 40

3.3.1 Unidades Sintáti as . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

3.3.2 Modelos CQN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

3.3.3 Modelo para OQN . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

3.4 Gramáti a para PEPS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

3.4.1 De laração de Constantes e Funções . . . . . . . . . . . . . . . . . . 50

3.4.2 Função de Al ançabilidade . . . . . . . . . . . . . . . . . . . . . . . 51

3.4.3 Des rição do Modelo . . . . . . . . . . . . . . . . . . . . . . . . . . 51

3.4.4 Des rição dos Resultados . . . . . . . . . . . . . . . . . . . . . . . . 53

II Des rição e Implementação da Ferramenta MQNA 55

4 A Ferramenta MQNA 57

4.1 Espe i� ação Geral da Ferramenta . . . . . . . . . . . . . . . . . . . . . . 57

4.1.1 Requisitos Gerais . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58

4.1.2 Formatos de Arquivos . . . . . . . . . . . . . . . . . . . . . . . . . 58

4.1.3 Interfa e om o Usuário . . . . . . . . . . . . . . . . . . . . . . . . 58

4.1.4 Fun ionalidades do Software . . . . . . . . . . . . . . . . . . . . . . 59

4.1.5 Plataformas Es olhidas . . . . . . . . . . . . . . . . . . . . . . . . . 60

4.2 Des rição Fun ional da Ferramenta . . . . . . . . . . . . . . . . . . . . . . 61

4.2.1 A Criação de Modelos . . . . . . . . . . . . . . . . . . . . . . . . . 62

4.2.2 Compilando um Modelo . . . . . . . . . . . . . . . . . . . . . . . . 62

4.2.3 Obtendo os Índi es de Desempenho . . . . . . . . . . . . . . . . . . 63

4.2.4 Convertendo um Modelo QN para SAN . . . . . . . . . . . . . . . . 64

4.2.5 Alterando Parâmetros do Modelo . . . . . . . . . . . . . . . . . . . 64

4.2.6 Salvando um Modelo . . . . . . . . . . . . . . . . . . . . . . . . . . 65

5 Implementação da Ferramenta 67

5.1 Linguagem de Programação Es olhida . . . . . . . . . . . . . . . . . . . . 67

5.1.1 Ferramentas Utilizadas . . . . . . . . . . . . . . . . . . . . . . . . . 69

5.2 De�nição das Classes e Métodos . . . . . . . . . . . . . . . . . . . . . . . . 70

5.2.1 Classe Matriz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71

5.2.2 Classe Qn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72

5.2.3 Classe CQn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74

5.2.4 Classe OQn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77

5.3 De�nição das Interfa es . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78

5.3.1 Interfa e Windows . . . . . . . . . . . . . . . . . . . . . . . . . . . 79

5.3.2 Interfa e Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83

III Manual do Usuário 87

6 Guia Rápido de Ini iação 89

6.1 Como Criar e Compilar um Modelo QN . . . . . . . . . . . . . . . . . . . . 90

6.2 Como Salvar um Modelo . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91

SUMÁRIO iii

6.3 Como Computar os Índi es de Desempenho . . . . . . . . . . . . . . . . . 92

6.4 Como Converter um Modelo . . . . . . . . . . . . . . . . . . . . . . . . . . 93

7 Manual de Referên ia do Usuário 97

7.1 Criando Modelos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98

7.1.1 Modelos Bási os . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98

7.1.2 Modelos Multi-Classe . . . . . . . . . . . . . . . . . . . . . . . . . . 99

7.1.3 Utilizando o Assistente para Criação de um Novo Modelo . . . . . . 100

7.2 Compilando Modelos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103

7.3 Salvando Modelos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103

7.3.1 Salvar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103

7.3.2 Salvar omo: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104

7.4 Cal ulando Taxas de Visita . . . . . . . . . . . . . . . . . . . . . . . . . . 104

7.4.1 Cal ulando Todas as Taxas . . . . . . . . . . . . . . . . . . . . . . 104

7.4.2 Cal ulando Taxas de Visita de uma Classe . . . . . . . . . . . . . . 105

7.4.3 Alterando Número Máximo de Iterações . . . . . . . . . . . . . . . 105

7.4.4 Alterando Erro Máximo A eitável . . . . . . . . . . . . . . . . . . . 106

7.5 Computando Índi es de Desempenho . . . . . . . . . . . . . . . . . . . . . 107

7.5.1 Salvando Resultados . . . . . . . . . . . . . . . . . . . . . . . . . . 108

7.6 Alterando Parâmetros do Modelo . . . . . . . . . . . . . . . . . . . . . . . 108

7.6.1 Alterando Parâmetros das Classes . . . . . . . . . . . . . . . . . . . 108

7.6.2 Alterando Parâmetros das Filas . . . . . . . . . . . . . . . . . . . . 111

7.7 Exibindo Resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113

7.7.1 Resultados Gerais . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114

7.7.2 Resultados das Classes . . . . . . . . . . . . . . . . . . . . . . . . . 114

7.8 Convertendo Modelos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115

7.9 Utilizando a Ajuda . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116

8 Exemplos 117

8.1 Modelo OQN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117

8.1.1 Criando o Modelo . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118

8.1.2 Computando os Índi es de Desempenho . . . . . . . . . . . . . . . 119

8.1.3 Convertendo o Modelo . . . . . . . . . . . . . . . . . . . . . . . . . 120

8.2 Modelo CQN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120

8.2.1 Criando o Modelo . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121

8.2.2 Computando os Índi es de Desempenho . . . . . . . . . . . . . . . 122

8.2.3 Convertendo o Modelo . . . . . . . . . . . . . . . . . . . . . . . . . 122

9 Con lusão 127

A Notação Utilizada 133

A.1 Notação de Kendall . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133

A.1.1 Tipos de distribuição . . . . . . . . . . . . . . . . . . . . . . . . . . 133

A.1.2 Dis iplinas de atendimento . . . . . . . . . . . . . . . . . . . . . . . 134

A.2 Cadeias de Markov . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134

A.3 Redes de Aut�matos Esto ásti os . . . . . . . . . . . . . . . . . . . . . . . 134

iv SUMÁRIO

A.4 Redes de Filas de Espera . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134

A.4.1 De�nição . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134

A.4.2 Índi es de Desempenho e Auxiliares . . . . . . . . . . . . . . . . . . 135

B Regras e Terminais da Gramáti a para QN 137

B.1 Tokens . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137

B.2 Regras da gramáti a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138

B.2.1 Iní io da Gramáti a . . . . . . . . . . . . . . . . . . . . . . . . . . . 138

B.2.2 De larações . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139

B.2.3 Redes de Filas de Espera Fe hadas . . . . . . . . . . . . . . . . . . 139

B.2.4 Redes de Filas de Espera Abertas . . . . . . . . . . . . . . . . . . . 139

B.2.5 Populações . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139

B.2.6 Des rição das Filas . . . . . . . . . . . . . . . . . . . . . . . . . . . 140

B.2.7 Parâmetros das Filas . . . . . . . . . . . . . . . . . . . . . . . . . . 140

B.2.8 Des rição das Classes . . . . . . . . . . . . . . . . . . . . . . . . . . 140

B.2.9 Parâmetros das Classes . . . . . . . . . . . . . . . . . . . . . . . . . 141

B.2.10 Parâmetros das Classes . . . . . . . . . . . . . . . . . . . . . . . . . 141

B.2.11 Auxiliares para Leitura de Números . . . . . . . . . . . . . . . . . . 141

v

Lista de Figuras

2.1 Representação grá� a da notação de Kendall . . . . . . . . . . . . . . . . . 9

2.2 Representação grá� a de uma adeia de Markov . . . . . . . . . . . . . . . 11

2.3 SAN apenas om eventos lo ais . . . . . . . . . . . . . . . . . . . . . . . . 16

2.4 Aut�mato ombinado da Figura 2.3 . . . . . . . . . . . . . . . . . . . . . . 16

2.5 SAN om um evento sin ronizante . . . . . . . . . . . . . . . . . . . . . . . 17

2.6 Aut�mato equivalente om transições sin ronizadas . . . . . . . . . . . . . 17

2.7 SAN om taxas fun ionais . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

2.8 Aut�mato om taxas fun ionais . . . . . . . . . . . . . . . . . . . . . . . . 19

2.9 Rede de Filas de Espera Aberta . . . . . . . . . . . . . . . . . . . . . . . . 26

2.10 Rede de Filas de Espera Fe hada . . . . . . . . . . . . . . . . . . . . . . . 30

3.1 Interfa e da ferramenta PEPS . . . . . . . . . . . . . . . . . . . . . . . . . 36

3.2 Modelo CQN mono- lasse . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

3.3 Modelo SAN equivalente ao modelo CQN anterior . . . . . . . . . . . . . . 38

3.4 Modelo OQN multi- lasse . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

3.5 Modelo SAN equivalente . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

5.1 Organização das lasses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70

5.2 Tela prin ipal da versão Windows . . . . . . . . . . . . . . . . . . . . . . . 79

5.3 Dados das lasses para modelos CQN . . . . . . . . . . . . . . . . . . . . . 80

5.4 Dados das lasses para modelos OQN . . . . . . . . . . . . . . . . . . . . . 80

5.5 Nome do novo modelo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81

5.6 Tipo do novo modelo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81

5.7 Número de lasses do novo modelo . . . . . . . . . . . . . . . . . . . . . . 82

5.8 Número de �las do novo modelo . . . . . . . . . . . . . . . . . . . . . . . . 82

5.9 Tela de ajuda . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83

5.10 Menu prin ipal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84

5.11 Opção para salvar um modelo . . . . . . . . . . . . . . . . . . . . . . . . . 84

5.12 Opção de ál ulo das taxas de visita . . . . . . . . . . . . . . . . . . . . . 85

5.13 Modi� ar parâmetros do modelo . . . . . . . . . . . . . . . . . . . . . . . . 85

5.14 Modi� ar parâmetros das lasses . . . . . . . . . . . . . . . . . . . . . . . 85

5.15 Modi� ar parâmetros das �las . . . . . . . . . . . . . . . . . . . . . . . . . 85

5.16 Exibir índi es de desempenho . . . . . . . . . . . . . . . . . . . . . . . . . 86

5.17 Menu de ajuda . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86

6.1 Figura do exemplo1.mqn des rito a seguinte . . . . . . . . . . . . . . . . . 90

vi LISTA DE FIGURAS

6.2 Conversão para SAN om ou sem restrição a apa idade . . . . . . . . . . 94

7.1 Figura do exemplo2.mqn . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98

7.2 Figura do exemplo3.mqn . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99

7.3 Nome do novo modelo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101

7.4 Tipo do novo modelo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101

7.5 Número de lasses do novo modelo . . . . . . . . . . . . . . . . . . . . . . 102

7.6 Número de �las do novo modelo . . . . . . . . . . . . . . . . . . . . . . . . 102

7.7 Alteração do número máximo de iterações . . . . . . . . . . . . . . . . . . 106

7.8 Alteração do erro máximo a eitável . . . . . . . . . . . . . . . . . . . . . . 107

7.9 Alteração do tempo de serviço . . . . . . . . . . . . . . . . . . . . . . . . . 110

7.10 Alteração da taxa de hegada de lientes . . . . . . . . . . . . . . . . . . . 111

7.11 Alteração do nome da �la . . . . . . . . . . . . . . . . . . . . . . . . . . . 112

7.12 Alteração do número de servidores da �la . . . . . . . . . . . . . . . . . . . 112

7.13 Alteração da apa idade da �la . . . . . . . . . . . . . . . . . . . . . . . . 113

7.14 Conversão para SAN om ou sem restrição a apa idade das �las . . . . . . 116

8.1 Modelo OQN mono- lasse om in o �las . . . . . . . . . . . . . . . . . . . 117

8.2 Modelo CQN om in o �las e uma lasse . . . . . . . . . . . . . . . . . . 120

vii

Lista de Tabelas

3.1 Palavras reservadas da gramáti a para MQNA . . . . . . . . . . . . . . . . 41

6.1 Índi es de desempenho do Exemplo1.mqn . . . . . . . . . . . . . . . . . . . 93

8.1 Índi es de desempenho do modelo oqn_ex.mqn . . . . . . . . . . . . . . . 119

8.2 Índi es de desempenho obtidos por PEPS . . . . . . . . . . . . . . . . . . . 120

8.3 Índi es de desempenho do modelo qn_ex.mqn . . . . . . . . . . . . . . . 122

8.4 Índi es de desempenho do modelo om restrição à apa idade . . . . . . . 126

B.1 Expressões regulares da gramáti a para MQNA . . . . . . . . . . . . . . . 137

B.2 Tokens da gramáti a para MQNA . . . . . . . . . . . . . . . . . . . . . . . 138

viii LISTA DE TABELAS

Capítulo 1

Introdução

Os métodos de análise e avaliação de desempenho de sistemas são ada vez mais utiliza-

dos em todo tipo de sistemas, tanto automáti os quanto manuais, omo meio de melhor

distribuir os re ursos disponíveis. A omplexidade res ente, prin ipalmente dos sistemas

de omputação, torna as té ni as de avaliação de desempenho de grande valia no desen-

volvimento de sistemas paralelos e distribuídos.

É desenvolvido ao longo deste trabalho um estudo sobre avaliação de desempenho de

sistemas. Para isso utiliza-se de alguns formalismos para modelagem de sistemas omo

Redes de Filas de Espera (QN - Queueing Networks) e Redes de Aut�matos Esto ásti os

(SAN - Sto hasti Automata Networks). Além disso, são estudadas também, té ni as

para onversão entre formalismos para modelagem e avaliação de sistemas.

O resultado deste estudo é a espe i� ação de uma ferramenta de software (MQNA) que

implementa os on eitos estudados sobre avaliação de desempenho, mais espe i� amente

sobre o formalismo de QN e té ni as de onversão de modelos QN em modelos em SAN.

Adi ionalmente, a ferramenta MQNA forne e solução à forma-produto de modelos QN,

onde este tipo de solução é possível, baseados nos trabalhos de Baskett, Chandy, Muntz

e Pala ios [3℄ e Reiser e Lavenberg [23℄.

2 CAPÍTULO 1. INTRODUÇ�O

1.1 Breve Históri o da Avaliação de Desempenho

Para avaliação de desempenho as té ni as dividem-se basi amente em três abordagens:

monitoração, simulação e métodos analíti os [8, 19℄.

1.1.1 Monitoração

A té ni a de monitoração onsiste na observação de um sistema real. Apesar de tra-

zer maior �delidade nos dados obtidos, esta abordagem apresenta algumas desvantagens

omo alto usto e tempo ex essivos. Outro problema que a monitoração apresenta é

que o sistema onstruído para obtenção dos dados pode ausar instabilidade no sistema

monitorado.

1.1.2 Simulação

A simulação onsiste no desenvolvimento de um modelo que imite o sistema real. Essa

imitação freqüentemente é em menor es ala de tempo e deve se restringir somente a

atributos relevantes do sistema real. Para isso os atributos representados no modelo devem

ser es olhidos om muita autela para que não se in luam erros ditos de modelagem.

Da mesma forma, é ne essário uidar para que não sejam deixados de lado detalhes

importantes do sistema real.

Um dos problemas en ontrados na té ni a de simulação é des obrir a quantidade de

dados que deve ser utilizada nas amostras de fun ionamento. Isso é fundamental para que

o pro esso de simulação não seja nem demasiadamente dispendioso, nem estati amente

insigni� ante a ponto de não representar a realidade a ser avaliada.

1.1.3 Métodos Analíti os

A abordagem de métodos analíti os onsiste em modelar um sistema real através das re-

lações matemáti as existentes no fun ionamento do sistema. Através de relações matemáti-

as pode-se des rever o sistema omo um onjunto de estados possíveis e transições entre

1.2. OBJETIVOS 3

estes estados. A não utilização de um onjunto de amostras na modelagem do sistema re-

presenta uma das prin ipais vantagens dos métodos analíti os sobre a simulação. Porém a

omplexidade dos modelos analíti os tende a ser maior do que nos modelos de simulação.

1.2 Objetivos

Redes de Filas de Espera (QN - Queueing Networks) é provavelmente o mais popular

dos formalismos para avaliação de desempenho via métodos analíti os [13, 19℄. Grande

parte desta popularidade se deve às soluções a forma-produto propostas na dé ada de

70 [3, 14, 23℄. Bastante popularizada pela sua idéia de lientes passando através de

�las ( entros de serviço), QN podem ser traduzidas para Cadeias de Markov. Porém,

esta onversão sofre limitações impostas pela explosão do espaço de estados gerado nas

Cadeias de Markov. Na dé ada de 80, as Redes de Aut�matos Esto ásti os (SAN -

Sto hasti Automata Networks) introduzem um formalismo mais poderoso que as QN,

baseado em me anismos de sin ronismo e paralelismo [8, 6, 21℄. Utilizando a idéia de um

sistema dividido em subsistemas quase independentes (que interagem o asionalmente), as

SAN provêem soluções numéri as e� ientes, podendo evitar os prejuízos da explosão do

espaço de estados das adeias de Markov.

A fa ilidade de modelagem das QN e o poder de resolução das SAN tornam então

interessante e extremamente útil uma ferramenta de onversão automáti a entre os dois

formalismos itados. Este trabalho des reve uma ferramenta de software denominada

MQNA (Markovian Queueing Networks Analyser - Analisador de Redes de Filas de Espera

Markovinas) que resolve QN om soluções a forma-produto quando possível e transforma

QN om espaço �nito de estados ( om ou sem soluções a forma-produto) em SAN. As quais

podem ser resolvidas numeri amente pela ferramenta PEPS[20℄ (Performan e Evaluation

of Parallel System).

4 CAPÍTULO 1. INTRODUÇ�O

1.3 Estrutura do Volume

Este trabalho foi dividido basi amente em três partes distintas. A primeira parte é sub-

divida em dois apítulos, onde o primeiro apítulo des reve os formalismos de modelagem

utilizados ou que tenham relações om os on eitos expostos. O segundo apítulo desta

primeira parte trata basi amente sobre as té ni as de onversão de modelos QN para

modelos SAN.

A segunda parte do trabalho ontém a do umentação da ferramenta MQNA. Nela

é feita a des rição da ferramenta proposta (Capítulo 4) e o relato dos detalhes mais

importantes da implementação (Capítulo 5).

Na ter eira e última parte deste trabalho in lui-se três apítulos. O primeiro apítulo

desta parte é um guia rápido de ini iação da ferramenta. O segundo ontém um manual

mais detalhado das fun ionalidade da mesma e o ter eiro traz dois exemplos de modelagem

e utilização da ferramenta MQNA om modelos QN.

In lui-se ainda dois apêndi es que trazem um resumo das notações utilizadas no de or-

rer do trabalho (Apêndi e A) e um onjunto dos tokens e regras utilizadas na gramáti a

riada para os modelos QN (Apêndi e B).

5

Parte I

Fundamentação Teóri a

Capítulo 2

Formalismos de Modelagem

A boa modelagem de um sistema é in�uen iada muitas vezes pela es olha do formalismo

orreto. Apesar de não haver uma úni a es olha orreta, pois vários formalismos são

apazes de des rever um mesmo sistema om igual representatividade, há no entanto

es olhas mais ou menos adequadas que podem di� ultar ou mesmo, em asos extremos,

impossibilitar a modelagem do sistema através daquele formalismo.

Neste apítulo serão apresentados alguns formalismos de modelagem de sistemas que

servirão omo a base teóri a para implementação da ferramenta MQNA. Dentre os for-

malismos que serão expostos ita-se:

� Pro essos de Nas imento e Morte [11℄ (�las mono-estação);

� Cadeias de Markov [26, 28℄;

� Redes de Aut�matos Esto ásti os (SAN - Sto hasti Automata Networks) [8, 6, 21℄.

Para estes formalismo será feito apenas uma apresentação, sem abranger os métodos de

resolução destes formalismo, por não serem tema deste trabalho. No entanto, sobre Redes

de Filas de Espera (QN - Queueing Networks) [13, 19℄, será apresentado o formalismo para

duas lasses de QN. São elas: Redes de Filas de Espera Fe hadas (CQN - Closed Queueing

Networks) e Redes de Filas de Espera Abertas (OQN - Open Queueing Networks), para as

8 CAPÍTULO 2. FORMALISMOS DE MODELAGEM

quais também serão apresentados os métodos de resolução MVA (Mean Value Analysis)

[23℄ para CQN e BCMP (Baskett, Chandy, Muntz e Pala ios) [3℄ para OQN.

2.1 Pro essos de Nas imento e Morte

Pro essos de nas imento e morte [11℄ são um dos asos mais simples de des rição de

sistemas reais. Admite-se a des rição destes sistemas através de somente dois pro es-

sos esto ásti os

1

que podem ser hamados simboli amente de pro esso de nas imento e

pro esso de morte.

Asso ia-se o pro esso de nas imento ao evento que tro a o estado do sistema de um

estado N para um estado N + 1, respeitando a des rição do modelo. A situação ontraria

asso ia-se o pro esso de morte, que o orre quando o sistema passa de um estado N para

um estado N - 1.

Para representação de Pro essos de Nas imento e Morte ou �las simples é freqüente-

mente utilizada a Notação de Kendall.

2.1.1 Notação de Kendall

A Notação de Kendall [11℄ é largamente usada para des rever sistemas de �las simples

ou Pro essos de Nas imento e Morte. A �la pode ser representada gra� amente omo

apresentado na Figura 2.1, e des rita textualmente pela notação:

A=B= � dis iplina da fila

1

Pro esso esto ásti o é um pro esso onde a o orrên ia de eventos se dá através de leis probabilísti as,

ou seja, as ara terísti as são des ritas por variáveis aleatórias. Desta forma, todos os demais fen�menos

que são relevantes o orrem segundo distribuições probabilísti as.

2.1. PROCESSOS DE NASCIMENTO E MORTE 9

A B

K

Figura 2.1: Representação grá� a da notação de Kendall

onde A indi a o tipo de distribuição para o intervalo de hegada, B representa o tipo

de distribuição para o intervalo de saída e indi a o número de servidores da �la ( > 1).

Os tipos de distribuição normalmente usados são representados por:

M Distribuição exponen ial;

E

(k)

Distribuição de Erlang om k fases;

H

(k)

Distribuição hiperexponen ial om k fases;

C

(k)

Distribuição de Cox om k fases;

D Distribuição determinísti a;

G Distribuição geral;

GI Distribuição geral om tempos de intervalos independentes.

Para este trabalho a distribuição usada nas �las será sempre a distribuição exponen ial,

salvo quando espe i� ado o ontrário.

A dis iplina da �la ou estratégia de serviço determina omo os lientes serão sele iona-

dos na �la. As dis iplinas mais omumente utilizadas são:

� FCFS (First Come First Served) - Primeiro a hegar é o primeiro a ser atendido;

� LCFS Preemptive (Last Come First Served) - Último a hegar é atendido, inter-

rompendo o serviço (preempção);

10 CAPÍTULO 2. FORMALISMOS DE MODELAGEM

� FCRS (First Come Randomi Served) - O atendimento é rand�mi o.

A notação de Kendall pode ser estendida de várias maneiras. A mais omum e uti-

lizada neste trabalho a res enta um parâmetro que representa a apa idade da �la. Esse

parâmetro é representado pela letra k. A notação estendida � a então om a seguinte

forma:

A=B= =k � dis iplina da fila

Como apa idade da �la (k) são onsiderados o tamanho da �la de espera ex lusiva-

mente mais o número de servidores, sendo sempre k > .

Os Pro essos de Nas imento e Morte, apesar de simples, são importantes por serem a

base para vários formalismos mais poderosos e omplexos.

2.2 Cadeias de Markov

Cadeias de Markov [26, 28℄ são um formalismo matemáti o para modelagem de sistemas.

Com elas des reve-se o fun ionamento de um sistema qualquer através de um onjunto de

estados possíveis e transições entre esses estados seguindo taxas de�nidas por leis expo-

nen iais. As Cadeias de Markov podem ser interpretadas omo uma máquina de estados

onde os nodos representam os estados possíveis e os ar os representam as transições entre

ada estado.

2.2.1 Es ala de Tempo

Uma adeia de Markov [26, 28℄ pode ser lassi� ada em dois tipos de a ordo om a es ala

de tempo [1℄:

� Cadeias de Markov a es ala de tempo ontínua (CTMC - Continuous Time Markov

Chains);

2.2. CADEIAS DE MARKOV 11

� Cadeias de Markov a es ala de tempo dis reta (DTMC - Dis rete Time Markov

Chains).

As CTMC diferem das DTMC por suas transições entre os estados da adeia poderem

o orrer em um instante de tempo qualquer e não em pontos dis retos de tempo.

2.2.2 Propriedades

Supõem-se para modelar uma adeia de Markov as seguintes propriedades, segundo itado

por Stewart em [27℄:

� Os estados do sistema são dis retos;

� A es ala de tempo para a transição entre os estados do sistema pode ser de forma

ontínua (CTMC) ou dis reta (DTMC);

� A transição entre os estados do sistema depende ex lusivamente do estado atual do

sistema, sem importar por quais estados prévios o sistema já passou ou irá passar ;

� A duração (CTMC) ou a probabilidade (DTMC) de transição de estados do sistema

dá-se obede endo a uma lei exponen ial ;

� A representação grá� a de uma adeia de Markov é feita por aut�matos, onde é

asso iado para ada lugar do aut�mato, um estado do sistema e para ada ar o uma

taxa (CTMC) ou uma probabilidade (DTMC) omo pode ser visto na Figura 2.2;

1

3

2

4

Figura 2.2: Representação grá� a de uma adeia de Markov

12 CAPÍTULO 2. FORMALISMOS DE MODELAGEM

� Uma adeia de Markov é representada, matemati amente, por uma matriz de tran-

sição de estados;

� Para CTMC a matriz de transição de estados é hamada de gerador in�nitesimal

(Q) e ada elemento numa linha i e numa oluna j representa a taxa de transição

do sistema do estado i para o estado j. Os elementos diagonais de Q representam o

ajuste ne essário para que a soma dos elementos de ada linha seja igual a zero;

� Para DTMC esta matriz de transição de estados é hamada de matriz esto ásti a

(P) e ada elemento representa a probabilidade de transição entre os estados. Os

elementos diagonais de P representam o ajuste ne essário para que a soma dos

elementos de ada linha dê igual a um.

2.2.3 Análise Esta ionária

O resultado da análise esta ionária para uma adeia de Markov é expresso pelo vetor de

probabilidade marginal dos estados do sistema. Esse vetor de�ne qual a probabilidade

(esta ionária) para ada um dos estados do sistema, ou seja, qual é a probabilidade de

que o sistema se en ontre naquele estado.

Supõe-se numa análise esta ionária o fun ionamento do sistema num tempo virtual-

mente in�nito.

O vetor de probabilidade é obtido pela resolução da matriz de transição através de

métodos de resolução de sistemas de equações lineares tanto numéri os quanto analíti os.

Os métodos analíti os têm a grande vantagem de forne er soluções para o sistema

sem que seja ne essário resolvê-lo numeri amente, porém têm sua apli abilidade bastante

reduzida por só servirem para modelos parti ulares, omo, por exemplo, equações para

resolver pro essos de nas imento e morte [28℄.

Os métodos numéri os, por sua vez, são bem mais abrangentes e podem ser divididos

2.2. CADEIAS DE MARKOV 13

em dois grupos [27℄:

� Métodos numéri os diretos;

� Métodos numéri os iterativos.

Os métodos numéri os diretos forne em uma solução exata para o sistema de equações

após um erto número �nito de passos e são mais indi ados para sistemas de equações

om uma matriz de transição de baixa ordem e não esparsa [26℄.

Já os métodos numéri os iterativos forne em soluções aproximadas que onvergem

para o valor orreto. Os métodos numéri os iterativos são onsiderados mais apropriados

para resolução de Cadeias de Markov do que os métodos numéri os diretos segundo onsta

na literatura [5, 26℄. Alguns exemplos de métodos numéri os iterativos são: Método de

Ja obi, Método da Potên ia e Método de Gauss-Seidel.

Será usado neste trabalho para a resolução de sistemas lineares pequenos o método

numéri o iterativo de Gauss-Seidel, que é dado pela seguinte equação:

x

(k)

j

=

b

j

P

j�1

i=0

a

ij

x

(k)

i

+

P

n�1

i=j+1

a

ij

x

(k�1)

i

a

jj

; 8j 2 S (2.1)

onde:

� a

ij

o elemento na linha i e na oluna j de uma matriz A;

� S é um onjunto de (0..n) onde n é a dimensão da matriz A;

� k é a iteração orrente;

� b

j

é dado pela equação 2.2 a seguir.

b

j

=

X

i2S

a

ij

x

i

(2.2)

14 CAPÍTULO 2. FORMALISMOS DE MODELAGEM

Foi adotado o Método de Gauss-Seidel para sistemas pequenos por ele onvergir mais

rapidamente do que o Método de Ja obi e o Método da Potên ia, apesar da sua insta-

bilidade numéri a. Porém por ser apli ado somente a sistema pequenos (menos de 20

estados) sua desvantagem não é relevante.

2.3 Redes de Aut�matos Esto ásti os

As restrições impostas pelos formalismos om soluções analíti as existentes até a dé ada de

70 levaram a bus a de novos formalismos, freqüentemente mais poderosos, que utilizavam

me anismos de sin ronismo e paralelismo.

Rede de Aut�matos Esto ásti os (SAN - Sto hasti Automata Netwoks) [8, 6, 21℄ é

um destes formalismos. SAN são bastante usadas para avaliação de desempenho devido

à equivalên ia de poder de modelagem om as Cadeias de Markov [26, 28℄ e a maior

fa ilidade de des rição de modelos e obtenção de um solução numéri a.

SAN é um formalismo para modelagem de sistemas baseado em Cadeias de Markov

om grandes espaços de estados. As SAN modelam um sistema através de vários sub-

sistemas que interagem o asionalmente, ditos, quase independentes, através de eventos

sin ronizantes e funções. Cada subsistema de uma SAN é des rito através de um aut�-

mato esto ásti o e suas transições através de um pro esso esto ásti o de tempo ontínuo

ou dis reto de�nido por uma distribuição exponen ial [2℄.

Para este trabalho só será utilizado modelos SAN om transições de�nidas por uma

es ala de tempo ontínua.

As SAN são bastante interessantes para modelar, prin ipalmente, sistemas distribuídos

em que as unidades independentes de pro essamento não interagem entre si a todo o

momento [5℄.

2.3. REDES DE AUTÔMATOS ESTOCÁSTICOS 15

Com a utilização de aut�matos esto ásti os para representar os subsistemas quase

independentes de uma SAN pode-se reduzir os prejuízos ausados pela explosão do espaço

de estados das Cadeias de Markov [26, 28, 6℄ viabilizando soluções numéri as e� ientes

[5℄.

2.3.1 Aut�matos Esto ásti os

Aut�mato é um modelo matemáti o de um sistema que possui entradas e saídas dis retas.

O sistema pode se en ontrar em qualquer um dentre um número �nito de estados do

sistema, o que resume as informações sobre entradas anteriores e o que é ne essário para

determinar o omportamento do sistema para as entradas seguintes [9℄.

Baseado nessa de�nição, pode-se des rever um aut�mato omo um onjunto �nito de

estados e um onjunto de transições entre esses estados. A denominação de esto ásti os

atribuída a esses aut�matos dá-se pela razão do tempo ser tratado om uma variável

aleatória om distribuição exponen ial [2℄.

O estado do modelo SAN, hamado de estado global é de�nido pela ombinação do

estado de todos os aut�matos. O estado individual de ada aut�mato é hamado de estado

lo al.

2.3.2 Eventos

Eventos são o orrên ias de transições que mudam o estado de um aut�mato. Transição

é a tro a de um estado para outro dentro de um aut�mato. Nos modelos SAN dois tipos

de eventos ausam transições entre estados:

� Eventos Lo ais - O primeiro tipo de transição de estados são ausados por eventos

lo ais e apesar de serem independentes, o orrem um de ada vez pois numa es ala

de tempo ontínua, nun a podem o orrer duas transições ao mesmo tempo. Os

eventos lo ais mudam somente o estado lo al do aut�mato em que o orreram e não

16 CAPÍTULO 2. FORMALISMOS DE MODELAGEM

são in�uen iadas ou mesmo in�uen iam o estado de outros aut�matos. A Figura

2.3 mostra uma SAN om dois aut�matos apenas om eventos lo ais.

2

1

3

4

5

x

(1)

y

(1)

z

(1)

u

(2)

w

(2)

A

(1)

A

(2)

Figura 2.3: SAN apenas om eventos lo ais

Na Figura 2.4 é apresentado o aut�mato ombinado da Figura 2.3.

5

4

4

xw

yu

yw

zw

zu

5

5

4

xu

2

2

3

3

1

1

Figura 2.4: Aut�mato ombinado da Figura 2.3

� Eventos Sin ronizantes - Os eventos sin ronizantes são um pou o mais omplexos do

que os eventos lo ais por terem a ela vários fatores asso iados, omo, por exemplo:

� Um identi� ador de evento sin ronizante asso iado a duas ou mais transições

sin ronizadas;

� Uma taxa de disparo asso iada a ada evento sin ronizante.

A o orrên ia do evento sin ronizante dá-se simultaneamente em todos os aut�matos

envolvidos. Pode-se ver o pro esso de sin ronização omo uma relação do tipo

2.3. REDES DE AUTÔMATOS ESTOCÁSTICOS 17

mestre-es ravo, em que a o orrên ia do evento sin ronizante em qualquer aut�-

mato, es olhido omo mestre do evento, obriga a o orrên ia do evento nos outros

aut�matos envolvidos, ditos aut�matos es ravos. Os eventos sin ronizantes são rep-

resentados no aut�mato mestre pela tripla (id,� ,�), onde id é o identi� ador do

evento sin ronizante, � é a taxa de disparo e � é a probabilidade de o orrên ia. Nos

aut�matos es ravos a taxa de disparo deve ser 1, sendo a tripla es rita da seguinte

maneira (id, 1, �). Para transições asso iadas a um mesmo evento sin ronizante

partindo do mesmo estado lo al deve-se apresentar a probabilidade de es olha en-

tre estas transições. Conseqüentemente o somatório destas probabilidades deve ser

igual a 1. Uma SAN om um evento sin ronizante é apresentado na Figura 2.5.

2

1

4

(s; 1; 1)

3

; (s; �

5

; �

1

)

(s; �

5

; �

2

)

x

(1)

y

(1)

z

(1)

u

(2)

w

(2)

A

(1)

A

(2)

Figura 2.5: SAN om um evento sin ronizante

O aut�mato equivalente à rede apresentada na Figura 2.5, ombina os dois aut�-

matos em um só, om é visto na Figura 2.6.

4

4

xu

zu

3

4

2

2

xw

zw

3

yw

1

1

yu

5

1

5

2

Figura 2.6: Aut�mato equivalente om transições sin ronizadas

18 CAPÍTULO 2. FORMALISMOS DE MODELAGEM

2.3.3 Funções

As taxas de o orrên ia de eventos lo ais e sin ronizantes podem ser tanto onstantes quan-

to fun ionais. Para taxas de o orrên ia onstantes asso ia-se a elas apenas um número

ou expressão que independe do estado do sistema. Já, para as taxas fun ionais, as quais

pode-se asso iar tanto a eventos lo ais omo sin ronizantes, não tem uma taxa �xa para

o orrên ia mas sim obede e a uma função do estado lo al de outros aut�matos da SAN. A

Figura 2.7 apresenta uma SAN om taxas fun ionais que obede e a função representada

na Equação 2.3.

f =

8

>

>

>

>

>

<

>

>

>

>

>

:

1

se A

(1)

= x

(1)

;

0 se A

(1)

= y

(1)

;

2

se A

(1)

= z

(1)

:

(2.3)

2

1

f

(s; 1; 1)

3

; (s; �

5

; �

1

)

(s; �

5

; �

2

)

x

(1)

y

(1)

z

(1)

u

(2)

w

(2)

A

(1)

A

(2)

Figura 2.7: SAN om taxas fun ionais

O aut�mato equivalente a SAN representada na Figura 2.7 é mostrado abaixo na

Figura 2.8

Todas as SAN om vários aut�matos podem ser representadas por um úni o aut�mato

ombinado, onde estão des ritos todos os estados da rede.

As SAN são des ritas formalmente através de álgebra tensorial. Mais informações

sobre o formalismo SAN podem ser en ontradas em [21℄.

2.4. REDES DE FILAS DE ESPERA 19

xu

zu

3

2

2

xw

zw

3

yw

1

1

yu

2

1

5

1

5

2

Figura 2.8: Aut�mato om taxas fun ionais

2.4 Redes de Filas de Espera

Proposta na dé ada de 50 o formalismo de Redes de Filas de Espera (QN - Queueing

Networks) [13, 19℄ teve seu surgimento om os trabalhos de Ja kson [10℄ e se tornaram

um dos mais onhe idos e utilizados formalismos para modelagem de sistemas. A grande

popularidade das QN se deve prin ipalmente a sua simpli idade, que se baseia na idéia

de lientes ( onsumidores) passando através de �las (estações de serviços).

As QN tiveram grande avanço até o �nal da dé ada de 70, devido prin ipalmente a

pesquisa desenvolvida por Little [14℄, por Baskett, Chandy, Muntz e Pala ios [3℄ e por

Reiser e Lavenberg [23℄. Os prin ipais resultados desta pesquisa foram soluções a forma-

produto para ertas lasses de QN.

Nestes trabalhos foram de�nidas equações que se apli am basi amente a duas lasses

de QN. As Redes de Filas de Espera Abertas (OQN - Open Queueing Networks), nas quais

o número de lientes é variável, e as Redes de Filas de Espera Fe hadas (CQN - Closed

Queueing Networks), as quais têm um número �xo de lientes na rede. Os algoritmos

para resolução e maiores detalhes sobre essas duas lasses de QN são apresentados nos

itens 2.4.5 e 2.4.6.

20 CAPÍTULO 2. FORMALISMOS DE MODELAGEM

QN são onstituídas de várias �las (estações de serviços), as quais são one tadas entre

si. Cada um dessas onexões representam as probabilidades de transição de uma �la para

outra, des revendo possíveis aminhos por onde os lientes podem passar. Cada �la ou

estação de serviço é uma entidade independente que modela um re urso de um sistema

real e des reve a dis iplina de a esso de liente àquele re urso. Para des rever ada �la se

faz uso então da Notação de Kendall, exposta anteriormente na seção 2.1.1. Os lientes

por sua vez, são entidades que utilizam os re ursos serialmente. Os lientes podem por

prin ípio serem transferidos entre duas estações de uma mesma rede, e até retornar para

a própria estação que havia deixado.

A de�nição formal de uma QN impli a na de�nição de ada estação de serviço e

também na de�nição dos aminhos possíveis entre as �las. A de�nição dos aminhos dá-

se através da atribuição de probabilidades de rotação dos lientes através das �las. Essa

atribuição de probabilidade de rotação é a possibilidade de que um liente saia de uma

�la i e vá para uma �la j.

Dos vários tipos de modelos QN existentes, tem-se, no ontexto deste trabalho, inte-

resse nos modelos de QN que podem ser traduzidos para Cadeias de Markov e por isso

são ditos Redes de Filas de Espera Markovianas.

2.4.1 Redes à Forma-Produto

Uma rede é onsiderada à forma-produto quando quatro hipóteses de�nidas para que se

possa obter resultados exatos são veri� adas. Estas hipóteses fazem menção à apa idade

das �las, aos pro essos de hegada e serviço, à probabilidade de rotação de lientes na

rede e ao equilíbrio de �uxo das estações.

Estas hipóteses são:

� Filas de espera om apa idade ilimitada - Por prin ípio, as redes à forma-produto

tem a apa idade das �las ilimitada. Assim, um liente sempre será admitido na

2.4. REDES DE FILAS DE ESPERA 21

�la de uma estação, des artando a possibilidade de bloqueio ou perda de um liente

em uma estação por falta de espaço em qualquer uma das estações seguintes. Nas

CQN, essa hipótese é interpretada de uma forma direfente devido ao seu número

�xo de lientes. O omprimento dessa hipótese pelas CQN é mais detalhado em

2.4.6;

� Chegada de lientes e taxa de serviço segundo uma lei exponen ial - A hegada de

lientes é des rita por um pro esso Poiss�ni o e o tempo de serviço é expresso por

um pro esso Exponen ial, bastando assim de�nir o valor médio destes pro essos;

� Probabilidade de rotação de lientes segundo um pro esso Markoviano - A rotação

dos lientes é totalmente probabilísti a, sendo que o aminho futuro de um liente

é independente do aminho passado. Toda vez que um liente deixa uma estação

om duas ou mais possibilidades de aminho, este será de�nido aleatoriamente de

a ordo om a probabilidade de rotação de�nida. Por esta de isão ser um evento

independente dos demais estados da rede, a alternân ia entre os estados da rede

pode ser des rita por uma adeia de Markov [26, 28℄;

� Estações om omportamento esta ionário - A hipótese de esta ionariedade admiti-

da para redes à forma-produto, de�ne que o �uxo de lientes através de uma estação

deve ser equilibrado. Sendo assim, a média do número de lientes que entram deve

ser igual a média do número de lientes que saem. Para redes abertas esta hipótese

de�ne ainda que o �uxo de lientes em toda a rede também deve ser equilibrado.

2.4.2 De�nição

Segundo Fernandes e Plateau [7℄ pode-se de�nir as QN Markovianas om a utilização dos

seguintes parâmetros:

M Número de �las na rede;

R Número de diferentes lasses de lientes;

K

i

Capa idade da �la i (número máximo de lientes);

22 CAPÍTULO 2. FORMALISMOS DE MODELAGEM

C

i

Número de servidores na �la i;

S

r

i

Tempo médio ne essário para um servidor atender um liente da lasse

r na �la i;

P

r

i;j

Probabilidade de rotação de um liente da lasse r servido na �la i

deixar esta �la e ir para �la j (estes parâmetros são usados para o ál ulo

da taxa média de visitas de lientes da lasse r na �la i que é usualmente

denotado por �

r

i

);

B

r

i;j

Pro edimento dos lientes da lasse r saídos da �la i para �la j quando

a �la j está heia. Dois pro edimentos são possíveis: perda (os lientes

deixam o modelo - existe somente em redes abertas) ou bloqueio (a �la i é

bloqueada);

!

D

i

Vetor indi ando a ordem de prioridade de serviço entre as lasses de

lientes na �la i (a ausên ia deste parâmetro indi a a inexistên ia de prior-

idade entre as lasses);

L

r

i

Taxa média de hegada de lientes da lasse r na �la i, oriundos de fora

do modelo (parâmetro existente somente em redes abertas);

N

r

População total de lientes da lasse r na rede (parâmetro existente

somente em redes fe hadas).

N Vetor om o onjunto das populações (N

1

; N

2

; :::N

r

) de todas as lasses

presentes na rede.

Dentre os índi es de desempenho que podem ser obtidos do modelo om os métodos

para soluções a forma-produto os mais omuns são:

d

r

i

Fluxo médio de lientes da lasse r através da �la i;

u

r

i

Índi e médio de utilização da �la i pelos lientes da lasse r;

n

r

i

População média de lientes da lasse r presentes na �la i;

2.4. REDES DE FILAS DE ESPERA 23

w

r

i

Tempo médio de resposta para os lientes da lasse r na �la i.

Algumas outras notações intermediarias ainda são usadas na de�niçao ou no ál ulo

dos índi es de desempenho. São elas:

r

i

Taxa de visita dos lientes da lasse r na �la i. Esta taxa é al ulada

resolvendo-se um sistema linear riado a partir das probabilidades de ro-

tação dos lientes de ada lasse (P

r

i;j

). Este sistema por sua vez pode ser

resolvido por qualquer método de ál ulo número;

r

i

(k) Taxa média de atendimento dos lientes da lasse r na �la i quando há

k lientes na �la;

i

(j; k) Probabilidade marginal da �la i om j servidores e k lientes na �la.

2.4.3 Número de Servidores

As QN podem ser lassi� adas em dois tipos tratando-se do número de servidores presentes

em ada estação de serviço. Existem estações mono-servidoras e multi-servidoras. As

estações mono-servidoras ara terizam-se por possuirem apenas um servidor por estação

e o tempo de atendimento dos lientes ser independente da arga da estação. A taxa

média de atendimento de uma estação mono-servidora (�

r

i

) pode ser des rita omo:

r

i

(k) =

1

S

r

i

(2.4)

Onde:

k Número de lientes na estação i.

Do ontrário, as estações de serviço multi-servidoras se ara terizam por terem mais

de um servidor por estação, ou seja, o número de servidores (C

i

) de uma estação i deve

ser maior do que um. Nesse aso teremos taxas de prestação de serviço diferen iadas,

dependentes da arga da estação.

24 CAPÍTULO 2. FORMALISMOS DE MODELAGEM

O prin ípio bási o de estações om prestação de serviço dependente de arga é a

atribuição de um tempo médio de prestação de serviço distinto, para o número de lientes

presente na estação (denotado por k). Este me anismo de dependên ia de arga pode

representar a presença de diversos servidores através de um artifí io que é o aumento da

taxa de atendimento (diminuição do tempo de prestação de serviço) quando os lientes

podem ser atendidos simultaneamente por vários servidores.

O ál ulo da taxa média de atendimento (�

r

i

) para estações multi-servidoras é expresso

pela seguinte equação

2

.

r

i

(k) =

min(k; C

i

)

S

r

i

(2.5)

Onde:

k Número de lientes presentes na estação i.

A possibilidade de de�nirmos um tempo de prestação de serviço dependente da arga

não se resume a estações multi-servidoras, mas esta apli ação (expressa pela Equação 2.5)

é freqüentemente utilizada para representar o uso de mais de um re urso simultaneamente.

Em estações onde o número de servidores é igual à apa idade da �la (C

i

= k) temos

evidentemente uma simpli� ação da Equação 2.6, para:

r

i

(k) =

k

S

r

i

(2.6)

Pois, o número de servidores (C

i

) é idênti o ao próprio limite da variação do número

de lientes presentes na estação ( apa idade total da �la i).

2

A notação min(a; ::; z) signi� a o menor valor numéri o entre os valores a até z.

2.4. REDES DE FILAS DE ESPERA 25

2.4.4 Número de Classes

As QN podem ser lassi� adas de duas maneiras om relação ao número de tipos de

lientes tratados diferen ialmente.

Podemos distinguir as QN que tratam um tipo úni o e indistinguível de lientes. Esse

tipo de QN é denominado de mono- lasse e atende todos os lientes de uma mesma

maneira.

Nas QN multi- lasse, omo são hamadas as QN que tratam vários tipos de lientes

de forma diferen iada, várias ategorias de lientes podem ser de�nidas e ada tipo ou

ategoria representa uma lasse diferente. Para estes tipos distintos de lientes é possível

então de�nir tempos médios de prestação de serviço diferen iados para ada lasse r de

lientes (S

r

i

). Da mesma forma ertos tipos lientes podem ir ular entre estações om

probabilidades de rotação distintas para ada lasse r (P

r

i;j

) e até é possível que algum

tipo de liente não utilize os serviços de uma erta estação. No aso de redes fe hadas

é pre iso ainda de�nir o número de lientes existente na rede para ada lasse (N

r

). No

aso de redes abertas, pre isa-se também de�nir taxas de hegada distintas nas estações

para ada lasse de lientes (L

r

i

). No entanto, o número de servidores (C

i

), assim omo a

apa idade de ada �la (K

i

) são independentes do número de lasses.

Assumiu-se para este trabalho ( omo visto no item 2.4.2) R omo a notação do número

total de lasses de lientes diferen iados para uma determinada rede.

Adi ionalmente é possível ainda de�nir prioridades e mesmo políti as de atendimento

entre lientes de lasses distintas. A dis iplina tradi ional de �la (FIFO) pode ser admitida

entre todas as lasses, porém também é possível admitir prioridades absolutas (uma lasse

sempre tem atendimento prioritário sobre outra), ou até mesmo, políti as omplexas

do tipo time sharing, onde fatias de tempo são distribuídas para ada lasse e pode-se

estabele er preferên ias de atendimento sobre estas.

26 CAPÍTULO 2. FORMALISMOS DE MODELAGEM

Note-se porém que não é ne essário que todas as estações sirvam todas as lasses de

lientes. Isso é de�nido pelas probabilidades de rotação expressas individualmente para

ada lasse. Na verdade a úni a limitação imposta é que a hipótese da esta ionariedade

deve ontinuar sendo veri� ada para ada lasse de liente observada isoladamente. Se

existir pelo menos uma estação multi- lasse na rede, então toda a rede é tida omo multi-

lasse, senão a rede é de�nida omo mono- lasse.

2.4.5 Redes de Filas de Espera Abertas

Redes de Filas de Espera Abertas (OQN - Open Queueing Networks) são uma lasse

de QN onde o número de lientes ( onsumidores) na rede não é �xo. Isso é possível

devido a rede ter entradas e saídas em determinadas �las, por onde os lientes oriúndos

do exterior do modelo podem tanto entrar omo sair do ontexto do sistema modelado.

A representação grá� a de uma OQN pode ser vista na Figura 2.9.

Figura 2.9: Rede de Filas de Espera Aberta

Para que uma OQN seja onsidereda à forma-produto, esta deve respeitar as hipóteses

apresentadas em 2.4.1 da seguinte maneira.

Na hipótese da esta ionariedade, a qual deve ser respeitada pelas OQN, determina as

ondições abaixo para essa lasse de QN:

� Para as OQN omo um todo, assim omo para ada estação espe í� a, o número

de lientes que entra deve ser igual ao número de lientes que sai se observarmos a

rede por um tempo in�nito;

2.4. REDES DE FILAS DE ESPERA 27

� Nenhum liente pode ser gerado ou onsumido em uma estação;

� A soma das probabilidades de saída de lientes da lasse r de uma �la i (P

r

i;j

) para

todas as demais �las (todos valores possíveis de j) devem estar no intervalo entre 0

e 1. A proporção de lientes que abandonarão o modelo para o exterior é dado pela

diferença entre esta soma e o valor 1.

Deve-se obede er também uma ondição de estabilidade, onde diz que:

� Um liente vindo do exterior sempre poderá visitar todas as estações da rede, ainda

que isso não a onteça ne essariamente na mesma passagem pelo modelo;

� Ao sair de toda e qualquer estação o liente sempre poderá atingir, passando por

tantas estações quantas foemr ne essárias, uma das saídas para o exterior do modelo.

Para redes abertas à forma-produto é assumido que a �la não tem a sua apa idade

(K

i

) limitada (K

i

= 1). Da mesma maneira, as �las om apa idade in�nita que não

on orrem por servidores (número de servidores igual à apa idade da �la) assume-se a

mesma notação: C

i

=1.

Com os trabalhos desenvolvidos por Baskett, Chandy, Muntz e Pala ios [3℄, foram

de�nidas equações para obtenção de índi es de desempenho para as OQN. Baseadas no

Teorema da Chegada e na Lei de Little, estas equações se apli am a redes à forma-produto

para OQN multi- lasses.

São apresentadas a seguir as equações para obtenção de alguns índi es de desempenho.

O �uxo médio de lientes de uma lasse r através de uma estação i (d

r

i

) em uma OQN

é dado pela Equação 2.7:

d

r

i

= �

r

i

M

X

j=0

L

r

j

(2.7)

Onde:

28 CAPÍTULO 2. FORMALISMOS DE MODELAGEM

P

M

j=0

L

r

j

A taxa de hegada total de lientes do exterior da lasse r no modelo;

r

i

Taxa média de visita dos lientes da lasse r em ada estação i.

O �uxo médio geral de uma estação i (d

i

) é al ulado omo:

d

i

=

R

X

r=0

d

r

i

(2.8)

O índi e médio de utilização da �la i pelos lientes de lasse r (u

r

i

), nas OQN é obtido

pela Equação 2.9 abaixo:

u

r

i

= d

r

i

S

r

i

(2.9)

Cada estação de serviço deve ser apaz de atender todos os lientes de todas as lasses

para que a hipótese de esta ionariedade seja respeitada. Isso é indi ado pelo índi e de

utilização geral da �la (u

i

)e deve ser obrigatoriamente menor que 1. O índi e de utilização

geral (u

i

) é al ulado omo sendo:

u

i

=

R

X

r=1

u

r

i

(2.10)

Cabe ressaltar que, aso u

i

> 1 para qualquer �la i, a rede omo um todo não respeita

e hipótese da esta ionariedade. Sendo assim, os índi e a seguir não ne essitariam ser

al ulados.

A Equação 2.11 a seguir é utilizada para obtenção da população média de lientes de

lasse r na �la i (n

r

i

):

n

r

i

=

u

r

i

(1� u

i

)

(2.11)

2.4. REDES DE FILAS DE ESPERA 29

A população média onsiderando todos os lientes de todas lasses na �la i (n

i

) é dada

por:

n

i

=

R

X

r=1

n

r

i

(2.12)

O tempo médio de resposta dos lientes da lasse r na estação i (w

r

i

) pode ser al ulado

pela Equação 2.13 abaixo:

w

r

i

=

d

r

i

(1� u

i

)

(2.13)

O tempo médio de resposta geral dos lientes numa estação i (w

i

) é uma ponderação

dos tempos médios de resposta da lasse pela a�uxo re ebido na estação i por lientes

desta lasse, ou seja:

w

i

=

R

X

r=1

(d

r

i

w

r

i

)

d

i

(2.14)

É importante ressaltar que através destes índi es de desempenho pode-se avaliar o

modelo dete tando possíveis gargalos e se o modelo respeita a hipótese de esta ionariedade

nas �las de uma OQN.

2.4.6 Redes de Filas de Espera Fe hadas

Redes de Filas de Espera Fe hadas (CQN - Closed Queueing Networks) são uma ategoria

de QN em que o número de lientes na rede é �xo, ou seja, não há entrada nem saída de

lientes do ou para o exterior do sistema modelado. Na Figura 2.10 pode ser vista uma

representação grá� a para as CQN.

As CQN devem respeitar algumas ara terísti as bási as omo o prin ípio onservativo

30 CAPÍTULO 2. FORMALISMOS DE MODELAGEM

Figura 2.10: Rede de Filas de Espera Fe hada

(o número de lientes é �xo), o qual determina que:

� Nenhuma interação a onte e entre o modelo e o que está de�nido fora do modelo,

ou seja, ninguém entra e ninguém sai ;

� Nenhum liente pode ser gerado ou onsumido por qualquer estação de serviço;

� A soma das probabilidades de saída de lientes de um �la i (P

r

i;j

) para todas as

demais �las (todos valores possíveis de j) deve ser igual a 1, ou seja, saindo de

uma estação i todo liente deve obrigatoriamente se dirigir a uma outra estação do

modelo ou retornar para ela mesma.

A ondição de estabilidade, ou seja, ao sair de uma estação qualquer, um liente

sempre poderá passar por todas as estações da rede. Para isso a rede deve se enquadrar

nas seguintes de�nições:

� A rede não pode possuir sumidouros de lientes, ou seja, um grupo de estações

onde se entra e não há possibilidade de saída;

� Existe um aminho possível ( om probabilidades de rotação que não sejam nulas)

que permite passar por todas as estações repetidas vezes, riando-se assim i los

que englobam todas as estações.

O prin ípio onservativo juntamente om a hipótese da estabilidade permite que a rede

possua um estado de equilíbrio, ou seja, pode-se de�nir estados médios para a rede depois

do fun ionamento em um tempo su� ientemente grande.

2.4. REDES DE FILAS DE ESPERA 31

Ao ontrário das OQN à forma-produto, nas CQN também à forma-produto a a-

pa idade máxima de ada �la (K

i

) é de�nida, visto que não faz sentido ter �las om

apa idade maior do que o número total de lientes na rede. Sendo assim, a apa idade

máxima de ada �la (K

i

) é de�nida omo tendo o tamanho do número máximo de lientes

na rede, para que nenhum liente �que bloqueado por não haver apa idade em alguma

estação posterior.

Para obtenção dos índi es de desempenho para CQN multi- lasse e multi-servidor

utiliza-se o algoritmo da Análise do Valor Médio ( MVA - Mean Value Analysis) proposto

por M. Reiser e S. S. Lavenberg em 1980[23℄. Esse algoritmo é substituto do popular

algoritmo da Convolução ( ál ulo da onstante de normalização) proposto por Buzen em

1973 [4℄. São apresentadas a seguir as equações para obtenção dos índi es de desempenho

mais omumente utilizados para ada lasse na ordem em que devem ser exe utadas.

O tempo médio de resposta dos lientes da lasse r na �la i (w

r

i

), para �las om

dis iplina de serviço tipo FIFO e mono-servidor

3

, quando há N lientes na rede é:

w

r

i

(N) = S

r

i

(1 + n

i

(N � 1

r

)) (2.15)

Para estações multi-servidor, no entanto, a equação orreta é:

w

r

i

(N) =

S

r

i

C

i

1 + n

i

(N � 1

r

) +

C

i

�2

X

j=0

(C

i

� j � 1) �

i

(j; N � 1

r

)

!

(2.16)

De�ne-se a probabilidade marginal(�

i

(j; N)), quando j 6= 0 omo sendo:

i

(j; N) =

1

j

R

X

r=1

r

i

S

r

i

d

r

o

(N) �

i

(j � 1; N � 1

r

)

!

(2.17)

3

Para todas as �las mono-servidor é utlizada a equação a seguir, apesar da rede ser multi-servidor

desde que haja pelo menos �la multi-servidor

32 CAPÍTULO 2. FORMALISMOS DE MODELAGEM

Para j = 0 é de�nida a seguinte equação:

i

(0; N) = 1�

1

C

i

R

X

r=1

r

i

S

r

i

d

r

o

(N)

C

i

�1

X

j=1

(C

i

� j) �

i

(j; N)

!

(2.18)

Por se um algoritmo re ursivo de�ne-se os ritérios de parada omo:

i

(0; 0) = 1 (2.19)

e

i

(j; 0) = 0 (2.20)

O �uxo médio de lientes da lasse r através da �la i (d

r

i

) quando existem (N) lientes

de ada lasse na rede pode ser al ulado omo sendo:

d

r

i

(N) = �

r

i

d

r

o

(N) (2.21)

Onde �

r

i

é a taxa média de visita dos lientes da lasse r na �la i e é obtido om

a resolução da matriz de probabilidade de rotação da lasse r por qualquer método de

resolução de sistemas lineares. A taxa de �uxo padrão da lasse r (d

r

o

) quando existem N

lientes de ada lasse na rede é obtida pela Equação 2.22 a seguir.

d

r

o

(N) =

N

r

P

M

i=1

r

i

w

r

i

(N)

(2.22)

O índi e médio de utilização da �la i pelos lientes de lasse r (u

r

i

) quando há N

lientes na rede é al ulado pela seguinte equação.

u

r

i

(N) =

d

r

i

(N)

r

i

(N)

(2.23)

2.4. REDES DE FILAS DE ESPERA 33

A população média de lientes da lasse r presentes na �la i (n

r

i

) quando há N lientes

de ada na rede é al ulada pela equação 2.24 abaixo.

n

r

i

(N) = d

r

o

(N)w

r

i

(N) �

r

i

(2.24)

É de�nido, no entanto, que quando o número de lientes da lasse r na �la i (N) for

zero a população média da �la i para a lasse r também o será. Isso se faz ne essário

pois sendo esse um algoritmo re ursivo, omo pode-se ver na equação do tempo médio de

resposta (w

r

i

)(2.15), é ne essário um ritério de parada.

n

r

i

(0) = 0 (2.25)

Abaixo são des ritas as equações usadas para obtenção dos índi es gerais de ada �la.

O �uxo médio de lientes pela �la i (d

i

) quando existem N lientes na rede é dado

por:

d

i

(N) =

R

X

r=1

d

r

i

(N) (2.26)

O índi e médio de utilização geral da �la i (u

i

) quando existem N lientes na rede é:

u

i

(N) =

R

X

r=1

u

r

i

(N) (2.27)

A população média de lientes na �la i (n

i

) é de�nido por:

n

i

(N) =

R

X

r=1

n

r

i

(N) (2.28)

34 CAPÍTULO 2. FORMALISMOS DE MODELAGEM

Para o tempo médio de resposta para os lientes da �la i (w

i

) quando há N lientes

na rede é dado por:

w

i

(N) =

P

R

r=1

w

r

i

N

r

P

R

r=1

N

r

(2.29)

Pode-se onferir maiores exemplos de modelagem e utilização dos formalismo apresen-

tados neste apítulo na PARTE III (Manual do Usuário) deste trabalho.

O Apêndi e A deste trabalho apresente um resumo de todas as notações utilizadas.

Capítulo 3

Conversão entre Formalismos

Como foi men ionado anteriormente no Capítulo 2, as Redes de Filas de Espera (QN

- Queueing Networks)[13, 19℄ são bastante utilizadas por sua fa ilidade de modelagem,

mas no entanto os usuários sofrem om suas limitações (QN a forma-produto). Já, Re-

des de Aut�matos Esto ásti os (SAN - Sto hasti Automata Networks é um fomralismo

mais poderoso e tem menos limitações que as QN. Porém, sua omplexidade di� ulta a

modelagem.

Com a possibilidade de traduzir modelos do formalismo QN para o formalismo SAN

[8, 6, 21℄, um onversor automáti o pode ser riado para que se possa aproveitar o onforto

da modelagem em QN e o poder de resolução das SAN.

Os modelos onvertidos para SAN podem então ser resolvidos pela ferramenta PEPS,

a qual implementa vários métodos para resolução de modelos SAN.

Para que fosse possível a onversão e a representação de um mesmo sistema através de

modelos QN e SAN ompreendidos pelas duas ferramentas (MQNA e PEPS), de�niu-se

então formatos de arquivos de entrada e saída para estes formalismos. Estes formatos

servem para que a ferramenta MQNA possa re onhe er e armazenar um modelo QN de

um modo textual, visto que o usuário poderá riar ou editar seus moelos diretamente

nestes arquivos, e transforma-los posteriormente em um arquivo om um modelo SAN

36 CAPÍTULO 3. CONVERS�O ENTRE FORMALISMOS

equivalente que seja re onhe ido pela ferramenta PEPS [20℄. Os formatos de arquivos

que serão utilizados são baseados nas gramáti as espe i� adas para a ferramenta MQNA

e para a ferramenta PEPS.

No aso da gramáti a para representação de modelos QN, por ainda não existir um

formato de arquivo padrão para este formalismo, foi riada uma gramáti a espe í� a para

a ferramenta MQNA, a qual atende as exigên ias da ferramenta quanto ao formalismo

QN e ao método de onversão. Para os modelos SAN foi utilizada a gramáti a já de�nida

para a ferramenta PEPS.

As duas gramáti as a ima itadas são apresentadas nos itens 3.3 e 3.4.

3.1 Ferramenta PEPS

PEPS - Performan e Evaluation of Parallel Systems é uma ferramenta de software a a-

dêmi a que ofere e re ursos de modelagem e métodos iterativos (Método da Potên ia,

Método de Arnoldi e GMRES)[25, 27℄ para resolução de modelos SAN. Por apli ar os

on eitos de SAN, apresentados anteriormente no item 2.3, PEPS onsegue evitar os

prejuízos da explosão do espaço de estados das Cadeias de Markov e forne er soluções

numéri as e� ientes. PEPS é uma ferramenta para ambiente Unix om ódigo aberto e

interfa e textual, omo pode ser visto na Figura 3.1.

1) Compile a SAN model 5) Load data structures2) Solve a compiled SAN model 6) Inspect data structures3) Probability vector facilities 7) Sparse matrix facilities4) Preference 8) About this version

0) Exit PEPS (Option 0 always exits the current menu)

+−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−+| This is PEPS 2000 − The SAN tools | | relesead on: Oct 11 2000 −− compiled on: Oct 23 2001 | +−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−+

Figura 3.1: Interfa e da ferramenta PEPS

3.2. MÉTODO DE CONVERS�O 37

A ferramenta e maiores expli ações sobre o projeto PEPS podem ser en ontradas na

internet nos endereços:

� http://www.inf.pu rs.br/�paulof/peps.html

� http://www-apa he.imag.fr/software/peps

A gramáti a para os arquivos de entrada no formato SAN da ferramenta PEPS, que é

expli ada mais adiante neste apítulo (seção 3.4), será usada também omo formato do

arquivo de saída da ferramenta MQNA quando da onversão de QN para SAN.

3.2 Método de Conversão

Na ferramenta MQNA é implementado o método de onversão QN para SAN onforme

de�nido por Fernandes e Plateau em [7℄. Este método é parti ularmente interessante para

QN que não tenham solução à forma-produto, omo por exemplo, �las om bloqueio, o

que foge as espe i� ações das QN à forma-produto. Porém, CQN à forma-produto podem

ser onvertida em modelos SAN sem fugir das regras para QN à forma-produto, desde

que a apa idade das �las seja igual ao número total de lientes na rede.

3.2.1 Modelo Bási o

A idéia prin ipal deste método de onversão se baseia em transformar ada �la i de um

modelo QN em um aut�mato esto ásti o nos modelos SAN.

A tro a de lientes entre �las diferentes (P

i;j

- probabilidades de rotação) num modelo

QN é representada por eventos sin ronizantes nos modelos SAN. Essa sin ronização entre

dois aut�matos representa a saída de um lientes da uma �la e a hegada em outra numa

QN.

Abaixo é apresentado um exemplo de onversão de um modelo CQN mono- lasse om

três estações de serviço para um modelo SAN equivalente.

38 CAPÍTULO 3. CONVERS�O ENTRE FORMALISMOS

1

3

2

�2

M = 3

R = 1

N = 4

C

1

= 1

C

2

= 1

C

3

= 1

S

1

1

= �1

S

1

2

= �2

S

1

3

= �3

�1

K

1

= 3

K

2

= 2

P

1

1;2

= �1

K

3

= 2

P

1

1;3

= �2

Figura 3.2: Modelo CQN mono- lasse

A Figura 3.3 apresenta o modelo CQN da Figura 3.2 onvertido para um modelo SAN

equivalente.

A

(1)

(e

31

; 1; 1)

(e

12

;

1

�1

�1; 1)

(e

13

;

1

�1

�2; 1)

(e

12

;

1

�1

�1; 1)

(e

13

;

1

�1

�2; 1)

(e

12

;

1

�1

�1; 1)

(e

13

;

1

�1

�2; 1)

A

(2)

(e

12

; 1; 1)

(e

12

; 1; 1)

(e

21

; 1; 1)

(e

21

; 1; 1)

(e

21

; 1; 1)

(e

31

; 1; 1)

(e

31

; 1; 1)

(e

21

;

1

�2

; 1)

(e

21

;

1

�2

; 1)

A

(3)

(e

31

;

1

�3

; 1)

(e

31

;

1

�3

; 1)

(e

13

; 1; 1)

(e

13

; 1; 1)

1

1

1

0 00

2 2 2

3

Figura 3.3: Modelo SAN equivalente ao modelo CQN anterior

A seguir é expli ado om mais detalhes a riação dos aut�matos e o uso dos eventos

sin ronizantes para redes multi- lasses.

3.2.2 Modelos Multi-Classe

No aso de QN multi- lasses, essa onversão é um pou o mais so�sti ada, pois transforma-

se ada par " lasse r que visita a �la i" em um aut�mato esto ásti o, onde o número de

lientes da lasse r na �la i representa o estado lo al do aut�mato.

Outro fator que difere a onversão de redes mono e multi- lasses é quanto ao número

3.2. MÉTODO DE CONVERS�O 39

de aut�matos que serão riados. Nas redes mono- lasse, o número de aut�mato riados

será igual ao número de �las existente no modelo QN. Já, para rede multi- lasse, o número

total de aut�mato riados depende das rotas entre as �las no modelo QN, pois só serão

riados os aut�matos por onde passam lientes, ou seja, se em uma �la i não faz parte

da sub-rede por onde passam lientes da lasse r, não será riado o aut�mato para o par

" lasse r �la i".

O número de nodos do aut�mato deve ser igual a apa idade da �la do modelo QN

mais 1, pois o estado zero também deve ser representado.

A tro a de lientes dos modelos QN ontinua sendo modelada por eventos sin ronizante

nos modelos SAN, porém, para QN multi- lasses usa-se ainda taxas fun ionais para re-

presentar restrições da apa idade das �las.

Um modelo OQN om duas lasses diferen iadas de lientes é apresentada na Figura

3.4. É interessante ressaltar que uma das lasses não passa por todas as �las existente no

modelo, neste aso não será riado o aut�mato que representaria o par " lasse r na �la

i".

1

3

2

�2

�1

R = 2

M = 3

K

1

= 3

K

2

= 2

K

3

= 2

C

1

= 1

C

2

= 1

C

3

= 1

L

2

1

= �2

L

1

1

= �1

P

1

1;2

= �1

P

1

1;3

= �2

P

2

1;3

= 1:0

S

1

1

= �1

S

1

2

= �2

S

1

3

= �3

S

2

1

= �4

S

2

3

= �5

Figura 3.4: Modelo OQN multi- lasse

Abaixo é representado um modelo SAN equivalente ao modelo OQN multi- lasse da

Figura 3.4.

40 CAPÍTULO 3. CONVERS�O ENTRE FORMALISMOS

3

2

1

0

�1

�1

A

(1

1

)

A

(3

2

)

0

1

(e

2

13

; 1; 1)

1

�5

1

�5

A

(3

1

)

(e

2

13

; 1; 1)

(e

1

13

; 1; 1)

1

�3

1

�3

(e

1

13

; 1; 1)

2

2

1

0

2

0

1

(e

1

12

; 1; 1)

(e

1

12

; 1; 1)

A

(2

1

)

1

�2

1

�2

�1

(e

1

12

;

1

�1

�1; 1)

(e

1

13

;

1

�1

�2; 1)

(e

1

12

;

1

�1

�1; 1)

(e

1

13

;

1

�1

�2; 1)

(e

1

12

;

1

�1

�1; 1)

(e

1

13

;

1

�1

�2; 1)

A

(1

2

)

2

3

1

0

�2

�2

�2

(e

2

12

;

1

�4

; 1)

(e

2

12

;

1

�4

; 1)

(e

2

12

;

1

�4

; 1)

Figura 3.5: Modelo SAN equivalente

3.3 Gramáti a para Des rição de QN em MQNA

A gramáti a riada para a des rição de QN na ferramenta MQNA abrange as duas lasses

de QN apresentadas nos itens 2.4.5 e 2.4.6.

Para uma melhor ompreensão da gramáti a empregada para ada lasse de QN,

visto que ada lasse de QN tem suas ara terísti as próprias, a mesma será apresentada

primeiramente para modelos CQN e em seguida para modelos OQN.

3.3.1 Unidades Sintáti as

Conven ionou-se alguns formatos para números e identi� adores que serão usados na

gramáti a. Seguem alguns exemplos:

� Número inteiro: 1, 3, 5, 1023, 5006;

� Número real : 10, 15.0, 123.43, 0.65, 10e-1, 5.0E+2;

� Identi� ador : um identi� ador é uma seqüên ia qualquer da ara teres alfa-numéri os

que obrigatoriamente deve omeçar por uma letra qualquer, por exemplo, "rede" e

"�la2" são identi� adores válidos.

� Palavras reservadas: Existe na gramáti a um onjunto de palavras reservadas om

a função de identi� ar ada parte do modelo. Essa palavras são:

3.3. GRAMÁTICA PARA DESCRIÇ�O DE QN EM MQNA 41

Palavra Utilização

qn De�ne um modelo CQN

oqn De�ne um modelo OQN

lass Identi� ador de lasse

servers Número de servidores

population População da lasse nos modelos CQN

apa ity Capa idade da �la

queue Identi� ador de �la

network De�ne iní io da des rição da rede

de larations De�ne iní io das de larações de lasses

e �la

servi e Tempo de serviço, utilizado juntamente

om a palavra time

time Tempo de serviço, pre edido da palavra

servi e

arrival Taxa de hegada, utilizada om a

palavra rate

rate Taxa de hegada, pre edido da palavra

arrival

rot De�ne a probabilidade de rotação dos

lientes

Tabela 3.1: Palavras reservadas da gramáti a para MQNA

No Apêndi e B podem ser obtidas as regras da gramáti a utilizada assim omo a

relação de todas as palavras reservadas e símbolos da mesma.

3.3.2 Modelos CQN

A gramáti a para des rever CQN pode ser dividida em dois blo os prin ipais e sub-

dividido em blo os menores omo veremos a seguir. O primeiro vem logo a seguir da

de�nição do tipo do modelo e do número de lasses e �las, nele onsta basi amente as

de larações do modelo. No segundo blo o é a des rição da rede em si.

De�nição do modelo

De�ne qual o tipo de modelo QN que será des rito, no aso deste tópi o, de�ne-se o tipo

pela palavra reservada " qn". Após a de�nição do tipo de modelo atribui-se um nome

42 CAPÍTULO 3. CONVERS�O ENTRE FORMALISMOS

através de um identi� ador qualquer. Em seguida informa-se o número de lasses e �las

presentes no modelo. Abaixo é apresentada a sintaxe exata para des rição do modelo.

De�nição do modelo - CQN

qn nome do modelo (número de lasses, número de �las)

De laração de Classes e Filas

Des rição do Modelo

Onde:

nome do modelo O nome do modelo é de�nido através de um identi� ador qualquer,

omo nos exemplos mostrados a ima;

número de lasses Número de lasses que estarão presentes na rede, o qual deve ser

um número inteiro;

número de �las Número de �las que estarão presentes, deve ser representado por um

número inteiro.

De laração de Classes e Filas

Neste blo o é de larado as lasses e �las que serão utilizadas no de orrer do modelo. A

de laração de lasses é feita pela palavra reservada " lass" seguida do nome atribuído

para a lasse. Na de laração de �las utiliza-se da palavra "queue" para de�nir a �la, a

qual é seguida do nome atribuído para a �la. Abaixo segue a sintaxe orreta que deve ser

utilizada.

De laração de Classes e Filas - CQN

de larations {

lass nome da lasse;

queue nome da �la;

...

}

3.3. GRAMÁTICA PARA DESCRIÇ�O DE QN EM MQNA 43

Onde:

nome da lasse Nome da lasse é de�nido através de um identi� ador qualquer e re-

presenta uma lasse diferen iada de lientes;

nome da �la Nome da �la também é de�nido por um identi� ador e de�ne a identi-

� ação para um re urso (�la) do modelo.

A ordem em que as lasses e as �las são de laradas pode ser alterada, por exemplo,

pode-se de larar todas as �las antes das lasses, ou mesmo inter alar as duas. Porém

os nomes, tanto das lasses omo das �las, devem ser diferentes. Tanto para as lasses

omo para as �las, o número de de larações deve ser igual ao número de lasses e �las

de laradas anteriormente na De�nição do modelo.

Des rição do Modelo

É neste blo o que o modelo é realmente des rito. Este blo o pode ser dividido em outros

dois blo os menores. O primeiro deles diz respeito a de�nição do número total de lientes

em ada lasse (De�nição de Populações). O segundo ontém a des rição de ada �la

presente no modelo (Des rição de Filas). Segue a sintaxe utilizada neste blo o.

Des rição do Modelo - CQN

network {

De�nição de Populações

Des rição de Filas

}

De�nição de Populações

Estabele e qual a população total (número total de lientes) para ada uma das lasses

perten entes ao modelo. O número de de larações de população deve ser igual ao número

de lasses de laradas na De�nição do Modelo. A de laração de população é feita da

seguinte maneira:

44 CAPÍTULO 3. CONVERS�O ENTRE FORMALISMOS

De�nição de Populações - CQN

population lass nome da lasse = população;

...

Onde:

nome da lasse Nome de ada lasse no modelo, a qual foi de�nido no blo o de De la-

ração de Classes e Filas.

população Número inteiro que de�ne a população de ada lasse no modelo.

A de�nição de populações das lasses deve ser repetida o número de vezes igual ao

número de lasses de laradas na De�nição do Modelo

Des rição de Filas

Neste sub-blo o é des rito ada �la que perten e ao modelo. De�ne-se nele o número de

servidores, a apa idade da �la e a des rição de ada lasse que passa por aquela �la.

O número de �las des ritas deve ser igual ao número de �las de laradas na De�nição do

Modelo. Cada �la é representada da maneira que segue.

Des rição de Filas - CQN

queue nome da �la {

server = número de servidores;

apa ity = apa idade da �la;

Des rição de Classes

}

...

Onde:

nome da �la Nome de ada �la que faz parte da rede, o qual foi de�nido em De la-

ração de Classes e Filas. O nome deve ser diferente para ada �la.

3.3. GRAMÁTICA PARA DESCRIÇ�O DE QN EM MQNA 45

número de servidores De�ne o número de servidores para a �la do es opo a que per-

ten e. É de�nido por um número inteiro.

apa idade da �la Tamanho máximo da �la, que é de�nido por um número inteiro.

Para o ál ulo dos índi es de desempenho de rede à forma-produto, o valor

de�nido para apa idade ( apa ity) é ignorado.

Des rição de Classes

Des reve ada lasse perten ente ao modelo que passa por aquela �la. De�ne-se aqui o

tempo de serviço da ada lasse naquela �la e as rotas dos lientes da respe tiva lasse

para as �las seguintes. O nome das lasses men ionadas dentro de ada �la deve ser o

mesmo nome de larado em De laração de Classes e Filas e ada �la pode um máximo de

de larações de lasses dentro do seu es opo. Esse máximo de de larações é o número de

lasses de larado em De�nição do Modelo. O número máximo de rotas (rot) que podem

ser de�nidas equivale ao número de �las de laradas em De�nição do Modelo e o nome

da �la destino deve ser igual ao nome das �las de laradas na De laração de Classes e

Filas, mesmo que a �la a qual o liente irá dirigir-se seja a mesma a que ele perten e.

Des reve-se então ada lasse da seguinte maneira:

Des rição de Classes - CQN

lass nome da lasse {

servi e time = tempo de serviço;

rot nome da �la : probabilidade;

...

}

...

Onde:

nome da lasse Nome de ada lasse no modelo.

tempo de serviço Tempo médio de atendimento para a lasse na �la do es opo a que

perten e. É de�nido por um número real.

46 CAPÍTULO 3. CONVERS�O ENTRE FORMALISMOS

probabilidade De�ne a probabilidade de um liente da lasse de larada sair da �la do

atual es opo e ir para outra �la da mesma lasse.

Caso as rotas de uma lasse não passem por uma determinada �la, a des rição daquela

lasse na referida �la deve ser omitida.

3.3.3 Modelo para OQN

Da mesma maneira que a onte ia na gramáti a para modelos CQN, a gramáti a riada

para des rever modelos OQN pode ser também dividida em blo os blo os prin ipais e os

quais por sua vez são divididos em blo os menores. No primeiro blo o é feita a de laração

das lasses e �las que serão posteriormente usadas no modelo. No segundo é feita a

des rição do modelo em si. A sisntaxe exata desta lasse de QN é mostrada a seguir.

De�nição do modelo

De�ne-se pela palavra reservada "oqn", o tipo de QN que será modelado omo sendo

OQN. Após a de�nição do tipo atribui-se para ele um nome qualquer. Em seguida, é

informado o número de lasses e �las do modelo. É apresentada a sintaxe exata para

des rição deste tipo de QN abaixo.

De�nição do modelo - OQN

oqn nome do modelo (número de lasses, número de �las)

De laração de Classes e Filas

Des rição do Modelo

Onde:

nome do modelo O nome do modelo é de�nido através de um identi� ador qualquer,

da mesma maneira que nos modelos CQN;

número de lasses Número de lasses que estarão presentes no modelo, o qual deve ser

um número inteiro positivo;

3.3. GRAMÁTICA PARA DESCRIÇ�O DE QN EM MQNA 47

número de �las Número de �las que estarão presentes, deve ser representado por um

número inteiro positivo.

De laração de Classes e Filas

Neste blo o é feita a de laração das lasses e �las que serão utilizadas no modelo. A

de laração de lasses e �las neste blo o é realizada exatamente da mesma maneira que nos

modelos CQN. Para de laração das lasses utiliza-se a palavra reservada " lass" seguida

do nome da lasse. Na de laração de �las utiliza-se da palavra "queue" para de�nir a

�la, a qual é seguida do nome atribuído para a �la. Abaixo segue a sintaxe orreta que

deve ser utilizada.

De laração de Classes e Filas - OQN

de larations {

lass nome da lasse;

queue nome da �la;

...

}

Onde:

nome da lasse Nome da lasse é de�nido através de um identi� ador qualquer e re-

presenta uma lasse diferen iada de lientes;

nome da �la Nome da �la também é de�nido por um identi� ador e de�ne a identi-

� ação para um re urso (�la) do modelo.

A ordem em que as lasses e as �las são de laradas pode ser alterada, por exemplo,

pode-se de larar todas as �las antes das lasses, ou mesmo inter alar as duas. Porém

os nomes, tanto das lasses omo das �las, devem ser diferentes. Tanto para as lasses

omo para as �las, o número de de larações deve ser igual ao número de lasses e �las

de laradas anteriormente na De�nição do modelo.

48 CAPÍTULO 3. CONVERS�O ENTRE FORMALISMOS

Des rição do Modelo

O modelo é des rito realmente neste blo o. Nele ontém a delimitação para a des rição

da rede e o blo o om a des rição de ada �la do modelo. Segue a sintaxe utilizada neste

blo o.

Des rição do Modelo - OQN

network {

Des rição de Filas

}

Cabe ressalta que ao ontrário das CQN, neste tipo de QN não existe o blo o de

De laração de Populações, visto que nas OQN não existe uma população prede�nida.

Des rição de Filas

Na Des rição de Filas é des rito ada �la perten ente ao modelo. O número de servidores,

a apa idade da �la e a des rição de ada lasse que passa pela �la são des ritos nesse

blo o. O número de �las des ritas deve ser igual ao número de �las de laradas naDe�nição

do Modelo. Cada �la pode ser representada da maneira a seguir.

Des rição de Filas - OQN

queue nome da �la {

server = número de servidores;

apa ity = apa idade da �la;

Des rição de Classes

}

...

Onde:

nome da �la Nome de ada �la que faz parte do modelo, a qual foi de�nida em

De laração de Classes e Filas.

3.3. GRAMÁTICA PARA DESCRIÇ�O DE QN EM MQNA 49

número de servidores De�ne o número de servidores para a �la do es opo ao qual

perten e. É de�nido por um número inteiro positivo.

apa idade da �la Tamanho máximo da �la, que é de�nido por um número inteiro

positivo. No aso do ál ulo dos índi es de desempenho para as redes à

forma-produto, este parâmetro é ignorado.

Des rição de Classes

Este blo o ontém a des rição de ada lasse perten ente aquela �la. Para ada lasse

aão de�nidos o tempo de serviço da lasse naquela �la, a taxa de hegada de lientes do

exterior da lasse na respe tiva �la e também as rotas dos lientes da lasse para as �las

posteriores. A mesma lasse deve ser de larada om o mesmo nome em todas as �las por

onde passa. Cada �la pode ter um máximo de de larações de lasses dentro do seu es opo

e devem obede er as mesmas regras que as CQN, isso é válido também para a de�nição

das rotas.

Des rição de Classes - OQN

lass nome da lasse {

servi e time = tempo de serviço;

arrival rate = taxa de hegada;

rot nome da �la : probabilidade;

...

}

...

Onde:

nome da lasse Nome de ada lasse no modelo. O nome da lasse deve ser previa-

mente de�nido em De laração de Classes e Filas.

tempo de serviço Tempo médio de atendimento ao lientes da lasse na �la do es opo

ao qual perten em. É de�nido por um número real positivo.

50 CAPÍTULO 3. CONVERS�O ENTRE FORMALISMOS

taxa de hegada Taxa média de hegada de lientes da respe tiva lasse de fora do

modelo na �la atual.

probabilidade De�ne a probabilidade de um liente da lasse de larada sair da �la do

atual e ir para outra �la na mesma lasse.

Convêm ressaltar que, omo já foi dito anteriomente, a gramáti a apresentada a ima

omo formato de arquivo para a ferramenta MQNA não é um formato padrão, mas sim

um formato que é re onhe ido apenas pela ferramenta MQNA e atende as ne essidades

de resolução de QN à forma-produto e do método de onversão utilizado.

3.4 Gramáti a para PEPS

A gramáti a para o PEPS é um formato para representação do formalismo SAN através

de arquivos texto. A des rição exposta a seguir está de�nida no manual da ferramenta

PEPS [20℄, dá onde podem ser obtidas maiores informações sobre esta gramáti a. Será

apresentada aqui apenas uma visão super� ial sobre a gramáti a para o PEPS, sem entrar

no domínio de ada termo.

Da mesma forma que para as QN, o formato de arquivo re onhe ido por PEPS pode

ser dividido em alguns blo os omo é apresentado a seguir.

3.4.1 De laração de Constantes e Funções

Este blo o ontém as de larações e a ini ialização das onstantes e funções que serão

utilizados pelo modelo SAN. Caso não ne essite de onstantes ou funções este blo o pode

ser omitido. Estas onstantes e funções podem ser utilizadas para representar as taxas e

probabilidades de transição.

De laração de Constantes e Funções - PEPS

De larations {

onstant nome da onstante := valor de onstante;

3.4. GRAMÁTICA PARA PEPS 51

fun tional nome da função := expressão;

...

}

3.4.2 Função de Al ançabilidade

Este blo o ontém a função de al ançabilidade que de�nirá qual é o espaço de estados

atingíveis pelo modelo SAN. A função de al ançabilidade é um função booleana que

retorna true aso o estado possa ser atingido e false aso não possa.

Função de Al ançabilidade - PEPS

rea hability := expressão;

3.4.3 Des rição do Modelo

O blo o da des rição do modelo é o maior omponente do modelo SAN. Ele tem uma es-

trutura hierarquizada onde são des ritos os aut�matos perten entes ao mesmo. É des rito

neste blo o o tipo do modelo e o número de aut�matos de rede.

Des rição do Modelo - PEPS

network nome do modelo (tipo do modelo, número de aut�matos){

Des rição de Aut�matos

}

Des rição de Aut�matos

para ada aut�mato é espe i� ado o nome do aut�mato, o número de repli as dentro

da rede e o número de estados do mesmo. São des ritos também os nodos(estados) do

aut�mato.

Des rição de Aut�matos - PEPS

automaton nome do aut�mato(número de repli as, número de estados) {

Des rição de Nodos

}

52 CAPÍTULO 3. CONVERS�O ENTRE FORMALISMOS

...

Des rição de Nodos

A Des rição de Nodos des reve ada nodo(estado) dentro do aut�mato. Deve de�nir-se

prin ipalmente o nome do estado e o número de ar os que partem deste nodo. Des reve-se

também os ar os deste nodo.

Des rição de Nodos - PEPS

node nome do estado (número de ar os {, re ompensa}) {

Des rição de Ar os

}

...

Des rição de Ar os

A Des rição de Ar os de�ne a transição entre os nodos(estados) do aut�mato. De�ne-se o

nodo destino, o número de eventos sin ronizantes asso iados aquele ar o e a taxa transição

lo al.

Des rição de Ar os - PEPS

ar (nome do nodo destino, número de sin ronismo {, taxa lo al }) {

Des rição de Sin ronismos

}

...

Des rição de Sin ronismos

São des ritos neste nível os eventos sin ronizantes rela ionados a ada ar o. De�ne-se o

nome do evento sin ronizante, a taxa de sin ronismo e a probabilidade de rota asso iada.

Des rição de Sin ronismos - PEPS

syn (nome do sin ronismo, taxa de sin ronismo, probabilidade)

3.4. GRAMÁTICA PARA PEPS 53

...

A taxa de sin ronismo e a probabilidade de rota só são espe i� adas no aut�mato

es olhido omo mestre, nos outros é atribuido o valor 1.

3.4.4 Des rição dos Resultados

Neste blo o são de�nidas as funções para obtenção dos índi es de desempenho interes-

santes ao modelo. Estes índi es são des ritos através de um nome e de uma expressão

matemáti a.

Des rição dos Resultados - PEPS

Results {

nome da função := expressão;

...

}

Maiores exemplos de modelagem om as gramáti as a ima apresentadas, bem omo

onversões entre elas são mostradas na PARTE III (Manual do Usuário) deste trabalho.

54 CAPÍTULO 3. CONVERS�O ENTRE FORMALISMOS

55

Parte II

Des rição e Implementação da

Ferramenta MQNA

Capítulo 4

A Ferramenta MQNA

O objetivo �nal deste trabalho é a riação de uma ferramenta de software, hamada

MQNA (Markovian Queueing Networks Analyser - Analisador de Redes de Filas de Espera

Markovianas), na qual se apli ou os on eitos até agora estudados sobre Redes de Filas

de Espera (QN), Redes de Aut�matos Esto ásti os (SAN) e métodos de onversão de

modelos QN para modelos SAN.

No de orrer deste apítulo será feita uma des rição mais detalhada da ferramenta

MQNA, assim omo dos requisitos essen iais de interfa e e fun ionalidades que a mesma

deve atender. Serão expostas ainda as plataformas es olhidas para implementação assim

omo as interfa es es olhidas para ada uma destas plataformas.

4.1 Espe i� ação Geral da Ferramenta

MQNA é uma ferramenta de software a adêmi a para análise, resolução e onversão de

modelos des ritos om o formalismo de Redes de Filas de Espera (QN). A ferramenta

possibilita a edição de modelos QN e a obtenção de índi es de desempenho interesantes

aos modelos QN à forma-produto. A onversão de modelos QN para modelos SAN é uma

fun ionalidade adi ional implementada pela ferramenta e o arquivo gerado é exportado

para ferramenta PEPS [20℄. A ferramenta MQNA resolve as duas lasses de QN à forma-

produto estudadas neste trabalho. São elas: Redes de Filas de Espera Fe hadas (CQN) e

58 CAPÍTULO 4. A FERRAMENTA MQNA

Redes de Filas de Espera Abertas (OQN).

4.1.1 Requisitos Gerais

A ferramenta MQNA é apaz de exe utar tanto em plataforma Mi rosoft Windows 9x ou

superior quanto em plataforma Linux

1

, quando ompilada om as ferramentas próprias

da plataforma (g++ para Linux e C++ Builder para Windows).

Por motivos que serão expostos mais adiante neste apítulo, a interfa e da ferramenta

possui duas versões. Para a plataforma Mi rosoft Windows, a interfa e é grá� a e para

plataforma Linux a interfa e é textual.

4.1.2 Formatos de Arquivos

A ferramenta MQNA é apaz de re onhe er e riar arquivos que estejam em onformidade

om a gramáti a para modelos QN des rita na seção 3.3 deste trabalho. MQNA também

exportar arquivos que obedeçam as regras da gramáti a para modelos SAN, expli adas

na seção 3.4, os quais são re onhe idos pela ferramenta PEPS.

4.1.3 Interfa e om o Usuário

Como já men ionado anteriormente, o software tem duas interfa e diferen iadas. Uma

delas grá� a para plataforma Mi rosoft Windows e outra textual para plataforma Linux.

Apesar de interfa es diferen iadas, alguns re ursos são providos pelas duas interfa es:

� Carrega um modelo QN - é possivel arregar um modelo QN de um arquivo texto

que obedeça as regras da gramáti a para modelos QN para as estruturas internas da

ferramenta;

1

Neste trabalho referen ia-se a plataforma Linux omo sendo qualquer plataforma UNIX (Solaris,

AIX, FreeBSD, et )

4.1. ESPECIFICA�O GERAL DA FERRAMENTA 59

� Salva um modelo QN - é possível gerar um arquivo texto de a ordo om a gramáti a

de�nida para modelos QN a partir do dados presentes na ferramenta;

� Salva as taxas de visita - tem-se a possibilidade de re uperar as taxas de visita

al uladas para um modelo QN ;

� Mostra os parâmetros de resolução da matriz - permite a exibição de parâmetros

para a resolução da matriz de probabiliade de rotação, omo número de iterações e

erro máximo a eitável ;

� Mostra os parâmetros do modelo - permite a visualização dos parâmetros do modelo,

tanto das lasses omo das �las, por exemplo, o número de sevidores de uma �la ou

o nome de ada lasse;

� Exibe os índi es de desempenho - o programa possibilita a exibição dos índi es de

desempenho obtidos, tanto os índi es gerais quanto por lasse;

� Sai do programa - En erra o programa.

Espe i� amente para a interfa e grá� a da plataforma Mi rosoft Windows é possível

a riação automâti a de novos modelos QN.

4.1.4 Fun ionalidades do Software

Independente da interfa e ou da plataforma em que o software for utilizado, o mesmo

suporta todas as fun ionalidades abaixo listadas:

� Compila modelos QN - quando da arga de um modelo QN, a ferramenta é apaz

de ompilar um modelo QN des rito segundo a gramáti a anteriormente (seçao 3.3)

apresentada e aponta possíveis erros léxi os e sintáti os do modelo. A ferramenta

des obre também qual lasse de QN (CQN ou OQN) que está sendo arregada;

� Cria arquivos textuais de modelos QN - é possível riar arquivos textuais que obe-

deçam as regras da gramáti a de�nida para modelos QN a partir de um modelo QN

qualquer presente na memória;

60 CAPÍTULO 4. A FERRAMENTA MQNA

� Cal ula as taxas de visita - a partir de uma matriz de probabilidade de rotação é

possível resolver um sistema de equações lineares para des obrir as taxas de visita;

� Altera os parâmetros de resolução - os parâmetros omo número máximo de iterações

e erro máximo a eitável não são �xos e o programa provê métodos para alterá-los;

� Computa os índi es de desempenho - a ferramenta implementa métodos para o ál-

ulo dos índi es de desempenho de a ordo om a lasse de QN presente na mémoria.

O método que será utilizado no ál ulo é des oberto pela ferramenta de a ordo om

o tipo de modelo QN (CQN ou OQN) arregado na memória;

� Modi� a os parâmetros do modelo - o usuário pode modi� ar os parâmetros de um

modelo QN presente na memória;

� Re upera os índi es de desempenho - implementou-se maneiras do usuário re uperar

e exibir os índi es de desempenho anteriormente al ulados;

� Converte um modelo QN para SAN - é possível onverter o modelo QN que está

em memória para um arquivo textual om um modelo SAN equivalente om ou sem

restrição de apa idade;

Todas as fun ionalidades listadas a ima que a ferramenta provê, são suportadas para

qualquer tipo de modelo QN, seja ele aberto (OQN) ou fe hado (CQN), mono ou multi-

lasse. Toma-se por ex essão o método de onversão, onde a opção sem restrição à a-

pa idade só pode ser implementadas nas CQN.

4.1.5 Plataformas Es olhidas

O objetivo de riar uma ferramenta de software que exe ute em mais de uma plataforma

usando o mesmo ódigo fonte é prin ipalmente o de não limitar o uso da mesma a um

grupo de usuário de uma plataforma espe í� a. As duas plataformas es olhidas para

implementação da ferramenta foram, toda a família Mi rosoft Windows

2

e Linux.

2

No de orrer deste será utilizado a notação Windows omo sendo qualquer plataforma Mi rosoft

Windows (95, 98, Me, NT e 2000)

4.2. DESCRI�O FUNCIONAL DA FERRAMENTA 61

Optou-se pela plataforma Windows por ela ter um grande número de usuários e se

ara terizar por uma boa amigabilidade. Já, a opção da plataforma Linux foi fortemente

in�uen iada por ter o arquivo exportado pela onversão de modelos QN para SAN es rito

onforme a gramáti a re onhe ida pela ferramenta PEPS, a qual roda somente sobre

plataforma Linux, fa ilitando assim o uso em onjunto das duas ferramentas.

4.2 Des rição Fun ional da Ferramenta

Esta seção traz um onjunto de passos e instruções sobre omo pro eder no uso normal

da ferramenta MQNA quando da avaliação de algum modelo.

O pro esso para avaliação de desempenho de um sistema qualquer normalmente segue

uma seqüên ia bási a de passos. Os primeiros passos para a avaliação de um modelo são

a modelagem do sistema através da gramáti a de�nida para ferramenta e em seguida a

ompilação do modelo por MQNA.

Com o modelo presente na memória vários aminhos podem ser seguidos, porém os

mais omuns são a omputação dos índi es de desempenho do modelo ou a onversão

deste modelo QN para um modelo SAN.

Menos omum, porém também utilizada, é a alteração de algum parâmetro do modelo

arregado na memória e novamente a omputação dos índi es de desempenho para ob-

servar as mudanças e adequar o modelo. Após este passo normalmente o modelo é salvo

para que �quem registradas as alterações feitas.

A seguir é mostrado omo utilizar as fun ionalidades implementadas na ferramenta

MQNA na avaliação de um modelo seguindo os passos des ritos a ima.

62 CAPÍTULO 4. A FERRAMENTA MQNA

4.2.1 A Criação de Modelos

A riação de um modelo para a ferramenta MQNA é basi amente a edição de um arquivo

textual, que se enquadre nas regras da gramáti a expli ada na seção 3.3, por qualquer

editor de texto.

Entretanto, para a versão Windows há ainda uma segunda forma de riação de modelo.

Essa versão implementa um assistente que oleta e ria um modelo padrão para ser editado

posteriormente.

Para utilizar esse assistente o usuário deve li ar no menu na opção .

Em seguida o usuário deve informar os dados bási os do modelo. Cada tela pede uma

ara terísti a do modelo que será riado.

O usuário pode navegar por essa telas om o uso dos botões , para

passar a tela seguinte, e , para retorna a tela anterior.

Após o término deste pro esso o novo modelo estará arregado na memória e o usuário

poderá alterar os parâmetros do modelo.

4.2.2 Compilando um Modelo

Com o modelo já riado o passo seguinte é ompilar o modelo e arregá-lo na memória.

O pro esso de ompilação é bastante simples nas duas versões da ferramenta. Para

a versão Linux essa função é ativada pela opção 1 do menu prin ipal. Após digitar o

número 1 e ativar essa opção om a te la Enter

3

. Apare erá na tela a opção es olhida e

3

A te la Enter sempre é utilizada para ativar a opção es olhida ou algum parâmetro digitado. Porém

na seqüên ia deste trabalho será men ionado somente a opção ou parâmetro que deve ser digitado,

omitindo a ne essidade da te la Enter.

4.2. DESCRI�O FUNCIONAL DA FERRAMENTA 63

a mensagem "Nome do arquivo QN:", onde deverá ser informado o nome do arquivo que

ontém o modelo.

Para a versão Windows deve-se abrir o menu e li ar na opção .

Surgirá uma janela para a es olha de arquivo. O arquivo ontendo o modelo QN deve ser

sele ionado e em seguida li ar na opção .

Ao �m dos passos a ima, aso não haja erro no modelo, os quais serão a usados pela

ferramenta, o modelo estará ompilado e arregada na memória.

4.2.3 Obtendo os Índi es de Desempenho

Com o modelo presente na memória a obtenção dos índi es de desempenho é bastante

simples porém as vezes esse pro esso pode ser um pou o longo. O tempo para omputar

o modelo depende do número de lasses e número de �las presentes no modelo. Nos

modelos CQN outro fator que a arreta um aumento no tempo de omputação dos índi es

é a população total de ada lasse.

Na versão Linux a omputação dos índi es de desempenho é ativada pela opção 4 no

menu prin ipal. Após a ativação desta opção, será mostrada na tela uma mensagem da

opção es olhida e a mensagem "Salvar resultado omo:", onde deverá ser informado

o nome do arquivo onde os resultados serão gravados. Ao �m do pro esso de omputação

dos índi es de desempenho, os índi es gerais do modelo serão exibidos na tela.

Na versão Windows, a maneira mais fá il de omputar os índi es de desempenho

quando o modelo já está na memória é li ar no botão . Com isso

os índi es serão omputados e mostrados na parte inferior da tela. Caso seja ne essário

salvar esse índi es em um arquivo, deve-se sele ionar o item no menu

. Após es olhido o nome do arquivo na janela exibida li a-se em .

64 CAPÍTULO 4. A FERRAMENTA MQNA

4.2.4 Convertendo um Modelo QN para SAN

Os passos para onversão de modelo QN para um modelo SAN são bastante pare idos

om os passos para omputação de índi es de desempenho.

Para a versão Linux deve-se es olher a opção 7 no menu prin ipal para fazer a onversão

do modelo. Em seguida é ne essário informar o nome do arquivo onde será gravado o

modelo SAN. A mensagem que apare erá na tela para informação do nome do arquivo é

"Salvar modelo SAN omo:".

Para os modelos CQN uma segunda informações ainda é ne essária. Essa informação

diz respeito a onverter um modelo QN para SAN om ou sem restrição a apa idade. A

mensagem que pede essa informação é "Salvar modelo om restrição de apa idade

(s/n)?".

Para a versão Windows o botão faz essa função. Após li ado

surge uma janela para a es olha do nome do arquivo, quando o nome tiver sido informar

li a-se o botão .

Da mesma maneira que na versão Linux, para modelos CQN é soli itado a informação

sobre restrição de apa idade. Essa informação é oletada através de uma janela os botões

e .

4.2.5 Alterando Parâmetros do Modelo

A alteração dos parâmetros do modelo não é tão omum quanto os demais passos expli-

ados a ima porém algumas vezes é ne essário para a adequação do modelo.

Existe duas maneiras de fazer as alterações. A primeira seria a mudança dos valores

diretamente no arquivo textual, o qual pre isaria ser novamente ompilado seguindo os

passos anteriormente des ritos. A segunda maneira é alterar ada parâmetro individual-

4.2. DESCRI�O FUNCIONAL DA FERRAMENTA 65

mente através da ferramenta. Essa segunda maneira é parti ularmente mais interessante

pois não ne essita a re ompilação do modelo.

Na versão Linux essas alterações são feitas ativando a opção 5 do menu prin ipal. Essa

opção ativa um segundo menu onde é pedido que tipo de parâmetro que o usuário gostaria

de alterar. Na opção 1 deste menu apare erá para o usuário, os parâmetros de lasse para

a alteração pelo usuário. Quando for feita alguma alteração nos parâmetros de lasse o

usuário deve informar qual a lasse que deseja alterar, as opções disponíveis apare erão

entre parênteses. Após essa es olha é mostrado na tela o valor atual do parâmetro e

pedido um novo valor. Na opção 2 do menu pode-se alterar os parâmetros das �las. Os

passos a serem seguidos são os mesmos para alteração dos parâmetros de lasse, porém

é pedido ao usuário qual a �la que ele deseja alterar, novamente as opções disponíveis

apare erão entre parênteses.

Na versão Windows essas alterações são bem menos laboriosas. Para alteração dos

parâmetros de uma �la basta modi� ar os mesmos na tabela presente no anto superior

direito da tela prin ipal. Para alterar os parâmetros de uma lasse deve-se li ar no botão

, o qual ativará uma segunda janela onde são mostrados

os parâmetros de ada lasse. Para efetivar a alteração deve-se sele ionar o parâmetro

desejado e digitar o novo valor.

4.2.6 Salvando um Modelo

Com o modelo já presente na memória, os passos para salvá-lo são bastante simples.

Para a versão Linux, no menu ativado pela opção 2 do menu prin ipal é mostrado

ao usuário as duas opções para o salvamento do modelo. A primeira opção(1) salva o

modelo num arquivo om o mesmo nome do arquivo de onde foi arregado. Já a opção

2, pergunta ao usuário qual o nome do arquivo onde ele gostaria de salvar o modelo. O

nome deve ser informado após a mensagem "Salvar o modelo omo:".

66 CAPÍTULO 4. A FERRAMENTA MQNA

Na versão Windows, para salvar o modelo no mesmo arquivo de onde foi arregado

deve sele ionar-se o item no menu . Para salvar o modelo om outro

nome deve sele ionar o item no menu . Após sele ionado o item,

surgirá uma janela onde é informado o nome do arquivo onde será salvo o modelo. Deve-se

li ar então no botão para que o modelo seja efetivamente salvo.

Um roteiro mais ompleto e exempli� ado sobre a utilização da ferramenta MQNA é

dado na PARTE III (Manual do Usuário) deste trabalho

Capítulo 5

Implementação da Ferramenta

Este apítulo ontém a do umentação sobre a implementação da ferramenta MQNA. Isso

in lui desde as estruturas de lasses e métodos riados omo também as interfa es tanto

para versão Windows quanto para versão Linux.

A seguir, primeiramente é expli ado qual a linguagem de programação es olhida para

implementação da ferramenta assim omo os motivos que levaram a essa es olha (seção

5.1). Adi ionalmente, é dada uma explanação rápida sobre alguns software também uti-

lizados no desenvolvimento da ferramenta MQNA. Após essa expli ação ini ial sobre a

es olha da linguagem e ferramentas utilizadas, é des rito então omo foi estruturada a

ferramenta, as lasses riadas, omo seus métodos e atributos (seção 5.2). Finalmente a

seção 5.3 apresenta detalhes da implementação das interfa es de ada versão (Windows e

Linux).

5.1 Linguagem de Programação Es olhida

Devido a es olha de riar um ódigo que pudesse ser ompilado e exe utado tanto em

Windows omo em Linux, optou-se pelo uso da linguagem de programação C++. A

es olha desta linguagem para desenvolver a ferramenta MQNA levou alguns fatores em

onsideração, os quais são ne essários para que a ferramenta seja bastante portável. Talvez

o prin ipal destes fatores seja a não ne essidade de instalação prévia de nenhum pa ote

68 CAPÍTULO 5. IMPLEMENTAÇ�O DA FERRAMENTA

ou bibliote a de software além do ompilador C++ (C++ Builder no aso da versão

Windows e g++ para a versão Linux). Ainda assim no aso de utilização da ferramenta

já ompilada, nem mesmo a presença dos ompiladores é ne essária.

Desenvolvendo um pou o mais as razões que justi� am a es olha desta linguagem de

programação alguns fatores avaliados são expli ados abaixo:

� Existên ia de ferramentas adequadas para riação do ódigo �nal nas duas platafor-

mas - Devido a ne essidade de ompilar o ódigo fonte para ada plataforma, levou-

se em onta a existên ia das ferramentas ne essárias nas duas plataformas. Além

disso, as ferramentas es olhidas para ompilação presisavam suportar a interfa e

grá� a no aso da versão Windows e textual para a versão Linux ;

� Rapidez de exe ução do ódigo gerado - Tendo em vista que muitos modelos riados

pelos usuários podem fa ilmente ter grandes dimensões e o upar bastante mémoria

e pro essamento da máquina, é ne essário que haja o mínimo de programas rodando

para que o modelo seja resolvido no menor espaço de tempo possível. A rapidez do

ódigo �nal, foi na verdade, um dos prin ipais motivos da es olha desta linguagem

de programação;

� Independên ia de outros software para exe ução - O primeiro aspe to que justi� a

esta ne essidade é a possibilidade de exe utar a ferramenta em qualquer plataforma

sem que haja nenhum outro software pré-instalado. O segundo aspe to, que vem em

onseqüên ia do primeiro, é a maior disponibilidade de re ursos da máquima quando

da resolução de grandes modelos, isso por não ter a ne essidade de outros software

rodando ao mesmo tempo e disputando pro essador e memória;

� Existên ia de ferramentas auxiliares - Devido a ne essidade da riação de uma

gramáti a para representação textual de modelos QN e onseqüentemente de re o-

nhe imento de um modelo des rito neste padrão, fez-se ne essária a utilização de um

software para re onhe imento léxi o e sintáti o. Neste aso as ferramentas utilizadas

foram "�ex" e "bison" para Linux e "p lex" para Windows. Essas ferramentas são

omentadas na seção seguinte.

5.1. LINGUAGEM DE PROGRAMA�O ESCOLHIDA 69

5.1.1 Ferramentas Utilizadas

No de orrer da implementação da ferramenta MQNA foram utilizadas algumas ferramen-

tas para a riação da gramáti a e ompilação do ódigo fonte.

As ferramentas utilizadas para ompilação foram:

� Borland C++ Builder 5.0 - Esta ferramenta foi utilizada no desenvolvimento de

interfa e grá� a e a ompilação do ódigo fonte na versão Windows. Esta ferramenta

foi es olhida prin ipalmente pelas fa ilidades que ofere e para o desenvolvimento

grá� o ne essário a esta versão;

� g++ - Ferramenta utilizada para ompilação dos ódigos fontes para a versão Linux

por ser padrão em grande parte das plataformas Linux.

As ferramentas utilizadas para a riação da gramáti a para modelos QN foram:

� �ex - Para o re onhe imento léxi o dos tokens da gramáti a foi utlizada a ferramenta

�ex para a versão Linux ;

� p lex - Devido ao ódigo gerado pela ferramenta �ex na versão Linux in luir bibli-

ote as que não existem para Windows, a ferramenta p lex foi então utilizada para

o re onhe imento léxi o. É interessante men ionar que o ódigo de entrada para as

duas ferramentas é exatamente igual, apenas o ódigo gerado por elas é que difere;

� bison - A ferramenta bison foi utilizada neste trabalho para fazer o re onhe imento

sintáti o da gramáti a riada para modelos QN. Ao ontrário do ódigo gerado pelas

ferramentas de re onhe imento léxi o, o ódigo gerado pela ferramenta bison pode

ser ompilado nas duas versões sem nenhuma modi� ação.

Convêm ressaltar que todas as ferramentas utilizadas para re onhe imento da gramáti-

a geram ódigo C++, o qual é ompilado juntamente om o resto dos ódigos fontes do

programa, os quais são expostos nas seções seguintes.

70 CAPÍTULO 5. IMPLEMENTAÇ�O DA FERRAMENTA

5.2 De�nição das Classes e Métodos

Devido as diferenças entre ada tipo de modelo QN a implementação da ferramenta MQ-

NA foi organizada em várias lasses. Foi riada então uma lasse "pai" hamada Qn

a qual serve de base para duas espe ializações, esta lasse ontém tudo o que é omum

aos dois tipos de modelos QN suportados pela ferramenta. Uma destas espe ializações

tem a função de representar os modelos CQN enquanto a outra representa os modelos

OQN. Criou-se ainda uma quarta lasse que é utlizada para representar as matrizes de

probabilidades de rotação de lientes. Essa quarta lasse foi riada devido a matriz de

probabilidade ter suas ara terísti as próprias, omo atributos e métodos, que suas só

são interessantes a ela, não sendo onveniente implementá-los juntos om alguma outra

lasse.

Esta lasseMatriz é então instan iada na lasse Qn omo um vetor, onde ada posição

representa a matriz de probabilidade de rotação de uma lasse de lientes do modelo.

Na Figura 5.1 pode ser visto omo estas lasses foram organizadas.

Classe Classe

Classe Classe

Qn

CQn OQn

Matriz

instan iação

espe ializaçãoespe ialização

Figura 5.1: Organização das lasses

Nas seções a seguir são apresentados os atributos e métodos mais importantes para

ada uma destas lasses individualmente.

5.2. DEFINIÇ�O DAS CLASSES E MÉTODOS 71

5.2.1 Classe Matriz

A lasse Matriz tem a função de implementar a matriz de probabilidade de rotação dos

lientes de uma lasse. Essa implementação abrange desde o armazenamento da matriz

de probabilidade de rotação em si até um método para resolução de sistemas lineares.

Esse método de resolução de sistemas lineares é ne essário para a resolução de matriz

de probabilidade e obtenção da taxa de visita de uma lasse (�

r

i

).

Optou-se por armazenar a matriz em um formato esparso

1

, visto que, por este tipo de

sistema ter uma grande quantidade de elementos nulos, a matriz armazenada no formato

esparso o upa menos memória.

O método es olhido para a resolução de sistemas lineares foi o método iterativo de

Gauss-Seidel visto na Equação 2.1, por ele se adequar melhor as ne essidade da ferra-

menta.

A seguir são expostos os atributos e prin ipais métodos desta lasse.

Atributos

Devido a simpli idade do armazenamento de uma matriz no formato esparso pou os atri-

butos foram ne essários a essa lasse. Os pou os atributos riados foram então:

d Dimensão da matriz;

nz Número de elementos diferentes de zero;

ol Vetor ontendo as posições de onde omeça e termina ada oluna nos

dois outros vetores (lin e Nz);

lin Vetor ontendo a linha de ada elemento não nulos na matriz plana;

1

No formato esparso armazena-se em três vetores unidimensionais apenas os valores diferentes de zero

de um matriz plana. No primeiro vetor guarda-se os valores não-nulos da matriz. No segundo é guardada

a linha em que ada valor estava e no ter eiro armazena-se em qual posição do vetores anterior omeça

e termina ada oluna.

72 CAPÍTULO 5. IMPLEMENTAÇ�O DA FERRAMENTA

Nz Vetor ontendo os elementos diferentes de zero da matriz.

Métodos

O método mais importante desta lasse é sem duvida o método para resolução de sistemas

lineares. Porém outros métodos auxiliares são também importantes por olo arem a

matriz na forma ne essária à ferramenta.

Abaixo são apresentados alguns métodos desta lasse.

Veri� aD Este método veri� a os elementos da diagonal prin ipal da matriz, os quais

devem ser sempre um número negativo.

Preen heD Este método é utilizado quando a diagonal prin ipal não foi de�nida da

forma orreta. Este método preen he então a diagonal prin ipal om o valor negativo

orrespondente ao somatório das demais olunas daquela linha.

Read Através deste método é passada uma matriz no formato esparso para ser ar-

mazenada na lasse.

Write Ao ontrário do método Read, este método es reve a matriz esparsa armazenada

em variáveis passadas para o método.

Gauss_Seidel Neste método é implementado o algoritmo de Gauss-Seidel para resolu-

ção de sistemas lineares sobre uma matriz esparsa. Com a resolução desta matriz obtêm-se

as taxas da visita �

r

i

de uma lasse de lientes.

5.2.2 Classe Qn

A lasse Qn é uma lasse abstrata riada para representar as ara terísti as omuns

aos dois tipos de modelos QN (CQN e OQN), os quais são espe ializados em outras

5.2. DEFINIÇ�O DAS CLASSES E MÉTODOS 73

lasses (CQn e OQn). Esta lasse implementa a maioria dos atribuitos e métodos que são

indiferentes ao tipo do modelo representado. Por esse motivo a maior parte dos métodos

por ela implementados dizem respeito a tro a ou a bus a de valores dos atributos da

lasse.

Atributos

M Número de �las na rede;

R Número de lasses diferentes na rede;

Ci Vetor om o número de servidores de ada �la;

Ki Vetor om o número máximo de lientes de ada �la;

Sri Matriz om tempo médio de serviço dos lientes de ada lasse para

ada �la;

Vri Matriz om as taxas de visita de ada lasse para ada �la

Prij Vetor om as matriz de probabilidade de rotação de ada lasse;

di Vetor om o �uxo médio geral de ada �la;

ni Vetor om a população média geral de ada �la;

ui Vetor om o índi e de utilização geral de ada �la;

wi Vetor om o tempo médio geral de resposta de ada �la;

dri Matriz om o �uxo médio de ada �la para ada lasse;

nri Matriz om a população média de ada �la para ada lasse;

uri Matriz om o índi e de utilização de ada �la para ada lasse;

wri Matriz om o tempo médio de resposta de ada �la para ada lasse;

74 CAPÍTULO 5. IMPLEMENTAÇ�O DA FERRAMENTA

modelo Nome do modelo;

Filas Vetor om o nome de ada �la;

Classes Vetor om o nome de ada lasse.

Métodos

Pela maioria dos métodos implementados nesta lasse dizer respeito a tro a ou a bus a

de valores dos atributos da lasse, pou os métodos se desta am.

Mui Este é o úni o método que implementa uma função rela ionada ao formalismo de

QN nesta lasse. O método al ula a taxa média de atendimento de uma �la para uma

determinada lasse, de a ordo om a população presente na �la.

5.2.3 Classe CQn

As ara terísti as ex lusivas dos modelos CQN são implementadas nesta lasse. Apesar

de pou os atributos, além dos já implementados na lasse Qn da qual esta lasse é uma

espe ialização, há vários métodos interessantes nesta lasse. A maioria deles implementa

algoritmos para resolução ou onversão de modelo CQN.

Atributos

Nr Vetor om o número de lientes de ada lasse;

Wri Vetor tri-dimensional om o tempo de resposta para ada população

possível da rede;

Nri Vetor tri-dimen ional om a população média de ada �la para ada

lasse e para ada população possível da rede;

Do Vetor bi-dimen ional om o �uxo padrão de ada lasse para ada po-

pulação possível da rede;

5.2. DEFINIÇ�O DAS CLASSES E MÉTODOS 75

pMarg Vetor tri-dimen ional om a probabilidade marginal de a ordo om o

número de servidores na �la para ada população possível da rede.

Métodos

Todos os métodos que dizem respeito a CQN são implementados nas lasses. Porém só

serão apresentados abaixo os métodos prin ipais, visto que, devido a omplexidade de

alguns algoritmos implementados, vários métodos auxiliares foram riados para organizar

melhor o ódigo e não ne essitam uma maior expli ação além da do umentação existente

no próprio ódigo fonte.

Os prin ipais métodos desta lasse são:

Cal ulaVri Este método hama o método de Gauss_Seidel implementado na lasse

Matriz, porém primeiramente ele opia a matriz de probabilidade de rotação para uma

estrutura auxiliar e modi� a a mesma para que esta �que de a ordo om as ne essidades

da ferramenta. Há a ne essidade de passar a matriz para uma estrutura auxiliar pois

quando se for salvar o modelo é ne essário ter a matriz original.

Read Neste método são implementadas as funções para o re onhe imento de um modelo

CQN de um arquivo textual. Os valores ne essários para o preen himento dos dados da

lasse são lidos de um arquivo auxiliar riado a partir da des rição textual do modelo

pelos métodos hamados junto om o re onhe imento léxi o e sintáti o.

Este arquivo auxiliar ontém um formato interno de dados usados pela ferramenta.

Este formato é o seguinte:

Formato interno omentado - CQN

número de lasses

número de �las

vetor om a população de ada lasse

76 CAPÍTULO 5. IMPLEMENTAÇ�O DA FERRAMENTA

vetor om o número de servidores de ada �la

vetor om a apa idade de ada �la

matriz om o tempo de serviço da �la em ada lasse

matrizes esparsas

nomes das lasses

nomes das �las

Write Este método ria um arquivo textual ontendo a des rição de um modelo CQN

baseado nos dados presentes nos atributos da lasse CQn.

Cal uladnuw O ál ulo dos índi es de desempenho para modelo CQN é feito por este

método. Devido a omplexidade do algoritmo MVA implementado aqui, foram riados

vários métodos auxiliares, os quais al ulam índi es intermediários ne essários ao método.

Destes métodos auxiliares ita-se alguns:

Cal ulaDo Cal ula o �uxo padrão de uma lasse;

Cal ulasnri Cal ula o somatório da população média de ada lasse;

Cal ulaProbMarg Cal ula a probabilidade marginal de uma �la.

Estes métodos auxiliares são protegidos e só podem ser hamados por outros métodos

da lasse.

Converte A função de onversão de modelos CQN para modelos SAN é feita por este

método. Novamente por ser um ódigo bastante extenso, foram riados outros métodos

auxiliares. Basi amente um destes métodos onverte a parte de de larações (ConvDe-

�nes), outro a parte da rede em si (ConvNetwork) e por último a parte dos resultados

(ConvResults).

5.2. DEFINIÇ�O DAS CLASSES E MÉTODOS 77

5.2.4 Classe OQn

A lasse OQn implementa alguns atributos e métodos aos herdados da lasse Qn para

poder representar modelos do tipo OQN. Da mesma maneira que na lasse CQn, pou os

atributos são adi ionados aos da lasse Qn. Porém todos os métodos de ál ulo e onversão

de um modelo OQN para SAN são implementados na lasse.

Abaixo são apresentados os atributos e métodos implementados por esta lasse.

Atributos

Lri Matriz om a taxa de hegada de lientes de ada lasse para ada �la

Métodos

Os métodos mais importantes desta lasse são os mesmos da lasse CQn, entretanto os

algoritmos implementados têm algumas diferenças.

Cal ulaVri Um pou o diferente do método da lasse CQn, este método além de hamar

o método de Gauss_Seidel implementado na lasse Matriz, ele modi� a a matriz de

rotação para in orporar uma dimensão a mais. Há a ne essidade de introduzir mais uma

dimensão pois as taxas de hegadas do exterior do modelo são onsideradas omo uma �la

do modelo quando do ál ulo das taxas de visita, porém a mesma é ignorada nos demais

ál ulos para obtenção dos índi es de desempenho.

Read Da mesma maneira que na lasse CQn, este método implementada as funções

para o re onhe imento de um modelo OQN de um arquivo textual. Entretanto os valores

ne essários para o preen himento dos dados da lasse, lidos do arquivo auxiliar, diferem

um pou o do formato interno estabele ido para os modelos CQN.

O formato para modelos OQN é então:

78 CAPÍTULO 5. IMPLEMENTAÇ�O DA FERRAMENTA

Formato interno - OQN

número de lasses

número de �las

vetor om o número de servidores de ada �la

vetor om a apa idade de ada �la

matriz om o tempo de serviço da �la em ada lasse

matriz om a taxa de hegada em ada �la para ada lasse

matrizes esparsas

nomes das lasses

nomes das �las

Write Este método ria um arquivo textual ontendo a des rição de um modelo OQN

baseado nos dados presentes nos atributos da lasse OQn.

Cal uladnuw É implementado neste método o algoritmo para o ál ulo dos índi es de

desempenho para modelo OQN. O algoritmo implementado nese método é o algoritmo

de BCMP exposto anteriormente. Diferentemente do algoritmo para resolução de modelo

CQN, este é bastante simples e não houve a ne essidade de implementação de outros

métodos auxiliares.

Converte Este método faz a onversão de modelo OQN para modelo SAN. Como na

lasse CQn, foram riados alguns métodos auxiliares, entretanto há algumas diferenças na

implementação de ada método. Mas, basi amente um destes métodos onverte a parte

de de larações (ConvDe�nes), outro método a parte da rede em si (ConvNetwork) e por

último a parte dos resultados (ConvResults) é onvertida.

5.3 De�nição das Interfa es

Duas interfa es diferen iadas foram riadas para a ferramenta MQNA. A ne essidade de

duas interfa es se deve a prospota da ferramenta de rodar tanto em plataforma Windows

5.3. DEFINI�O DAS INTERFACES 79

quanto em Linux, sendo que a interfa e para Windows é grá� a e para Linux a interfa e

é textual.

Serão apresentadas a seguir as interfa es riadas para ada plataforma. Primeiramente

serão expostas as interfa es para a plataforma Windows e em seguida as interfa es para

a plataforma Linux.

5.3.1 Interfa e Windows

A interfa e grá� a riada para a versão Windows onta basi amente om oito telas. Estas

telas são mostradas a seguir juntamente om a função que desempenham.

A tela mostrada na Figura 5.2 é a tela prin ipal da versão Windows, através dela é

possível abrir, salvar e onverter um modelo ou os resultados al ulados. Nesta tela são

mostrados, o tipo de modelo que está arregado, os dados referentes as �las e na parte

inferior os resultados gerais do modelo.

Figura 5.2: Tela prin ipal da versão Windows

Na tela mostrada na Figura 5.3 é exibido os dados referentes a ada lasse dos modelos

CQN. Os resultados obtidos para ada lasse são mostrados na parte inferior desta tela.

80 CAPÍTULO 5. IMPLEMENTAÇ�O DA FERRAMENTA

Figura 5.3: Dados das lasses para modelos CQN

A Figura 5.4 mostra tela om a mesma função da tela representada pela Figura 5.3,

porém exibe os dados e resultados dos modelos OQN.

Figura 5.4: Dados das lasses para modelos OQN

5.3. DEFINI�O DAS INTERFACES 81

A seqüên ia de telas a seguir, ini iada na Figura 5.5 e �nalizada na Figura 5.8, são

utilizadas quando da riação automâti a de um novo modelo. Estas telas tem a função

de auxiliar o usuário na de�nição dos atributos bási os de um modelo QN qualquer.

A primeira tela, mostrada na Figura 5.5, é utilizada para de�nir o nome do modelo.

Figura 5.5: Nome do novo modelo

Na segunda tela é es olhido o tipo do modelo.

Figura 5.6: Tipo do novo modelo

A ter eira tela, Figura 5.7, é onde informa-se o número de lasse que terá o modelo.

82 CAPÍTULO 5. IMPLEMENTAÇ�O DA FERRAMENTA

Figura 5.7: Número de lasses do novo modelo

Na última tela desta seqüên ia, Figura 5.8, deve ser informado o número de �las que

terá o modelo.

Figura 5.8: Número de �las do novo modelo

A tela seguinte, mostrada na Figura 5.9, é a tela de ajuda e exemplos da versão

Windows. Nesta tela é arregado um arquivo texto de a ordo om a ajuda hamada.

Convêm men ionar que algumas telas da ferramenta foram omitidas desta expli ação

por serem padrão do Windows e geradas automati amente, por exemplo, a tela de diálogo

para abrir um arquivo.

5.3. DEFINI�O DAS INTERFACES 83

Figura 5.9: Tela de ajuda

5.3.2 Interfa e Linux

Apesar de mais simples que a interfa e da versão Windows a interfa e Linux têm as mesma

fun ionalidades.

Visivelmente inspirada na interfa e da ferramenta PEPS, a interfa e textual da ferra-

menta MQNA bus a trazer o máximo de informações possíveis sobre as operações feitas

sem que atrapalhe o usuário. Para isso foram riados menus de opções que são re-exibidos

após ada operação, � ando as mensagens geradas pela ferramenta registradas a ima dess-

es menus.

A seguir são mostrados os menus disponíveis na versão textual e as fun ionalidades de

ada um deles.

No menu prin ipal, Figura 5.10, tem-se a possibilidade de es olha das várias funções

implementadas na ferramenta. Dentre as funções ita-se:

1 arregar um modelo;

2 salvar um modelo;

3 al ular taxas de visita;

4 al ular índi es de desempenho;

5 alterar parâmetros do modelo;

84 CAPÍTULO 5. IMPLEMENTAÇ�O DA FERRAMENTA

6 exibir resultados;

7 onverter modelo QN para SAN;

8 informações sobre a ferramenta;

0 en erra o programa.

Figura 5.10: Menu prin ipal

A Figura 5.11 mostra o menu utilizado para salvar um modelo QN presente na

memória, há nele a possibilidade de salvar o modelo om o mesmo nome que foi ar-

regado ou om um nome diferente.

Figura 5.11: Opção para salvar um modelo

O menu mostrado na Figura 5.12 é ativado pela opção três do menu prin ipal e nele

é possível resolver as matrizes de probabilidade de rotação e al ular as taxas de visita.

Há ainda opções para alterar o número máximo de iterações e o erro máximo a eitável.

O menu ativado pela opção in o do menu prin ipal tem a função de alterar os parâ-

metros de um modelo QN.

5.3. DEFINI�O DAS INTERFACES 85

Figura 5.12: Opção de ál ulo das taxas de visita

Este menu se subdivide em dois outros. Um para modi� ar os parâmetros rela ionados

as lasses e outro para modi� ar os parâmetros de ada �la do modelo.

Convêm ressaltar que as opções exibidas nos menus das Figuras 5.14 e 5.15 são altera-

dos onforme o tipo de modelo arregado na memória. Um exemplo disto é a opção três

do menu da Figura 5.14, a qual só apare e disponível ao usuário quando há um modelo

CQN na memória.

Estes três menus são mostrados nas Figuras 5.13, 5.14 e 5.15 a seguir.

Figura 5.13: Modi� ar parâmetros do modelo

Figura 5.14: Modi� ar parâmetros das lasses

Figura 5.15: Modi� ar parâmetros das �las

86 CAPÍTULO 5. IMPLEMENTAÇ�O DA FERRAMENTA

No menu da Figura 5.16 o usuário tem a opção de exibir os índi es de desempenho

al ulados. Pode-se optar pela exibição dos índi es gerais, de uma lasse espe í� a ou de

todas as lasses do modelo.

Figura 5.16: Exibir índi es de desempenho

O último menu desta interfa e é o menu de informações da ferramenta, nele podem

ser obtidas informações sobre ada tipo de modelo QN, sobre o método de onversão e

sobre a ferramenta em si.

Figura 5.17: Menu de ajuda

Como já havia sido men ionado anteriormente, o relato da implementação de ferra-

menta MQNA feito aqui, não abrange todos os detalhes da implementação, apenas os

mais importantes. As fun ionalidades mais simples, assim omo mensagens informativas

geradas pela ferramentas podem ser vistas diretamente no ódigo fontes.

87

Parte III

Manual do Usuário

Capítulo 6

Guia Rápido de Ini iação

Esse Guia Rápido de Ini iação é desenvolvido para ajudar o usuário a aprender omo

usar a ferramenta MQNA.

O guia está organizado em seções que ensinam as fun ionalidades mais omumente

utilizadas. A Seção 6.1 expli a omo riar um modelo para MQNA e ompilá-lo. A Seção

6.2 mostra omo salvar o modelo da memória em um arquivo. A Seção 6.3 ensina omo

fazer para resolver o modelo ompilado e salvar os resultados. A Seção 6.4 mostra os

passos ne essários para onverter um modelo QN para um modelo SAN.

Devido as duas interfa es da ferramenta, ada seção apresenta primeiro os passos

ne essários na versão Linux e em seguida os passos para a versão Windows. Salvo quando

os passos independem da interfa e utilizada.

Esse guia de ini iação não traz todas as poten ialidades da ferramenta MQNA. Mas

provê um onhe imento bási o para que o usuário possa explorar mais profundamente as

fun ionalidades implementadas no software.

90 CAPÍTULO 6. GUIA RÁPIDO DE INICIAÇ�O

6.1 Como Criar e Compilar um Modelo QN

A riação de um modelo QN para a ferramenta MQNA pode ser feita om qualquer editor

de texto e onsiste em um arquivo textual ontendo a des rição de um sistema de a ordo

om a gramáti a de�nida para a ferramenta.

Um exemplo bastante simples de uma CQN mono- lasse om três �las pode ser visto

na Figura 6.1.

1

3

2

�2

M = 3

R = 1

N = 10

C

1

= 1

C

2

= 1

C

3

= 1

S

1

1

= 2

S

1

2

= 1

S

1

3

= 1

�1

K

1

= 3

K

2

= 2

K

3

= 5

P

1

1;3

= �2

P

1

1;2

= �1

Figura 6.1: Figura do exemplo1.mqn des rito a seguinte

A Figura 6.1 é des rita textualmente da seguinte maneira.

exemplo1.mqn - CQN mono- lasse

qn exemplo1(1,3)

de larations{

lass 1;

queue q1;

queue q2;

queue q3;

}

network{

population lass 1 = 10;

queue q1 {

servers = 1;

apa ity = 3;

lass 1 {

servi e time = 2;

rot q2: 0.2;

rot q3: 0.8;

}

}

6.2. COMO SALVAR UM MODELO 91

queue q2 {

servers = 1;

apa ity = 2;

lass 1 {

servi e time = 1;

rot q1: 1;

}

}

queue q3 {

servers = 1;

apa ity = 5;

lass 1 {

servi e time = 1;

rot q1: 1;

}

}

}

Vamos onsiderar que o exemplo dado a ima esteja salvo em um arquivo hamado

"exemplo1.mqn". Assim os passos a seguir podem ser melhor exempli� ados.

Linux No menu prin ipal deve-se sele ionar a opção 1 (Compilar um modelo QN). Após

a mensagem "Nome do arquivo QN:" informar o nome do arquivo. Neste aso o arquivo

utilizado é "exemplo1.mqn". Ao �nalizar esses passos o modelo já estará na memória.

Windows No menu sele ionar a opção . Na janela que surgiu sele-

ionar o nome do arquivo ontendo o modelo. Após a seleção li ar no botão

no anto inferior direito para que o modelo seja ompilado.

O modelo somente será ompilado aso não haja problemas na des rição do mesmo.

De modo ontrário a ferramenta avisará do erro en ontrado e terminará a exe ução.

6.2 Como Salvar um Modelo

Com um modelo ompilado na memória pode-se salvar o mesmo em um arquivo textual.

O modelo pode ser salvo tanto no mesmo arquivo de onde foi arregado quanto em um

92 CAPÍTULO 6. GUIA RÁPIDO DE INICIAÇ�O

arquivo diferente.

Linux Para salvar o modelo no mesmo arquivo deve-se sele ionar a opção 2 (Salvar um

modelo QN) no menu prin ipal. Em seguida sele ionar a opção 1 (Salvar) no sub-menu.

O modelo será salvo no mesmo arquivo de onde foi ompilado.

Para salvar o modelo om um arquivo diferente, deve-se sele ionar a opção 2 (Salvar

um modelo QN) no menu prin ipal. Em seguida sele ionar a opção 2 (Salvar omo:) no

sub-menu. Após a mensagem "Salvar modelo omo:" informar o nome do arquivo.

Windows Para salvar o modelo om o mesmo nome deve-se sele ionar o item

no menu . Caso haja um modelo na memória este será salvo no mesmo arquivo

de onde foi ompilado.

No aso de salvar o modelo em um arquivo diferente, sele iona-se o item

no menu . Na janela que surgirá deve-se informar o nome da arquivo e em seguida

li ar no botão na parte inferior do lado direito da janela.

Caso não seja informado a extensão do arquivo, a ferramenta adi ionará a extensão

".mqn" ao nome do arquivo.

6.3 Como Computar os Índi es de Desempenho

Após ompilar o modelo sem que o orra problemas, segue-se alguns passos ne essários

para omputar os índi es de desempenho do modelo.

Linux Sele ionar a opção 4 (Computar índi es de desempenho) no menu prin ipal. Após

a mensagem "Salvar resultado omo:" informar o nome do arquivo onde será salvo

os resultados. Caso não haja problema na omputação dos índi es de desempenho, os

6.4. COMO CONVERTER UM MODELO 93

mesmo estarão salvos no arquivo informado

1

e os índi es gerais de desempenho também

serão mostrados na tela.

Windows A maneira mais simples de omputar os índi es de desempenho é li ar no

botão no entro da tela prin ipal. Os índi es gerais de desempenho

são exibidos na parte inferior da tela prin ipal.

Para visualizar os índi es de desempenho de ada lasse individualmente deve-se li ar

no botão . Surgirá um segunda tela para edição dos pa-

râmetros de ada lasse, na parte inferior das telas são exibidos os índi es de desempenhos

da lasse.

Para o Exemplo1:mqn riado a ima os índi es gerais de desempenho omputados por

MQNA são os seguintes:

Fila Fluxo médio População média Utilização média Tempo médio de resposta

q1 4.999622e-01 9.222770e+00 9.999245e-01 1.844693e+01

q2 9.999245e-02 1.110999e-01 9.999245e-02 1.111083e+00

q3 3.999698e-01 6.661298e-01 3.999698e-01 1.665450e+00

Tabela 6.1: Índi es de desempenho do Exemplo1.mqn

Maiores detalhes sobre omo salvar os resultados obtidos são dados no Manual de

Referên ia do Usuário.

6.4 Como Converter um Modelo

A onversão é usada na maioria das vezes para obtenção de índi es de desempenho de

rede à apa idade limitada, entretanto pode ser útil também na omparação dos resultados

omputados por outras ferramentas.

1

A ferramenta adi iona automati amente a extensão ".res" ao nome do arquivo informado. Isso é

feito para melhor identi� ar os arquivos ontendo os resultados omputados.

94 CAPÍTULO 6. GUIA RÁPIDO DE INICIAÇ�O

Linux Para onverter um modelo QN para SAN deve-se sele ionar a opção 7 (Conveter

um modelo QN para SAN) no menu prin ipal. Em seguida informar o nome de arquivo

após a mensagem "Salvar modelo SAN omo:". O modelo será onvertido e salvo no

arquivo informado.

Ex lusivamente para modelo CQN deve-se informar se a onversão do modelo será

om ou sem restrição à apa idade das �las. Isso deve ser informado após a mensagem

"Salvar modelo om restrição de apa idade(s/n)?" es olhendo as opções `s' ou

`n'.

Windows Para onverter o modelo presente na memória, a maneira mais simples é

li ar no botão no entro da tela prin ipal. Em seguida informar o

nome do arquivo onde será salvo o modelo SAN onvertido. Após informar o nome do

arquivo li ar no botão no lado direito inferior da janela.

Uma segunda informação ainda é ne essária quando da onversão de modelos CQN.

Essa informação é sobre a onversão om ou sem restrição à apa idade das �las. Para

isso deve-se li ar nos botões ou na janela que surgirá na tela

(Figura 6.2).

Figura 6.2: Conversão para SAN om ou sem restrição a apa idade

Convêm ressaltar que aso o modelo do "exemplo1.mqn" seja onvertido sem restrição

à apa idade das �las, os resultados obtidos pela ferramenta PEPS na resolução do modelo

6.4. COMO CONVERTER UM MODELO 95

onvertido são iguais aos resultados omputados pela ferramenta MQNA.

Para informações mais detalhes sobre todas as poten ialidades da ferramenta MQNA

deve-se onsultar o Manual de Referên ia do Usuário (Capítulo 7).

96 CAPÍTULO 6. GUIA RÁPIDO DE INICIAÇ�O

Capítulo 7

Manual de Referên ia do Usuário

Esse Manual de Referên ia do Usuário expli a detalhadamente ada fun ionalidade im-

plementada na ferramenta MQNA.

Da mesma maneira que o Guia Rápido de Ini iação, esse manual está organizado em

seções. Cada seção trata de um assunto isolado que vai desde a riação de modelos até a

utilização da ajuda da ferramenta.

Mais espe i� amente, a Seção 7.1 expli a a riação de modelos. Na Seção 7.2 é exposto

a ompilação dos modelos riados. A Seção 7.3 ontém detalhes de omo salvar um modelo

presente na memória. A Seção 7.4 mostra omo al ular as taxas de visita de um modelo.

Na Seção 7.5 é expli ado omo obter os índi es de desempenho do modelo. A Seção 7.6

expli a o que fazer para alterar os parâmetros do modelo. Na Seção 7.7 mostra-se o que

é ne essário para exibir os índi es de desempenho omputados. A Seção 7.8 expli a os

passos que devem ser seguidos para onverter um modelo QN para SAN. Finalmente a

Seção 7.9 expli a omo obter ajuda na ferramenta.

Devido as duas interfa es implementadas, é apresentado em ada seção primeiramente

os passos para a interfa e Linux e em seguida os passos para a interfa e Windows.

98 CAPÍTULO 7. MANUAL DE REFERÊNCIA DO USUÁRIO

7.1 Criando Modelos

Visto que a ferramenta MQNA ompila modelos QN a partir de um arquivo textual, a

riação dos modelos pode ser feita om a ajuda de qualquer editor de texto.

A seguir é expli ada a estrutura bási a de um modelo e também a estrutura de um

modelo um pou o mais elaborado. Ao �nal desta seção é expli ado a riação de modelos

om o uso de um assistente de riação ex lusivo da versão Windows.

7.1.1 Modelos Bási os

Considerou-se aqui um modelo bási o qualquer modelo QN om apenas uma lasse dife-

ren iada de lientes. Esse modelo bási o que será expli ado a seguir tem o objetivo de

introduzir a gramáti a usada pela ferramenta MQNA na representação de modelo QN.

1

2

M = 2

R = 1

N = 10

K

1

= 6

K

2

= 5

C

1

= 1

C

2

= 1

S

1

1

= 0:2

S

1

2

= 0:1

Figura 7.1: Figura do exemplo2.mqn

A seguir é mostrado um exemplo omentado de um modelo bastante simples om uma

lasse de liente e duas �las, de a ordo om o modelo que representado na Figura 7.1.

exemplo2.mqn - CQN mono- lasse

qn exemplo2(1,2) // entre parênteses de�ne-se o número de lasse e número de �las

de larations{ // iní io das de larações

lass 1; // de laração da lasse

queue q1; // de laração da primeira �la

queue q2; // de laração da segunda �la

} // �m das de larações

network{ // iní io da des rição do modelo

population lass 1 = 10; // população total da lasse, existe somente em CQN

queue q1 { // des rição da primeira �la

servers = 1; // número de servidores desta �la

7.1. CRIANDO MODELOS 99

apa ity = 6; // apa idade da �la, é ignorada no ál ulo à forma-produto

lass 1 { // des rição da lasse nesta �la

servi e time = 0.2; // tempo de serviço desta lasse nesta �la

rot q2: 1; // rotação dos lientes desta lasse

} // �m da des rição da lasse

} // �m da des rição de primeira �la

queue q2 { // des rição da segunda �la

servers = 1; // número de servidores da segunda �la

apa ity = 5; // apa idade da segunda �la

lass 1 { // iní io da des rição da lasse 1

servi e time = 0.1; // tempo de serviço da lasse 1 nesta �la

rot q1: 1; // rotação dos lientes desta lasse saídos desta �la

} // �m da des rição da lasse

} // �m da des rição da segunda �la

} // �m da des rição do modelo

7.1.2 Modelos Multi-Classe

Os modelos multi- lasse são em geral um pou o mais so�sti ados que os modelos mono-

lasse. Deve-se uidar prin ipalmente na des rição do modelo que para as duas lasses

estejam des ritas em ada uma das �las.

Abaixo é apresentado, na Figura 7.2, o modelo CQN des rito no "exemplo2.mqn" om

a in lusão de mais uma lasse de lientes.

1

2

S

1

2

= 0:1

S

2

1

= 0:4

S

1

1

= 0:2

C

1

= 1

S

2

2

= 0:2

C

2

= 1

M = 2

R = 2

N

2

= 10

N

1

= 10

K

1

= 11

K

2

= 10

Figura 7.2: Figura do exemplo3.mqn

A seguir é apresentada a des rição textual da Figura 7.2 onforme a gramáti a de�nida

para a ferramenta.

exemplo3.mqn - CQN multi- lasse

qn exemplo3(2,2) // entre parênteses de�ne-se o número de lasse e número de �las

de larations{ // iní io das de larações

lass 1; // de laração da primeira lasse

100 CAPÍTULO 7. MANUAL DE REFERÊNCIA DO USUÁRIO

lass 2; // de laração da segunda lasse

queue q1; // de laração da primeira �la

queue q2; // de laração da segunda �la

} // �m das de larações

network{ // iní io da des rição do modelo

population lass 1 = 10; // população total da lasse 1

population lass 2 = 10; // população total da lasse 2

queue q1 { // des rição da primeira �la

servers = 1; // número de servidores desta �la

apa ity = 11; // apa idade da �la, é ignorada no ál ulo à forma-produto

lass 1 { // des rição da lasse 1 nesta �la

servi e time = 0.2; // tempo de serviço desta lasse nesta �la

rot q2: 1; // rotação dos lientes desta lasse

} // �m da des rição da primeira lasse

lass 2 { // des rição da segunda lasse

servi e time = 0.4; // tempo de serviço desta lasse nesta �la

rot q2: 1; // rotação dos lientes da lasse 2

} // �m da des rição da segunda lasse

} // �m da des rição de primeira �la

queue q2 { // des rição da segunda �la

servers = 1; // número de servidores da segunda �la

apa ity = 10; // apa idade da segunda �la

lass 1 { // iní io da des rição da lasse 1

servi e time = 0.1; // tempo de serviço da lasse 1 nesta �la

rot q1: 1; // rotação dos lientes desta lasse saídos desta �la

} // �m da des rição da lasse

lass 2 { // iní io da des rição da lasse 2

servi e time = 0.2; // tempo de serviço da lasse 2 nesta �la

rot q1: 1; // rotação dos lientes da lasse 2

} // �m da des rição da segunda lasse

} // �m da des rição da segunda �la

} // �m da des rição do modelo

7.1.3 Utilizando o Assistente para Criação de um Novo Modelo

O Assistente para Criação de um Novo Modelo é uma fa ilidade ofere ida pela versão

Windows onde é possível a riação de um modelo automati amente. O modelo riado

pelo assistente é um modelo de�nido a partir dos dados oletados pelo assistente. Após

riado, o modelo ontém valores padrões que podem ser alterados pelo usuário onforme

a ne essidade.

7.1. CRIANDO MODELOS 101

Para usar o assistente, deve-se li ar no item no menu . Surgirá

então a janela do assistente, vista na Figura 7.3. Nesta primeira janela deve-se informar

o nome do modelo.

Figura 7.3: Nome do novo modelo

Na segunda janela, mostrada na Figura 7.4, es olhe-se qual o tipo de modelo QN que

deseja-se riar, os tipos possíveis são CQN e OQN.

Figura 7.4: Tipo do novo modelo

O número de lasses de lientes diferen iados que vai existir no modelo é de�nido na

ter eira janela (Figura 7.5) e o número de �las do modelo na quarta janela (Figura 7.5).

102 CAPÍTULO 7. MANUAL DE REFERÊNCIA DO USUÁRIO

Figura 7.5: Número de lasses do novo modelo

Figura 7.6: Número de �las do novo modelo

Para navegar entre as janelas utiliza-se os botões , para passar à janela

seguinte e para retorna à janela anterior. Na última janela deve-se li ar

no botão para terminar o pro esso e riar o modelo. Pode-se an elar o

pro esso de riação a qualquer momento, para isso li a-se no botão .

7.2. COMPILANDO MODELOS 103

7.2 Compilando Modelos

Quando o modelo é ompilado, o mesmo é analisado para ver se está em adequação as

regras da gramáti a de�nida para a ferramenta. Após essa análise gramati al o modelo é

arregado na memória e � a disponível tanto para alterações quanto para a omputação

dos índi es de desempenho.

Linux No menu prin ipal sele ionar a opção 1 (Compilar um modelo QN). Informar o

nome do arquivo, o qual deve ter a extensão ".mqn", após a mensagem "Nome do Arquivo

QN:".

Windows Sele ionar o item no menu . Na janela que surgirá, sele-

ionar o arquivo ontendo o modelo. Após sele ionado li ar no botão .

7.3 Salvando Modelos

Normalmente utilizada após a alteração de algum parâmetro do modelo, a opção de

salvar o modelo pode ser feita de duas maneiras. Simplesmente salvar o modelo ou salvar

o modelo em um arquivo diferente.

7.3.1 Salvar

Essa opção salva o modelo que está na memória no mesmo arquivo de onde foi arregado.

Linux Sele ionar a opção 2 (Salvar um modelo QN) no menu prin ipal. No sub-menu

desta opção sele ionar a opção 1 (Salvar). O modelo será salvo no mesmo arquivo de onde

foi arregado.

Windows No menu basta sele ionar o item que o modelo será salvo

no arquivo de onde foi arregado.

104 CAPÍTULO 7. MANUAL DE REFERÊNCIA DO USUÁRIO

No aso do modelo ter sido riado pelo Assistente e ainda não tiver um arquivo

asso iado, a janela da opção será exibida para a es olha de um novo

arquivo onde será salvo o modelo.

7.3.2 Salvar omo:

Esta opção salva o modelo presente na memória pedindo em qual arquivo salvá-lo.

Linux Sele ionar a opção 2 (Salvar um modelo QN) no menu prin ipal. No sub-menu

desta opção sele ionar a opção 2 (Salvar omo:). Após a mensagem "Salvar o modelo

omo:", informar o nome do arquivo

1

.

Windows Sele ionar o item no menu . Na janela exibida in-

formar o nome do arquivo onde será salvo o modelo e em seguida li ar em .

7.4 Cal ulando Taxas de Visita

Cal ula as taxas de visita usadas para a omputação dos índi es de desempenho. Essas

taxas são obtidas om a resolução da matriz de probabilidade de rotação dos lientes.

Segue algumas maneiras de obté-las sem que seja pre iso omputar o modelo.

7.4.1 Cal ulando Todas as Taxas

Essa opção resolve a matriz de probabilidade de rotação de todas as lasses do modelo.

Linux No menu prin ipal sele ionar a opção 3 (Computar taxas de visita). No sub-

menu desta opção sele ionar a opção 1 (Computar todas as lasses). Após as mensagem

"Salvar vetor de probabilidade omo:", informar o nome do arquivo

2

.

1

Será adi onada a extensão ".mqn", aso está não seja informada.

2

Será adi onada a extensão ".vet" ao nome do arquivo e salvo no diretório "./vet".

7.4. CALCULANDO TAXAS DE VISITA 105

Windows Deve-se li ar no botão para abri a janela

de edição de parâmetros da lasse. Nessa janela li ar no botão .

Para salvar as taxas de visita al uladas deve-se li ar no botão .

Na janela que surgirá deve ser informado o nome do arquivo e em seguida li ar no botão

.

7.4.2 Cal ulando Taxas de Visita de uma Classe

Existente apenas na versão Linux, usa-se para al ular as taxas de visita de uma lasse

espe í� a.

Deve-se para isso sele ionar a opção 3 (Computar taxas de visita) no menu prin ipal.

No sub-menu desta opção sele ionar a opção 2 (Espe i� ar a lasse). Informar a lasse

que deseja-se al ular após a mensagem "Entre o número da lasse a ser omputada

(0..x):"

3

. As taxas al uladas são mostradas na tela.

7.4.3 Alterando Número Máximo de Iterações

O número máximo de iterações é alterado quando a resolução da matriz de probabilidade

de rotação não al ançou o erro máximo a eitável após o número de iterações de�nido.

Linux Deve-se sele ionar a opção 3 (Computar taxas de visita) no menu prin ipal.

Sele ionar novamente a opção 3 (Alterar número de iterações) no sub-menu. Informar o

número de iterações após a mensagem "Entre o número máximo de iterações:".

Windows Há duas possibilidades para mudar o número máximo de iterações. Na

primeira maneira deve-se sele ionar o item no menu na

janela prin ipal. A segunda maneira é mais práti a aso a janela ativa seja a janela de

3

x representa a última lasse do modelo, a es olha da lasse deve ser entre as opções dentro dos

parênteses.

106 CAPÍTULO 7. MANUAL DE REFERÊNCIA DO USUÁRIO

edição de parâmetros das lasses. Nessa janela li a-se no botão

no lado direito superior da janela.

Nos dois asos surgirá uma ter eira janela (Figura 7.7) onde é informado o número de

iterações que se deseja.

Figura 7.7: Alteração do número máximo de iterações

7.4.4 Alterando Erro Máximo A eitável

Normalmente o erro máximo a eitável é alterado quando ne essita-se de uma pre isão

maior nos resultados.

Linux Deve-se sele ionar a opção 3 (Computar taxas de visita) no menu prin ipal. Se-

le ionar a opção 4 (Alterar erro máximo) no sub-menu. Informar o erro máximo a eitável

após a mensagem "Entre o erro máximo a eitável:".

Windows É possível mudar o erro máximo de duas maneiras. Na primeira maneira

deve-se sele ionar o item no menu na janela prin ipal. A segunda

maneira é mais práti a se a janela for a janela de edição dos parâmetros das lasses. Nessa

janela deve-se li ar no botão no lado direito superior da

janela.

Surgirá uma ter eira janela (Figura 7.8), independente da maneira es olhida. Nessa

janela deve ser informado o erro máximo a eitável na resolução da matriz.

7.5. COMPUTANDO ÍNDICES DE DESEMPENHO 107

Figura 7.8: Alteração do erro máximo a eitável

7.5 Computando Índi es de Desempenho

São omputados por MQNA os índi es de desempenho omumente utilizados para avali-

ação de redes à forma-produto. Esses índi es são: o �uxo médio padrão, a utilização

média, a população média e o tempo médio de resposta.

Esses índi es são obtidos através dos seguintes passos.

Linux Computa-se os índi es de desempenho sele ionando a opção 4 (Computar índi es

de desempenho) no menu prin ipal. Após a mensagem "Salvar resultado omo:",

deve-se informar o nome do arquivo onde serão salvos os resultados

4

. Os resultados

gerais do modelo, além de salvo no arquivo informado, são mostrados também na tela.

Windows Duas maneiras são possíveis para omputar os índi es de desempenho do

modelo. Na primeira maneira deve-se sele ionar o item no menu

da janela prin ipal. A segunda maneira é um pou o mais práti a. Deve-se

li ar no botão presente tanto no entro da janela prin ipal quanto

na parte inferior da janela para edição dos parâmetros das lasses.

Os resultados obtidos são exibidos na parte inferior das janelas. Contanto, na janela

4

A ferramenta adi iona automati amente a extensão ".res" ao nome do arquivo informado. Isso é

feito para melhor identi� ar os arquivos ontendo os resultados omputados.

108 CAPÍTULO 7. MANUAL DE REFERÊNCIA DO USUÁRIO

prin ipal são exibidos os índi es gerais do modelo enquanto na janela de edição dos parâ-

metros das lasses são exibidos os índi es de desempenho espe í� os de ada lasse.

7.5.1 Salvando Resultados

Esta é uma opção disponível somente para a versão Windows, visto que na versão Linux

os resultados são salvos juntamente om a omputação dos índi es de desempenho.

Para salvar os resultados omputados em arquivo li a-se no item

no menu . Surgirá uma janela onde deve ser informado o nome do arquivo onde

será salvo os resultados e em seguida li ar no botão .

7.6 Alterando Parâmetros do Modelo

A alteração do modelo é feita normalmente para adequar o modelo riado as ara terísti as

do sistema ou para testar diversas on�gurações observando aquela que melhor se adequa

ao sistema real.

Altera-se normalmente dois tipos de parâmetros. Os parâmetros das lasses e os

parâmetros das �las.

7.6.1 Alterando Parâmetros das Classes

Alguns parâmetros podem ser alterados para ada lasse individualmente. Segue abaixo

omo pro eder para alterar ada parâmetro.

Nome da Classe

Apesar de não afetar os índi es de desempenho do modelo, o nome da lasse serve para

identi� ar o es opo de ada lasse na des rição textual de um modelo QN.

7.6. ALTERANDO PARÂMETROS DO MODELO 109

Linux No menu prin ipal sele iona-se a opção 5 (Alterar parâmetros do modelo). No

sub-menu desta opção sele ionar a opção 1 (Parâmetros das lasses). Neste sub-menu se-

le ionar novamente a opção 1 (Nome da lasse). Após a mensagem "Entre o número da

lasse(0..X):"

5

informa-se qual a lasse que deseja-se alterar o nome. O nome da lasse

deve ser informado após a mensagem "Entre o nome da lasse(x):"

6

.

Windows Caso a janela de edição dos parâmetros da lasse não esteja aberta, deve-

se li ar no botão para abri-la. Sele iona-se então a

aixa de edição ao lado da mensagem . O nome da lasse deve ser

informado na aixa de edição onde apare e o nome atual da lasse.

Tempo de Serviço

Essa parâmetro altera o tempo médio de serviço de uma lasse em uma �la.

Linux No menu prin ipal sele iona-se a opção 5 (Alterar parâmetros do modelo). No

sub-menu desta opção sele ionar a opção 1 (Parâmetros das lasses). Neste sub-menu

sele ionar a opção 2 (Tempo de serviço). Após a mensagem "Entre o número da lasse

(0..X):", informa-se qual a lasse que deseja-se alterar. Deve-se informar ainda em qual

�la será feita a alteração. Informa-se a �la após a mensagem "Entre o número da fila

(0..Y):"

7

. O tempo de serviço é informado após a mensagem "Entre o tempo médio de

serviço de lientes da lasse(x) na fila(y):"

8

.

Windows Caso a janela de edição dos parâmetros da lasse não esteja aberta, deve-se

li ar no botão para abri-la. Em seguida deve-se sele-

ionar no quadro om os tempos de serviço a �la desejada (Figura 7.9). Após sele ionada

é só alterar o valor atual para o valor desejado.

5

Entre parênteses são mostradas as opções de lasse, X representa a última lasse do modelo.

6

x representa o número da lasse es olhida.

7

Entre parênteses são mostradas as opções de �la, Y representa a última �la do modelo.

8

x e y representam respe tivamente o número da lasse e da �la es olhidas.

110 CAPÍTULO 7. MANUAL DE REFERÊNCIA DO USUÁRIO

Figura 7.9: Alteração do tempo de serviço

População da Classe

Esse parâmetro só está presente nos modelos CQN e representa a população total de

lientes da lasse.

Altera-se a população da lasse da seguinte maneira.

Linux No menu prin ipal sele iona-se a opção 5 (Alterar parâmetros do modelo). No

sub-menu desta opção sele ionar a opção 1 (Parâmetros das lasses). Neste sub-menu sele-

ionar a opção 3 (População da lasse). Após a mensagem "Entre o número da lasse

(0..X):", informa-se qual a lasse que deseja-se alterar a população. Informa-se a nova

população após a mensagem "Entre a população da lasse(x):".

Windows Caso a janela de edição dos parâmetros da lasse não esteja aberta, deve-se

li ar no botão para abri-la. Deve sele ionar-se então

a aixa de edição ao lado da mensagem . Após sele ionada é só

informar a população desejada para efetivar a alteração.

Taxa de Chegada

Assim omo a população da lasse é um parâmetro ex lusivo dos modelos CQN a taxa de

hegada é ex lusividade das OQN.

A alteração da taxa de hegada de uma lasse em uma �la é feita da seguinte maneira.

Linux No menu prin ipal sele iona-se a opção 5 (Alterar parâmetros do modelo). No

sub-menu desta opção sele ionar a opção 1 (Parâmetros das lasses). Neste sub-menu

sele ionar a opção 3 (Taxa de hegada da lasse). Após a mensagem "Entre o número da

7.6. ALTERANDO PARÂMETROS DO MODELO 111

lasse(0..X):", informa-se qual a lasse que deseja-se alterar. Deve-se informar também

em qual �la será feita a alteração. Informar a �la após a mensagem "Entre o número

da fila(0..Y):". A taxa de hegada é informada após a mensagem "Entre a taxa de

hegada média de lientes da lasse(x) na fila(y):".

Windows Caso a janela de edição dos parâmetros da lasse não esteja aberta, deve-

se li ar no botão para abri-la. Em seguida deve ser

sele ionada, no quadro om as taxas de hegada (Figura 7.10), a �la desejada. Após

sele ionada é só alterar o valor atual para o valor desejado.

Figura 7.10: Alteração da taxa de hegada de lientes

7.6.2 Alterando Parâmetros das Filas

Os parâmetros das �las que são omumente alterados são basi amente: o nome da �la, o

número de servidores e a apa idade da �la.

A alteração de ada um destes parâmetros é mostrada individualmente a seguir.

Nome da Fila

O nome da �la é utilizado para identi� ar ada �la numa des rição textual do modelo.

Linux No menu prin ipal sele iona-se a opção 5 (Alterar parâmetros do modelo). No

sub-menu desta opção sele ionar a opção 2 (Parâmetros das �las). Neste sub-menu sele-

ionar a opção 1 (Nome da �la). Após a mensagem "Entre o número da fila(0..Y):"

9

9

Entre parênteses são mostradas as opções de �la, Y representa a última �la do modelo.

112 CAPÍTULO 7. MANUAL DE REFERÊNCIA DO USUÁRIO

informa-se qual a �la que deseja-se alterar o nome. Informa-se o nome da �la após a men-

sagem "Entre o nome da fila(y):".

Windows A alteração do nome da �la é feita na janela prin ipal da ferramenta. Na

segunda oluna do quadro Cara terísti as das �las (Figura 7.11), deve ser sele ionada a

�la que deseja-se alterar o nome. Após sele ionado é ne essário apenas informar o novo

nome.

Figura 7.11: Alteração do nome da �la

Número de Servidores

Esse parâmetro de�ne o número de servidores em paralelos utilizados na �la.

Linux No menu prin ipal sele iona-se a opção 5 (Alterar parâmetros do modelo). No

sub-menu desta opção sele ionar a opção 2 (Parâmetros das �las). Neste sub-menu sele-

ionar novamente a opção 2 (Número de servidores). Após a mensagem "Entre o número

da fila(0..Y):", informa-se qual a �la que deseja-se alterar o número de servidores.

Informa-se então o número de servidores após a mensagem "Entre o número de servi-

dores da fila(y):".

Windows Na janela prin ipal deve ser sele ionada a �la que deseja-se mudar o número

de servidores na ter eira oluna (Figura 7.12) do quadro Cara terísti as das �las. Após

sele ionada a �la desejada é ne essário apenas tro ar o valor exibido pelo valor desejado.

Figura 7.12: Alteração do número de servidores da �la

7.7. EXIBINDO RESULTADOS 113

Capa idade da Fila

A alteração deste parâmetro não in�uen ia nos índi es de desempenho omputados por

MQNA, visto que é ignorado nas redes à forma-produto. No entanto é um parâmetro

importante na onversão para um modelo SAN.

Pode-se alterar a apa iade da �la da seguinte maneira.

Linux No menu prin ipal sele iona-se a opção 5 (Alterar parâmetros do modelo). No

sub-menu desta opção sele ionar a opção 2 (Parâmetros das �las). Neste sub-menu se-

le ionar a opção 3 (Capa idade da �la). Após a mensagem "Entre o número da fila

(0..Y):", informa-se qual a �la que deseja-se alterar a apa idade. Informa-se então a

apa idade desejada após a mensagem "Entre a apa idade da fila(y):.

Windows A alteração da apa idade da �la é feita na janela prin ipal da ferramenta

MQNA. Na quarta oluna (Figura 7.13) do quadro Cara terísti as das �las, deve ser

sele ionada a �la desejada para alteração da apa idade. Após sele ionada é ne essário

apenas informar a apa idade desejada.

Figura 7.13: Alteração da apa idade da �la

7.7 Exibindo Resultados

Não muito utilizada na versão Windows, visto que os resultados � am sempre exibidos na

tela após a omputação dos índi es de desempenho, essa fun ionalidade é mais utilizada

na versão Linux.

114 CAPÍTULO 7. MANUAL DE REFERÊNCIA DO USUÁRIO

7.7.1 Resultados Gerais

Os resultados gerais expressam a situação de todo o modelo, onsiderando todas as lasses

presentes.

Linux No menu prin ipal sele iona-se a opção 6 (Exibir resultados). No sub-menu desta

opção sele ionar a opção 1 (Exibir índi es gerais). Os índi es gerais serão então exibidos

na tela.

Windows Após a omputação dos índi es de desempenho, os mesmo são exibidos no

quadro Resultados Gerais da janela prin ipal.

7.7.2 Resultados das Classes

Pode-se exibir o resultado da lasse individualmente, para se fazer isso segue-se os passos

abaixo.

Linux Duas opções são possíveis para exibição dos resultados das lasses.

Para exibir os resultados de uma lasse espe í� a, deve-se no menu prin ipal sele-

ionar a opção 6 (Exibir resultados). Em seguida sele ionar a opção 2 (Espe i� ar

a lasse) neste sub-menu. Depois de informado o número da lasse após a mensagem

"Entre o número da lasse(0..X):", os resultados da lasse serão exibidos na tela.

Para exibir os resultados de todas lasse perten entes ao modelo deve-se sele ionar

a opção 6 (Exibir resultados) no menu prin ipal. Sele ionar então a opção 3 (Todas as

lasses) deste sub-menu. Os resultados de ada lasse do modelo serão mostrados na tela.

Windows Os resultados de ada lasse � am exibidos, após omputados os índi es de

desempenho, na parte inferior da janela para edição dos parâmetros das lasses. Para abrir

a janela de edição dos parâmetros deve-se li ar no botão .

7.8. CONVERTENDO MODELOS 115

7.8 Convertendo Modelos

A onversão de modelos QN para SAN transforma o modelo presente na memória em um

arquivo textual para a ferramenta PEPS.

O pro esso de onversão é bastante simples, os passos ne essário são os seguintes.

Linux No menu prin ipal deve-se sele ionar a opção 7 (Converter modelo QN para

SAN). Após a mensagem "Salvar modelo SAN omo:", informa-se o nome do arquivo

onde será salvo o modelo

10

.

No aso espe í� o de modelos CQN há ainda a opção de não restringir a apa idade das

�las. Informa-se isso após a mensagem "Salvar modelo om restrição de apa idade

(s/n)?" respondendo-se `s' ou `n'.

Windows Dois aminhos são possíveis para onverter um modelo QN para SAN. Uma

maneira é li ar no botão no entro da janela prin ipal. Uma segunda

maneira é sele ionar o item no menu .

Essa duas opções abrem uma janela onde deve-se informar o nome do arquivo SAN e

em seguida li ar em .

Para modelos CQN há a opção de onverter o modelo sem restrição à apa idade das

�las. O tipo de onversão é informado na janela que apare erá na tela (Figura 7.14),

li ando-se nos botões ou .

10

Os modelos onvertidos são salvos no diretório ./san e a ferramenta a res enta automati amente a

extensão ".san" ao nome do modelo.

116 CAPÍTULO 7. MANUAL DE REFERÊNCIA DO USUÁRIO

Figura 7.14: Conversão para SAN om ou sem restrição a apa idade das �las

7.9 Utilizando a Ajuda

O ajuda da ferramenta traz informações bási as sobre ada tipo de modelo suportado

pela ferramenta (CQN e OQN) e sobre o método de onversão implementado.

Linux Es olher a opção 8 (Sobre a ferramenta MQNA) do menu prin ipal. No sub-menu

desta opção deve-se es olher o tópi o que será apresentado.

Esse tópi os são:

� Gramáti a para redes abertas;

� Gramáti a para redes fe hadas;

� O método de onversão;

� Créditos.

Windows Para obter ajuda deve sele ionar um dos itens disponíveis no menu .

Será aberta uma janela para exibir o item de ajuda es olhido da ajuda.

Os itens disponíveis no menu são:

� - Sobre redes de �las de espera abertas;

� - Sobre redes de �las de espera fe hadas;

� - Sobre o método de onversão;

� - Créditos da ferramenta.

Capítulo 8

Exemplos

Como o objetivo de exempli� ar melhor o uso da ferramenta MQNA, esse apítulo traz

dois exemplos ompletos de modelo QN. Será mostrado então: a riação de ada modelo,

OQN e CQN, a obtenção dos índi es de desempenho pela ferramenta MQNA e a onversão

para modelos SAN equivalentes.

8.1 Modelo OQN

O modelo OQN riado para exemplo esse tipo de QN possui uma úni a lasse (mono-

lasse) e in o �las. A representação grá� a deste modelos é vista na Figura 8.1.

K

1

= 3

K

2

= 2

K

3

= 2

K

4

= 2

K

5

= 3

P

1

1;2

= �1

P

1

1;4

= �2

P

1

2;3

= 1:0

P

1

4;5

= 1:0

C

5

= 1

C

4

= 1

C

3

= 1

C

2

= 1

L

1

1

= 2

L

1

2

= 1

P

1

3;1

= �3

S

1

5

= 0:2

S

1

4

= 0:2

S

1

3

= 0:1

S

1

2

= 0:1

P

1

5;1

= �4

S

1

1

= 0:05

C

1

= 1

1

3

4

5

2

�1

�2

M = 5

R = 1

�4

�3

Figura 8.1: Modelo OQN mono- lasse om in o �las

118 CAPÍTULO 8. EXEMPLOS

8.1.1 Criando o Modelo

Assumindo-se os valores �1 = 0:8, �2 = 0:2, �3 = 0:1 e �4 = 0:2 para a rotação dos

lientes da lasse, a des rição textual do modelo da Figura 8.1 é feita da seguinte maneira.

oqn_ex.mqn - OQN mono- lasse

oqn oqn_ex1 (1,5)

de larations {

lass 1;

queue q1;

queue q2;

queue q3;

queue q4;

queue q5;

}

network{

queue q1 {

servers = 1;

apa ity = 3;

lass 1 {

servi e time = 0.05;

arrival rate = 2;

rot q2:0.8;

rot q4:0.2;

}

}

queue q2 {

servers = 1;

apa ity = 2;

lass 1{

servi e time = 0.1;

arrival rate = 1;

rot q3:1.0;

}

}

queue q3 {

servers = 1;

apa ity = 2;

lass 1 {

servi e time = 0.1;

arrival rate = 0;

rot q1:0.1;

}

}

8.1. MODELO OQN 119

queue q4 {

servers = 1;

apa ity = 2;

lass 1 {

servi e time = 0.2;

arrival rate = 0;

rot q5:1.0;

}

}

queue q5 {

servers = 1;

apa ity = 3;

lass 1 {

servi e time = 0.2;

arrival rate = 0;

rot q1:0.2;

}

}

}

8.1.2 Computando os Índi es de Desempenho

Com o modelo na memória da ferramenta omputou-se os índi es de desempenho para o

modelo. A apa idade de ada �la é ignorada pela ferramenta MQNA para que o modelo

obedeça as regras das redes à forma-produto.

Os índi es gerais de desempenho obtidos para o modelo foram:

Fila Fluxo médio População média Utilização média Tempo médio de resposta

q1 2.386364e+00 1.354839e-01 1.193182e-01 2.709677e+00

q2 2.909091e+00 4.102564e-01 2.909091e-01 4.102564e+00

q3 2.909091e+00 4.102564e-01 2.909091e-01 4.102564e+00

q4 4.772727e-01 1.055276e-01 9.545455e-02 5.276382e-01

q5 4.772727e-01 1.055276e-01 9.545455e-02 5.276382e-01

Tabela 8.1: Índi es de desempenho do modelo oqn_ex.mqn

120 CAPÍTULO 8. EXEMPLOS

8.1.3 Convertendo o Modelo

O resultado da onversão do modelo QN para SAN foi um modelo SAN om 5 aut�matos

onde o número total de estados é 432, dos quais todos são atingíveis.

O modelo gerado foi ompilado e resolvido pela ferramenta PEPS. Utilizou-se para

a resolução o Método da Potên ia, o qual resolveu o modelo após 474 iterações. Os

resultados obtidos pela ferramenta PEPS foram:

Fila Fluxo médio População média Utilização média

q1 2.696244e+00 1.565140e-01 1.348122e-01

q2 3.013758e+00 3.788609e-01 3.013758e-01

q3 2.768665e+00 3.407075e-01 2.768665e-01

q4 5.324615e-01 1.172929e-01 1.064923e-01

q5 5.320325e-01 1.184261e-01 1.064065e-01

Tabela 8.2: Índi es de desempenho obtidos por PEPS

8.2 Modelo CQN

Adotou-se para exempli� ar os modelos CQN um modelo om in os �las, onde uma �las

é multi-servidora, e uma lasse diferen iada de lientes. A �gura representando o modelo

adotado é mostrada abaixo na Figura 8.2.

1

2 3

4 5

�1

�2

K

2

= 3

K

3

= 3

K

4

= 2

K

5

= 2

P

1

1;2

= �1

P

1

4;5

= 1:0

C

5

= 1

C

4

= 1

C

3

= 1

C

2

= 1

C

1

= 2

K

1

= 3

R = 1

M = 5

N = 10

P

1

2;3

= 1:0

P

1

1;4

= �2

P

1

3;1

= 1:0

S

1

5

= 1:0

S

1

4

= 2:0

S

1

3

= 2:0

S

1

2

= 1:0

S

1

1

= 2:0

P

1

5;1

= 1:0

Figura 8.2: Modelo CQN om in o �las e uma lasse

8.2. MODELO CQN 121

8.2.1 Criando o Modelo

O modelo representado pela Figura 8.2 a ima é des rito textual da maneria exposta

abaixo, quando os valores �1 = 0:3 e �2 = 0:7 são assumidos para a probabilidade de

rotação dos lientes no modelo.

qn_ex.mqn - CQN mono- lasse

qn qn_ex1(1,5)

de larations {

lass 1;

queue q1;

queue q2;

queue q3;

queue q4;

queue q5;

}

network {

population lass 1 = 10;

queue q1 {

servers = 2;

apa ity = 3;

lass 1 {

servi e time = 2.0;

rot q2: 0.3;

rot q4: 0.7;

}

}

queue q2 {

servers = 1;

apa ity = 3;

lass 1 {

servi e time = 1.0;

rot q3: 1;

}

}

queue q3 {

servers = 1;

apa ity = 3;

lass 1 {

servi e time = 2.0;

rot q1: 1;

}

}

122 CAPÍTULO 8. EXEMPLOS

queue q4 {

servers = 1;

apa ity = 2;

lass 1 {

servi e time = 2.0;

rot q5: 1;

}

}

queue q5 {

servers = 1;

apa ity = 2;

lass 1 {

servi e time = 1.0;

rot q1: 1;

}

}

}

8.2.2 Computando os Índi es de Desempenho

Os índi es de desempenho omputados pela ferramenta MQNA para o modelo des rito no

exemplo " qn_ex.mqn" não levam em onta a restrição à apa idade das �las, ou seja,

os índi es al ulados respeitam as restrições das redes à forma-produto.

Os índi es de desempenho obtidos para o modelo à forma-produto foram os seguintes:

Fila Fluxo médio População média Utilização média Tempo médio de resposta

q1 6.921788e-01 2.376579e+00 6.921788e-01 3.433476e+00

q2 2.076536e-01 2.608460e-01 2.076536e-01 1.256159e+00

q3 2.076536e-01 6.962378e-01 4.153073e-01 3.352880e+00

q4 4.845251e-01 5.755678e+00 9.690503e-01 1.187901e+01

q5 4.845251e-01 9.106589e-01 4.845251e-01 1.879487e+00

Tabela 8.3: Índi es de desempenho do modelo qn_ex.mqn

8.2.3 Convertendo o Modelo

O modelo CQN des rito no item 8.2.1 foi onvertido pela ferramenta MQNA primeira-

mente ignorando a restrição de apa idade das �las. Com isso pode-se resolver o modelo

8.2. MODELO CQN 123

pela ferramenta PEPS e obter os índi es iguais aos obtidos pela ferramenta MQNA.

O modelo gerado sem restrição à apa idade das �las possui 5 aut�matos e 161.051

estados, dos quais 1.001 são atingíveis.

O modelo foi resolvido peloMétodo da Potên ia após 968 iterações e obteve os mesmos

resultados para os índi es de desempenho al ulados por MQNA.

Para o modelo gerado om restrição à apa idade das �las, o modelo possuia 5 aut�-

matos e 576 estados, deste apenas 33 eram atingíveis.

O arquivo resultante da onversão do modelo om restrição à apa idade é mostrado

abaixo.

qn_ex.san - Modelo SAN resultante

de larations {

onstant Ci0 := 2;

onstant Ci1 := 1;

onstant Ci2 := 1;

onstant Ci3 := 1;

onstant Ci4 := 1;

onstant Sri00 := 2;

onstant Sri01 := 1;

onstant Sri02 := 2;

onstant Sri03 := 2;

onstant Sri04 := 1;

fun tional Mu00 := 1/Sri00;

fun tional Mu01 := 1/Sri01;

fun tional Mu02 := 1/Sri02;

fun tional Mu03 := 1/Sri03;

fun tional Mu04 := 1/Sri04;

fun tional rot_ 1_q1toq2 := min [Ci0,st 1_q1℄ * 0.3 * Mu00;

fun tional rot_ 1_q1toq4 := min [Ci0,st 1_q1℄ * 0.7 * Mu00;

fun tional rot_ 1_q2toq3 := min [Ci1,st 1_q2℄ * 1 * Mu01;

fun tional rot_ 1_q3toq1 := min [Ci2,st 1_q3℄ * 1 * Mu02;

fun tional rot_ 1_q4toq5 := min [Ci3,st 1_q4℄ * 1 * Mu03;

fun tional rot_ 1_q5toq1 := min [Ci4,st 1_q5℄ * 1 * Mu04;

}

124 CAPÍTULO 8. EXEMPLOS

rea hability := ((st 1_q1 + st 1_q2 + st 1_q3 + st 1_q4 + st 1_q5) == 10);

network qn_ex1 ( ontinuous, 5) {

automaton 1_q1 (1, 4) {

node n0 (1) { ar (n1, 2) { syn (s_ 1_q3toq1, 1, 1) syn (s_ 1_q5toq1, 1,

1)}}

node n1 (2) { ar (n2, 2) { syn (s_ 1_q3toq1, 1, 1) syn (s_ 1_q5toq1, 1, 1)}

ar (n0, 2) { syn (s_ 1_q1toq2, rot_ 1_q1toq2, 1) syn (s_ 1_q1toq4,

rot_ 1_q1toq4, 1)}}

node n2 (2) { ar (n3, 2) { syn (s_ 1_q3toq1, 1, 1) syn (s_ 1_q5toq1, 1, 1)}

ar (n1, 2) { syn (s_ 1_q1toq2, rot_ 1_q1toq2, 1) syn (s_ 1_q1toq4,

rot_ 1_q1toq4, 1)}}

node n3 (1) { ar (n2, 2) { syn (s_ 1_q1toq2, rot_ 1_q1toq2, 1) syn

(s_ 1_q1toq4, rot_ 1_q1toq4, 1)}}

}

automaton 1_q2 (1, 4) {

node n0 (1) { ar (n1, 1) { syn (s_ 1_q1toq2, 1, 1)}}

node n1 (2) { ar (n2, 1) { syn (s_ 1_q1toq2, 1, 1)}

ar (n0, 1) { syn (s_ 1_q2toq3, rot_ 1_q2toq3, 1)}}

node n2 (2) { ar (n3, 1) { syn (s_ 1_q1toq2, 1, 1)}

ar (n1, 1) { syn (s_ 1_q2toq3, rot_ 1_q2toq3, 1)}}

node n3 (1) { ar (n2, 1) { syn (s_ 1_q2toq3, rot_ 1_q2toq3, 1)}}

}

automaton 1_q3 (1, 4) {

node n0 (1) { ar (n1, 1) { syn (s_ 1_q2toq3, 1, 1)}}

node n1 (2) { ar (n2, 1) { syn (s_ 1_q2toq3, 1, 1)}

ar (n0, 1) { syn (s_ 1_q3toq1, rot_ 1_q3toq1, 1)}}

node n2 (2) { ar (n3, 1) { syn (s_ 1_q2toq3, 1, 1)}

ar (n1, 1) { syn (s_ 1_q3toq1, rot_ 1_q3toq1, 1)}}

node n3 (1) { ar (n2, 1) { syn (s_ 1_q3toq1, rot_ 1_q3toq1, 1)}}

}

automaton 1_q4 (1, 3) {

node n0 (1) { ar (n1, 1) { syn (s_ 1_q1toq4, 1, 1)}}

node n1 (2) { ar (n2, 1) { syn (s_ 1_q1toq4, 1, 1)}

ar (n0, 1) { syn (s_ 1_q4toq5, rot_ 1_q4toq5, 1)}}

node n2 (1) { ar (n1, 1) { syn (s_ 1_q4toq5, rot_ 1_q4toq5, 1)}}

}

automaton 1_q5 (1, 3) {

node n0 (1) { ar (n1, 1) { syn (s_ 1_q4toq5, 1, 1)}}

node n1 (2) { ar (n2, 1) { syn (s_ 1_q4toq5, 1, 1)}

ar (n0, 1) { syn (s_ 1_q5toq1, rot_ 1_q5toq1, 1)}}

node n2 (1) { ar (n1, 1) { syn (s_ 1_q5toq1, rot_ 1_q5toq1, 1)}}

}

}

results{

di0 := (( st 1_q1) != 0) * min [Ci0,st 1_q1℄ * Mu00;

8.2. MODELO CQN 125

di1 := (( st 1_q2) != 0) * min [Ci1,st 1_q2℄ * Mu01;

di2 := (( st 1_q3) != 0) * min [Ci2,st 1_q3℄ * Mu02;

di3 := (( st 1_q4) != 0) * min [Ci3,st 1_q4℄ * Mu03;

di4 := (( st 1_q5) != 0) * min [Ci4,st 1_q5℄ * Mu04;

ni0 := (( st 1_q1));

ni1 := (( st 1_q2));

ni2 := (( st 1_q3));

ni3 := (( st 1_q4));

ni4 := (( st 1_q5));

ui0 := (( st 1_q1) != 0);

ui1 := (( st 1_q2) != 0);

ui2 := (( st 1_q3) != 0);

ui3 := (( st 1_q4) != 0);

ui4 := (( st 1_q5) != 0);

// wi0 := ni0/di0;

// wi1 := ni1/di1;

// wi2 := ni2/di2;

// wi3 := ni3/di3;

// wi4 := ni4/di4;

dri00 := (st 1_q1 !=0) * min [Ci0,st 1_q1℄ * Mu00;

dri01 := (st 1_q2 !=0) * min [Ci1,st 1_q2℄ * Mu01;

dri02 := (st 1_q3 !=0) * min [Ci2,st 1_q3℄ * Mu02;

dri03 := (st 1_q4 !=0) * min [Ci3,st 1_q4℄ * Mu03;

dri04 := (st 1_q5 !=0) * min [Ci4,st 1_q5℄ * Mu04;

nri00 := st 1_q1;

nri01 := st 1_q2;

nri02 := st 1_q3;

nri03 := st 1_q4;

nri04 := st 1_q5;

uri00 := (st 1_q1 !=0);

uri01 := (st 1_q2 !=0);

uri02 := (st 1_q3 !=0);

uri03 := (st 1_q4 !=0);

uri04 := (st 1_q5 !=0);

}

Este modelo foi resolvido pelo Método da Potên ia após 418 iterações e os resultados

obtidos são apresentados na tabela 8.4.

Os modelos riados neste apítulo para exempli ar o uso da ferramenta MQNA na

resolução e onversão de modelo, são modelos bastante elementares e permitem uma

resolução num urto espaço de tempo nas duas ferramentas (MQNA e PEPS). Entretanto

modelos mais elaborados também podem ser riado e omputados pelas ferramentas. No

126 CAPÍTULO 8. EXEMPLOS

Fila Fluxo médio População média Utilização média

q1 9.578846e-01 2.548886e+00 9.934877e-01

q2 9.382082e-01 2.068620e+00 9.382082e-01

q3 4.992738e-01 2.794606e+00 9.985477e-01

q4 4.403093e-01 1.461519e+00 8.806187e-01

q5 7.475779e-01 1.126367e+00 7.475779e-01

Tabela 8.4: Índi es de desempenho do modelo om restrição à apa idade

entanto deve-se ressaltar que modelos muito omplexos ne essitam de grande quantidade

de re ursos do sistema (memória e pro essador) e podem a limitação desses re ursos

inviabilisar a obtenção dos índi es de desempenho.

Capítulo 9

Con lusão

Este trabalho vem juntar-se a um onjunto de trabalhos sobre avaliação de desempenho de

sistemas através de métodos analíti os. Como visto durante todo o do umento, fo ou-se

os objetivos na modelagem e resolução de sistemas através de Redes de Filas de Espera

(QN) e na onversão de QN para Redes de Aut�matos Esto ásti os (SAN). Esses objetivos

extraem o que ada formalismo apresenta de melhor.

No umprimento dos objetivos propostos por este trabalho, ita-se resolução de QN e

onversão para SAN, foi riada então a ferramenta MQNA, a qual tem versões disponíveis

para Linux (textual) e Windows (grá� a).

MQNA é uma ferramenta de software que implementa métodos para obtenção de

índi es de desempenho para QN à forma-produto e pro edimentos de onversão do formal-

ismo QN para SAN. A ferramenta possibilitou uma melhor e mais ompleta representação

textual de modelos QN através da gramáti a de�nida para a ferramenta. MQNA junta na

sua implementação métodos para resolver tanto Redes de Filas de Espera Aberta (OQN)

quanto Redes de Filas de Espera Fe hadas (CQN) em uma só ferramenta a qual identi� a

o modelo ompilado e utiliza o método adequado para ada modelo sem a intervenção

de usuário. Para as QN onde não era possível a solução à forma-produto, foram imple-

mentados métodos para onverter estas QN em SAN, podendo assim obter os índi es de

desempenho interessantes ao modelo. Essa onversão implementada em MQNA fa ilitou

128 CAPÍTULO 9. CONCLUS�O

então o inter âmbio de informações entre modelos riados em diferentes formalismos o que

aumenta o grau de on�ança nos resultados obtidos. MQNA implementa um assistente

para riação rápida de modelos QN. Através de pou os passos é possivel riar rapidamente

um modelo padrão, para alteração posterior pelo usuário, sem que seja ne essário a edição

de um arquivo textual sem nenhuma informação (vazio).

A realização de um trabalho de on lusão sobre este tema foi pessoalmente interessante

pelo tema es olhido ser de grande interesse para minhas ambições de pesquisa. Além

disso a realização do trabalho é ontinuação de um pro esso no qual trabalhei boa parte

da minha vida a adêmi a. Com a �nalização do trabalho teóri o e práti o, os resultados

obtidos foram, a meu ver, bastante satisfatórios e instigaram um interesse na ontinuação

de trabalhos sobre este tema.

No que diz respeito a trabalhos futuros, a ontinuação natural deste trabalho se divide

em trabalhos eminentemente teóri os e trabalhos de implementação. Do ponto de vista

teóri o aberia o estudo de possíveis aproximações analíti as a modelos om restrição de

apa idade, pesquisas para métodos de onversão mais otimizados ou ainda entre outros

formalismos de modelagem. Novos métodos para omputação de índi es de desempenho

para QN à forma-produto também poderiam ser pesquisados.

Do ponto de vista de implementação, os trabalhos futuros in luem a implementação

de algoritmos aproximativos para algumas lasses de QN que não são à forma-produto, a

implementação de outras dis ilinas de atendimento nas �las, omo por exemplo, atendi-

mento rand�mi o ou tempo ompartilhado. Igualmente uma implementação de QN mistas

poderia ser adi ionada à ferramenta e à gramáti a. É parti ularmente interessante uma

maior integração entre as ferramentas MQNA e PEPS, onvergindo as duas para uma

úni a interfa e apaz de tratar de forma análoga diversos formalismos e modelos.

Referên ias Bibliográ� as

[1℄ C.G.P. Alegretti. Avaliação de desempenho de sistema paralelo de malha

regular utilizando rede aut�matos esto ásti o. Porto Alegre. Fa uldade de

Informáti a da PUCRS. 1998. (Trabalho Individual)

[2℄ Avaliação Quantitativa de Sistemas. http://www.inf.pu rs.br/�paulof/ ourses/-

aqs.html (página de dis iplina de urso de graduação em Ciên ia da Computação

- PUCRS - a essada em 23/11/2001).

[3℄ F.Baskett, K.M.Chandy, R.R.Muntz, F.G.Pala ios. Open, losed and mixed networks

of queues with di�erent lasses of ustomers. Journal of the ACM, vol. 22, nr. 2,

1975, pág. 248-260.

[4℄ J.Buzen Computational algorithms for losed queueing networks with exponential

servers. Communi ations of ACM, vol. 16, nr. 9, 1973, pág. 527-531.

[5℄ P.Fernandes.Méthodes numériques pour la solution de systèmes markoviens

à grand espa e d'états. Institut National Polyte hnique de Grenoble. 1998. (These

de Do torat)

[6℄ P.Fernandes, C.G.P.Alegretti, R.Jungblut-Hessel. Avaliação de Desempenho de Sis-

temas através de redes de Aut�matos Esto ásti os. VII ERI - Es ola Regional de

Informáti a. Novo Hamburgo - Chape ó - Londrina. 10-14 maio. 1999. pág. 159-184.

[7℄ P.Fernandes, B.Plateau. Modeling Finite Capa ity Queueing Networks with Sto hati

Automata Networks. Fourth International Workshop on Queueing Networks

with Finite Capa ity (QNETs 2000). Ilkley, West Yorkshire, UK. 20-21 July.

2000. pág. 16/01-16/12.

130 REFERÊNCIAS BIBLIOGRÁFICAS

[8℄ P.Fernandes, B.Plateau, W.J.Stewart. E� ient des riptor-ve tor multipli ation in

sto hasti automata networks. Journal of the ACM, vol. 45, nr. 3, 1998. pág.

381-414.

[9℄ J.E.Hop roft, J.D.Ullman. Introdu tion to automata theory, languages and

omputation. Reading: Addison-Wesley. 1979.

[10℄ J.R.Ja kson. Jobshop-like queueing systems. Management S ien e, vol. 10, 1963,

pág. 131-142.

[11℄ D.G.Kendall. Some problems in the theory of queues. Journal of the Royal Sta-

tisti al So iety Ser.B.. nr. 13. 1951. pág. 151-185.

[12℄ H.Kobayashi. Modeling and analysys. Reading: Addison-Wesley, 1978.

[13℄ E.Lazowska, J.Zahorjan, G.Graham, K.Sevi .Quantitative system performan e:

omputer system analysis using queueing networks models. Englewood

Cli�s: Prenti e-Hall, 1984.

[14℄ J.D.C.Little. A proof of the queueing formula L = �W . Operations Resear h, vol.

9, 1961, pág. 383-387.

[15℄ J.M Kenna, D.Mitra. Integral Representations and Asymptoti Expansions for Closed

Markovian Queueing Networks: Normal Usage. The Bell Te hni al Journal. vol.

61. nr. 5. May-June 1982. pág. 661-683.

[16℄ J.M Kenna, D.Mitra. Asymptoti Expansions and Integral Representations of Mo-

ments of Queue Lengths in Closed Markovian Networks. Journal of the ACM. vol.

31. nr. 2. April 1984. pág. 346-360.

[17℄ J.M Kenna, D.Mitra. Asymptoti Expansions for Closed Markovian Networks with

State-Dependent Servi e Rates. Journal of the ACM. vol. 33. nr. 3. July 1986. pág.

568-592.

REFERÊNCIAS BIBLIOGRÁFICAS 131

[18℄ J.M Kenna. Asymptoti Expansions of the Sojourn Time Distribution Fun tions of

Jobs in Closed, Produ t-form Queueing Networks. Journal of the ACM. vol. 34.

nr. 4. O t 1987. pág. 985-1003.

[19℄ D.A.Menas é, V.A.F.Almeida.Capa ity Planning for Web Performan e: met-

ri s, models and methods. Prenti e-Hall, 1994.

[20℄ PEPS Projet s: Performan e Evaluation of Parallel Systems. http://www-

apa he.imag.fr/software/peps/ (a essada em 23/11/2001)

[21℄ B.Plateau, K.Atif. Sto hasti automata networks for modelling parallel systems.

IEEE transa tions on software engineering, vol. 17, nr. 10, pág. 1093-1108,

1991.

[22℄ B.Plateau, W.J.Stewart. Sto hasti automata networks: produ t forms and

iterative solutions. INRIA, Rapport de Re her he nr. 2939, 1996. Anonymous ftp

ftp://ftp.inria.fr/INRIA/Publi ation/RR/RR-2939.ps.gz

[23℄ M.Reiser, S.S.Lavenberg. Mean value analysis of losed multi hain queueing net-

works. Journal of the ACM, vol. 27, nr. 2, 1980, pág. 313-322.

[24℄ T.G.Robertazzi.Computer networks and systems: queueing theory and per-

forman e evaluation. New York: Springer-Verlag, 1990.

[25℄ Y.Saad. Iterative methods for sparse linear systems. Boston: PWS Publishing

Company, 1995.

[26℄ E.A.de Souza e Silva, R.R.Muntz. Métodos Computa ionais de soluçao de

adeias de Markov: apli ações a sistemas de omputação e omuni ação.

VIII Es ola de Computação, Instituto de Informáti a, UFRGS, Porto Alegre, 1992.

[27℄ W.J.Stewart. Introdu tion to the numeri al solution of Markov hains.

Prin eton University Press, 1994.

[28℄ K.Trivedi. Probability & statisti s with reliability, queueing and omputer

s ien e appli ations. Englewwod Cli�s, New Jersey: Prenti e-Hall, 1982.

132 REFERÊNCIAS BIBLIOGRÁFICAS

Apêndi e A

Notação Utilizada

Neste apêndi e é en ontrado um resumo de todas as notações utilizadas neste trabalho

agrupada por seção para fa ilitar a onsulta.

A.1 Notação de Kendall

Notação entregada na Notação de Kendall.

A.1.1 Tipos de distribuição

M Distribuição exponen ial;

E

(k)

Distribuição de Erlang om k fases;

H

(k)

Distribuição hiperexponen ial om k fases;

C

(k)

Distribuição de Cox om k fases;

D Distribuição determinísti a;

G Distribuição geral;

GI Distribuição geral om tempos de intervalos independentes.

134 APÊNDICE A. NOTAÇ�O UTILIZADA

A.1.2 Dis iplinas de atendimento

� FCFS (First Come First Served) - Primeiro a hegar é o primeiro a ser atendido;

� LCFS Preemptive (Last Come First Served) - Último a hegar é atendido, inter-

rompendo o serviço (preempção);

� FCRS (First Come Randomi Served) - O atendimento é rand�mi o.

A.2 Cadeias de Markov

Notação utilizada para representada a es ala de tempo nas Cadeias de Markov.

� CTMC Cadeias de Markov a es ala de tempo ontínua;

� DTMC Cadeias de Markov a es ala de tempo dis reta.

A.3 Redes de Aut�matos Esto ásti os

Notação empregada para representação de eventos sin ronizante pela tripla (id,�,�).

id identi� ador do evento sin ronizante;

� taxa de disparo;

� probabilidade de o orrên ia.

A.4 Redes de Filas de Espera

Notação utilizada para de�nição e índi e de desempenho em QN.

A.4.1 De�nição

M Número de �las na rede;

A.4. REDES DE FILAS DE ESPERA 135

R Número de diferentes lasses de lientes;

K

i

Capa idade da �la i (número máximo de lientes);

C

i

Número de servidores na �la i;

S

r

i

Tempo médio ne essário para um servidor atender um liente da lasse

r na �la i;

P

r

i;j

Probabilidade de rotação de um liente da lasse r servido na �la i

deixar esta �la e ir para �la j;

B

r

i;j

Pro edimento dos lientes da lasse r saídos da �la i para �la j quando

a �la j está heia;

!

D

i

Vetor indi ando a ordem de prioridade de serviço entre as lasses de

lientes na �la i;

L

r

i

Taxa média de hegada de lientes da lasse r na �la i, oriundos de fora

do modelo;

N

r

População total de lientes da lasse r na rede.

A.4.2 Índi es de Desempenho e Auxiliares

Índi es gerais de desempenho

d

i

Fluxo médio de lientes da �la i;

u

i

Índi e médio geral de utilização da �la i;

n

i

População média geral de lientes na �la i;

w

i

Tempo médio geral de resposta para lientes na �la i.

Índi es de desempenho por lasse de lientes

136 APÊNDICE A. NOTAÇ�O UTILIZADA

d

r

i

Fluxo médio de lientes da lasse r através da �la i;

u

r

i

Índi e médio de utilização da �la i pelos lientes da lasse r;

n

r

i

População média de lientes da lasse r presentes na �la i;

w

r

i

Tempo médio de resposta para os lientes da lasse r na �la i.

Índi e auxiliares

r

i

Taxa de visita dos lientes da lasse r na �la i;

r

i

(k) Taxa média de atendimento dos lientes da lasse r na �la i quando há

k lientes da lasse r na rede;

d

r

o

Fluxo padrão dos lientes da lasse r;

i

(j; N) Probabilidade marginal da �la i om j servidores e N lientes na rede.

Apêndi e B

Regras e Terminais da Gramáti a para

QN

Este apêndi e ontém a des rição e representação dos tokens e das regras utlizadas na

ferramenta MQNA.

B.1 Tokens

Identi� ador Expressão regular

digit [0-9℄

integer {digit}+

�oat {integer}"."{integer}

exponent ({integer}|{�oat})[Ee℄[+-℄?{integer}

id [A-Za-z_℄[A-Za-z0-9_℄*

Tabela B.1: Expressões regulares da gramáti a para MQNA

Token real Representação

id TK_ID

integer TK_INTEGER

�oat TK_FLOAT

exponent TK_EXPONENT

138 APÊNDICE B. REGRAS E TERMINAIS DA GRAMÁTICA PARA QN

Token real Representação ( ontinuação)

qn TK_CQN

oqn TK_OQN

lass TK_CLASS

servers TK_SERVERS

population TK_POPULATION

apa ity TK_CAPACITY

queue TK_QUEUE

network TK_NETWORK

de larations TK_DECLARATIONS

servi e TK_SERVICE

time TK_TIME

arrival TK_ARRIVAL

rate TK_RATE

rot TK_ROT

{ TK_LEFT_BRACKET

} TK_RIGHT_BRACKET

( TK_LEFT_PARENTHESIS

) TK_RIGHT_PARENTHESIS

, TK_COMMA

; TK_SEMICOLON

: TK_COLON

= TK_EQUAL

Tabela B.2: Tokens da gramáti a para MQNA

B.2 Regras da gramáti a

B.2.1 Iní io da Gramáti a

mqna:

TK_CQN TK_ID

TK_LEFT_PARENTHESIS n lass TK_COMMA nfila TK_RIGHT_PARENTHESIS

de laration qn

|TK_OQN TK_ID

TK_LEFT_PARENTHESIS n lass TK_COMMA nfila TK_RIGHT_PARENTHESIS

de laration oqn

B.2. REGRAS DA GRAMÁTICA 139

B.2.2 De larações

de laration:

TK_DECLARATION TK_LEFT_BRACKET

de laration_ lass_queue TK_RIGHT_BRACKET

de laration_ lass_queue:

TK_CLASS TK_ID TK_SEMICOLON de laration_ lass_queue2

|TK_QUEUE TK_ID TK_SEMICOLON de laration_ lass_queue2

de laration_ lass_queue2:

TK_CLASS TK_ID TK_SEMICOLON de laration_ lass_queue2

|TK_QUEUE TK_ID TK_SEMICOLON de laration_ lass_queue2

|

B.2.3 Redes de Filas de Espera Fe hadas

qn:

TK_NETWORK TK_LEFT_BRACKET population queue TK_RIGHT_BRACKET

B.2.4 Redes de Filas de Espera Abertas

oqn:

TK_NETWORK TK_LEFT_BRACKET oqueue TK_RIGHT_BRACKET

B.2.5 Populações

population:

TK_POPULATION TK_CLASS TK_ID TK_EQUAL TK_INTEGER TK_SEMICOLON

population2

population2:

TK_POPULATION TK_CLASS TK_ID TK_EQUAL TK_INTEGER TK_SEMICOLON

population2

|

140 APÊNDICE B. REGRAS E TERMINAIS DA GRAMÁTICA PARA QN

B.2.6 Des rição das Filas

queue:

TK_QUEUE TK_ID TK_LEFT_BRACKET servers apa ity

lass TK_RIGHT_BRACKET queue2

queue2:

TK_QUEUE TK_ID TK_LEFT_BRACKET servers apa ity

lass TK_RIGHT_BRACKET queue2

|

oqueue:

TK_QUEUE TK_ID TK_LEFT_BRACKET servers apa ity

o lass TK_RIGHT_BRACKET oqueue2

oqueue2:

TK_QUEUE TK_ID TK_LEFT_BRACKET servers apa ity

o lass TK_RIGHT_BRACKET oqueue2

|

B.2.7 Parâmetros das Filas

servers:

TK_SERVERS TK_EQUAL TK_INTEGER TK_SEMICOLON

apa ity:

TK_CAPACITY TK_EQUAL TK_INTEGER TK_SEMICOLON

B.2.8 Des rição das Classes

lass:

TK_CLASS TK_ID TK_LEFT_BRACKET serv_time rots

TK_RIGHT_BRACKET lass2

lass2:

TK_CLASS TK_ID TK_LEFT_BRACKET serv_time rots

TK_RIGHT_BRACKET lass2

B.2. REGRAS DA GRAMÁTICA 141

|

o lass:

TK_CLASS TK_ID TK_LEFT_BRACKET serv_time arrival

rots2 TK_RIGHT_BRACKET o lass2

o lass2:

TK_CLASS TK_ID TK_LEFT_BRACKET serv_time arrival

rots2 TK_RIGHT_BRACKET o lass2

|

B.2.9 Parâmetros das Classes

serv_time:

TK_SERVICE TK_TIME TK_EQUAL tnum TK_SEMICOLON

arrival:

TK_ARRIVAL TK_RATE TK_EQUAL tnum TK_SEMICOLON

B.2.10 Parâmetros das Classes

rots:

TK_ROT TK_ID TK_COLON tnum TK_SEMICOLON rots2

rots2:

TK_ROT TK_ID TK_COLON tnum TK_SEMICOLON rots2

|

B.2.11 Auxiliares para Leitura de Números

n lass:

TK_INTEGER

nfila:

TK_INTEGER

tnum:

142APÊNDICE B. REGRAS E TERMINAIS DA GRAMÁTICA PARA QN

TK_INTEGER

|TK_FLOAT

|TK_EXPONENT