Please enable JavaScript.
Coggle requires JavaScript to display documents.
Threads - Coggle Diagram
Threads
Visão Geral
Compartilhado
seção de dados
arquivos abertos
seção de código
sinais
Individual
contador de programa
conjunto de registradores
ID de thread
uma pilha
Beneficios
Responsividade
Compartilhamento de recursos
Economia
Utilização de arquiteturas
multiprocessadas
Motivação
Processo separado
várias threads de controle
Questões Relacionadas com a Criação de Threads
Criam uma série de threads em um pool onde esperam trabalho
Vantagens
Rápido atender uma solicitação com um thread existente
Limita (controla) o número de threads existentes a qualquer momento
Cancelamento de Threads
técnicas gerais
assíncrono
o termina o thread de
destino imediatamente
adiado
thread de destino verifica periodicamente
se ele deve ser cancelado
Manipulação de Sinais
notifica um processo de que
ocorreu um evento em particular
Ativações do escalonador
mantem o número correto de threads
do kernel alocados à aplicação
Programação Multicore
Paralelismo
Sistema executa mais de uma tarefa simultaneamente
Tipos
de Dados
de Tarefas
Concorrência
O sistema dá suporte a mais de uma tarefa
CPU alterna rapidamente
entre os processos
Desafios
Equilíbrio
Divisão de dados
Identificação de tarefas e divisão das atividades
Dependência de dados
Teste e depuração (debug)
Modelos de Geração de Multithreads
Threads do usuário
gerenciamento feito em
nível de usuário
Threads do kernel
Threads admitidos diretamente pelo kernel
Modelos de relacionamentos
Muitos para Um
Bloqueado se uma thread
fizer uma chamada bloqueante
somente uma thread pode
acessar o kernel por vez
Várias threads de usuário
para uma de kernel
Um para Um
Uma thread de usuário mapeado para thread de kernel.
Maior concorrência e uso de MP
Cria muitas threads de kernel
Muitos para Muitos
muitas threads de usuário
mapeadospara muitas
threads de kernel
SO cria número suficiente
de threads de kernel
Bibliotecas de Threads
uma API para a criação e o gerenciamento de threads
Formas de implementação
inteiramente no espaço de
usuário
sem suporte do kernel
Código e estruturas de dados em modo usuário
nível de kernel
suporte direto do SO
Código e estruturas de dados no espaço de kernel
Criação de Threads
Assíncrona
pai retoma sua execução
para que ele e seu filho sejam
executados concorrentemente.
Threads executam independente
compartilhamento de dados
Síncrona
Pai cria 1 ou mais filhos
Espera que seus filhos terminem
para voltar a execução