Para que serve a prioridade "em tempo real" de um processo?


12

De acordo com minha experiência, definir qualquer processo como em tempo real fará com que o seu computador fique mais lento. Qual é a utilidade dessa configuração, se ela torna seu computador inutilizável?


2
Se você tiver um processador com vários núcleos ou um sistema com vários processadores, poderá definir a afinidade para apenas um núcleo. Dessa forma, o restante do sistema permanecerá responsivo e você poderá aproveitar o restante dos benefícios de um processo em tempo real. Obviamente, isso só funciona bem para processos que precisam apenas de um núcleo para funcionar.
perfil completo de AndrejaKo

Respostas:


7

Exatamente o que você descreve, ao custo de diminuir o resto do seu computador para um rastreamento, ele executa o processo em tempo real, dando a ele uma prioridade mais alta do que tudo o resto. Isso é necessário apenas para aplicativos de tempo crítico, a maioria das pessoas não os vê no dia a dia ...


Alguns programas muito comuns, como servidores de som (PulseAudio e JACK como dois exemplos do Linux), usam threads de prioridade em tempo real.
user1686

@rawity: JACK não é um servidor, mas apenas um kit de desenvolvimento. Ambos são multiplataforma. Ainda bem que esse material de áudio requer prioridade em tempo real, mas eu estava falando do ponto de vista do Windows 7 em que esses processos especificados não têm prioridade em tempo real. Windows tem algo chamado Class Scheduler Multimedia para este tipo de processos embora ...
Tamara Wijsman

O que é jackd, então, se não um servidor de som? (Pelo que eu entendo, até agora, tanto PA e JACK trabalho da mesma maneira em que eles fornecem tanto um servidor de som e uma biblioteca / kit para acessá-lo ...)
user1686

Isso não faz com que o kit se torne repentinamente um servidor. Estamos falando de processos aqui, não tópicos ...
Tamara Wijsman

1
Outros exemplos de aplicativos em tempo real são aplicativos médicos e robótica controlada diretamente. Coisas em que 10µs é a diferença entre operação correta e falha (onde a falha pode envolver algum robô dirigindo de um penhasco ou um paciente sendo exposto a muita radiação).
ligos

2

Isso pode parecer desnecessário, mas quando um processo é iniciado, podem ser transmitidos parâmetros que definem o processo para ser executado em vários níveis de prioridade. O Gerenciador de tarefas mostra isso como uma configuração opcional, pois é uma opção que pode ser definida para o processo pelo software que iniciou sua execução. A maioria dos softwares é executada em um nível "Normal", mas ocasionalmente você pode ver alguns que estão sendo executados em um nível inferior por padrão. Eu nunca vi um software que inicia em um estado acima do normal.

Também vale a pena mencionar que existe um caso em que um processo pode ser executado na configuração de prioridade mais alta e isso não parece afetar muito o desempenho do sistema. Por exemplo, se um processo for iniciado e designado para funcionar em apenas 1, digamos, 8 núcleos da CPU, definir a prioridade dos processos como "tempo real" significaria que consumiria um processador, deixando 7 para serem usados ​​pelo SO e qualquer outro software. Nesse caso, a execução em tempo real pode não ter quase nenhum efeito no sistema, mas fornecer um aumento razoável no desempenho do processo de alta prioridade.

Eu quase nunca recomendaria definir manualmente um processo para ser executado em "tempo real" de dentro do System Manager. Isso ocorre porque você está alterando as configurações de execução de um processo que pode ter sido projetado para operar em um estado de execução específico. Alterar a prioridade de execução pode, em alguns casos, travar o aplicativo e, se for uma operação de gravação de dados, possivelmente corromper seus dados!

No entanto, existem alguns casos em que o uso de uma configuração de prioridade máxima de execução para um processo pode ser a coisa certa a ser feita, mas mesmo assim, essas configurações de prioridade devem ser definidas pelo aplicativo de controle e não pelo usuário final por meio de um diálogo de gerenciamento do sistema.

Eu, pessoalmente, recomendaria NUNCA alterar uma prioridade de tarefas, a menos que você realmente não se importe se ela falha e a tarefa é COMPLETAMENTE não crítica. Se a documentação do software declarar explicitamente que você pode elevar o processo para executar em uma velocidade mais rápida, a fim de agilizar uma carga muito grande de trabalho do processador, isso também seria aceitável; no entanto, ficaria um pouco cético se um mecanismo da dentro do aplicativo não é fornecido.

Como uma anedota pessoal, há apenas um processo que ocasionalmente altero manualmente - aplicativos de compactação de software. Eu não tive para descompactar um arquivo enorme em um longo tempo, mas eu descobri que se eu estou na corrida ( ahem ser impaciente) Eu posso pôr em marcha acima a prioridade do processo e obter um inchaço moderado no desempenho. Como esses aplicativos iniciam uma tarefa de trabalho e fecham quando são concluídos, não preciso me preocupar em desmarcar as configurações do processador porque, quando o aplicativo termina de extrair os dados, ele pára por conta própria. Esta é a única vez que eu acho pessoalmente útil controlar a velocidade do processador através do gerenciamento do sistema.


1
Como um programador Não posso pensar em uma situação onde dando um programa mais recursos seria lançá-lo
TheLQ

Como programador, sim, mas definir um processo para ser executado em um nível específico pode causar problemas, especialmente se o software foi gravado (possivelmente até mal) para ser executado simultaneamente com outros processos. Minhas sugestões vêm da experiência e do entendimento de que nem todos os usuários são desenvolvedores. Definir prioridades de processos em execução, que você não desenvolveu, certamente pode provocar um comportamento inesperado. Não quero assustar ninguém, no entanto, também não quero incentivar outros usuários a mexer nas configurações do processo, se houver uma chance de que suas alterações possam ser prejudiciais.
RLH

0

Uso a prioridade em tempo real para acelerar os jogos no meu laptop que não é de jogos. Não me importo com o processo em segundo plano quando estou no jogo e tenho uma experiência muito mais agradável ao alocar meu poder de processamento dessa maneira.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.