Pergunta

Pelo que tenho lido no passado, você está encorajado a não alterar a prioridade de suas aplicações de Windows por meio de programação, e se você fizer isso, você nunca deve alterá-las para 'tempo real'.

O que a configuração de prioridade processo de 'tempo real' fazer, em comparação com 'High' e 'Acima do Normal'?  digite descrição da imagem aqui enter descrição da imagem aqui

Foi útil?

Solução

A thread de prioridade tempo real pode não ser pré-empted por interrupções do timer e é executado em uma prioridade maior do que qualquer outro segmento no sistema. Como tal um limite CPU em tempo real thread de prioridade pode arruinar totalmente uma máquina.

A criação de tópicos prioritários em tempo real requer um privilégio ( SeIncreaseBasePriorityPrivilege ), por isso só pode ser feito por usuários administrativos.

Para o Vista e além, uma opção para aplicações que requerem que sejam executados em prioridades em tempo real é usar o Multimedia Serviço Scheduler Classe (MMCSS) e deixá-lo a gerenciar sua prioridade threads. O MMCSS vai impedir que seu aplicativo usando muito tempo de CPU, assim você não precisa se preocupar com tancagem da máquina.

Outras dicas

Simplesmente, o "tempo real" classe de prioridade é mais elevada do que a classe "alta" prioridade. Eu não acho que há muito mais do que isso. Oh yeah - você tem que ter o SeIncreaseBasePriorityPrivilege para colocar um fio para a classe Tempo real

.

O Windows irá, por vezes, aumentar a prioridade de um segmento, por várias razões, mas não vai aumentar a prioridade de um segmento em outra classe de prioridade. Ele também não vai aumentar a prioridade de threads na classe de prioridade em tempo real. Assim, um thread de prioridade alta não vai obter qualquer impulso temporário automática na classe de prioridade tempo real.

O capítulo de Russinovich "Inside Windows" na forma como o Windows prioridades alças é um ótimo recurso para aprender como funciona este:

Note que não há absolutamente nenhum problema com um fio tendo uma prioridade em tempo real em um sistema normal do Windows - eles não são necessariamente para processos especiais rodando em máquinas dedicatd. Imagino que os motoristas de multimídia e / ou processos pode precisar de fios com uma prioridade em tempo real. No entanto, tal linha não deve exigir muito CPU - deve estar bloqueando a maior parte do tempo, a fim para eventos normais do sistema para obter o processamento

.

Seria a mais alta definição de prioridades disponíveis, e que normalmente só pode ser usado em caixa que foi dedicado a executar esse programa específico. Na verdade, é alta o suficiente para que ele poderia causar a fome dos fios de teclado e mouse na medida em que eles ficar sem resposta.

Então, basicamente, se você tem que perguntar, não usá-lo:)

Em tempo real é a maior prioridade class disponível para um processo. Portanto, é diferente de 'alta' em que é um maior passo, e 'Acima do Normal' em que é duas etapas maior.

Da mesma forma, em tempo real é também um nível de prioridade segmento.

A prioridade do processo de class aumenta ou diminui todas as prioridades de rosca eficazes no processo e, portanto, é considerada a 'prioridade base'.

Assim, um processo tem um:

  1. Base de dados de classe de prioridade processo .
  2. prioridades thread individual , as compensações de classe de prioridade base.

Uma vez que em tempo real é suposto ser reservados para aplicações que absolutamente deve antecipar-se outros processos em execução, não é um privilégio especial de segurança para proteger contra o uso casual do mesmo. Isto é definido pela política de segurança.

Em NT6 + (Vista +), o uso do Multimedia Class Scheduler Vista é a maneira correta para alcançar operações em tempo real no que é não um sistema operacional em tempo real. Ele funciona, na sua maior parte, porém não é perfeito, desde o sistema operacional não é projetado para operações em tempo real.

Microsoft considera esta prioridade muito perigoso, com razão. Nenhum aplicativo deve usá-lo, exceto em circunstâncias muito especializados, e mesmo assim tentar limitar seu uso para necessidades temporárias.

Uma vez que o Windows descobre um programa usa mais elevado do que prioridade normal parece que limita a prioridade no processo.

Como definir a prioridade de marcha lenta até em tempo real não muda o uso da CPU.

Eu encontrei no meu multi-processador AMD CPU que se eu deixar cair um dos CPUs ot como o passado, o uso da CPU vai MAX OUT ea última CPU permanece inativo. A velocidade do processador aumenta para 75% no meu Quad AMD.

Use Task Manager-> selecione Process-> Right Click na Process-> Select-> Definir afinidade Clique todos, mas o último processador. O uso da CPU vai aumentar para o MAX nos processadores restantes e conta quadro se o processamento de vídeo irá aumentar.

Ele basicamente é maior / maior em tudo o mais. Um teclado é menos prioritário do que o processo em tempo real. Isto significa que o processo será levado em conta mais rápido, então teclado e se ele não pode lidar com isso, então o seu teclado é retardado.

Como todas as outras respostas antes de tempo real dá esse programa a classe de prioridade máxima. Nada é processada até que o programa foi processado.
No meu pentium 4 máquina que eu jogo Minecraft ao tempo real muito desde que aumenta o desempenho do jogo muito, e o sistema parece completamente estável. por isso em tempo real não é tão ruim quanto parece, apenas se você tem um multi-core definir a afinidade de um programa a um núcleo ou núcleos (só não todos eles específica, apenas para deixar tudo mais ser capaz de executar no caso do tempo real estabelecer programas fica pendurado para cima) e definir a prioridade em tempo real.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top