• Nenhum resultado encontrado

Simulac¸˜ao de Tempo Real:

N/A
N/A
Protected

Academic year: 2023

Share "Simulac¸˜ao de Tempo Real:"

Copied!
53
0
0

Texto

O desempenho e a estabilidade dos sistemas de tempo real estão diretamente relacionados ao algoritmo de escalonamento usado para atribuir tarefas às CPUs. Essa diversidade de propostas torna necessário determinar qual escalonador é mais adequado para o conjunto de tarefas de uma determinada aplicação ou sistema de tempo real.

Objetivos

O desempenho desses sistemas depende de algoritmos de escalonamento criados especificamente para esse tipo de aplicação, que buscam a melhor situação e ordem para realizar suas tarefas. Esses algoritmos são objeto de estudo de muitos programadores desse tipo de sistema, e seu entendimento e avaliação de desempenho para o sistema a ser desenvolvido é de fundamental importância para esses especialistas.

Justificativa

Motivac¸˜ao

Metodologia

Exequibilidade

Organizac¸˜ao do texto

Sistemas de Tempo-Real

Escalonamento de Tempo-Real

Tarefas

Arrival Time (Momento de Ocorrência): Momento de tempo em que a tarefa fica pronta para ser executada. Período: Intervalo de tempo em que a tarefa ocorrerá novamente, relevante apenas para tarefas periódicas.

Algoritmos de Escalonamento

Em sistemas de tempo real, uma tarefa é uma ação a ser realizada levando em consideração seus parâmetros e características de execução [Farines et al., 2000]. Carga (Tempo de Execução): É o tempo necessário para que a tarefa conclua sua execução. E o prazo em que a tarefa deve concluir sua execução antes de ser considerada uma falha.

É um algoritmo estático desenvolvido para tarefas de prioridade fixa, ou seja, as tarefas recebem prioridade no início da execução e não mudam de ordem durante o processo. No exemplo da Figura 2.1, as tarefas receberão suas prioridades de acordo com seus períodos, sendo T1 com prioridade = 1, T2 com prioridade = 2, T3 com prioridade = 3 e T4 com prioridade = 4, onde 1 é a maior prioridade. acima. Este é um algoritmo dinâmico de prioridade e a cada chegada de uma tarefa na Ready Queue, o algoritmo refaz a ordem de execução de acordo com a situação.

A prioridade é calculada de acordo com o tempo de conclusão da tarefa, ou seja, o tempo que a tarefa tem para concluir sua carga restante antes que ocorra seu deadline. A Figura 4.10 mostra um esquema do algoritmo que usa o mesmo conjunto de tarefas que pode ser visto na Figura 2.1. É interessante observar na Figura 2.4 que a ocorrência da tarefa A5, no processador P2, não causa a preempção da tarefa A6, conforme previsto pelo algoritmo.

Figura 2.1: Escalonamento produzido pelo Taxa Monotˆonica
Figura 2.1: Escalonamento produzido pelo Taxa Monotˆonica

Simuladores de Sistemas de Tempo-Real

  • STRESS [Audsley et al., 1994]
  • SPARTS [Nikolic et al., 2011]
  • Realtss [Diaz et al., 2007]
  • AURTSS [Yaashuwanth and Ramesh, 2010]
  • Breve Hist´orico
  • Estado Atual

Definição de parâmetros: A interface desta etapa é bem clara e possui diversas opções que permitem ao usuário especificar as características das tarefas (por exemplo, o período) e selecionar o algoritmo a ser utilizado na simulação. A interface gráfica deste software é simples e bastante explicativa, não é difícil de usar e permite uma boa interação com o usuário. A ferramenta possui uma interface de usuário bastante intuitiva, construída para que qualquer usuário possa entender o que precisa ser digitado nos campos.

Para que ocorra a simulação é necessária a programação manual, ou seja, o usuário deve descrever o simulador através de uma classe programada em Python. O RTsim pode ser executado em três modos diferentes e o usuário seleciona um deles após inserir os dados das tarefas a serem agendadas. Gráfico Gráfico: A função gera um gráfico detalhado do escalonamento para que o usuário possa acompanhar as ocorrências.

