Limita o usuário a um núcleo da CPU no Windows 7

1

Eu deixo os membros da minha família usarem o meu PC através do rdp para jogar seus jogos baseados em flash, já que os laptops deles superaquecem se eles forem usados diretamente. Eu tenho que configurar para que eu possa usar o pc ao mesmo tempo que eles. O pc tem uma CPU quad core e eu gostaria de poder atribuir um desses núcleos para o usuário logado via RDP para que os outros 3 núcleos sejam deixados sozinhos. Isso é possível?

Eles fazem login por meio de uma configuração de conta de usuário específica para esse fim.

Obrigado por qualquer conselho!

    
por Dean Ward 27.02.2011 / 13:51

3 respostas

2

A função do Windows SetThreadAffinityMask permite que você defina a afinidade do processador / núcleo de um thread. Então, com essa função, você pode instruir / forçar um thread a usar um núcleo específico.

Para resolver seu problema, faça o seguinte:

  • Escreva um aplicativo que faça um loop em todos os processos e verifique o usuário
  • Se o usuário do processo for igual ao nome de usuário fornecido como argumento para o aplicativo:
    • loop sobre todos os threads
    • define a afinidade para o primeiro núcleo

Você pode dar a este aplicativo um bom front-end de janelas e executá-lo automaticamente assim que fizer o login no seu computador.

Você também pode tornar este aplicativo um serviço do Windows e executá-lo automaticamente se o computador for inicializado.

    
por 27.02.2011 / 14:54
0

Esta não é uma solução simples, mas a melhor maneira de dividir completamente o computador em dois (mais ou menos) computadores usando o software VM (Virtual Machine). Isso resolverá seu problema e também poderá solucionar problemas futuros (Junk, vírus ...)

Com a VM instalada, você pode escolher quanto tempo de processamento da CPU cada computador terá. Esta seleção também funciona para outros recursos, como memória, espaço em disco, largura de banda da rede ...

Se você optar por fazer isso, certifique-se de que sua CPU ofereça suporte à virtualização.

    
por 27.02.2011 / 14:09
0

Existem várias coisas aqui. A solução mais simples seria fazê-lo funcionar no laptop, não é?

  • Talvez haja algum problema com o hardware do laptop, o ventilador?
  • Você pode tentar fazer o underclock do laptop para reduzir a temperatura de funcionamento.

Se você tiver definido a ideia do RDP, tente:

  • reduzindo a prioridade do processo para o rdp no gerenciador de tarefas. (Eu não tenho o Windows 7, por isso não tenho certeza se isso é executado como um processo separado.) Eu acho que isso deve ter um efeito semelhante ao que você está procurando. Se o rdp está sendo executado como um serviço, provavelmente há uma maneira de reduzir sua prioridade, mas não é tão simples quanto imagino.
  • você também pode tentar alterar a afinidade do processo no gerenciador de tarefas, acho que usando isso você poderia atribuir o rdp a exatamente um núcleo, mas, novamente, depende se o rdp é um serviço de como seria fácil fazer isso.
por 27.02.2011 / 14:01