Threads Flashcards

1
Q

Forneça dois exemplos de programação em que a criação de múltiplos threads proporciona melhor desempenho do que uma solução com um único thread.

A

Em sistemas de Chamada de Procedimento Remoto (RPC) e servidores web, o uso de multithreading é benéfico para melhorar a eficiência e a capacidade de resposta. Nos servidores RPC, a abordagem multithread permite que vários RPCs sejam executados simultaneamente, enquanto nos servidores web, ela possibilita o atendimento de várias solicitações de clientes concorrentes. Isso resulta em um melhor desempenho e na capacidade de lidar com múltiplas solicitações simultaneamente em ambos os cenários.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Cite duas diferenças entre threads de nível de usuário e threads de nível de kernel. Sob que circunstâncias um tipo é melhor do que o outro?

A

Threads de nível de kernel são gerenciados diretamente pelo kernel do sistema operacional e são mais caros em termos de recursos. Eles são apropriados para tarefas de alta prioridade que requerem controle direto sobre os recursos do sistema. Por outro lado, threads de nível de usuário são desconhecidos para o kernel e são mais eficientes em termos de recursos. Eles são adequados para tarefas de nível mais baixo que não exigem gerenciamento pelo kernel.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Descreva as ações executadas por um kernel para mudar o contexto entre threads de nível de kernel.

A

Quando ocorre uma troca de contexto em um sistema com múltiplos threads, o kernel precisa salvar o contexto do thread que está sendo executado atualmente, incluindo valores de registradores, contador de programa, sinalizadores da CPU, entre outros. Em seguida, o kernel carrega o contexto do thread que será alternado para a execução. Esse processo garante que a CPU possa executar vários threads concorrentemente, alternando entre eles de maneira eficiente.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Que recursos são usados quando um thread é criado? Em que eles diferem daqueles usados quando um processo é criado?

A

criar um thread, seja de usuário ou de kernel, envolve a alocação de uma estrutura de dados menor que mantém um conjunto de registradores, uma pilha e uma prioridade. Criação de threads é mais eficiente em termos de recursos do que a criação de processos, pois os threads são menores que os processos. Os processos exigem a alocação de um bloco de controle de processo (PCB), que é uma estrutura de dados maior, incluindo um mapa de memória, uma lista de arquivos abertos e variáveis de ambiente

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

É necessário vincular um thread de tempo real a um LWP? Explique.

A

Sim, é necessário vincular um thread em tempo real a um LWP, isso garante que o thread poderá ser executado com um atraso mínimo depois de agendado

How well did you know this?
1
Not at all
2
3
4
5
Perfectly