Slide 1 - Prof. Alessandro Fazenda

Propaganda
Alessandro D. R. Fazenda
http://www.alessandrofazenda.com.br

Processos
◦ Modelos de processos
◦ Início
◦ Término

Threads
◦ Modelos de threads
◦ Usos de 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.



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.



(a) Multiprogramação de quatro programas
(b) Modelo conceitual de 4 processos
seqüenciais independentes
(c) Um programa está ativo a cada momento

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).

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).

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.



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.

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


(a) Três processos cada um com uma thread
(b) Um processo com três threads

Processador de texto com 3 threads

Servidor de páginas de Internet
Alessandro D. R. Fazenda
http://www.alessandrofazenda.com.br
Download