Sistemas operacionais de tempo real
Sistemas Operacionais de tempo real podem ser definidos como um sistema operacional que executa múltiplas tarefas onde o tempo de resposta a um evento já está é definido de forma que o resultado dos cálculos não depende somente da lógica das operações matemáticas, e sim também do tempo que são calculados os resultados (se não forem no tempo estabelecido/esperado são considerados como falha). Ou seja, o tempo das realizações de operações é dado como maior relevância para sua real utilidade, não é apenas questão de desempenho, tendo como exemplo uma aplicação que ocorre a x segundos de processamento se essa aplicação processar em qualquer milésimo a mais do esperado já não é considerado como tempo real.
Características
Para um sistema operacional ser considerado como de tempo real ele deve seguir algumas características como:
Timeliness: Gerencia de tempo, tarefas com restrições de tempo explicitas.
Multitarefas (Multi-thread): Ação onde o sistema operacional possui suporte a execução de várias tarefas simultaneamente e cada uma com seu grau de prioridade.
Preempção de Processos: Caso surja um processo de prioridade maior no momento que alterar o seu status para pronto o escalonador deve interromper o processo em execução para a execução do prioritário.
Curto tempo de troca de contexto entre processos.
Central de ajuda de qualidade (Documentação, testes de aplicação, gerencia de erros, ferramentas de desenvolvimento).
Níveis de interrupções suficientes com suporte e agrupamentos.
Comportamento do sistema padronizado com: latência de interrupção deve ser compatível com a estabelecida pela aplicação sendo previsível. Dependendo do numero de interrupções pendentes simultâneas. E tempo de cada chamada do sistema utiliza ao ser executado deve ser previsível e não depender da quantidade de objetos no sistema.
Tolerância de falhas: Falhas de Hw/Sw não devem travar o sistema.
Suportar vários