Jeffrey Cross
Jeffrey Cross

SPARK Project # 1, Post # 5

Agendador de catraca de Shawn Schaffert

Sistemas operacionais em tempo real?

Embora esse projeto seja sobre um painel doméstico inteligente que não tenha necessariamente tarefas de tempo crítico, é muito fácil. E se uma nuvem cobrisse os painéis solares, e eu quisesse diminuir as luzes em resposta. Não quero que meu software aguarde a atualização de todos os sensores de temperatura antes de alterar a iluminação. Para evitar este problema em potencial, eu quero um "sistema operacional em tempo real" para o meu projeto.

Os sistemas que utilizam controladores incorporados geralmente são caracterizados pela necessidade de exibir um comportamento de computação em tempo real. É importante entender o que isso significa e como isso afeta a escolha do software a ser usado em um projeto. Ninguém argumentaria que os computadores estão ficando cada vez mais rápidos ao longo dos anos. A velocidade, a memória, a placa de vídeo e as velocidades do clock do disco rígido, da placa-mãe aumentaram constantemente a cada nova geração de hardware. Isso significa que o usuário pode executar aplicativos complexos sem ter que esperar um tempo excessivo e que aplicativos simples executam suas funções em incrementos de tempo extremamente pequenos. Para a maioria dos aplicativos de desktop, pequenos atrasos na execução do programa são imperceptíveis e insignificantes. Mas, e se parte da sua aplicação monitorar o botão de parada de emergência da sua fresadora CNC? Você precisa do botão de parada de emergência para desligar a máquina dentro de um período de tempo garantido. Não ter esse determinismo poderia criar uma situação muito perigosa se, por exemplo, uma tarefa em segundo plano, como tocar música ou salvar um arquivo, assumisse momentaneamente a largura de banda do computador. Você aperta e solta a parada de emergência e assiste horrorizado enquanto sua fresa continua passando pela sua parte.

Não é necessária uma CPU potente ou rápida para dar uma resposta atempada a uma alteração de bit único num registo de E / S periférico. Qualquer pessoa que tenha programado uma interrupção de porta em um microcontrolador simples de 8 bits pode descobrir quanto tempo levará para que o processador de 8 bits capture a interrupção de E / S e chame o código para responder ao evento. Com sistemas operacionais para PC como OSX, Windows e Linux, há alguma capacidade de implementar encadeamentos em tempo real, mas esse recurso geralmente é implementado substituindo o comportamento normal do sistema operacional usando um complemento do sistema operacional para obter esse recurso. . Esses sistemas operacionais foram projetados para serem ferramentas eficazes de uso geral para executar uma ampla variedade de aplicativos e interagir com vários dispositivos de hardware de terceiros, mas não foram projetados para ter um comportamento determinístico em tempo real.

Um verdadeiro sistema operacional de tempo real (RTOS) é projetado com recursos de tal forma que um programa pode ser dividido em tarefas que rodam em um horário fixo, e eventos assíncronos, como o botão de parada de emergência do moinho CNC, terão um máximo garantido latência antes que eles sejam executados. Você pode escrever um programa para alternar um pino de E / S a 5 kHz e outro a 1 kHz com jitter mínimo, ou programar a resposta do botão de parada de emergência para desligar seus motores de moinho CNC com garantia de 1 milissegundo.

Confira uma lista de sistemas operacionais em tempo real e saiba mais sobre o Windows Embedded CE 6.0 R2 aqui.


Esta SPARK Your Imagination Make: A série de projetos do Windows Embedded é patrocinada pela Microsoft Corporation.

Ação

Deixar Um Comentário