Processos e threads

17
PROCESSOS E THREADS Alessandro D. R. Fazenda [email protected]

Transcript of Processos e threads

Page 1: Processos e threads

PROCESSOS E THREADS

Alessandro D. R. [email protected]

Page 2: Processos e threads

Processos◦ Modelos de processos◦ Início◦ Término

Threads◦ Modelos de threads◦ Usos de threads

Agenda

Page 3: Processos e threads

Processos são softwares que executam alguma ação e que podem ser controlados de alguma maneira, seja pelo usuário, pelo aplicativo correspondente ou pelo sistema operacional.

É constituído por uma seqüência de instruções, um conjunto de dados e um registro descritor.

Processos

Page 4: Processos e threads

Todo o processo é criado por um processo existente executando uma chamada ao sistema de criação de processo;

Tanto no Windows como no Unix, depois de um processo filho criado, o pai e o filho têm seus próprios e distintos espaços de endereçamento de memória;

É possível o compartilhamento de recursos entre o pai e o filho.

Processos

Page 5: Processos e threads

Modelos de Processos

(a) Multiprogramação de quatro programas (b) Modelo conceitual de 4 processos

seqüenciais independentes (c) Um programa está ativo a cada momento

Page 6: Processos e threads

Eventos que levam a criação de processos:◦ Início do sistema.◦ Execução de chamada de criação de processo por

um processo em execução.◦ Requisição do usuário para criar um novo

processo.◦ Início de uma tarefa em lote (batch job).

Início de Processos

Page 7: Processos e threads

Condições que levam ao término dos processos:◦ Saída normal (voluntária).◦ Saída por erro (voluntária).◦ Erro fatal (involuntário).◦ Cancelamento por outro processo (involuntário).

Término de Processos

Page 8: Processos e threads

Thread é um fluxo de execução dentro do processo. Multithread é uma forma de um processo dividir a si mesmo em duas ou mais tarefas que podem ser executadas concorrentemente.◦ Existe dentro de um processo e usa os recursos do

processo◦ Tem o seu próprio fluxo de controle independente

enquanto existir o processo pai e o SO dá suporte a ele◦ Pode compartilhar os recursos do processo com outros

threads igualmente independentes◦ Morre se o seu processo pai morrer.

Threads

Page 9: Processos e threads

Cada thread tem seu próprio controle, mas compartilha o mesmo espaço de endereçamento do processo em que foi criada.

Se duas threads executam o mesmo procedimento/método, cada uma terá a sua própria cópia das variáveis locais.

As threads podem acessar todas os dados globais do programa.

Threads

Page 10: Processos e threads

Programação com Threads é mais complexa que a programação seqüencial, pois o programador:◦ não sabe em que ordem as threads irão executar◦ mas precisa controlar o acesso concorrente a

variáveis e/ou estruturas de dado compartilhadas

Threads

Page 11: Processos e threads

(a) Três processos cada um com uma thread (b) Um processo com três threads

Modelos de Threads

Page 12: Processos e threads

Modelos de Threads

Page 13: Processos e threads

Processador de texto com 3 threads

Usos de Threads

Page 14: Processos e threads

Servidor de páginas de Internet

Usos de Threads

Page 15: Processos e threads

Espaço para perguntas!

Page 16: Processos e threads

Obrigado pela atenção!

Page 17: Processos e threads

PROCESSOS E THREADS

Alessandro D. R. [email protected]