No Linux, os cpusets devem funcionar para isso.
Eu gostaria de fazer isso para que eu possa acelerar com precisão o teste de meus processos e apenas para ter a ilusão de controle.
Talvez eu queira reservar um processador para programas especiais. Talvez eu queira escrever meu próprio otimizador de processos. Quem sabe. As possibilidades são infinitas em minha mente.
Isso é possível em qualquer sistema operacional? Se não, por que não? Se nos é permitido compartimentar a memória, por que não podemos ter tal controle sobre os processadores?
Obrigado.
No Linux, os cpusets devem funcionar para isso.
Isso é teoricamente possível. A maneira mais fácil de realizar algo próximo disso seria com uma plataforma de virtualização que permite atribuir CPU / núcleos específicos a uma VM específica. Em seguida, você pode executar apenas o processo desejado em uma determinada VM (claro, com o mínimo de sobrecarga do SO).
A maneira mais fácil de fazer isso é definir a afinidade do processador para um determinado processo ou informar ao SO quais CPUs lógicas (núcleos) que o processo pode executar. Se você clicar com o botão direito do mouse em um processo no Gerenciador de Tarefas do Windows e selecionar Set Affinity...
, encontrará uma janela parecida com esta:
Nossistemasbaseadosemlinux,vocêpodetaskset
ou definindo o sinalizador de máscara de CPU apropriado nos processos ' /proc
entry.
Infelizmente, não há uma maneira fácil de remover todos os processos de um determinado processador ou definir automaticamente uma máscara específica em um processo quando ele é iniciado. Você precisará de um script para monitorar novos processos no sistema e definir a afinidade apropriada que você deseja.