Please enable JavaScript.
Coggle requires JavaScript to display documents.
Threads, Mapa Mental 04 SO 2025/2 Davi Campos Sutil - Coggle Diagram
Threads
Visão Geral
Thread
unidade básica de uso da CPU
“miniprocessos”
Contém
ID
Contador de programa
Registradores
Pilha
Compartilha
Código
Dados
Arquivos
Sinais
Aplicações modernas usam múltiplas threads
Benefícios
Responsividade
Compartilhamento de recursos
Economia
Uso de multiprocessadores
Programação Multicore
CPUs modernas
múltiplos núcleos
Threads possibilitam paralelismo real
Diferença
Paralelismo
várias tarefas simultâneas
Concorrência
alternância rápida
Desafios
Identificação de tarefas
Balanceamento de carga
Divisão de dados
Dependência de dados
Teste e depuração difíceis
Tipos de Paralelismo
De dados
mesma operação aplicada em diferentes subconjuntos
De tarefas
tarefas diferentes rodando em paralelo
Modelo de Geração de Multithreads
Tipos de threads
De usuário
gerenciados pela biblioteca
De kernel
gerenciados diretamente pelo SO
Modelos
N:1
Muitas threads de usuário → uma de kernel.
bloqueio em chamadas
não aproveita multiprocessadores
1:1
Cada thread de usuário → uma thread de kernel
Custo maior com muitas threads
M:N
Muitas threads de usuário → muitas de kernel.
SO ajusta número de threads de kernel
Biblioteca de Thread
APIs para criação e gerenciamento de threads.
Implementações
Em espaço de usuário
Em nível de kernel
Criação
Assíncrona
pai continua após criar filhos
Síncrona
pai espera todos os filhos terminarem
Principais Bibliotecas
POSIX PThreads
Windows Threads
Java Threads
NET (C#)
Questões Relacionadas
Banco de Threads (Thread Pool)
Threads pré-criadas aguardam trabalho
Cancelamento de Threads
Assíncrono
encerra imediatamente
Adiado
thread verifica se deve encerrar
Manipulação de Sinais
Vários modos de entregar sinais
Ativações do Escalonador
Usadas em modelos M:N
Baseadas em LWPs (processos leves)
Kernel informa biblioteca de threads sobre alocação via upcalls
Mapa Mental 04
SO 2025/2
Davi Campos Sutil