• Nenhum resultado encontrado

Arcabou¸ cos para a CMB- Simulation

N/A
N/A
Protected

Academic year: 2023

Share "Arcabou¸ cos para a CMB- Simulation"

Copied!
82
0
0

Texto

A simulação de sistemas revela-se uma ferramenta muito útil para prever o desempenho de sistemas existentes e inexistentes. Neste trabalho foi desenvolvida uma interface gráfica para a ferramenta de simulação CMB-Simulation, uma ferramenta de simulação distribuída, que permite ao usuário utilizar os modelos de simulação prontos na ferramenta ou criar seus próprios modelos, sem ter um conhecimento profundo de simulação distribuída. .

Considera¸ c˜ oes Iniciais

Em contraste, os protocolos otimistas [7][8][9] permitem a execução até que ocorra uma falha de causa e evento. Mas, para isso, os protocolos otimistas devem implementar um mecanismo que faça com que o sistema volte a um estado seguro (rollback).

Organiza¸ c˜ ao dos Cap´ıtulos

Introdução Na simulação sequencial [4], o que assume um papel muito importante é a lista de eventos futuros [5], que funciona como o coordenador da execução dos eventos. Para isso, foram desenvolvidos os protocolos de sincronização entre os processos participantes da simulação, que são os protocolos conservador e otimista.

Considera¸ c˜ oes iniciais

An´ alise de Desempenho

T´ ecnicas de Aferi¸ c˜ ao

T´ ecnicas de Solu¸ c˜ ao de Modelos

Redes de Fila

Em outra escala, esse tipo de simulação pode ser utilizado, por exemplo, em um sistema bancário para prever o acúmulo de clientes e a necessidade ou não de aumentar o número de atendentes disponíveis. Essa lei calcula a média do número de clientes no sistema durante um período de observação.

Simula¸ c˜ ao Seq¨ uencial

Sistema: Uma coleção de entidades que interagem entre si para realizar uma ou mais ações[16]. Notificação de evento: Registro de um evento que ocorre no momento atual ou em algum momento futuro que não é necessário vincular nenhum dado para realizar o evento.

Figura 2.1: Representa¸c˜ ao de um modelo de fila que exemplifica a LEF.
Figura 2.1: Representa¸c˜ ao de um modelo de fila que exemplifica a LEF.

Simula¸ c˜ ao Distribu´ıda

Na simulação distribuída, são criados processos lógicos que são representações de cada um dos processos do sistema real [1]. Cada processo lógico possui seu relógio local (LVT - Local Virtual Time), que é submetido ao relógio global da simulação (GVT - Global Virtual Time), para que não haja inconsistência temporal. Os protocolos de controle síncrono possuem um relógio de controle de tempo global, no qual todos os processos compartilham esse relógio, que processa todos os eventos que ocorrem em um determinado momento da simulação.

Em contraste, os protocolos de controle assíncronos têm um relógio de controle local que sincronizam com os processos com os quais se comunicam. Um dos grandes problemas que os protocolos conservadores enfrentam é a ocorrência de deadlocks, devido à falha no recebimento de uma mensagem do canal de entrada que possui o menor valor de clock [1].

Figura 2.5: Uma situa¸c˜ ao de deadlock em uma simula¸c˜ ao conservativa [1].
Figura 2.5: Uma situa¸c˜ ao de deadlock em uma simula¸c˜ ao conservativa [1].

Estudo da Ferramenta CMB- Simulation

Intera¸ c˜ ao Humano-Computador

Desenvolver uma interface de qualidade entre o usuário e o computador leva a um funcionamento do sistema com menos chances de erros. Dentro do conceito de sistema interativo sempre há dúvidas se aquele sistema atende aos requisitos, por parte do usuário. Rollback de todas as ações, incentivando o usuário a explorar sem penalizações severas;

Correção sintática de todas as ações, onde toda ação do usuário é uma operação legal; O diagrama de casos de uso facilita o entendimento do sistema em termos da interação de atores externos com o sistema [13].

