Suponha que, em um computador capaz de processar n
encadeamentos simultâneos, deseje lançar n-m
tarefas de encadeamento único, em que m
é o número de encadeamentos atualmente em uso. Como o m
é definido e por quais meios seu valor pode ser determinado? Por exemplo, em um sistema não compartilhado com dois soquetes contendo processadores quad-core com SMT e sem processos ativos além daqueles normalmente executados pelo sistema em segundo plano, um usuário pode iniciar 16 processos single-thread sem se preocupar muito com a interferência do processo falta, etc.). Pode-se simplesmente considerar o número de threads de cada processo de propriedade do usuário? Como os processadores podem mudar rapidamente os threads, presumo que a determinação envolva mais do que isso. Uma determinação seria melhor feita considerando o número total de núcleos virtuais e o uso geral estimado da CPU?
Tags cpu thread jobs multiprocessor