Como atribuir uma CPU a um processo?

3

Como atribuir uma CPU a um processo para que nenhum outro processo possa usar essa CPU enquanto o processo com essa PID estiver sendo executado naquela CPU?

    
por noob 04.01.2013 / 19:43

1 resposta

5

De man taskset :

  

taskset é usado para definir ou recuperar a afinidade de CPU de um processo em execução, dado seu PID ou para iniciar um novo COMMAND com uma determinada CPU   afinidade. A afinidade da CPU é uma propriedade do agendador que "liga" um processo   para um determinado conjunto de CPUs no sistema. O agendador de Linux honrará   a afinidade de CPU fornecida e o processo não será executado em nenhuma outra CPU.   Observe que o planejador do Linux também suporta afinidade de CPU natural:   o agendador tenta manter os processos na mesma CPU, desde que   prático por razões de desempenho. Portanto, forçando uma CPU específica   afinidade é útil apenas em certas aplicações.

Embora isso garanta que o processo seja executado apenas em uma determinada CPU (ou em um conjunto de CPUs), a configuração de afinidade não garante que nenhum outro processo será executado nessas CPUs. Para conseguir isso, eu acho que você pode mudar gentileza (ou nível bom ) do processo para seu valor mais baixo (1) - veja man nice e man renice para detalhes .

Definir o nível mais baixo garante que o processo não dará à CPU outra tarefa durante a execução - no entanto, a garantia não é 100% (por exemplo, se você tiver outro processo com a mesma prioridade no sistema, ambos processess pode ser agendado para compartilhar a CPU)

    
por Sergey 04.01.2013 / 22:23

Tags