Figura 2.7: Modelo geral de inteface para intera¸c˜ ao humano-computador [2].
Figura 2.7: Modelo geral de inteface para intera¸c˜ ao humano-computador [2].

Linguagem JAVA

Modelar um sistema por meio da UML equivale a simplificar o entendimento de como esses sistemas funcionam, por meio de uma coleção de componentes gráficos e textuais, de forma que o programador, ou mesmo o usuário, ao se deparar com esse sistema, não tenha problemas com dificuldades de compreensão do sistema. Operação. O projeto de sistemas orientados a objetos requer um estudo inicial para criar um projeto de sistema que tenha boa usabilidade, fácil manutenção e legibilidade. Para que isso aconteça, o desenvolvedor precisa ter conhecimento prévio de análise e projeto orientado a objetos e também conhecimento de programação orientada a objetos [13].

Um diagrama de caso de uso é um artefato criado rapidamente que ilustra facilmente os eventos relacionados ao sistema que está sendo discutido [13]. Torna-se importante, antes de iniciar um desenho lógico do funcionamento de uma aplicação, definir superficialmente o seu comportamento, como se fosse uma “caixa preta” que descreve o que o sistema faz e não o que ele faz [13].

Geradores de Aplica¸ c˜ ao

Embasamento Teórico Independentemente da forma utilizada, as especificações são utilizadas pelo gerador de aplicações para criar um ou mais produtos, normalmente constituídos por segmentos de código, dados de estrutura ou sub-rotinas. A automação total do sistema nem sempre é o método mais econômico, pois é necessário avaliar o percentual do sistema a ser gerado. Em alguns casos é mais interessante ter uma visão simples mas limitada do que uma visão extensa mas complexa [21].

Módulo de interface: estabelece contato com o usuário, com o objetivo de obter uma especificação consistente e completa do problema. A ideia por trás da interface é criar um recurso amigável para o gerador de aplicativos, mas é responsabilidade do usuário reunir todas as informações necessárias para o aplicativo.

Figura 2.8: M´ odulos do gerador de aplica¸c˜ ao [3].
Figura 2.8: M´ odulos do gerador de aplica¸c˜ ao [3].

T´ ecnicas de Particionamento

Esta seção analisa o particionamento de processos lógicos em um ambiente de simulação utilizando o protocolo de sincronização CMB, que foi o protocolo utilizado para o projeto da simulação CMB. Outro fator que deve ser levado em consideração nos modelos são os pontos onde há retroalimentação. É muito interessante que nos pontos onde há recursos envolvidos na retroalimentação não haja divisão em processos lógicos distintos, pois isso acaba gerando um aumento no tráfego de mensagens.

O agrupamento de processos em uma sequência lógica também é um fator a ser considerado, pois se os processos não precisarem de comunicação para saber o próximo passo, o processo pode ser melhorado. A cada ponto de decisão, que são pontos onde se deve escolher um tipo de recurso, o uso de probabilidades pode afetar o desempenho do sistema.

Considera¸ c˜ oes Finais

Considera¸ c˜ oes Iniciais

Diagramas de Casos de Uso

Implementa¸ c˜ ao da interface

Desenvolvimento do projeto Ao implementar a interface, pretendeu-se que fosse simples e direta para que o usuário pudesse entender facilmente o seu funcionamento [2]. A ideia principal é colocar os objetos componentes da interface gráfica dispostos nas bordas da interface, pois segundo [2] isso é algo que a torna mais agradável para o usuário, devido à adaptação do campo de visão humano. ser. Escolher botões com formas mais arredondadas e textura em relevo também traz uma boa recepção ao olho humano, pois esse design mais ergonômico torna a interface mais atraente de usar.

Assim, primeiro implementou-se a tela principal da interface gráfica, onde estão dispostos os botões para realizar chamadas às demais funções.

Figura 3.1: Modelagem da vis˜ ao superficial do usu´ ario para com a interface gr´ afica.
Figura 3.1: Modelagem da vis˜ ao superficial do usu´ ario para com a interface gr´ afica.

