Mind map
Threads
Map content
Threads
Unidade básica de utilização da CPU
- Individual
- ID de thread
- Contador do programa
- Registradores
- Pilha
- Compartilhado
- Seção de código
- Seção de dados
- Outros recursos de SO
- Individual
Aplicações modernas utilizam processos separados + várias threads de controle
- Benefícios
- Responsividade
- Compartilhamento de recursos
- Economia
- Utilização de arquiteturas multiprocessadas
- Benefícios
Programação multicore
- Permite paralelismo real
- Paralelismo
- Pode executar mais de uma tarefa simultaneamente
- Concorrência
- Dá suporte a mais de uma tarefa, porém alterna rapidamente entre elas dando a impressão que está rodando ao mesmo tempo
- SO e programas adaptados ao multicore
- Desafios na programação multicore
- Identificação de tarefas e divisão das atividades
- Equilíbrio
- Divisão de dados
- Dependência de dados
- Debug
Tipos de paralelismo
- Paralelismo de Dados
- Divide dado para múltiplos núcleos e executa a mesma operação em cada um deles
- Paralelismo de Tarefas
- Manda tarefas pra múltiplos núcleos. Essas tarefas são diferentes e pode mexer me um mesmo conjunto de dados
- Paralelismo de Dados
Tipos de threads
- Threads de usuário
- Gerenciamento de thread feito pela biblioteca de threads em nível de usuário
- Threads de kernel
- Threads admitidos diretamente pelo kernel
- Modelo de relacionamentos entre thread de usuário e kernel
- Muitos pra um (N:1)
- Muitos threads em nível de usuário vão pra única thread do kernel
- Impróprio pra sistemas multiprocessadores
- Se uma fizer chamada bloqueante, processo inteiro para
- Muitos threads em nível de usuário vão pra única thread do kernel
- Uma pra um (1:1)
- Cada thread de usuário vai pra uma thread kernel
- É custoso criar muitas threads de kernel
- Cada thread de usuário vai pra uma thread kernel
- Muitos pra muitos (N:N)
- Muitos threads de usuário vão pra muitos threads de kernel
- Muitos pra um (N:1)
- Threads de usuário
Biblioteca de threads
- Fornecem ao programador uma API para a criação e o gerenciamento de threads
- Assíncrona
- Quando o pai cria uma thread-filho, o pai volta sua execução para que ele e seu filho sejam executados concorrentemente
- Síncrona
- O thread-pai cria um ou mais filhos e espera até todos os seus filhos terminem para ele voltar a ser executado
- Assíncrona
- Fornecem ao programador uma API para a criação e o gerenciamento de threads
Questões
- Pool de threads
- Criam uma série de threads em um pool onde esperam trabalho
- Cancelamento de Threads
- Terminando um thread antes que ele tenha terminado
- Manipulação de sinais
- Sinais são usados em sistemas UNIX para notificar um processo de que ocorreu um evento
- Ativações do escalonador
- Os modelos M:N e de dois níveis exigem comunicação para manter o número apropriado de threads de kernel
- Pool de threads
Information
- Description
- Mind Map on Threads, created by Fabio Henrique on 25/09/2022.
- Created by
- Fabio Henrique · Sep 2022
- Updated
- Sep 25, 2022
- Views
- 0
- Rating