GUSTAVO ALVES ANTONELLI Análise de Métodos de Secagem de ...
Prof. Pedro Luís Antonelli Anhanguera...
Transcript of Prof. Pedro Luís Antonelli Anhanguera...
Sistemas Operacionais
Prof. Pedro Luís Antonelli Anhanguera Educacional
THREAD
O que é um thread?
THREAD
O que é um thread?
Definição: um thread é um fluxo único de controle sequencial dentro de um programa.
INTRODUÇÃO
• Um thread não é um programa, mas é executado em um programa.
THREAD
• Programa?
– Sequência de instruções, composta por desvios, repetições e chamadas a procedimentos e funções;
– Um processo suporta apenas um programa em seu espaço de endereçamento;
• Para programas "normais" (single thread), tem um único ponto de execução dentro do programa num momento particular.
THREAD • Um thread é semelhante a um “programa normal ”, tem
um início, uma sequência e um fim.
• Um thread parece ser um processo mas compartilha o mesmo "espaço de endereçamento“ do processo “principal” e tem um único ponto de execução num certo momento.
PROCESSO x THREAD
AMBIENTE MONOTHREAD
• Em aplicações MonoThreads para se conseguir concorrência temos:
– Múltiplos processos independentes ou subprocessos;
– Processos concorrentes demandam consumo de recursos do sistema;
– Problemas no compartilhamento do espaço de endereçamento.
AMBIENTE MONOTHREAD
MACHADO, fig.6.2, pag 90 – Ambiente monothread
AMBIENTE MONOTHREAD
– Para resolver o problema de compartilhamento do espaço de endereçamento podemos utilizar algumas técnicas:
- Pipes;
- Sinais;
- Semáforos;
- Memória compartilhada;
- Troca de mensagens.
AMBIENTE MULTITHREAD
• Não existe programas associados a processos, existem Threads.
• Cada processo tem pelo menos um Thread.
• A Thread compartilha seu espaço de endereçamento com o processo principal.
AMBIENTE MULTITHREAD
MACHADO, fig.6.3, pag 90 – Ambiente multithread
AMBIENTE MULTITHREAD
• Vantagens:
– Possibilidade de minimizar a alocação de recursos do sistema;
– Diminuir o overhead na criação, troca e eliminação de processos;
– O tempo para a troca de execução de um Thread é menor do que um processo.
AMBIENTE MULTITHREAD • Desvantagem:
- Quando várias threads acessam o mesmo recurso, como campos estáticos, temos que tomar cuidado para que garantir que duas ou mais threads não acessem ao mesmo tempo determinado recurso, corrompendo os dados;
- O responsabilidade do programador aumenta com o aumento das Threads.
• (a) Três processos. Cada um com um Thread
• (b) Um Processo com três Threads
TENENBAUM, fig.2.6, pag 61 – Três processos, cada um com um thread e um processo com três threads
• Em ambientes cliente/servidor os Threads são essenciais para solicitação de serviços remotos.
EXEMPLO DE USO DE THREAD
• Servidor Web com múltiplos Threads
TANENBAUM, fig.2.10, pag 65 – Um servidor Web multithread
BIBLIOGRAFIA
• MACHADO, F. B. & MAIA, L. P., Arquitetura de Sistemas Operacionais, 4 Edição, São Paulo, LTC, 2007.
• TANENBAUM, A. S. Sistemas Operacionais Modernos: 2ª edição, São Paulo, editora Prentice Hall, 2003.
• SILBERSCHATZ, A. Sistemas Operacionais – Conceitos: São Paulo, editora LTC, 2004.