Please enable JavaScript.
Coggle requires JavaScript to display documents.
THREADS - Coggle Diagram
THREADS
Biblioteca de Threads
Assíncrona X Síncrona
Assíncrona
Pai e filho são executados ao mesmo tempo
Síncrona
Todos os filhos tem que terminar a execução para o pai ser executado
POSIX pthreads
Java Threads
Windows Threads(Windows API)
Programação MultiCore
Desafios da Programação MultiCore
Divisão de dados
Identificação de tarefas e divisão de atividades
Tarefas independentes
Teste e depuração(debug)
Diferentes caminhos de execução
Equilíbrio
TaskParellelism
Distribuem-se tarefas a múltiplos núcleos
Dependência de dados
Determinar dependências entre tarefas
Data Parallelism
Múltiplos núcleos executam subconjunto de uma mesma tarefa
Paralelismo real
Mais de uma tarefa executada ao mesmo tempo
Concorrência
Da suporte a mais de uma tarefa
Podem ocorrer concomitantemente
Pode ocorrer sem Paralelismo
Visão Geral
Benefiícios
Economia
Utilização de arquiteturas multiprocessadas
Compartilhamento de recursos
Responsividade
Thread
Miniprocessos
Fluxo de Execução
Individual
ID da thread
Compartilhado
Seção de código
Motivação
Navegador web, processador de texto
Processo separado + threads de controle
Modelos de geração de MultiThreads
Threads de Usuário
Gerenciamento pela biblioteca de threads
Modelos de Relacionamento
N:1
Inapropriado pra multicore
1:1
Melhor aproveita o desempenho do Multicore(mais usada e custosa)
M:N
Número suficiente de threads no kernel são criados
Threads do Kernel
Admitidas diretamente pelo Kernel
Criação de Threads
Ativação de escalonador
Processo Leve(LWP)
Cancelamento de Threads
Banco de threads
Pool de threads esperando trabalho
Manipulação de Sinais
Sinaliza um evento particular
encerra-ló antes de ter acabado