Computação em tempo real: definição de usos e arquitetura

Quando falamos em tempo real, nossa mente geralmente associa este termo com a renderização de gráficos em tempo real que normalmente vemos em videogames, mas o conceito de computação em tempo real vai além disso e se refere a uma área do hardware que nós usar todos os dias sem saber. Por isso decidimos explicar como funciona e em que consiste.

Computação em tempo real

Uma pessoa pode ter um marcapasso por causa de um problema cardíaco, bom, embora seja uma peça de hardware relativamente simples, deve sempre dar uma resposta em um determinado momento. Se já estamos em movimento no ambiente de condução, podemos encontrar um microcontrolador encarregado de garantir que todo o sistema funcione nos momentos ideais para evitar uma falha mecânica ou elétrica no veículo.

Se já falamos de coisas de ficar mais em casa, o exemplo mais claro está na comunicação entre dois aparelhos, que tem que ser feita em horários determinados que o padrão estabelece. Isso acontece especialmente em impressoras sem fio que enviam rajadas de dados à medida que são impressos no papel. Também não podemos esquecer os consoles de 8 e 16 bits que devido às limitações da memória de vídeo tiveram que enviar os dados para a saída de vídeo conforme o feixe de elétrons cruzava a tela.

O que é computação em tempo real?

Computação Tempo Real

Entendemos por computação em tempo real tudo aquilo em que a execução das instruções ou conjuntos dos mesmos, processos ou programas, deva ser realizada no menor tempo possível, podendo causar resultados fatais se o processo não se realizar dentro do referido limite. estabelecido temporário. Para fazer isso, precisamos quantificar esse período usando uma medida, que pode ser um tempo alvo padrão, como microssegundos, milissegundos ou segundos, ou se não pudermos fazer dessa forma, teremos que usar os ciclos de clock do processador que está executando dita instrução ou conjunto de instruções.

Portanto, um sistema em tempo real deve dar uma resposta em um determinado momento a partir de uma ação do usuário, independentemente dos processos que existiam antes. Um exemplo muito claro disso é quando pressionamos um botão em nosso mouse ou botão de controle em um videogame, esperamos que a resposta na tela apareça o mais rápido possível; se demorar muito, entendemos que o sistema não trabalhe corretamente.

Assim, sistemas de computação em tempo real são aqueles sensíveis ao tempo de execução dos processos e onde seu funcionamento pode ser total ou parcialmente afetado pela não resolução dos processos em um determinado tempo.

Categorias de computação em tempo real

computação tempo real

Como a computação em tempo real tem requisitos de tempo, podemos dividi-los em dois tipos, hard e soft.

  • Em um sistema de tempo real do tipo hard, se o processo não conseguir ser executado no tempo especificado, resulta em uma falha total do sistema. Por exemplo, o sistema de airbag em tempo real de um carro pode não funcionar na hora certa e a pessoa que sofre um acidente bate no volante e morre instantaneamente.
  • Por outro lado, um sistema em tempo real do tipo soft sofre apenas uma perda na qualidade do serviço, mas não uma falha geral do sistema, um exemplo claro é o Input Lag em um videogame ou o atraso em um transmissão.

Costumamos ver o primeiro tipo em dispositivos que funcionam de forma autônoma e em loop contínuo, onde a adição de mais alguma instrução pode resultar em um atraso no processo que pode ser fatal, por isso são usados ​​para isso microcontroladores que funcionam isoladamente e com cada uma de suas instruções medidas para um desempenho digno de um relógio suíço. Eles estão em nossos PCs? Bem, sim, por exemplo, os sistemas que controlam os períodos de Boost do CPU e os votos de GPU são exemplos de sistemas de computação em tempo real

A razão pela qual os microcontroladores são usados ​​é devido ao fato de que seus RAM a memória fica dentro do próprio processador, logo sua latência é mínima e não é necessário um sistema de cache, além disso, seria totalmente contraproducente, pois nesses casos acrescentaria latência e seria fatal para o bom funcionamento do sistema. Nos microcontroladores, o conjunto de instruções não é dado apenas no sentido do que cada um faz, mas também do tempo que consome.

Uso de sistemas operacionais especiais em tempo real

Processador Render

Porém, o problema com um microcontrolador é que eles não são capazes de executar mais de um processo ao mesmo tempo e é nesse ponto que é necessário o uso de hardware e software mais complexos, especialmente este último e, portanto, é aqui que eles entrar. sistemas operacionais em tempo real que são responsáveis ​​por gerenciar os processos que serão executados no processador, aqui novamente temos dois tipos:

  • Sistemas guiados por eventos, a execução dos programas é feita de forma normal, mas os eventos não têm uma preferência de execução por um sistema de privilégios e hierarquia na origem, mas estes se resolvem à medida que aparecem.
  • Um sistema de compartilhamento de tempo, no qual cada instrução tem um tempo para execução para evitar atrasos, se um processo não puder ser executado no tempo esperado, ele é pausado e pulado para o próximo processo.

Esses tipos de sistemas operacionais rodam em microcontroladores muito mais avançados, com núcleos capazes de executar vários processos ao mesmo tempo e que, portanto, podem realizar tarefas muito mais complexas ou uma sucessão delas de forma ordenada que juntos requerem mais potência para seu funcionamento . funcionando. Quanto à categorização dos Sistemas Operacionais em Tempo Real ou RTOS, estes são categorizados de acordo com o tipo de computação em tempo real que você deseja usar, portanto, existem os tipos hard e soft.