Qual é o objetivo da segmentação M: N (híbrida)?

12

Em outras palavras, quais são as vantagens do encadeamento híbrido sobre o encadeamento 1: 1 (somente kernel) e N: 1 (somente usuário)?

Esta é uma continuação de Qual é a diferença entre os threads no nível do usuário e os do nível do kernel?

Sheldon
fonte
1
Por favor, explique os conceitos em breve ou faça o link para as referências apropriadas.
Raphael
3
Hum, que você obtém os benefícios de ambos? (@Raphael Done.)
Gilles 'SO- stop
Além disso, o artigo da Wikipedia parece listar algumas (des) vantagens. O que especificamente você está procurando?
Raphael

Respostas:

7

Eu acho que a segmentação híbrida é muito semelhante a um pool de threads .

No conjunto de encadeamentos, você está usando NMMN

A vantagem sobre a segmentação apenas pelo usuário é que você pode tirar proveito de várias CPUs ou múltiplos núcleos de CPU. E se uma tarefa bloquear, você poderá criar outro thread do kernel para usar a CPU disponível com mais eficiência.

Portanto, você obtém as vantagens de ambas as abordagens, às custas de algum agendamento adicional no modo de usuário.

Uma desvantagem em relação ao agendamento apenas do kernel é a latência possivelmente maior: se todos os encadeamentos no pool estiverem ocupados e você adicionar uma nova tarefa curta, poderá esperar um longo tempo antes de iniciar a execução.

svick
fonte