Академический Документы
Профессиональный Документы
Культура Документы
Threads
Antigamente os SO suportavam apenas processos com um nico thread (monothread); Um processo pode ter partes diferentes do seu cdigo sendo executadas em paralelo; Menor overhead do que utilizar mltiplos processos; Threads de um mesmo processo compartilham o mesmo espao de endereamento;
Threads
Profa. Msc. Patrcia Vasconcelos
1 1 1 1 1
Threads
A comunicao entre threads no envolve mecanismos lentos de intercomunicao entre processos (maior desempenho); Implementao multithread no simples; O paralelismo introduz um novo conjunto de problemas como a comunicao e sincronizao de threads;
Ambiente Monothread
Um processo suporta apenas um programa no seu espao de endereamento; A utilizao de processos independentes e subprocessos permite dividir uma aplicao em partes que podem trabalhar de forma concorrente;
Gerenciamento de emails;
Threads
Ambiente Monothread
Demanda consumo de diversos recursos do sistema; Sempre que um processo criado: Alocar recursos para cada processo; Consumindo tempo de processador; Trmino do processo: Dispensa tempo para desalocar recursos previamente alocados; Comunicao Difcil e lenta; Utiliza pipes, sinais, semforos, etc; Exemplo: DOS, primeiras verses do windows, verses antigas do UNIX;
O Modelo de Thread
(a) Trs processos cada um com um thread (b) Um processo com trs threads
O Modelo de Thread
O Modelo de Thread
Items compartilhados por todos os threads em um processo Itens privativos de cada thread
7 8
Uso de Thread
Uso de Thread
10
Ambiente Multithread
No existe a idia de programas associados a processos, mas a threads; Processo tem pelo menos um thread de execuo, e pode compartilhar seu espao de endereamento com inmeros outros; Thread pode ser uma sub-rotina de um programa que pode ser executada de forma assncrona (paralelamente ao programa chamador); Este ambiente possibilita a execuo concorrente de subrotinas dentro de um mesmo processo;
11
Ambiente Multithread
Possibilidade de minimizar a alocao de recursos do sistema; Diminui o overhead na criao, troca e eliminao de processos; Threads compartilham o processador da mesma maneira que processos, e passam pelas mesmas mudanas de estado; Quando um thread espera por uma operao de E/S, outro thread pode ser executado; Cada thread possui seu prprio contexto de hardware para permitir a troca de contexto; Quando um thread est sendo executado, seu contexto de hardware est armazenado nos registradores do processador; Quando perde a UCP, as informaes so atualizadas no seu contexto de hardware;
12
Ambiente Multithread
Dentro de um mesmo processo:
Threads compartilham o mesmo contexto de software e espao de endereamento; Cada thread tem o seu prprio contexto de hardware; Estrutura de Thread:
Ambiente Multithread
Programas concorrentes multithreads so mais rpidos do que programas concorrentes implementados com mltiplos processos;
Operaes de criao, troca de contexto e eliminao de threads geram menor overhead;
13
14
Ambiente Multithread
Ambiente Multithread
15
16
Ambiente Multithread
Threads so essenciais para solicitao de servios remotos;
Um thread pode solicitar um servio remoto, enquanto a aplicao continua realizando outras atividades; Permite que diversos pedidos sejam atendidos simultaneamente;
Ambiente Multithread
17
18
20
21
22
Implementaes Hbridas
24