Modelos de filas

  • Modelos Prontos
  • Modelos do usu´ ario

Na interface gráfica, o usuário é habilitado a criar seus próprios modelos de simulação com algumas limitações. Foi implementado um botão na tela principal da interface gráfica que permite ao usuário acessar a estrutura mais geral do programa de simulação para CMB-Simulation. O usuário pode fazer as alterações desejadas na estrutura do código, inserir estruturas condicionais, se desejar, e construir textualmente seu próprio modelo de simulação.

O particionamento de aplicativos permite que o usuário agrupe as estruturas desejadas de filas/centros de atendimento nos mesmos processos lógicos. Mesmo que o usuário não faça a melhor escolha de partição, o sistema permite sua execução.

Considera¸ c˜ oes Finais

Considera¸ c˜ oes Iniciais

Interface gr´ afica

  • Modelos de filas
  • Arcabou¸ co
  • Modelos desenvolvidos pelo usu´ ario

A Figura 4.10 mostra a estrutura de código para cada programa de simulação em execução no CMB-Simulation. A Figura 4.11 mostra a primeira tela de interação com a qual o usuário se depara ao iniciar a criação de seu modelo. Cada vez que o usuário escolhe um desses botões para selecionar um conjunto fila/centro de atendimento, uma tela secundária, mostrada na Figura 4-12, aparece.

Caso o usuário queira sair de uma fila/central de atendimento configurada para apenas um processo lógico, ele pode utilizar a opção NENHUM, conforme pode ser observado na Figura 4.14. Após o usuário realizar o compartilhamento desejado, a tela da Figura 4.11 retorna, onde o usuário pressiona o botão para compartilhar o aplicativo.

Figura 4.1: Tela principal da interface gr´ afica.
Figura 4.1: Tela principal da interface gr´ afica.

Testes

Por exemplo, assumindo o modelo apresentado na Figura 4-15, o usuário deseja executar a seguinte distribuição lógica de processos, e N12 é definido como 1, N22 é definido como 2, N31 é definido como 3 e N32 é definido como 4 : definir fila/centro de atendimento conjuntos 1 e 3, e no mesmo processo lógico definir 2 e 4. Nesse sentido, a interface gráfica sugere uma divisão, conforme mostrado na caixa de texto da Figura 4-17 ao lado do botão dividir. Caso contrário, basta clicar em confirmar e a partição escolhida será utilizada, mesmo que não seja especificada.

Ao clicar no botão confirmar, o framework de código do modelo autocriado e o arquivo arcabouco.c são gerados, conforme Figura 4.18. A Figura 4.19 mostra o núcleo do framework criado com todas as estruturas que irão controlar a execução da simulação.

Figura 4.16: Modelo criado pelo usu´ ario.
Figura 4.16: Modelo criado pelo usu´ ario.

Considera¸ c˜ oes Finais

Conclus˜ ao

Também foi apresentado um exemplo de como particionar uma aplicação gerada pela interface para um determinado modelo de rede de filas construído pelo usuário. Por fim, foi demonstrado um exemplo que permite aos usuários do CMB-Simulation construir seus próprios modelos de redes de filas.

Trabalhos Futuros

17] SPOLON, R. Um método para avaliação de desempenho de protocolos de sincronização otimista para simulação distribuída.

Imagem

Figura 2.3: Esquematiza¸c˜ ao de uma Lista de Eventos Futuros - Segundo Momento.
Figura 2.5: Uma situa¸c˜ ao de deadlock em uma simula¸c˜ ao conservativa [1].
Figura 2.6: Estrutura do processo na CMB-Simulation [1].
Figura 2.7: Modelo geral de inteface para intera¸c˜ ao humano-computador [2].
+7

Referências

Documentos relacionados

Ele está sempre presente e se exerce como uma multiplicidade de relações de forças (FOUCAULT, 1979). Essa noção nos permite compreender que até mesmo as próprias lutas contra