Finally, is the cost of swapping out
two threads of the same process
different than the cost of swaping out
two different processes?
Sim, é diferente. Dois threads dentro de um processo compartilham o mesmo espaço de endereço virtual, portanto, uma alternância de contexto entre fluxos de dados dentro do mesmo processo não precisa invalidar a conversão de virtual para físico. Uma alternância de contexto entre encadeamentos de processos diferentes deve invalidar o atual mapeamento de conversão VA-para-PA. Esta tradução ocorre no processador registros TLB e, tradicionalmente, um switch de contexto incorreu em um flush TLB, que é caro como o novo processo começará lentamente a reconstruir as entradas do TLB gerando falhas de página suaves. Embora as CPUs modernas tenham estratégias mais inteligentes para lidar com esse problema, consulte o parágrafo Context Switch no link da Wikipedia acima.