infra-estrutura de comunicação (if678) aula prática 03 – 2011.2 cin/ufpe davi duarte cynthia...
TRANSCRIPT
![Page 1: Infra-Estrutura de Comunicação (IF678) Aula Prática 03 – 2011.2 CIn/UFPE Davi Duarte Cynthia Raphaella Ivan França Jéssica Barbalho Larissa Paz Paulo Fernando](https://reader036.vdocuments.pub/reader036/viewer/2022081517/570638631a28abb82390143b/html5/thumbnails/1.jpg)
Infra-Estrutura de Comunicação(IF678)
Aula Prática 03 – 2011.2
CIn/UFPE
Davi DuarteCynthia Raphaella
Ivan FrançaJéssica Barbalho
Larissa Paz Paulo Fernando
![Page 2: Infra-Estrutura de Comunicação (IF678) Aula Prática 03 – 2011.2 CIn/UFPE Davi Duarte Cynthia Raphaella Ivan França Jéssica Barbalho Larissa Paz Paulo Fernando](https://reader036.vdocuments.pub/reader036/viewer/2022081517/570638631a28abb82390143b/html5/thumbnails/2.jpg)
2
Agenda:
Programação Concorrente (Threads) Exercício Chat Exercício Selective Repeat
![Page 3: Infra-Estrutura de Comunicação (IF678) Aula Prática 03 – 2011.2 CIn/UFPE Davi Duarte Cynthia Raphaella Ivan França Jéssica Barbalho Larissa Paz Paulo Fernando](https://reader036.vdocuments.pub/reader036/viewer/2022081517/570638631a28abb82390143b/html5/thumbnails/3.jpg)
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
![Page 4: Infra-Estrutura de Comunicação (IF678) Aula Prática 03 – 2011.2 CIn/UFPE Davi Duarte Cynthia Raphaella Ivan França Jéssica Barbalho Larissa Paz Paulo Fernando](https://reader036.vdocuments.pub/reader036/viewer/2022081517/570638631a28abb82390143b/html5/thumbnails/4.jpg)
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
![Page 5: Infra-Estrutura de Comunicação (IF678) Aula Prática 03 – 2011.2 CIn/UFPE Davi Duarte Cynthia Raphaella Ivan França Jéssica Barbalho Larissa Paz Paulo Fernando](https://reader036.vdocuments.pub/reader036/viewer/2022081517/570638631a28abb82390143b/html5/thumbnails/5.jpg)
5
Programação ConcorrenteVários fluxos de execuçãoFluxo único de execução
tarefa 1
tarefa 2
tarefa 3
tarefa 1 tarefa 2 tarefa 3
cada fluxo possui uma pilha de execução
![Page 6: Infra-Estrutura de Comunicação (IF678) Aula Prática 03 – 2011.2 CIn/UFPE Davi Duarte Cynthia Raphaella Ivan França Jéssica Barbalho Larissa Paz Paulo Fernando](https://reader036.vdocuments.pub/reader036/viewer/2022081517/570638631a28abb82390143b/html5/thumbnails/6.jpg)
6
Thread
É uma forma de um processo dividir a si mesmo em duas ou mais tarefas que podem ser executadas concorrentemente.
![Page 7: Infra-Estrutura de Comunicação (IF678) Aula Prática 03 – 2011.2 CIn/UFPE Davi Duarte Cynthia Raphaella Ivan França Jéssica Barbalho Larissa Paz Paulo Fernando](https://reader036.vdocuments.pub/reader036/viewer/2022081517/570638631a28abb82390143b/html5/thumbnails/7.jpg)
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.
![Page 8: Infra-Estrutura de Comunicação (IF678) Aula Prática 03 – 2011.2 CIn/UFPE Davi Duarte Cynthia Raphaella Ivan França Jéssica Barbalho Larissa Paz Paulo Fernando](https://reader036.vdocuments.pub/reader036/viewer/2022081517/570638631a28abb82390143b/html5/thumbnails/8.jpg)
Estados de uma Thread
![Page 9: Infra-Estrutura de Comunicação (IF678) Aula Prática 03 – 2011.2 CIn/UFPE Davi Duarte Cynthia Raphaella Ivan França Jéssica Barbalho Larissa Paz Paulo Fernando](https://reader036.vdocuments.pub/reader036/viewer/2022081517/570638631a28abb82390143b/html5/thumbnails/9.jpg)
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.
![Page 10: Infra-Estrutura de Comunicação (IF678) Aula Prática 03 – 2011.2 CIn/UFPE Davi Duarte Cynthia Raphaella Ivan França Jéssica Barbalho Larissa Paz Paulo Fernando](https://reader036.vdocuments.pub/reader036/viewer/2022081517/570638631a28abb82390143b/html5/thumbnails/10.jpg)
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.
![Page 11: Infra-Estrutura de Comunicação (IF678) Aula Prática 03 – 2011.2 CIn/UFPE Davi Duarte Cynthia Raphaella Ivan França Jéssica Barbalho Larissa Paz Paulo Fernando](https://reader036.vdocuments.pub/reader036/viewer/2022081517/570638631a28abb82390143b/html5/thumbnails/11.jpg)
EXEMPLO DE THREADS EM JAVApublic class Conta {//...
public double saldo = 0;void creditar(double vc) {
saldo = saldo+vc;}void debitar(double vd) {
if(saldo>vd){ saldo = saldo-vd;}
}}
![Page 12: Infra-Estrutura de Comunicação (IF678) Aula Prática 03 – 2011.2 CIn/UFPE Davi Duarte Cynthia Raphaella Ivan França Jéssica Barbalho Larissa Paz Paulo Fernando](https://reader036.vdocuments.pub/reader036/viewer/2022081517/570638631a28abb82390143b/html5/thumbnails/12.jpg)
EXEMPLO DE THREADS EM JAVApublic class Credito extends Thread {
private Conta conta;private double val;public Credito(Conta c,double v) {
conta = c; val = v;
}public void run() {
conta.creditar(val);}
}
![Page 13: Infra-Estrutura de Comunicação (IF678) Aula Prática 03 – 2011.2 CIn/UFPE Davi Duarte Cynthia Raphaella Ivan França Jéssica Barbalho Larissa Paz Paulo Fernando](https://reader036.vdocuments.pub/reader036/viewer/2022081517/570638631a28abb82390143b/html5/thumbnails/13.jpg)
EXEMPLO DE THREADS EM JAVA
public class Debito extends Thread {private Conta conta;private double val;public Debito(Conta c, double v) {
conta = c; val = v;}public void run() {
conta.debitar(val);}
}
![Page 14: Infra-Estrutura de Comunicação (IF678) Aula Prática 03 – 2011.2 CIn/UFPE Davi Duarte Cynthia Raphaella Ivan França Jéssica Barbalho Larissa Paz Paulo Fernando](https://reader036.vdocuments.pub/reader036/viewer/2022081517/570638631a28abb82390143b/html5/thumbnails/14.jpg)
EXEMPLO DE THREADS EM JAVApublic 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);
}}
![Page 15: Infra-Estrutura de Comunicação (IF678) Aula Prática 03 – 2011.2 CIn/UFPE Davi Duarte Cynthia Raphaella Ivan França Jéssica Barbalho Larissa Paz Paulo Fernando](https://reader036.vdocuments.pub/reader036/viewer/2022081517/570638631a28abb82390143b/html5/thumbnails/15.jpg)
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
15
![Page 16: Infra-Estrutura de Comunicação (IF678) Aula Prática 03 – 2011.2 CIn/UFPE Davi Duarte Cynthia Raphaella Ivan França Jéssica Barbalho Larissa Paz Paulo Fernando](https://reader036.vdocuments.pub/reader036/viewer/2022081517/570638631a28abb82390143b/html5/thumbnails/16.jpg)
SELECTIVE REPEAT 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
16
![Page 17: Infra-Estrutura de Comunicação (IF678) Aula Prática 03 – 2011.2 CIn/UFPE Davi Duarte Cynthia Raphaella Ivan França Jéssica Barbalho Larissa Paz Paulo Fernando](https://reader036.vdocuments.pub/reader036/viewer/2022081517/570638631a28abb82390143b/html5/thumbnails/17.jpg)
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.
17
![Page 18: Infra-Estrutura de Comunicação (IF678) Aula Prática 03 – 2011.2 CIn/UFPE Davi Duarte Cynthia Raphaella Ivan França Jéssica Barbalho Larissa Paz Paulo Fernando](https://reader036.vdocuments.pub/reader036/viewer/2022081517/570638631a28abb82390143b/html5/thumbnails/18.jpg)
REFERÊNCIAS http://www.coinfo.cefetpb.edu.br/professor/
petronio/POO/Material/threads.ppt
18