Defina a exclusividade do processo no Linux

5

Estou tentando medir o desempenho de um processo. Eu tenho medições de desempenho muito variadas em um pequeno bit de código determinístico single-threaded que deve executar o mesmo o tempo todo.

Eu gostaria de definir o uso exclusivo de um processador para o processo, a fim de testar se a flutuação de desempenho é devido ao agendamento de outros processos, comutadores de contexto, etc. Eu não me importo com afinidade porque eu não me importo em que núcleo funciona. O que eu me importo é que meu processo single-threaded tenha acesso exclusivo ao núcleo em que ele é executado, seja qual for o núcleo que seja. Isso é possível? Eu não acho que 'bom' faz o que eu quero porque isso me permite definir uma prioridade. Alguma outra tarefa com a mesma prioridade pode compartilhar o tempo do processador com o meu processo. Eu também não me importo se meu processo tem que esperar em uma fila. Eu só quero garantir que, uma vez que comece a funcionar, não seja interrompido.

Obrigado

    
por user1332148 03.05.2012 / 20:35

2 respostas

1

Sempre use o taskset -c 0 para definir o processo que deseja interromper para o primeiro núcleo e, em seguida, defina todos os outros processos para usar outros núcleos. Soa IMHO bastante ineficiente, mas iria realizar o que você está procurando fazer.

    
por 03.05.2012 / 20:56
1

O melhor que você pode fazer é usar chrt para definir a classe de agendamento do processo para em tempo real.

    
por 03.05.2012 / 21:06