O que exatamente é o lwp e threads no solaris?

3

O livro "Solaris Internals" diz

O Solaris executa threads do kernel para tarefas relacionadas ao kernel, como tratamento de interrupções, gerenciamento de páginas de memória, drivers de dispositivos, etc. Para execução do processo de usuário, os encadeamentos do kernel têm um LWP correspondente; esses encadeamentos do kernel estão agendados para execução pelo kernel em nome dos processos do usuário

Estou um pouco confuso sobre as palavras e abaixo está minha compreensão

No solaris, o " real thread " é o " thread do kernel ". Os encadeamentos do kernel podem executar tarefas relacionadas ao kernel e tarefas relacionadas ao usuário. Quando executar tarefas relacionadas ao usuário, o encadeamento do kernel precisa de uma estrutura de dados chamada LWP para fornecer o ambiente. Portanto, o thread do usuário e o LWP não são a unidade de execução ou o thread. Eles são apenas estruturas de dados no sistema. O thread do usuário é apenas a tarefa do usuário necessária para ser executada, incluindo os dados e o código do usuário. O LWP é a estrutura de dados do kernel que fornece a informação do kernel. A unidade de execução real ou o fluxo é thread do kernel .

Desde que meu entendimento esteja correto, no solaris inicial, onde existe um modelo de thread de dois níveis, muitos threads de usuário podem ser vinculados a um lwp, o que significa que na implementação subjacente do Solaris o thread de muitos usuários "são realmente um thread (thread do kernel) para o kernel ou CPU eo único thread do kernel executa as tarefas em cada thread do usuário. Se o encadeamento do usuário não estiver vinculado, ele não poderá ser executado.

Estou certo?

    
por nofaiture 21.03.2014 / 07:33

1 resposta

2

Thread de kernel é a entidade fundamental programada na CPU do sistema, que é muito leve.

Os encadeamentos do kernel possuem um mapeamento um-para-um com um LWP. A biblioteca de encadeamentos agenda um encadeamento do usuário em um LWP. fontes:

por 14.02.2017 / 03:59