“Fornecer um produto gratuito que supere a qualidade e o serviço exigido pelos usuários de alternativas comerciais”
Dedicados desenvolvedores FreeRTOS têm trabalhado em estreita parceria com as empresas mundiais de chips há mais de 15 anos para lhe fornecerRTOS e ferramentas líderes de mercado, de qualidade comercial e completamente gratuitos de alta qualidade…mas o que é um RTOS?
Esta página começa por definir um sistema operacional, depois refina isto para definir o sistema operacional em tempo real (RTOS), depois refina isto mais uma vez para definir o kernel do timer real (ou executivo em tempo real).
Veja também o item FAQ “Porque um RTOS” para informações sobre quando e porque pode ser útil usar um RTOS no design do software do seu sistema incorporado.
O que é um sistema operacional de propósito geral?
Um sistema operacional é um programa de computador que suporta as funções básicas de um computador, e fornece serviços a outros programas (ou aplicativos) que rodam no computador. Os serviços fornecidos pelo sistema operativo tornam a escrita das aplicações mais rápida, simples e de manutenção. Se está a ler esta página web, então está a utilizar um navegador web (o programa de aplicação que fornece a funcionalidade que lhe interessa), que será executado num ambiente fornecido por um sistema operativo.
O que é um RTOS?
Os sistemas operativos mais comuns aparecem para permitir a execução de múltiplos programas ao mesmo tempo. Isto é chamado multi-tarefa. Uma parte do sistema operacional chamado thescheduler é responsável por decidir qual programa será executado quando, e prover a ilusão de execução simultânea alternando rapidamente entre cada programa.
O tipo de sistema operacional é definido por como o scheduler decide qual programa será executado quando. Por exemplo, o scheduler usado em um sistema operacional de múltiplos usuários (como oUnix) irá assegurar que cada usuário obtenha uma quantidade justa do tempo de processamento. Como outro exemplo, o scheduler em um sistema operacional de mesa (como o Windows) tentará garantir que o computador permaneça responsivo ao seu usuário.
O scheduler em um sistema operacional em tempo real (RTOS) é projetado para fornecer um padrão de execução previsível (normalmente descrito como determinístico), o que é particularmente de interesse para sistemas embutidos, uma vez que os sistemas embutidos freqüentemente têm requisitos em tempo real. Um requisito em tempo real é aquele que especifica que o sistema incorporado deve responder a um determinado evento dentro de um tempo estritamente definido (o prazo). Um requisito em tempo real só pode ser feito se o comportamento do scheduler do sistema operacional puder ser previsto (e é portanto determinístico).
Tradicional de schedulers em tempo real, como o scheduler usado no FreeRTOS, conseguir determinismo permitindo ao usuário atribuir uma prioridade a cada linha de execução. O scheduler então usa a prioridade para saber qualthread de execução deve ser executado em seguida. No FreeRTOS, uma thread de execução é calleda task.
O que é FreeRTOS?
FreeRTOS é uma classe de RTOS que é projetada para ser pequena o suficiente em um microcontrolador – embora seu uso não seja limitado a aplicações tomicrocontroladoras.
Um microcontrolador é um processador pequeno e de recursos limitados que incorpora, num único chip, o próprio processador, a memória de leitura (ROM ou Flash) para manter o programa a ser executado, e a memória aleatória (RAM) necessária pelos programas que executa. Normalmente o programa é executado diretamente da memória somente de leitura.
Microcontroladores são usados aplicativos embutidos indepedentemente (aqueles aplicativos onde você nunca vê os próprios processadores, ou o software que eles estão rodando) que normalmente têm um trabalho muito específico e dedicado a fazer. As restrições de tamanho, e a natureza da aplicação final, raramente justificam o uso de uma implementação RTOS completa – ou mesmo tornar possível o uso de uma implementação RTOS completa.O FreeRTOS fornece portanto a funcionalidade central de agendamento em tempo real, comunicação inter-tarefa, timing e sincronização primitiva apenas. Isto significa que é descrito com mais precisão como um kernel em tempo real, ou seja, um executivo em tempo real. Funcionalidades adicionais, como uma interface de console de comando, ou pilhas de rede, podem então ser incluídas com add-oncomponents.
Next: Fundamentos RTOS