Recursos técnicos
O SUSE Linux Enterprise Real Time se baseia no kernel mais recente do Linux em tempo real e inclui o mais recente conjunto de patches em tempo real da Comunidade Open Source - preempt RT - um conjunto de patches que oferece suporte à preemptividade com bloqueios adaptativos, threads de interrupção por dispositivos e herança de prioridades. Ele também inclui suporte à proteção de CPU, designação de recursos e temporizadores de alta resolução, além de drivers de kernel para a pilha de software RDMA de código-fonte aberto mais recente disponibilizada pela OpenFabrics Alliance, o OpenFabrics Enterprise Distribution (OFED).
Bloqueios adaptativos
O SUSE Linux Enterprise Real Time contém modificações que transformam as seções que não podiam ser interrompidas anteriormente do kernel do sistema operacional Linux de uso geral em seções que podem ser interrompidas, ou preemptivas. A latência é minimizada e os tempos de resposta são mais previsíveis; você pode eliminar as chances de que um processo ininterruptível de sistema operacional interrompa seu processo de alta prioridade, ou impeça que ele seja iniciado. Uma modificação específica é o bloqueio adaptativo, que pode ser adormecido, ou suspenso, e liberar recursos que estavam aguardando para que processos de prioridade mais alta fossem executados. Os bloqueios adaptativos reduzem o tempo de switch de contexto do sistema operacional, melhorando drasticamente o desempenho de cargas de trabalho suscetíveis a throughput.
Interrupções de execução de threads
Outra modificação específica que foi feita para tornar o kernel do Real Time mais preemptivo são os threads de interrupção de execução do kernel. As interrupções são processos iniciados por hardware (interrupção abrupta) ou software (interrupção iniciada pelo usuário) que, uma vez iniciadas, fazem com que o kernel do Linux alterne do modo de processamento ao modo de interrupção. Os processos em execução no modo de interrupção em um sistema operacional de uso geral não são preemptivos. Com o SUSE Linux Enterprise Real Time, essas interrupções foram vinculadas ou encapsuladas pelos threads do kernel, e esses threads, que podem ser interrompidos, por sua vez, permitem que interrupções abruptas e iniciadas pelo usuário sejam preemptivas pelos processos de prioridade mais alta definidos pelo usuário.
Herança de prioridades
A herança de prioridades se refere à capacidade de um processo de prioridade mais baixa assumir uma prioridade mais alta, se houver um processo de prioridade mais alta que exija que o processo de prioridade mais baixa seja concluído antes de ele poder finalizar sua tarefa. Com o SUSE Linux Enterprise Real Time, os serviços do kernel acionados por um processo de alta prioridade não aguardarão indefinidamente enquanto outros serviços do kernel acionados por um processo de prioridade baixa que esperam por um semáforo necessário andam lentamente ao longo dessa prioridade mais baixa. A prioridade do processo de prioridade mais baixa aumentará ou herdará o processo de prioridade mais alta, até que seu semáforo seja liberado. Além disso, o Real Time oferece um glibc alternativo que amplia a herança de prioridades para o espaço do usuário. Aplicativos que usam esse glibc alternativo podem solicitar que a herança de prioridades seja aplicada a seus mutexes POSIX.
Proteção e designação da CPU
Com o SUSE Linux Enterprise Real Time, os usuários têm controle total sobre a designação de processos e threads para CPUs. Os processos com requisitos em tempo real podem ser designados para serem executados exclusivamente nas CPUs ou nos núcleos dedicados. As CPUs que executam tarefas em tempo real podem ser totalmente protegidas de quaisquer outros processos que não foram explicitamente designados a elas, garantindo que os recursos estejam sempre disponíveis para processos de alta prioridade e sejam afetados minimamente por aumentos na carga do sistema, garantindo maior confiabilidade e previsibilidade.
Temporizadores de alta resolução
Os serviços de kernel de temporizador posix de baixa resolução (40 milissegundos) foram substituídos por uma nova implementação com resolução de aproximadamente 2 microssegundos. A quantidade de tempo que o sistema gasta processando interrupções, chamadas do sistema, daemons de kernel e aplicativos do usuário agora é contabilizada em uma resolução de nanossegundos.