1 / 18

Infra-Estrutura de Comunicação (IF678)

Infra-Estrutura de Comunicação (IF678). Davi Duarte Cynthia Raphaella Ivan França Jéssica Barbalho Larissa Paz Paulo Fernando. Aula Prática 03 – 2011.2. CIn/UFPE. Agenda: Programação Concorrente (Threads) Exercício Chat Exercício Selective Repeat.

rozene
Télécharger la présentation

Infra-Estrutura de Comunicação (IF678)

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Infra-Estrutura de Comunicação(IF678) Davi Duarte Cynthia Raphaella Ivan França Jéssica Barbalho Larissa Paz Paulo Fernando Aula Prática 03 – 2011.2 CIn/UFPE

  2. Agenda: • Programação Concorrente (Threads) • Exercício Chat • Exercício Selective Repeat

  3. Programação Concorrente: • O termo programação concorrente é usado no sentido abrangente, para designar a programação paralela e a programação distribuída

  4. Objetivos da Programação Concorrente • Reduzir o tempo total de processamento • múltiplos processadores • Aumentar confiabilidade e disponibilidade • processadores distribuídos • Obter especialização de serviços • sistemas operacionais • simuladores • Implementar aplicações distribuídas • correio eletrônico

  5. Programação Concorrente Fluxo único de execução Vários fluxos de execução tarefa 1 tarefa 1 tarefa 2 tarefa 3 tarefa 2 tarefa 3 cada fluxo possui uma pilha de execução

  6. Thread • Éuma forma de um processo dividir a si mesmo em duas ou mais tarefas que podem ser executadas concorrentemente.

  7. Estados de uma Thread • Criação: Neste estado, o processo pai está criando a thread que é levada a fila de prontos; • Execução: Neste estado a thread está usando a CPU; • Pronto: Neste estado a thread avisa a CPU que pode entrar no estado de execução e entra na fila de prontos; • Bloqueado: Neste estado, por algum motivo, a CPU bloqueia a thread, geralmente enquanto aguarda algum dispositivo de I/O; • Término: Neste estado são desativados o contexto de hardware e a pilha é desalocada. • Esperando e Finalizado.

  8. Estados de uma Thread

  9. Principais métodos em Java • start(): inicia a execução da thread (método run) • suspend(): suspende a execução da thread que está executando • sleep(): faz a thread que está executando dormir por um tempo determinado • yield(): faz a thread que está executando dormir por um tempo indeterminado • resume(): resume a execução de uma thread suspensa • stop(): termina a execução de uma thread; a thread não pode ser mais executada.

  10. Principais métodos em Java • join(): método que espera o término da THREAD para qual foi enviada a mensagem para ser liberada. • interrupt(): método que interrompe a execução de uma THREAD. • interrupted(): método que testa se uma THREAD está ou não interrompida.

  11. Exemplo de threads Em java publicclass Conta {//... publicdouble saldo = 0; void creditar(doublevc) { saldo = saldo+vc; } void debitar(doublevd) { if(saldo>vd){ saldo = saldo-vd; } } }

  12. Exemplo de threads Em java publicclass Credito extends Thread { private Conta conta; privatedoubleval; public Credito(Conta c,double v) { conta = c; val = v; } publicvoidrun() { conta.creditar(val); } }

  13. Exemplo de threads Em java publicclass Debito extends Thread { private Conta conta; privatedoubleval; public Debito(Conta c, double v) { conta = c; val = v; } publicvoidrun() { conta.debitar(val); } }

  14. Exemplo de threads Em java public class Teste { public static void main(String[] args) { Conta c = new Conta(); c.saldo=12; Thread a = new Credito(c, 23.0); Thread b = new Debito(c, 12.0); a.start(); b.start(); System.out.println(c.saldo); } }

  15. Chat Multiusuário • A descrição do projeto se encontra em: • http://cin.ufpe.br/~ilfn/Monitoria_Comunicacao/Aulas_Praticas/AulaPratica%203/especifica%e7%e3o_miniprojeto3.pdf As telas estão disponíveis em: • http://cin.ufpe.br/~ilfn/Monitoria_Comunicacao/Aulas_Praticas/Interface_Java.zip

  16. SelectiveRepeat • Implementar um Cliente-Servidor para a transferência de arquivos • Usando o Selective Repeat (SR) • Realizando transferências de um arquivo qualquer (texto/binário) • A implementação do protocolo SR deverá ser feita na camada de aplicação e o mesmo rodará sobre o protocolo UDP • O servidor deve aceitar apenas um cliente e uma transferência por vez

  17. Projetos • Tanto o Chat quanto o Selective Repeat devem ser feitos em grupos de até 3 pessoas. • Os grupos precisam ser definidos e postados na comunidade do Orkut até o dia 19/10. • A entrega deve ser feita até o dia 4/11. O monitor responsável será indicado na comunidade do Orkut após a definição das equipes.

  18. Referências • http://www.coinfo.cefetpb.edu.br/professor/petronio/POO/Material/threads.ppt

More Related