Processos e threads
-
Upload
alessandro-fazenda -
Category
Education
-
view
112 -
download
0
Transcript of Processos e threads
![Page 2: Processos e threads](https://reader031.fdocumentos.tips/reader031/viewer/2022021918/58a08b431a28aba73f8b563b/html5/thumbnails/2.jpg)
Processos◦ Modelos de processos◦ Início◦ Término
Threads◦ Modelos de threads◦ Usos de threads
Agenda
![Page 3: Processos e threads](https://reader031.fdocumentos.tips/reader031/viewer/2022021918/58a08b431a28aba73f8b563b/html5/thumbnails/3.jpg)
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](https://reader031.fdocumentos.tips/reader031/viewer/2022021918/58a08b431a28aba73f8b563b/html5/thumbnails/4.jpg)
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](https://reader031.fdocumentos.tips/reader031/viewer/2022021918/58a08b431a28aba73f8b563b/html5/thumbnails/5.jpg)
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](https://reader031.fdocumentos.tips/reader031/viewer/2022021918/58a08b431a28aba73f8b563b/html5/thumbnails/6.jpg)
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](https://reader031.fdocumentos.tips/reader031/viewer/2022021918/58a08b431a28aba73f8b563b/html5/thumbnails/7.jpg)
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](https://reader031.fdocumentos.tips/reader031/viewer/2022021918/58a08b431a28aba73f8b563b/html5/thumbnails/8.jpg)
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](https://reader031.fdocumentos.tips/reader031/viewer/2022021918/58a08b431a28aba73f8b563b/html5/thumbnails/9.jpg)
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](https://reader031.fdocumentos.tips/reader031/viewer/2022021918/58a08b431a28aba73f8b563b/html5/thumbnails/10.jpg)
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](https://reader031.fdocumentos.tips/reader031/viewer/2022021918/58a08b431a28aba73f8b563b/html5/thumbnails/11.jpg)
(a) Três processos cada um com uma thread (b) Um processo com três threads
Modelos de Threads
![Page 12: Processos e threads](https://reader031.fdocumentos.tips/reader031/viewer/2022021918/58a08b431a28aba73f8b563b/html5/thumbnails/12.jpg)
Modelos de Threads
![Page 13: Processos e threads](https://reader031.fdocumentos.tips/reader031/viewer/2022021918/58a08b431a28aba73f8b563b/html5/thumbnails/13.jpg)
Processador de texto com 3 threads
Usos de Threads
![Page 14: Processos e threads](https://reader031.fdocumentos.tips/reader031/viewer/2022021918/58a08b431a28aba73f8b563b/html5/thumbnails/14.jpg)
Servidor de páginas de Internet
Usos de Threads
![Page 15: Processos e threads](https://reader031.fdocumentos.tips/reader031/viewer/2022021918/58a08b431a28aba73f8b563b/html5/thumbnails/15.jpg)
Espaço para perguntas!
![Page 16: Processos e threads](https://reader031.fdocumentos.tips/reader031/viewer/2022021918/58a08b431a28aba73f8b563b/html5/thumbnails/16.jpg)
Obrigado pela atenção!