Por que o Windows não precisa de um kernel de baixa latência ou tempo real?

0

Todas as distribuições do Linux têm problemas de latência quando gravações de áudio, jogos, etc. Mas o kernel do Windows pode ser usado para gravação de áudio, jogos ou qualquer coisa sem demora.

Por que o Windows não precisa de um kernel de baixa latência ou tempo real ou já é um?

    
por Suici Doga 12.02.2016 / 03:37

2 respostas

3

Nem o Windows nem o Linux são nada parecidos com um sistema operacional em tempo real (RTOS) e, tanto quanto eu sei, nem pode ser feito para ser assim. Os objetivos, requisitos e filosofias do RTOS versus computação geral diferem fundamentalmente demais para que qualquer produto responda de maneira útil a ambos.

Você simplesmente não pode arriscar que os caprichos do tempo de interrupção afetem o comportamento dos freios antitravamento ou envie um $ 2B rover de Marte em um penhasco ... mas priorizar as necessidades de design relevantes envolve uma sobrecarga significativa que seria, em geral, desperdiçado em cenários de computação de desktop.

Como outros observaram nesta página, se algum sistema operacional de computação geral tiver um bom desempenho em tarefas em tempo real (como as que você mencionou), é provável que seja devido a muitos testes empíricos, perfis e testes. trabalho de ajuste pelo fornecedor do sistema operacional. Digo "melancólico", porque esses fatores subjacentes em tempo real tornam o progresso no esforço de ajuste inerentemente não-determinístico.

Como você pode imaginar, esse é um universo completamente diferente daquele em que toda a pilha de software pode confiar fundamentalmente nas garantias de latência máxima estabelecidas por um RTOS. Esses valores máximos, que agregam como "baixa latência" determinística geral, são incorporados na própria definição de RTOS correção , o que significa que um resultado final se torna "impossível" com o trabalho correto hardware. Erros de tempo comprovadamente não podem acontecer ou se tornar discutíveis (talvez porque pré-condições não possam surgir etc.) e qualquer erro desse tipo é considerado uma falha total igualmente errada ou inconcebível como obtendo 2 + 2 = 5 .

Relacionados: O que é o Windows? não é um sistema operacional em tempo real "significa? .

    
por 19.01.2017 / 20:44
1

Você afirma que " o kernel do Windows pode ser usado para gravação de áudio, jogos ou qualquer coisa sem atrasos ".

Existe um atraso, então o que você realmente quer dizer é " sem um atraso que seja perceptível ou problemático para os humanos ". O atraso é inevitável, mas o tamanho do atraso é o que determina a adequação do sistema para o uso " interativo ".

Houve muito trabalho em estruturas de áudio de baixa latência - por exemplo, ASIO do Windows, e o JACK do Linux. Isso geralmente envolve a remoção de camadas de abstração, reduzindo os tamanhos de buffer, etc ...

A reprodução de mídia é apenas sobre a sincronização dos elementos de áudio e vídeo, os buffers podem ser enormes, desde que o playout seja coordenado corretamente.

Gaming e Pro Audio Recording exigem que os fluxos sejam construídos em tempo real, dependendo de fatores externos, como a entrada do usuário.

O tópico " Computação em tempo real " não tem lugar real quando discutindo a interação humana com os sistemas - somos muito lenientes e nosso cérebro pode lidar com deslocamentos relativamente grandes entre nossos sentidos - por exemplo, áudio e vídeo.

Os sistemas em tempo real fornecem garantias - por exemplo, se ocorrer uma entrada do acionador, o cálculo será concluído e a saída ocorrerá dentro de n microssegundos. Isso é crucial para a operação correta de muitos sistemas - muitas vezes com consequências de vida ou morte.

O esforço adicional significativo envolvido no fornecimento de tais garantias - no projeto, implementação e verificação - simplesmente não é justificável para garantir que o seu jogo pareça imersivo - sem mencionar que tais sistemas são frequentemente pedidos de magnitude mais simples como efeito colateral de assegurar que as garantias sejam atendidas.

    
por 03.03.2018 / 20:53