Skype: mariano.andre

Taquara, RS, Brasil

SISTEMAS EMBARCADOS DE TEMPO REAL

Na segunda postagem da série Atividade Prática, desenvolvidas para o curso de engenharia elétrica, o assunto é sobre sistemas embarcados de tempo real. A atividade teve como objetivo otimizar o conhecimento sobre os assuntos estudados em aula através de uma breve pesquisa acerca dos sistemas embarcados de tempo real.

INTRODUÇÃO 

O uso de sistemas embarcados tem sido cada vez mais frequente à medida que é necessário incorporar certa inteligência em máquinas, equipamentos e dispositivos. Neste contexto destacam-se os sistemas embarcados de tempo real (RTOS) que têm premissa a execução de tarefas com a previsibilidade do tempo para execução.

Este documento tem como objetivo trazer uma breve análise sobre a importância de um do RTOS, suas vantagens e desvantagens, o funcionamento da pilha do processador, o bloco de controle de tarefas e as interrupções de um processador.

O estudo foi realizado com base em estudos bibliográficos e não tem a pretensão de esgotar o assunto, mas sim trazer elementos relevantes para compreensão e análise de um sistema embarcado de tempo real.

OBJETIVO

Trazer uma breve análise sobre a importância de um do RTOS, suas vantagens e desvantagens, o funcionamento da pilha do processador, o bloco de controle de tarefas e as interrupções de um processador.

DESENVOLVIMENTO

A primeira etapa do estudo foi realizar uma análise do princípio de funcionamento de um sistema embarcado de tempo real, onde são identificados os componentes principais do sistema.

A partir desta análise o estudo foi direcionado a responder as questões estabelecidas no roteiro da atividade prática elaborada para disciplina de Sistemas Embarcados. As questões são apresentadas nos subitens seguintes e as respostas são apresentadas na sequência.

EXERCÍCIO 1

Explique com 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?

Um sistema operacional é um programa que funciona como interface entre o sistema computacional e usuário. Um sistema operacional é considerado embarcado quando é desenvolvido para funcionar em sistemas computacionais com poucos recursos de hardware (pro-cessamento, memória, periféricos de I/O e energia).

Os sistemas operacionais de tempo real - RTOS são desenvolvidos para aplicações embarcadas ondem o tempo é essencial, ou seja, não precisa ter alta velocidade de processamento, mas o tempo de resposta deve ser conhecido ou previsível em qualquer situação durante a execução das rotinas. Um RTOS pode ser considerado:

  • Crítico: quando a execução de uma tarefa fora do tempo previsto vier causar graves consequências afetando pessoas, economia ou ambiente.
  • Não-crítico: quando a execução de uma tarefa fora do tempo previsto vier causar a degradação de uma informação ou processo sem grandes consequências e que seja aceitável.

Os sistemas operacionais de tempo real podem ser utilizados nos mais variados tipos de aplicações, desde os mais simples aos mais complexos, mas é preciso considerar os fatores relacionados ao grau de confiabilidade de acordo com a necessidade de cada aplicação. Sua utilização requer avaliação para que haja equilíbrio entre disponibilidade de hardware, desempenho de execução, flexibilização na configuração, ferramentas de desenvolvimento e apoio técnico. Entre as vantagens destacam-se a implementação simplificada, baixo custo adicional e comportamento previsível. Em relação às desvantagens podemos citar a operação sequencial, maior dificuldade para tratar eventos imprevisíveis e a implementação de código com escalonamento manual.

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.

A pilha de um processador é uma estrutura utilizada como elo entre as sub-rotinas de chamada e a rotina principal do programa, isto é, um bloco de posições da memória principal utilizado para repassar os dados necessários para execução da sub-rotina, durante a troca de contexto. A pilha utiliza basicamente 3 endereços da memória: endereço da base da pilha, endereço de limite da pilha e o endereço de topo, um registrador especial denominado Stack Pointer (SP), que tem a finalidade de apontar para o último elemento inserido na pilha.

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.

Em um núcleo não-preemptivo nenhum evento externo deve causar a perda de uso do processador. Uma solução alternativa para evitar a corrupção de dados é desligar as interrupções, internas e externas, e utilizar um registrador para armazenar a condição de chamada de sub-rotinas, ou seja, se a sub-rotina pode ou não ser executada.

Em um núcleo preemptivo um processo em execução pode ser interrompido e ser substituído por outro. Uma alternativa para evitar a corrupção de dados é criar uma seção crítica e não compartilhável. Assim os dados que estavam em uso pelo processo interrompido não poderão ser acessados pelo processo substituído.

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?

O Task Control Block (TCB) é uma estrutura padronizada pela qual os sistemas embarcados de tempo real onde ficam armazenadas as informações de controle das tarefas. A implementação do TCB nos diferentes RTOSs podem variar conforme o desenvolvedor. Tipicamente as informações contidas no TCB são: nome da tarefa; estado da tarefa; prioridade da tarefa; ponteiro da pilha; e parâmetros de memória. As tarefas são processos que são executados pelo sistema, conforme suas solicitações. O contexto de uma tarefa inclui o valor dos registrados de CPU, o estado da tarefa e as informações relacionadas à memória. Para uma troca de contexto é necessário salvar o contexto da tarefa antiga e carregar o contexto do novo processo. O contexto de uma tarefa é armazenado no TCB.

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 alinhamento de interrupções deve ser controlado por um núcleo preemptivo?

As interrupções têm a função de interromper o fluxo que está sendo executado pela CPU e desviar o fluxo de processamento para uma sub-rotina em atendimento à solicitação da interrupção. A pilha é utilizada para fazer a troca de contexto entre a rotina principal e a sub-rotina a ser executada. Após a execução da sub-rotina, a CPU recarrega as informações da tarefa anterior, ou a própria rotina principal, armazenadas na pilha e continua a execução do programa do mesmo ponto onde ocorreu a interrupção.

O gerenciamento das interrupções é realizado por um núcleo preemptivo fazendo que sejam respeitadas a ordem de prioridade de cada interrupção. Também controla as interrupções que estão ativas ou inativas, conforme determinado pelo desenvolvedor do sistema operacional.

CONCLUSÃO

Um sistema embarcado é sem dúvida algo que está cada vez mais presente nos equipamentos e dispositivos eletrônicos. O avanço da tecnologia permite que os sistemas embarcados possam ser desenvolvidos para serem executados em dispositivos o mínimo de recursos de hardware, podendo ser executado desde um simples microcontrolador até um micro-processador mais robusto.

O estudo foi realizado com base em estudos bibliográficos e não pretende esgotar o assunto, mas sim apresenta elementos relevantes para compreensão e análise de um sistema embarcado de tempo real.

REFERÊNCIAS

GIMENEZ, Salvador Pinillos. Microcontroladores 8051: Teoria do hardware e do software. Pearson Education: São Paulo, 2002.

SILBERSCHATZ, Abraham. Sistemas Operacionais: conceitos e aplicações. 8ª Ed. Campus: São Paulo, 2000.

TANENBAUM, Andrew S. Sistemas operacionais modernos. 4ª Ed. Peason Education: São Paulo, 2016.

PEREIRA, Fábio. Microcontroladores PIC: Programação em C. Érica: São Paulo, 2003.

NICOLOSI, Denys Emílio Campion. Microcontroladores 8051 com linguagem C: prático e didático. 2ª Ed. Érica: São Paulo, 2008.

OLIVEIRA, Rômulo Silva de. Sistemas operacionais. 2ª Ed. Sagra Luzzatto: Porto Alegre, 2001.

Nenhum comentário:
Faça seus Comentários