O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.

Programação de Sistemas Distribuídos - Aula 03

1.306 visualizações

Publicada em

Programação de Sistemas Distribuídos - Anhanguera
AULA 03 - PARADIGMAS DE COMUNICAÇÃO ENTRE PROCESSOS

Publicada em: Tecnologia
  • Seja o primeiro a comentar

Programação de Sistemas Distribuídos - Aula 03

  1. 1. ANHANGUERA – 2016.2 PROGRAMAÇÃO DE SISTEMAS DISTRIBUÍDOS AULA 03 – PARADIGMAS DE COMUNICAÇÃO ENTRE PROCESSOS Prof. Thomás da Costa thomascosta@aedu.com
  2. 2. PROGRAMAÇÃO DE SISTEMAS DISTRIBUÍDOS – Prof. Thomás da Costa PARADIGMAS DE COMUNICAÇÃO ENTRE PROCESSOS PARADIGMAS DE COMUNICAÇÃO ENTRE PROCESSOS
  3. 3. PROGRAMAÇÃO DE SISTEMAS DISTRIBUÍDOS – Prof. Thomás da Costa THREADS Threads Detalhes: • No desenvolvimento de software, precisamos muitas vezes efetuar operações paralelas. • Executando operações paralelas, nosso programa continua seu processamento natural enquanto espera a conclusão de outras atividades. • Os processos paralelos podem ser definidos como um fluxo de controle ativo dentro do nosso programa.
  4. 4. PROGRAMAÇÃO DE SISTEMAS DISTRIBUÍDOS – Prof. Thomás da Costa THREADS Threads Processo 1 Processo 2 Processo 3 Sem Threads Processo 1 Processo 2 Processo 3 Programa Principal Com Threads
  5. 5. PROGRAMAÇÃO DE SISTEMAS DISTRIBUÍDOS – Prof. Thomás da Costa Threads O que é?: THREADS É fluxo alternativo e ativo dentro do nosso programa que executa paralelamente com o software principal e outros fluxos. Possui um bloco de instruções ou comandos que serão executados.
  6. 6. PROGRAMAÇÃO DE SISTEMAS DISTRIBUÍDOS – Prof. Thomás da Costa Threads Detalhes: • Conhecido como multiprogramação. • Boa parte das aplicações desenvolvidas nos dias atuais, utiliza de threads para processamento de informações e melhoria de performance. • Tarefas podem ser paralelizadas em vários fluxos. • Tarefas podem ser distribuídas quando utilizamos threads. • Hoje grandes aplicações trabalham com threads, muitas delas distribuídas em computadores diferentes. • São compostas por instruções de comandos de uma linguagem. No nosso caso o Java. • Aproveitamos melhor os recursos de um sistema operacional. THREADS
  7. 7. PROGRAMAÇÃO DE SISTEMAS DISTRIBUÍDOS – Prof. Thomás da Costa Threads Detalhes: THREADS • São conhecidas como processos leves. • Como foi dito, fazem parte do programa principal ou processo tradicional. • Possuem prioridades. • Podem possuir um identificador. • Podemos iniciar, parar ou colocar uma thread em espera. • São gerenciadas pelo sistema operacional.
  8. 8. PROGRAMAÇÃO DE SISTEMAS DISTRIBUÍDOS – Prof. Thomás da Costa Threads Ciclo de Vida: THREADS Fonte: http://www3.ntu.edu.sg/home/ehchua/programming/java/j5e_multithreading.html
  9. 9. PROGRAMAÇÃO DE SISTEMAS DISTRIBUÍDOS – Prof. Thomás da Costa Threads Detalhes: THREADS • Threads ajudam no processo de escalonamento vertical de uma aplicação. • Em um sistema distribuído, existem vários programas em execução espalhados dentro de um cluster. • Cada unidade de execução de um programa possui mais de uma Thread em execução auxiliando na performance da aplicação como um todo.
  10. 10. PROGRAMAÇÃO DE SISTEMAS DISTRIBUÍDOS – Prof. Thomás da Costa • É a execução de um determinado programa dentro de um sistema operacional. • Processo possui uma identificação dentro do sistema operacional, normalmente um ID numérico. • Além disso, possui estado da pilha e da área de dados da execução do processo. • A grande diferença entre uma Thread e um processo é que a Thread é um subprocesso de um processo em execução. Processos Detalhes: PROCESSOS
  11. 11. PROGRAMAÇÃO DE SISTEMAS DISTRIBUÍDOS – Prof. Thomás da Costa PROCESSOS
  12. 12. PROGRAMAÇÃO DE SISTEMAS DISTRIBUÍDOS – Prof. Thomás da Costa PROCESSOS
  13. 13. PROGRAMAÇÃO DE SISTEMAS DISTRIBUÍDOS – Prof. Thomás da Costa • Em sistemas operacionais como Linux, Unix e macOS existem comandos próprios para trabalhar com um processo: • Listando os processos: • $ top • Identificando se um determinado processo está ativo: • $ ps –ef | grep java • Parando a execução de um processo: • $ kill 1899 • Forçando a parada de um processo: • $ kill -9 1899 Processos Detalhes: PROCESSOS
  14. 14. PROGRAMAÇÃO DE SISTEMAS DISTRIBUÍDOS – Prof. Thomás da Costa • São computadores que atendem requisições de um ou mais clientes para execução de uma determinada atividade. • Tipos de servidores: • Arquivos. • Impressão. • Web. • Este modelo é conhecido como Cliente/Servidor. Servidor Detalhes: SERVIDOR
  15. 15. PROGRAMAÇÃO DE SISTEMAS DISTRIBUÍDOS – Prof. Thomás da Costa Servidor Web Detalhes: SERVIDOR WEB • Hospedam sites e aplicações Web. • São acessados normalmente por clientes que possuem navegadores Web. • É baseado no protocolo HTTP. • Toda requisição Web de uma página possui um tipo. • As requisições são: • POST • GET • PUT • DELETE
  16. 16. PROGRAMAÇÃO DE SISTEMAS DISTRIBUÍDOS – Prof. Thomás da Costa SERVIDORES WEB
  17. 17. PROGRAMAÇÃO DE SISTEMAS DISTRIBUÍDOS – Prof. Thomás da Costa SERVIDORES WEB
  18. 18. PROGRAMAÇÃO DE SISTEMAS DISTRIBUÍDOS – Prof. Thomás da Costa Load Balancer Detalhes: LOAD BALANCER • É um hardware ou um software que tem como principal objetivo balancear e distribuir as requisições dentro de um sistema distribuído. • O load balancer identifica qual das máquinas dentro de um cluster possui mais disponibilidade e encaminha a requisição para a máquina selecionada. • Muito utilizado para balancear requisições dentro de um servidor web e distribui-las de acordo com o processamento de cada aplicação instalada nos servidores.
  19. 19. PROGRAMAÇÃO DE SISTEMAS DISTRIBUÍDOS – Prof. Thomás da Costa Sockets Detalhes: SOCKETS • É uma comunicação feita de um cliente para um servidor utilizado o protocolo TCP/IP. • O programa cliente se comunica com o servidor a partir de um endereço e uma porta especifica. • Podemos rodar vários programas dentro de um mesmo computador utilizando várias portas diferentes. • Em sistemas distribuídos, computadores se comunicam através de socket para identificar status do cluster e distribuir processos.
  20. 20. PROGRAMAÇÃO DE SISTEMAS DISTRIBUÍDOS – Prof. Thomás da Costa SOCKETS SOCKETS
  21. 21. PROGRAMAÇÃO DE SISTEMAS DISTRIBUÍDOS – Prof. Thomás da Costa Migração de Processos Detalhes: MIGRAÇÃO DE PROCESSOS • Tem como principal objetivo migrar um determinado processo ou um código para uma outra unidade de processamento. • Isso é base para o escalonamento de processos dentro um sistema distribuído. • A migração acontece para utilizar recurso de um outro computador com o objetivo de melhorar a performance. • O sistema leva em consideração CPU, memória e os recursos utilizados para efetuar a migração. • Algumas aplicações distribuídas em Java, os processos estão serializados para que possam ser migrados de um recurso computacional para outro. • Em outras situações, a aplicação cria JVM’s separadas do processo principal para efetuar a migração de uma forma mais simples.
  22. 22. PROGRAMAÇÃO DE SISTEMAS DISTRIBUÍDOS – Prof. Thomás da Costa Resumo • Threads são fluxo alternativos dentro de um programa. • Processo é a execução de um programa dentro de um sistema operacional. • Servidores tem como principal objetivo atender requisições de um cliente para processar algum tipo de informação. • Aplicações Web rodam em Servidores Web. • Em um site Web podemos ter 4 tipos de requisições: GET, POST, PUT e DELETE. INTRODUÇÃO
  23. 23. Obrigado !!! ANHANGUERA – 2016.2

×