Threads
■
Sistemas Operacionais Tradicionais
Legenda:
■
Sistemas com Multithreading
processo thread Contador de programa
Programação Distribuída - Thais Batista - 2000
Threads
■
Processos que compartilham espaço de endereçamento:
P1 threads P11, P12 P2 thread P21 P3 threads P31, P32, P33
Programação Distribuída - Thais Batista - 2000
Threads
■
■
■
Threads dentro de um processo são escalonadas e executadas independentemente como se fossem processos diferentes Em Sistemas Multiprocessados diferentes threads podem executar em diferentes processadores Em Sistemas Monoprocessados threads devem ter sua execução intercalada
Programação Distribuída - Thais Batista - 2000
Threads X Processos
■
Threads
– threads dentro de um mesmo processo compartilham o mesmo espaço de endereçamento – comunicação entre threads de um mesmo processo: memória compartilhada
■
Processos:
– nada compartilham entre si. – tempo de chaveamento de contexto entre processos é alto – espaço de endereçamento protegido => comunicação entre processos: socket, pipes
Programação Distribuída - Thais Batista - 2000
Threads X Processos
Itens por Thread
Contador de Programa Pilha Registradores Threads Filhas Estado
Itens por Processo
Espaço de Endereçamento Arquivos abertos Signals Processos Filhos Estado
Cuidado: Aplicações Multithread são difíceis de projetar. É fácil para uma thread interferir no trabalho de outra pois elas compartilham memória e outros recursos do processo.
Programação Distribuída - Thais Batista - 2000
Necessidade de Threads
■
Permitir paralelismo dentro de um processo Programação Concorrente torna-se mais fácil Menor Tempo de Resposta
■
■
Programação Distribuída - Thais Batista - 2000
Benefícios de Threads
■
Throughput (capacidade de processamento)
– um sistema multithreaded pode aproveitar melhor a capacidade de processamento da máquina – ex.: uma thread espera