Chapter 4: Threads. - ppt carregar
PublicouGabrielly Paniagua Alterado mais de 6 anos atrás
Apresentação em tema: "Chapter 4: Threads."— Transcrição da apresentação:
2 Motivação Threads são processos leves
3 Motivação A criação de processos é muito custosa
4 Processos mono e multithreads
5 Benefícios Melhora o tempo de resposta
6 Programação com múltiplos cores
7 Arquitetura de Servidor Multithreaded
8 Execução concorrente em um sistema com único core
9 Execução paralela em um sistema multicore
10 Threads de usuários Gerenciamento de threads feito por bibliotecas em nível de usuário Não depende de chamadas ao sistema para criar o thread ou para mudar o contexto entre threads O bloqueio de um thread leva ao bloqueio de todo o processo A troca de contextos entre threads é feita mediante cooperação
11 O bloqueio de um thread não leva ao bloqueio de todo o processo
Threads de kernel Gerenciamento de threads feito pelo kernel Depende de chamadas ao sistema para criar o thread ou para mudar o contexto O bloqueio de um thread não leva ao bloqueio de todo o processo A troca de contextos entre threads é feita mediante cooperação e preempção
12 Modelos multithreads Muitos para um Um para um Muitos para muitos
13 Muitos para um Diversos threads de usuário mapeados em um único thread de kernel
14 Um para um Cada thread de usuário mapeado em um thread de kernel
15 Modelo muitos para muitos
Permite que muitos threads de usuário sejam mapeados em muitos threads de kernel Sistema operacional pode criar um número suficiente de threads de kernel
16 Bibliotecas de threads
Bibliotecas de thread dão ao programador uma interface para criar e gerenciar threads Duas formas iniciais de implementação Biblioteca inteiramente em espaço de usuário Biblioteca em nível de kernel suportada pelo sistema operacional
17 Pthreads Biblioteca de threads que pode ser provida tanto em nível de kernel como em nível de usuário Interface especificada pelo padrão POSIX (IEEE c) para criação e sincronização de threads Define apenas a interface. A implementação fica a cargo da biblioteca Amplamente utilizada em sistemas operacionais UNIX (Solaris, Linux, Mac OS X)
18 Algumas questões de threads….
O fork() duplica apenas o thread que o chama ou todos os threads do processo? Depende da implementação Cancelamento de threads Terminar um thread, chamado de thread alvo, antes que ele chegue ao fim Ex: Vários threads de busca em paralelo. Quando um thread encontra o dado, os outros podem ser finalizados.
19 Algumas questões de threads….
Tipos Cancelamento assíncrono – Thread alvo encerrado imediatamente Cancelamento adiado – Thread alvo espera até um momento oportuno para ser finalizado Possibilidade de liberar todos os recursos adequadamente Sistema operacional libera apenas os recursos do sistema automaticamente Thread é terminada apenas após liberar os demais recursos alocados Ponto do programa especificado por uma flag
20 Algumas questões de threads….
Tratamento de sinais Sinais são usados no sistema UNIX para notificar um processo que um evento ocorreu Sinais devem ser entregues a processos Mas se existem vários threads, para qual enviar? Opções Descobrir para qual thread o sinal é direcionado Enviar o sinal para todos os threads Enviar o sinal para um conjunto de threads Criar um thread específico para receber sinais e notificar aos outros threads
21 Algumas questões de threads….
Conjuntos de threads Pré-criação de um conjunto de threads prontos para serem usados Vantagens Mais rápido usar um thread pronto do que criar um novo thread Garante que a aplicação não tentará criar threads em demasia, exaurindo os recursos do sistema operacional