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.
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.
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.
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.
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.
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.
Considerac¸˜oes Finais
Conclus˜oes
Trabalhos Futuros