+55 51 35415987

Av. Sebastião Amoretti, 3312 - Sala 2 Taquara-RS, CEP 95609-184

WhatsApp Corporativo (51) 3541.5987

quinta-feira, 22 de dezembro de 2022

SISTEMAS EMBARCADOS DE TEMPO REAL



INTRODUÇÃO

O uso de sistemas embarcados tem sido cada vez mais frequente à medida que é necessário incorporar ecerta 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 para responder algumas questões que visam facilitar a abordagem do assunto, mas sem ter a pretenção de esgotar os estudos relacionados.

1. Qual a importância de uso de um RTOS em uma aplicação embarcada?
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 onde 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.
2. Devemos sempre usar um RTOS?
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.

3. Quais as vantagens e desvantagens de uso de um RTOS?
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.

4. 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?
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.

5. 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.

6. Qual é a finalidade do Bloco de Controle de Tarefa - TCB em um RTOS?
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.

7. Quais informações são contidas no TCB?
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.

8. Qual é a diferença entre o bloco de controle de tarefa e o contexto de uma tarefa?
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.

9. O que ocorre em um processador quando uma interrupção ocorre?
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. 

10. Qual o papel da pilha nesse processo?
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.

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

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.

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

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.

Nenhum comentário:
Escrever comentários

Boletim de Notícias