prof. pedro luís antonelli anhanguera...

19
Sistemas Operacionais Prof. Pedro Luís Antonelli Anhanguera Educacional

Upload: ngonhu

Post on 15-Feb-2019

222 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Prof. Pedro Luís Antonelli Anhanguera Educacionalwalderson.com/site/wp-content/uploads/2014/05/Aula07-Processos-e...THREAD •Programa? –Sequência de instruções, composta por

Sistemas Operacionais

Prof. Pedro Luís Antonelli Anhanguera Educacional

Page 2: Prof. Pedro Luís Antonelli Anhanguera Educacionalwalderson.com/site/wp-content/uploads/2014/05/Aula07-Processos-e...THREAD •Programa? –Sequência de instruções, composta por

THREAD

O que é um thread?

Page 3: Prof. Pedro Luís Antonelli Anhanguera Educacionalwalderson.com/site/wp-content/uploads/2014/05/Aula07-Processos-e...THREAD •Programa? –Sequência de instruções, composta por

THREAD

O que é um thread?

Definição: um thread é um fluxo único de controle sequencial dentro de um programa.

Page 4: Prof. Pedro Luís Antonelli Anhanguera Educacionalwalderson.com/site/wp-content/uploads/2014/05/Aula07-Processos-e...THREAD •Programa? –Sequência de instruções, composta por

INTRODUÇÃO

• Um thread não é um programa, mas é executado em um programa.

Page 5: Prof. Pedro Luís Antonelli Anhanguera Educacionalwalderson.com/site/wp-content/uploads/2014/05/Aula07-Processos-e...THREAD •Programa? –Sequência de instruções, composta por

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.

Page 6: Prof. Pedro Luís Antonelli Anhanguera Educacionalwalderson.com/site/wp-content/uploads/2014/05/Aula07-Processos-e...THREAD •Programa? –Sequência de instruções, composta por

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.

Page 7: Prof. Pedro Luís Antonelli Anhanguera Educacionalwalderson.com/site/wp-content/uploads/2014/05/Aula07-Processos-e...THREAD •Programa? –Sequência de instruções, composta por

PROCESSO x THREAD

Page 8: Prof. Pedro Luís Antonelli Anhanguera Educacionalwalderson.com/site/wp-content/uploads/2014/05/Aula07-Processos-e...THREAD •Programa? –Sequência de instruções, composta por

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.

Page 9: Prof. Pedro Luís Antonelli Anhanguera Educacionalwalderson.com/site/wp-content/uploads/2014/05/Aula07-Processos-e...THREAD •Programa? –Sequência de instruções, composta por

AMBIENTE MONOTHREAD

MACHADO, fig.6.2, pag 90 – Ambiente monothread

Page 10: Prof. Pedro Luís Antonelli Anhanguera Educacionalwalderson.com/site/wp-content/uploads/2014/05/Aula07-Processos-e...THREAD •Programa? –Sequência de instruções, composta por

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.

Page 11: Prof. Pedro Luís Antonelli Anhanguera Educacionalwalderson.com/site/wp-content/uploads/2014/05/Aula07-Processos-e...THREAD •Programa? –Sequência de instruções, composta por

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.

Page 12: Prof. Pedro Luís Antonelli Anhanguera Educacionalwalderson.com/site/wp-content/uploads/2014/05/Aula07-Processos-e...THREAD •Programa? –Sequência de instruções, composta por

AMBIENTE MULTITHREAD

MACHADO, fig.6.3, pag 90 – Ambiente multithread

Page 13: Prof. Pedro Luís Antonelli Anhanguera Educacionalwalderson.com/site/wp-content/uploads/2014/05/Aula07-Processos-e...THREAD •Programa? –Sequência de instruções, composta por

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.

Page 14: Prof. Pedro Luís Antonelli Anhanguera Educacionalwalderson.com/site/wp-content/uploads/2014/05/Aula07-Processos-e...THREAD •Programa? –Sequência de instruções, composta por

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.

Page 15: Prof. Pedro Luís Antonelli Anhanguera Educacionalwalderson.com/site/wp-content/uploads/2014/05/Aula07-Processos-e...THREAD •Programa? –Sequência de instruções, composta por
Page 16: Prof. Pedro Luís Antonelli Anhanguera Educacionalwalderson.com/site/wp-content/uploads/2014/05/Aula07-Processos-e...THREAD •Programa? –Sequência de instruções, composta por

• (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

Page 17: Prof. Pedro Luís Antonelli Anhanguera Educacionalwalderson.com/site/wp-content/uploads/2014/05/Aula07-Processos-e...THREAD •Programa? –Sequência de instruções, composta por

• Em ambientes cliente/servidor os Threads são essenciais para solicitação de serviços remotos.

Page 18: Prof. Pedro Luís Antonelli Anhanguera Educacionalwalderson.com/site/wp-content/uploads/2014/05/Aula07-Processos-e...THREAD •Programa? –Sequência de instruções, composta por

EXEMPLO DE USO DE THREAD

• Servidor Web com múltiplos Threads

TANENBAUM, fig.2.10, pag 65 – Um servidor Web multithread

Page 19: Prof. Pedro Luís Antonelli Anhanguera Educacionalwalderson.com/site/wp-content/uploads/2014/05/Aula07-Processos-e...THREAD •Programa? –Sequência de instruções, composta por

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.