Baixe o app para aproveitar ainda mais
Prévia do material em texto
CENTRO UNIVERSITÁRIO INTERNACIONAL UNINTER ESCOLA SUPERIOR POLITÉCNICA BACHARELADO EM ENGENHARIA ELÉTRICA DISCIPLINA DE SISTEMAS EMBARCADOS RTOS ALUNO: EDUARDO CONCEIÇÃO DOS SANTOS PROFESSOR: RAFAEL VILA BOAS RIBEIRÃO PRETO – SP 2020-07-18 1 INTRODUÇÃO Estamos vivendo uma constante evolução tecnológica em todo o planeta. A globalização acarretada pelo uso da internet faz com que diversos países compartilhem seus conhecimentos com outros que estão em processo de expansão tecnológica. O profissional do futuro deve saber lidar com as novas tecnologias que estão surgindo. Um sistema embarcado nada mais é que um sistema microprocessado no qual o computador é totalmente encapsulado ao dispositivo ou sistema que ele está realizando o controle. Diferente de um computador convencional, um sistema embarcado realiza um conjunto de tarefas pré-definidas, geralmente com requisitos específicos. O sistema operacional de tempo real consegue executar múltiplas tarefas onde o tempo de resposta a um evento é pré-definido. 1.1 OBJETIVOS Este trabalho acadêmico tem o objetivo de aumentar o conhecimento sobre sistemas operacionais de tempo real. Visto que muitos sistemas embarcados utilizam essa ferramenta de extrema importância para a realização de diversas tarefas. 2 FUNDAMENTAÇÃO TEÓRICA Os sistemas operacionais de tempo real conseguem realizar múltiplas tarefas onde o tempo de resposta a um evento é pré-definido. Não importando, se a velocidade de resposta é elevada ou não. Algumas características do RTOS: ● Interrupções; ● Alternância de tarefas; ● Resposta rápida a um evento; ● Escalonamento; ● Comunicação entre tarefas. ● Livro recomendado sobre o assunto (disponível na nossa Biblioteca Virtual): Gustavo W. Dernadin. Sistemas Operacionais de Tempo Real e sua Aplicação em Sistemas Embarcados. Blucher, 2019. 3 METODOLOGIA Todas as respostas podem ser encontradas de maneira direta ou (indireta) no livro base sugerido na fundamentação teórica, neste documento. A leitura de alguns capítulos deste livro se faz necessário. Portanto. Exercício 1: Explique com as suas palavras a importância de uso de um RTOS em uma aplicação embarcada. Devemos sempre usar um RTOS? Quais as vantagens e desvantagens de uso de um RTOS? Exercício 2 : Descreva o que é a pilha de um processador e qual sua utilidade para a concepção de um sistema que possui múltiplos fluxos de execução. Note que em um sistema tradicional, baseado em superlaço, existem múltiplos fluxos de execução concorrentes devido às rotinas de tratamento de interrupções. Exercício 3 : Considerando que duas tarefas utilizam uma mesma função, a qual é não reentrante, sugira, pelo menos, uma solução para evitar a corrupção dos dados quando utilizando um: a) Núcleo não preemptivo; b) Núcleo preemptivo; Exercício 4 : Descreva com suas palavras a finalidade do bloco de controle de tarefa (TCB) no RTOS. Tipicamente, que informações são contidas no TCB? Qual a diferença de TCB e contexto de uma tarefa? Exercício 5 : Explique o que ocorre em um processador quando uma interrupção ocorre. Qual o papel da pilha nesse processo? Por que o aninhamento de interrupções deve ser controlado por um núcleo preemptivo? 4 RESULTADOS Serão apresentado os resultados da pesquisa central deste trabalho acadêmico. Com essa pesquisa conseguimos ampliar nosso horizonte sobre os sistemas operacionais de tempo real. Exercício 1 : R: Diminuir o uso do processador e aumentar o número de tarefas que serão realizadas. Por meio de técnicas de escalonamento e sincronização entre tarefas. Mais importante do que a velocidade de resposta, e o cumprimento do prazo. O tempo é o que diferencia o RTOS de um sistema operacional utilizado por um computador convencional. O RTOS é utilizado apenas em sistemas embarcados mais complexos. Atualmente, os sistemas embarcados demandam de mais recursos para sua aplicação. São sistemas mais inteligentes e com mais poder de hardware, do que os seus antecessores (Blucher, 2019). Vantagens : Sincronização das tarefas; Interrupções; Comportamento previsível; O tempo é o fator principal; Implementação mais simples; Comunicação; Alternância entre tarefas. Desvantagens: Apenas para sistemas embarcados mais complexos; Custo mais elevado do sistema; Quando o tempo não é o fator principal não tem boa atuação. Exercício 2 : R: A pilha de um processador é uma forma das aplicações utilizarem uma área de memória designada para execução, conhecida como “pilha de execução”. Cada tarefa possui sua própria pilha. O uso da pilha fica destinado ao salvamento de variáveis e registradores, além dos dados utilizados pelo compilador que gerenciam o sistema de chamada de funções e troca de contexto. A última sub-rotina é a primeira a ser executada. Lembrando, que estamos falando do sistema com múltiplas tarefas aplicadas no processador (Blucher, 2019). Exercício 3 : R: a) Não preemptivo – utilização da técnica de exclusão mútua para garantir a integridade dos dados que serão acessados. A exclusão mútua vai garantir a seção crítica para os processos (Blucher, 2019). R: b) Preemptivo – utilização da técnica de exclusão mútua para garantir a integridade dos dados que serão acessados. Para não ocorrer a interrupção da tarefa que está em execução. Está solução vai garantir a seção crítica para os processos, impedindo que ocorra a corrupção dos dados (Blucher, 2019). Exercício 4 : R: Estrutura que serve para manter o estado da tarefa quando ocorre preempção. O TCB faz o registro e armazenamento de várias informações que serão acessadas pelo sistema operacional. O sistema operacional irá definir a posição de retorno destas informações que estão contidas no bloco de controle de tarefas (Blucher, 2019). As informações contidas no TCB são: Nome da tarefa – qual está sendo executada neste instante. Prioridade – qual tarefa tem a maior prioridade de execução. Memória utilizada – posição de memória e quantidade de memória. Estado do processador – registradores e estados da CPU neste momento. Variáveis – que estão sendo executadas no momento. Quando ocorre a mudança da tarefa de menor prioridade para a de maior prioridade que estava sendo executada pelo núcleo. O contexto da tarefa suspensa (menor prioridade) fica salvo no TCB, onde este contexto da tarefa que será executado pode ser recuperado do TCB. O núcleo (Kernel) executa a tarefa de maior prioridade primeiro e, depois inicia a tarefa de menor prioridade que está salva no TCB. O TCB faz o armazenamento das informações das tarefas é o contexto da tarefa pode ser resumido como uma informação de determinada tarefa de menor prioridade que será salva e resgatada dentro do TCB. Um necessita do outro para o correto funcionamento do sistema operacional de tempo real (Blucher, 2019). Exercício 5 : R: Quando ocorre uma interrupção, o processador interrompe o processamento do programa que está em execução e executa apenas um pedaço de código (parte do sistema operacional) chamado de tratador de interrupção. Geralmente, após a execução do tratador, o processador volta a executar o programa interrompido. Serão salvos na pilha de controle o conteúdo dos demais registradores do processador através da rotina de tratamento. O núcleo preemptivo tem como característica permitir a interrupção temporária de uma tarefa de menor prioridade em função de uma tarefa de maior prioridade. Está característica do núcleo preemptivo pode ser chamado de “interrupções aninhadas”. Por isso, deve ser utilizada apenas com o núcleo preemptivo, para evitar falhas do sistema embarcado. O processador ARM aplicado nos sistemas embarcadosé um exemplo prático real da aplicação das interrupções aninhadas controladas pelo núcleo preemptivo (Blucher, 2019). 5 CONCLUSÃO O sistema operacional de tempo real tem como principal objetivo o controle do tempo para a realização das tarefas. Implementada em sistemas embarcados mais complexos. Cada vez mais os sistemas embarcados realizam mais funções o que acarreta na utilização do RTOS, microprocessadores e microcontroladores. O sistema operacional precisa utilizar os recursos do hardware para desempenhar melhor suas funções. Isso aumenta drasticamente o custo do projeto, afetando sua implementação em sistemas embarcados mais simples. O núcleo preemptivo permite a interrupção temporária de uma tarefa de menor prioridade em função de outra tarefa de maior prioridade de execução. O bloco de controle de tarefa (TCB) faz o armazenamento de várias informações que serão acessadas pelo sistema operacional. 6 REFERÊNCIAS Livros Denardin, G. W. Sistemas Operacionais de Tempo Real e sua Aplicação em Sistemas Embarcados. Blucher, 2019.
Compartilhar