Pré-requisito: diferença entre processo e thread , diferença entre thread de nível de usuário e thread de nível de kernel Show Introdução:
Uma maneira melhor de entender o conceito é observar o diagrama a seguir. Um thread é uma unidade de execução, que faz parte de um processo. Ele compartilha os recursos do processo. É agendado pelo agendador. Existem duas maneiras de implementar um thread: elas estão no espaço do usuário ou no Kernel. Threads podem ser implementados no espaço do usuário, sem o suporte do kernel. As seguintes coisas acontecem se implementarmos um thread no espaço do usuário -
Modelos de
Em cada um dos modelos acima, o encadeamento no espaço do usuário é mapeado com o encadeamento do kernel ou melhor, com um processador virtual. 1. Um para
um:
2. Muitos para um:
3. Muitos para muitos:
4. Dois níveis:
Vantagens:
Desvantagens:
Aprenda todos os conceitos do GATE CS com aulas gratuitas ao vivo em nosso canal do youtube. Quais as vantagens de se utilizar threads?Thread: Vantagens: ∎ São processos “leves” ∎ Troca de contexto mais rápida; ∎ Tempo de criação menor ∎ Diminui o tempo de resposta do sistema; ∎ Maior facilidade para mesclar threads I/O-bound com threads CPU-bound. ∎ Usa eficientemente as arquiteturas multi-processadas/multicores.
Qual a função dos threads?Resumidamente, os threads definem como um processador funciona, recebendo e executando instruções. Isso acontece muito rapidamente e passa a sensação de que as ações são simultâneas. Portanto, uma CPU com um thread tem apenas uma linha de trabalho – e realiza uma ação por vez.
Quais são as vantagens e desvantagens da implementação de threads nível de usuário )?Assim, um processo executaria em várias threads, definidas pela biblioteca, mas chegaria ao núcleo na forma de apenas uma thread. As vantagens deste modelo estão em sua leveza e fácil implementação. No entanto, suas desvantagens estão nas operações de entrada/saída e na divisão de recursos.
Qual é a maior vantagem de se implementar threads no espaço de usuário?A maior vantagem de implementar threads no espaço do usuário é que elas são escalonadas pelo programador, tendo a grande vantagem de cada processo usar um algoritmo de escalonamento que melhor se adapte a situação, o sistema operacional neste tipo de thread não faz o escalonamento, em geral ele não sabe que elas ...
|