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.

Slides:



Advertisements
Apresentações semelhantes
Sistemas Operacionais - Aula 6
Advertisements

Sistemas Operacionais
Sistemas Distribuídos
IC - UFF Sistemas Operacionais Threads. IC - UFF Processos e threads Vimos o conceito de processo englobando duas características básicas: propriedade.
Sistemas distribuídos
Sistemas Operacionais
Threads (Linha de execução )
Chapter 4: Threads.
Interação Cliente Servidor
Threads Estagiário: Bruno Guazzelli Batista Slides de autoria do Prof Drº Marcos José Santana baseados no livro Sistemas Operacionais Modernos de A. Tanenbaum.
SSC SISTEMAS OPERACIONAIS I
Sistemas Distribuídos
Programação Concorrente
1 Comunicação Inter-Processos -> RMI -> RPC -> TCP -> UDP (Abstração de passagem de mensagem)
Processos Conceitos Básicos.
Threads.
Threads sem Sincronização
O Mecanismo de Threads em Java 2. Criar uma classe herdeira da super classe Thread public class minhaThread extends Thread{ public class minhaThread extends.
Concorrência em Java Threads em Java.
Threads: Introdução e Implementação
Monitores.
Concorrência em Java Threads em Java.
Unidade 1-1 Processos e Threads
Concorrência em Java Threads em Java.
Infra-Estrutura de Comunicação (IF678)
SISTEMAS OPERACIONAIS
Sistemas Operacionais
Erivelto TSchoeke 1/12. Cenário Definição de tarefas Processamento em sistemas mono-tarefas Sistemas multi-tarefas Sistemas multi-tarefas com time-sharing.
Concorrência entre Threads Java
Unidade 2 - Parte 1 Programação Concorrente
Concorrência STRD.
Um Framework Para Testes
Conteúdo Processos e threads Partes do processo
IC - UFF Sistemas Operacionais 4. Threads Texto base: capítulo 4 Operating Systems: Internals and Design Principles W. Stallings.
Sistemas Operacionais
Programação Paralela.
Concorrência e thread Petrônio Júnior(pglj) Márcio Neves(mmn2)
PROGRAMAÇÃO DISTRIBUÍDA Aula 01 Prof. Henrique Mongelli
Programação com Threads
Introdução às Java Threads
SISTEMAS OPERACIONAIS I
Paulo Borba e Augusto Sampaio Centro de Informática Universidade Federal de Pernambuco Especificação de Sistemas Distribuídos.
Conceitos de thread Faculdade PITÁGORAS – Outubro de 2012
Herança e Arquitetura em camadas
Copyright 1998, Departamento de Informática da UFPE. Todos os direitos reservados sob a legislação em vigor. Variáveis e métodos estáticos, Passagem de.
Sistemas Distribuídos Aula 05 – Programação Multithread/Paralela
Abr-17 Projetar Processos Projetar distribuição.
Infra-Estrutura de Software
Aula prática de Concorrência Equipe de Monitoria: Bruno Pereira - bpe Davi Pires - dpr Guilherme Barros – gbs2 Thiago Cavalcanti - trc.
Python Threads e Socket
Grupos de Threads em Java
Programação com Threads Threads Java como um Estudo de Caso.
Camada de Aplicação Prof. Horácio. Objetivo Apresentar os detalhes específicos dos tipos de aplicação; Apresentar o modelo cliente-servidor; Apresentar.
Sistemas Operacionais
Capítulo 8 Threads.
Implementação Distribuída Escalonamento de Tempo-Real Prof. Dr. Norian Marranghello Grupo 8 Daniela Gonçalves Strozi – Sayuri Watanabe
Orientação a Objetos e Java Graduação em Ciência da Computação  Centro de Informática, UFPE Alexandre Mota
Sistemas Operacionais Distribuídos
Capítulo 2 Processos e Threads 2.1 Processos 2.2 Threads
J U nit Um Framework Para Testes. Motivação  Todos os programadores sabem que devem testar seu código  Quanto mais curto o prazo menos testes são realizados.
Projetar Processos. Copyright © 2002 Qualiti. Todos os direitos reservados. Qualiti Software Processes Projetar distribuição | 2 Descrição do Projeto.
Implementação Orientada a Objetos – Aula 04 Métodos, parâmetros e retorno Prof. Danielle Martin/Marcia Bissaco Universidade de Mogi das Cruzes
CURSO JAVA BÁSICO Módulo 9 – slide 1 Módulo 10 Threads.
Aula Prática: Demo de Sistemas Distribuídos
ProgramaçãoConcorrente Glêdson Elias
Laboratório de Computação Aula 06 e 07 – Implementação de classes Prof. Fábio Dias
Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI) Especialista : Sistema distribuídos
Curso Superior em Redes de Computadores Camada de Aplicação Prof. Sales Filho.
ProgramaçãoConcorrente Glêdson Elias
Programação em Java Threads Prof. Luiz Antonio Rodrigues Prof. Luiz Antonio Unioeste - Cascavel Jpanel e Diagramadores.
Transcrição da apresentação:

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

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 Vários fluxos de execuçãoFluxo único de execução tarefa 1 tarefa 2 tarefa 3 tarefa 1tarefa 2tarefa 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.

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.

Estados de uma Thread

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.

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.

E XEMPLO DE THREADS E M JAVA public class Conta {//... public double saldo = 0; void creditar(double vc) { saldo = saldo+vc; } void debitar(double vd) { if(saldo>vd){ saldo = saldo-vd; }

E XEMPLO DE THREADS E M JAVA public 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); }

E XEMPLO DE THREADS E M 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); }

E XEMPLO DE THREADS E M 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); }

C HAT M ULTIUSUÁRIO A descrição do projeto se encontra em: cas/AulaPratica%203/especifica%e7%e3o_miniprojeto3.pdf As telas estão disponíveis em: cas/Interface_Java.zip 15

S ELECTIVE R EPEAT 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

P ROJETOS 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

REFERÊNCIAS /Material/threads.ppt 18