Isso permite que o usuário insira manualmente a programação e receba a mesma correção. É possível visualizar os erros que o usuário cometeu no agendamento e também auxiliar na entrada do agendamento no modo aprendizado. À direita está o gráfico de agendamento que mostra a execução de cada tarefa e possui opções de visualização e estatísticas para auxiliar o usuário.

Figura 2.5: Funcionamento do escalonador SPARTS
Figura 2.5: Funcionamento do escalonador SPARTS

Considerac¸˜oes Finais

O trabalho desenvolvido é apresentado nas seções a seguir, sendo que a seção 3.2 descreve as alterações necessárias nas interfaces do RTsim para tornar a injeção de geração do escalonador eficiente.

Estudo da ferramenta RTsim

É possível observar relações entre interfaces e implementação de algoritmos, bem como herança entre classes. Por exemplo, segue a implementação do algoritmo Monotonic Rate, levando em consideração que o usuário não carregará um conjunto de tarefas de um arquivo, mas inserirá os dados diretamente na interface (Figura 3.2), a próxima ordem de chamada da classe. A implementação da tela inicial é feita pela classe GUI DesktopView, que executa uma ação de escolha do usuário por meio do menu de opções.

O usuário seleciona o algoritmo Monotonic Rate no menu do monoprocessador e o programa chama a classe GUI EntradaTarefasMonotonicRate. Se o usuário escolher "Graphic Plot", a classe responsável por desenhar o gráfico de escala (GraficoMono GUI) é chamada. ii). Se o usuário escolher "Test Mode" ou "Learning Mode", a GUI do TestMode ou a GUI do LearningMode serão chamadas, respectivamente.

Figura 3.1: Diagrama de classe exibindo as classes de interface e simulac¸˜ao dos algorit- algorit-mos
Figura 3.1: Diagrama de classe exibindo as classes de interface e simulac¸˜ao dos algorit- algorit-mos

Modificac¸˜ao das Interfaces do RTsim

A nova interface funciona com um tamanho de janela maior para facilitar a visualização e organização de seus componentes. Propriedades do Trabalho: Este é o painel principal que contém todos os parâmetros do trabalho que serão inseridos pelo usuário do sistema. Na Figura 3.4, está visível no canto superior esquerdo, neste caso está aguardando o nome da tarefa, carga, período e hora de chegada.

Ele também contém o botão que permite carregar um arquivo contendo um conjunto de tarefas usado anteriormente. Também está disponível a opção de inserir variação de carga 1 durante a simulação. 1A variação de carga é um mecanismo no qual o simulador altera a carga original da tarefa inserindo uma variância gerada aleatoriamente.

A interface mostrada na Figura 3.4 está inserida em todos os algoritmos multiprocessadores e em três do processador único. Como pode ser visto, existe uma diferença na nomenclatura de dois campos (período e hora de chegada versus deadline e intervalo mínimo entre chegadas) e um campo adicional no caso de tarefas aperiódicas, que é o número de eventos. Portanto, o novo módulo foi implementado para gerar as mesmas interfaces de saída e não afetar a padronização das interfaces.

Figura 3.3: Interfaces do RTsim para o algoritmo Taxa Monotˆonica
Figura 3.3: Interfaces do RTsim para o algoritmo Taxa Monotˆonica

Gerac¸˜ao de escalonadores de ambientes monoproces- sados

Implementac¸˜ao

Para implementar o módulo de geração do escalonador, vários problemas relacionados à interação entre o usuário e o módulo e entre o módulo e o RTsim tiveram que ser resolvidos. Como o objetivo é gerar um novo algoritmo de escalonamento na ferramenta e uma classe precisa ser codificada para isso, o sistema gera automaticamente uma classe com o nome do escalonador e os dados necessários. Como não é possível em Java inserir ou atualizar classes em seu pacote em tempo de execução, a solução é carregar classes externas.

Ele implementa métodos comuns da ferramenta, como preparar tarefas para o gráfico. Essa nova classe recebe a lista de tarefas e os comandos de classificação da classe gerada. Este método faz o reordenamento de acordo com os parâmetros de entrada e retorna a lista de tarefas para continuar a simulação.

