Please enable JavaScript.
Coggle requires JavaScript to display documents.
Threads - Coggle Diagram
Threads
Bibliotecas de Threads
API - criação e gerencia threads
Implementação
Nível de kernel
Espaço de usuário
Sincronismo
Assíncrona
Pai e filho concorrentemente
Síncrona
Espera de filhos
APIs nativas SO ou linguagem de programação
Da linguagem é fácil - abstrai
Bibliotecas atuais
POSIX Pthreads
Windows API
Java threads
Programação Multicore
Tendência moderna - múltiplos cores
Paralelismo real
Paralelismo
Concorrência
Alternação mega rápido
Desafios
Equilíbrio
Divisão atividades
Divisão dados
Dependência dados
Sincronização tarefas
Teste e depuração
Programas adaptados
Tipos paralelismo
Dados (subconjuntos)
Tarefas (tarefas)
Criação de Threads
Pool de threads
Sem criação / acorda!
Controle concorrência
Cancelamento threads
Término antecipado
Assíncrono
Adiado
Cancellation points
Manipulação sinais
Notificação de evento a processo
Em sistema UNIX ou APCs
Ativações do escalonador
Threads e kernels alocados
LWP
Upcalls
Processador virtual
Ligado a 1 thread do kernel
SO escalona threads kernel
Visão Geral
Thread
CPU
Individual
Compartilhado (threads mesmo processo)
Miniprocessos
Motivação
Processo separado
Threads de Controle
Navegador Web
Processador de texto
Benefícios
Responsividade
Compartilhamento Recursos
Memória
Recursos pai
Economia
Comparado a processos
Arquiteturas Multiprocessadas
CPUs paralelos
Modelos Geração Multithreads
Threads do usuário
Gerência da biblioteca
Threads do kernel / Moderno!
Gerência do kernel
Modelos relacionamentos
N:1
Impróprios multiprocessadores
Eficiente / pode bloquear
1:1
Linux / Windows
Criação custoso
Maior concorrência
M:N
Número suficiente threads
Jessica Nogueira Duque
Mapa Mental 4
SO 01/2024