Alessandro D. R. Fazenda
adrfazenda@gmail.com
 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
adrfazenda@gmail.com

Processos e threads

  • 1.
    Alessandro D. R.Fazenda adrfazenda@gmail.com
  • 2.
     Processos ◦ Modelosde processos ◦ Início ◦ Término  Threads ◦ Modelos de threads ◦ Usos de threads
  • 3.
     Processos sãosoftwares 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.
  • 4.
     Todo oprocesso é 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.
  • 5.
     (a) Multiprogramaçãode quatro programas  (b) Modelo conceitual de 4 processos seqüenciais independentes  (c) Um programa está ativo a cada momento
  • 6.
     Eventos quelevam 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).
  • 7.
     Condições quelevam 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).
  • 8.
     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.
  • 9.
     Cada threadtem 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.
  • 10.
     Programação comThreads é 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
  • 11.
     (a) Trêsprocessos cada um com uma thread  (b) Um processo com três threads
  • 13.
     Processador detexto com 3 threads
  • 14.
     Servidor depáginas de Internet
  • 17.
    Alessandro D. R.Fazenda adrfazenda@gmail.com