Uma parte importante da avaliação de um novo algoritmo é a capacidade de simulá-lo novamente ou a capacidade de alterar alguns de seus parâmetros de entrada. Como em outros módulos, todas as características de entrada são armazenadas em um arquivo de texto, que é obtido com a opção "Usar agendador existente". Esta funcionalidade permite ao usuário definir um conjunto de tarefas e suas características que são agendadas de acordo com as regras do escalonador.

Gerac¸˜ao de escalonadores de ambientes multiproces- sados

Implementac¸˜ao

Considerac¸˜oes Finais

Os testes realizados neste trabalho visaram verificar o comportamento da nova interface e os resultados exibidos. A interação da interface de acordo com as ações do usuário e seu comportamento na simulação foi analisada com o objetivo de verificar se a interface é intuitiva e fácil de usar. Os resultados da simulação foram verificados de acordo com o que era esperado sobre o seu comportamento.

Este título explicará os testes e ilustrará como funcionam os novos métodos introduzidos.

Testes de interfaces de entrada e modos pr´atica

No painel da Figura 4.5, o usuário deve inserir a equação matemática que define o comportamento do escalonador, e esta deve ser composta pelos parâmetros disponíveis na interface. Por fim, a Figura 4.6 exibe um resumo da conferência de tudo o que o usuário selecionou para o novo agendador. Nela, o usuário seleciona o agendador que deseja utilizar e insere o conjunto de tarefas a serem agendadas.

Assim, a entrada de dados no modo de aprendizagem é realizada através do mesmo conjunto de interfaces mostrado acima. A Figura 4.8 mostra o resultado do uso do modo de treinamento com o mesmo conjunto de tarefas. Pode-se ver que ele monitora as entradas do usuário e exibe informações durante a execução.

O objetivo foi alcançado pois o modo foi adaptado ao novo módulo e funciona exatamente como implementado para os demais algoritmos. O modo de teste teve o mesmo objetivo do modo de aprendizado e o resultado também foi bem-sucedido, pois se comporta da mesma maneira que o esperado. Isso funciona como um teste real onde o usuário só conhece suas falhas ou acertos ao final da implantação.

Figura 4.1: Janela para identificac¸˜ao do algoritmo e classe de tarefas
Figura 4.1: Janela para identificac¸˜ao do algoritmo e classe de tarefas

Resultados dos testes de escalonamento

Na Figura 4-10, é possível destacar dois pontos importantes nos quais uma tarefa é priorizada em favor de outra tarefa de maior prioridade. A Figura 4.11 mostra o resultado do cronograma, que possui uma definição estática de prioridades ordenadas por valores de deadline relativos. É importante lembrar que neste módulo as tarefas periódicas são agendadas de acordo com a fórmula inserida e as tarefas aperiódicas podem ser agendadas de três formas pré-definidas.

Para os testes, foi adotada uma ordem crescente de carga para as tarefas periódicas, e o tratamento das tarefas aperiódicas foi variado para o conjunto. Nesse processamento, a aperiódica só pode ser realizada durante o tempo de desligamento do processador, que é entendido como o de menor prioridade. A Figura 4.12 mostra o resultado obtido, no qual é possível observar a execução das tarefas A1, A2 e A3 apenas durante o desligamento do processador.

A Figura 4.13 é um exemplo do que foi dito acima, mostrando a troca de tarefas que sempre favorece tarefas aperiódicas. A Figura 4.14 permite visualizar que as tarefas A1, A2 e A3 agora possuem tempos de execução específicos, sendo este o tempo em que a tarefa do servidor obtém o direito de execução. O resultado gráfico é apresentado na Figura 4.15, onde é possível observar as tarefas definidas para o processador P1, e ordenadas na Figura 4.16 definidas para P2.

Figura 4.9: Modo Teste
Figura 4.9: Modo Teste

Considerac¸˜oes Finais

Conclus˜oes

Trabalhos Futuros

Imagem

Figura 2.1: Escalonamento produzido pelo Taxa Monotˆonica
Figura 2.2: Escalonamento produzido pelo Least Slack Time First
Tabela 2.1: Entrada do algoritmo m´ıope Tarefas Processador Carga Deadline Recursos
Figura 2.3: Gr´afico para processador P1 com algoritmo m´ıope
+7

Referências

Documentos relacionados

(Figura 4) A diminuta imagem refletida no espelho revela uma janela que a princípio não vemos na pintura, disposta à frente do casal de comerciantes, que se abre para um