Arquitecturas Paralelas I Computação Paralela em Larga Escala LESI - 4º Ano. Especificação de Concorrência/Paralelismo
|
|
- Judite Faro Lima
- 5 Há anos
- Visualizações:
Transcrição
1 Arquitecturas Paralelas I Computação Paralela em Larga Escala LESI - 4º Ano Especificação de Concorrência/Paralelismo (gec.di.uminho.pt/lesi/ap10203/aula05concorrência.pdf) João Luís Ferreira Sobral Departamento do Informática Universidade do Minho Outubro 2002
2 Especificação de Concorrência/Paralelismo Baseada nos conceitos de fio de execução (thread)/ processo Fio de execução versus processo Paralelismo lógico versus paralelismo físico Preempção de fios de execução Escalonamento dos fios com base em prioridades Vantagens da utilização da concorrência: Programas que requerem a execução de várias tarefas (reactivos) Existem objectos dos mundo real que são activos Melhora a disponibilidade de serviços Possibilita as mensagens/invocações de métodos assíncronas Tira partido do paralelismo quando existem vários CPU Concorrência requerida (em Java várias classes executam de forma concorrente, ex. Swing, applet, beans) Limitações da concorrência Segurança (safety) inconsistências na execução de programas Vivacidade (liveness) impasses na execução de programas Introduz não determinismo na execução dos programas Em sistemas OO existem menos actividades assíncronas que objectos Pouco útil na execução local de métodos, num modelo chamada/resposta Introduz uma sobrecarga devido à criação, escalonamento e sincronização dos fios de execução Arquitecturas Paralelas I 2 João Luís Sobral 2002
3 Especificação de Concorrência/Paralelismo Em aplicações tradicionais Modelos de fork/join, cobegin/coend, e parfor. A sincronização é efectua com semáforos, barreiras ou monitores. Processos activos (CSP), que efectuam processamento através de um corpo activo, interactuando através da passagem de mensagens. A passagem de mensagens pode ser síncrona com bloqueio, síncrona sem bloqueio ou assíncrona. Em aplicações orientadas ao objecto Os modelos tradicionais pressupõem um modelo de invocações síncronas de métodos, onde o cliente fica bloqueado enquanto o método é executado pelo servidor, mesmo que não exista um valor de retorno. Quando o método invocado não retorna um valor pode ser efectuada uma invocação assíncrona, podendo o cliente prosseguir a execução em simultâneo com a execução do método no servidor. Quando existe um valor de retorno as invocações também podem ser assíncronas, existindo, no entanto, três alternativas para o retorno do resultado da operação: 1. Síncrona diferida - O cliente efectua uma segunda invocação ao servidor para obter o resultado. Cliente Servidor tarefa() resultado() 2. Com chamada de retorno O servidor efectua uma invocação de um método pré-definido do cliente, quando a execução terminou. tempo Cliente tarefa() resultado() Servidor 3. Com futuros A invocação é delegada a outro objecto que armazena o resultado da operação. Cliente Futuro Servidor tarefa() tarefa() resultado() Arquitecturas Paralelas I 3 João Luís Sobral 2002
4 Programação concorrente em JAVA JAVA é das poucas linguagens com suporte à programação concorrente Classe java.lang.thread: Thread(Runnable r); // construtor da classe start(); // cria um fio de execução e invoca r.run() join(); // espera pelo fim da execução do fio sleep(int ms); // suspende o fio de execução setpriority(int Priority); // altera a prioridade Interface Runnable Exemplo: Deve ser implementado por todas as classes pretendam ser directamente executadas por um fio de execução. O método run() contém o código a executar pelo fio de execução. interface Runnable { public void run(); Criar dois fios de execução que incrementam cada um o seu contador e que executam em simultâneo: public class Cont extends Thread { // implícito: implements Runnable public Cont() { public void run() { for (int i=0; i<100; i++) { System.out.println( i= + i); Execução sequencial: new Cont().run(); new Cont().run(); // join Execução concorrente: new Cont().start(); new Cont().start(); // ou new Cont().run(); // join, para esperar pelo fim da execução Arquitecturas Paralelas I 4 João Luís Sobral 2002
5 Programação concorrente em JAVA Segurança nada de mau deve acontecer num programa Vivacidade deve acontecer algo de bom num programa Exemplo de falta de segurança: execução do método inc() por dois fios em simultâneo pode originar um valor incoerente da variável ct public class Cont { protected int ct; public Cont() { ct=0; public void inc() { ct = ct + 1; Palavras reservadas para especificar sincronização synchronized metodo() { // metodo tem o acesso exclusivo ao objecto synchronized (umobj) { // obtém o acesso exclusivo a umobj Cada objecto é um monitor. Métodos da classe Object: wait() espera pelo acesso ao monitor wait(int timeout) wait, com temporização notify() acorda um fio à espera de acesso notifyall() acorda todos os fios à espera Exemplo de falta de vivacidade (deadlock): execução de método inc() por dois fios em simultâneo em objectos com referências cruzadas: Obj1:. void syncronized inc() { obj2.inc(). Obj2: void syncronized inc() { obj1.inc() Arquitecturas Paralelas I 5 João Luís Sobral 2002
6 Programação concorrente em JAVA Padrões de desenho para melhorar a segurança Objectos imutáveis ou sem estado, uma vez que não é necessário sincronizar o acesso estes objectos (ex. Classe String) Ex1: class Relay { private Server srv; // fixo Relay(Server s) { srv=s; void do_it() { srv.do_it(); Ex2: public int[] sort(int[] arr) { int[] copy = arr.clone(); // sort return(copy); // cópia local Objectos completamente sincronizados ou com sincronização parcial. Ex1: Variáveis de classe class Cont { private static int contadores; void inc() { synchronized(getclass()) { contadores++;. Ex2: sincronização parcial class Cell { private int val; private Cell next; public int synchronized getvalue() { return(val); public void synchronized setvalue(int vl) { val=vl; public Cell getnext() { return(next); Objectos contidos em outros objectos (ver relay) Arquitecturas Paralelas I 6 João Luís Sobral 2002
7 Programação concorrente em JAVA Padrões de desenho para melhorar a vivacidade Os métodos que apenas acedem ao estado do objecto geralmente não necessitam de ser sincronizados (excepto para double e long) Não é necessário sincronizar as variáveis que são escritas apenas uma vez: Ex: void setend() { end = True; Utilizar sempre que possível a sincronização separada, para acesso a cada parte do estado (ou dividir o estado em dois objectos). Ex: class doispontos { Ponto p1, p2; public void movexp1(int x) { synchronized (p1) { p1.movex(x); public void movexp2(int x) { synchronized (p2) { p2.movex(x); Estruturas de dados ligadas podem utilizar fechos separados para a inserção e para a remoção. Os recursos devem ser acedidos sempre pela mesma ordem para minimizar os impasses. Ex: public void update() { synchronized(obj1) { synchronized(obj2) { // do update Arquitecturas Paralelas I 7 João Luís Sobral 2002
8 Acções Dependentes do Estado dos Objectos Que acção tomar quando um objecto não pode satisfazer um pedido? Ignorar o pedido Retornar uma indicação de falha (excepção?) Suspender o cliente até que a condição se verifique Tomar uma acção provisória Prosseguir por forma a poder repor o estado se algo correr mal Repetir a acção até ser possível executá-la Estratégias pessimistas e estratégias optimistas Representação lógica do estado versus representação física do estado Estado lógico: normalmente definido por predicados: expressões Booleanas em função do estado (ex. buffer cheio, meio e vazio) O estado lógico pode ser representado explicitamente em variáveis Suspensão do cliente através de guardas Métodos wait(), notify() e notifyall() da classe Object Exemplo1 (wait()) public class GuardedClass { protected boolean cond=false; protected synchronized void awaitc() { while(!cond) { try { wait(); catch (InterruptedException e) { public synchronized void guardedaction() { awaitc(); // public synchronized void setcond() { cond=true; notifyall(); Exemplo2 (espera activa pouco eficiente) protected void spinwaitc() { while(!cond) { Thread.yield(); Problemas com monitores encadeados: wait() apenas liberta o fecho desse monitor Arquitecturas Paralelas I 8 João Luís Sobral 2002
9 Implementação de Invocações Assíncronas de Métodos Invocação assíncrona sem valor de retorno Implementada através de um padrão comando, onde o comando é executado em paralelo com o cliente. Os parâmetros do comando são passados no seu construtor. A activação do comando pode ser efectuada pelo cliente ao pelo próprio comando. Activação pelo cliente: public class FileWriter extends Thread { private String nm; private byte[] d; public FileWriter(String n, byte data[]) { nm = n; d = data; public void run() { writebytes(nm,d); // código do cliente (new FileWriter( Pic,rawPicture)).start(); Activação pelo servidor public class FileWriter extends Thread { private String nm; private byte[] d; public FileWriter(String n, byte data[]) { nm = n; d = data; start(); public void run() { writebytes(nm,d); // código do cliente new FileWriter( Picture,rawPicture); Arquitecturas Paralelas I 9 João Luís Sobral 2002
10 Implementação de Invocações Assíncronas de Métodos Invocação assíncrona com valor de retorno: como esperar pelo resultado operação realizada por um fio de execução? Síncrona diferida - Método Thread.join() Futuros r = new Service().start(); //.. dowork(); r.join(); r.getresult(); É utilizado um objecto que irá conter o resultado da operação e que bloqueia o cliente caso seja requerido o valor antes de estar disponível. Este objecto deve ser partilhado pelo comando e pelo cliente. É implementado através de um Join. class Future extends Thread { private Task tk=null; public Future(Task tsk) { tk = tsk; start(); public Task getresult() { join(); return(tk); public void run() { tk = do_task(); // realiza a tarefa Chamadas de retorno public interface Client { public void opok(task); class OPCallBack extends Thread { private Client cl=null; private Task tk=null; public OPCallBack(Task tsk, Client clk) { tk = tsk; cl = clk start(); public run() { cl.opok(do_task()); Arquitecturas Paralelas I 10 João Luís Sobral 2002
11 Implementação de Invocações Assíncronas de Métodos.Net - Invocação assíncrona sem valor de retorno A invocação assíncrona de métodos é directamente suportada em.net remoting. A invocação de métodos sem valor de retorno (One Way) é efectuada marcando o método OneWay e utilizando um delegate para efectuar a invocação. public class BaseObject { [OneWay] public void writebytes(string, int); // delegate para uma função void xxx(string,int) delegate void writebytesdelegate(string, int); static void Main(string[] args) { ob = new BaseObject; // cria um delegate para ab.writebytes writebytesdelegate wbd = new writebytesdelegate(ob.writebytes); // inicia a invocação IAsyncResul as = wbd.begininvoke( Pic,rawPic,null,null); // EndInvoke() retorna imediatamente wbd.endinvoke(as);.net - Síncrona diferida / Futuros delegate int servicedelegate(); public static int service() { // static void Main(string[] args) { servicedelegate dl = new servicedelegate(service); IAsyncResult ar = dl.begininvoke(null,null); // dowork(); int res = dl.endinvoke(); Arquitecturas Paralelas I 11 João Luís Sobral 2002
12 Programação Concorrente/Paralela Exercícios 1 Codificar e executar o programa exemplo dos dois contadores em paralelo. 2 Desenvolver um programa que implemente um relógio, com uma precisão de segundos e que execute em simultâneo com o resto do programa. Utilize o seguinte método: void sleep(miliseconds) throws InterruptedException 3 Implemente um contador com operações de incremento e decremento, que nunca fique inferior a zero, nem superior a 100. Implemente três versões distintas: com indicação de falha, métodos guardados com base no estado físico e métodos guardados com base no estado lógico. Escreva também um programa com dois fios de execução um que incrementa o contador e outro que decrementa o contador, para efectuar testes a esta classe. Nota: Na versão com indicação da falha, crie uma nova excepção: public class CannotIncException extends Exception { que pode ser gerada através de: throw new CannotIncException(); 4 Desenvolva um programa que execute os contadores da alínea 1) em objectos servidores remotos, executando em paralelo. 5 Altere o programa anterior por forma a que o objecto que cria os contadores seja notificado do fim da contagem (i.e. com Callback). 6 Repita o exercício 4, mas agora em.net, utilizando um delegate para implementar as invocações assíncronas de métodos. Arquitecturas Paralelas I 12 João Luís Sobral 2002
Computação Paralela. Especificação de Concorrência/Paralelismo. João Luís Ferreira Sobral Departamento do Informática Universidade do Minho
Computação Paralela Especificação de Concorrência/Paralelismo João Luís Ferreira Sobral Departamento do Informática Universidade do Minho Outubro 2005 Especificação de Concorrência/Paralelismo Baseada
Leia maisProgramação Concorrente com Thread Java. Luiz Affonso Guedes Sistemas Distribuidos
Programação Concorrente com Thread Java Luiz Affonso Guedes Sistemas Distribuidos Definições Básicas Threads são sub-procesos no sistema operacional. É menos custoso gerenciar threads do que processos.
Leia maisProgramação concorrente em Java
Programação concorrente em Java Paulo Sérgio Almeida Grupo de Sistemas Distribuídos Departamento de Informática Universidade do Minho 2007/2008 c 2000 2007 Paulo Sérgio Almeida Programação concorrente
Leia maisThreads. O que é uma Thread? Paralelismo
Threads em Java 1 O que é uma Thread? Paralelismo Threads Multi- threading é o mecanismo de concorrência suportado explicitamente pela linguagem Java. Os mecanismos de gerenciamento e sincronização de
Leia maisPUC-SP Depto. de Ciência da Computação
Mensagens Concorrentes Prof. Dr. Italo Santiago Vega Julho de 2000 PUC-SP Depto. de Ciência da Computação www.pucsp.br/~italo Introdução Concorrência libera a modelagem de interações entre objetos tradicionalmente
Leia maisThreads em Java. Java Threads. Java Componentes: JVM JVM:
Threads em Java (Aula 17) Java Threads Difícil de classificar com user thread ou kernel thread As threads Java são gerenciadas pela JVM. Threads em Java podem ser criadas das seguintes maneiras: Fazendo
Leia maisSó podem ser executados por uma Thread que detenha o lock do objecto
Transferência de controle entre Threads Os métodos wait(), notify() notifyall(), da classe Object, Permitem a transferência de controlo de uma Thread para outra. Só podem ser executados por uma Thread
Leia maisTHREADS EM JAVA. George Gomes Cabral
THREADS EM JAVA George Gomes Cabral THREADS Fluxo seqüencial de controle dentro de um processo. Suporte a múltiplas linhas de execução permite que múltiplos processamentos ocorram em "paralelo" (em computadores
Leia maisProgramação Concorrente/Paralela em Java
em Java Resolução do Exercício 1 public class Cont extends Thread { protected int ct; public Cont() { ct=0; public synchronized void inc() { ct++; public void run() { for (int i=0; i
Leia mais[Magee 1999] Concurrency State Models and Java Programs, Jeff Magee, Jeff Kramer, John Wiley 1999.
Programação Concorrente [Magee 1999] Concurrency State Models and Java Programs, Jeff Magee, Jeff Kramer, John Wiley 1999. [Gosling] The Java Language Specification James Gosling, Bill Joy and Guy Steele,
Leia mais[Magee 1999] Concurrency State Models and Java Programs, Jeff Magee, Jeff Kramer, John Wiley 1999.
Cap. IV - Programação Concorrente [Magee 1999] Concurrency State Models and Java Programs, Jeff Magee, Jeff Kramer, John Wiley 1999. [Gosling] The Java Language Specification James Gosling, Bill Joy and
Leia maisUtilizando Threads em Java
Utilizando Threads em Java CCComp - DCE - UESB Resumo sobre os threads em Java Estrutura Geral das Implementações CCComp - DCE - UESB class ProcessoA extends Thread {... }//fim da classe ProcessoA class
Leia maisUNIVERSIDADE FEDERAL RURAL DE PERNAMBUCO Bacharelado em Sistemas de Informação. Processamento Paralelo Threads. Aluno: Wagner Palacio
UNIVERSIDADE FEDERAL RURAL DE PERNAMBUCO Bacharelado em Sistemas de Informação Processamento Paralelo Threads Aluno: Wagner Palacio Turma: 3º período Professor: Giordano Cabral Recife, 29 de maio de 2012
Leia maisConcorrência em Java. Threads em Java
Concorrência em Java Threads em Java Máquina Virtual Java, Processos e Threads Cada instância da JVM corresponde a um processo do sistema operacional hospedeiro. A JVM não possui o conceito de processos
Leia maisPROGRAMAÇÃO ORIENTADA A OBJETOS. Aula 11 - Threads e Concorrência
Aula 11 - Threads e Concorrência Conteúdo Programático desta aula Apresentar os Conceitos de Threads, Concorrência e Sincronização. Verificar a aplicabilidade destes conceitos no mercado, bem como sua
Leia maisThreads. Linguagem Java. Adenilso da Silva Simão 17/05/05
17/05/05 Uma thread é uma linha de execução dentro de um programa Conceito de SO Java implementa suporte nativo a threads Duas formas de se implementar Implementando a interface Runnable Deve-se sobrepor
Leia mais[Magee 1999] Concurrency State Models and Java Programs, Jeff Magee, Jeff Kramer, John Wiley 1999.
Cap. IV - Programação Concorrente [Magee 1999] Concurrency State Models and Java Programs, Jeff Magee, Jeff Kramer, John Wiley 1999. [Gosling] The Java Language Specification James Gosling, Bill Joy and
Leia maisProgramação Orientada a Objetos. Concorrência
Programação Orientada a Objetos Concorrência Cristiano Lehrer, M.Sc. Níveis de concorrência: Introdução Nível de instrução de máquina: Executando duas ou mais instruções de máquina simultaneamente. Nível
Leia maisProgramação Concorrente em Java
Programação Concorrente em Java Prof. Orlando Loques - IC/UFF versão 17-04-2001 Referências: - Programação Concorrente em Java, Sérgio Teixeira de Carvalho & Leonardo N. M. Reis IC-UFF - Ousterhout, J.:
Leia maisJava Threads. Introdução
Java Threads mleal@inf.puc-rio.br 1 Introdução O único mecanismo de concorrência suportado explicitamente pela linguagem Java é multi-threading. threading. Os mecanismos de gerenciamento e sicronização
Leia maisSistemas Operacionais
Sistemas Operacionais Threads em Java Paulo Ricardo Lisboa de Almeida 1 Temos várias interfaces e classes que podem facilitar nossa vida Runnable Callable Thread... 2 Para a aula de sistemas operacionais,
Leia maisExecução concorrente em Java: threads. O que são Threads? Criação e métodos de Threads Sincronização Comunicação entre Threads
Execução concorrente em Java: threads O que são Threads? Criação e métodos de Threads Sincronização Comunicação entre Threads Programação concorrente: introdução O mundo real funciona concorrentemente:
Leia maisMULTITHREADING. Prof.: Michele Nasu Tomiyama Bucci
MULTITHREADING Prof.: Michele Nasu Tomiyama Bucci Introdução O corpo humano realiza uma grande variedade de operações paralelamente, ou concorrentemente. Os computadores também realiza operações concorrentemente.
Leia maisGabriel de Oliveira Ramos Roland Teodorowitsch - Orientador
THREADS EM JAVA Gabriel de Oliveira Ramos Roland Teodorowitsch - Orientador Universidade Luterana do Brasil (Ulbra) Curso de Ciência da Computação Campus
Leia maisMúltiplas Linhas de Execução Java (Threads)
Múltiplas Linhas de Execução Java (Threads) SCC0604 - Programação Orientada a Objetos Prof. Fernando V. Paulovich http://www.icmc.usp.br/~paulovic paulovic@icmc.usp.br Instituto de Ciências Matemáticas
Leia maisSincronização de Threads
Sincronização de Threads Sistema justo quando cada threadobtém ace so suficiente a recursoslimitadosa fim de progredir razoavelmente Starvation ocorre quando uma ou maisthreadsestão impedidasde obter ace
Leia maisSistemas Operacionais
Sistemas Operacionais Aula 9 Threads Prof.: Edilberto M. Silva http://www.edilms.eti.br Baseado no material disponibilizado por: SO - Prof. Edilberto Silva Prof. José Juan Espantoso Threads Uma thread
Leia maisFundamentos de Sistemas Operacionais
Fundamentos de Sistemas Operacionais Aula 6: Monitores, Troca de Mensagens e Deadlock Diego Passos Última Aulas Mecanismos de Exclusão Mútua Operações atômicas. Protocolos de controle de acesso. Spin-locks.
Leia maisTipos, Literais, Operadores
Tipos, Literais, Operadores Identificadores São palavras utilizadas para nomear variáveis, métodos e classes Na linguagem Java, o identificador sempre começa por letra, sublinhado(_) ou cifrão ($) Não
Leia maisTipos, Literais, Operadores
Tipos, Literais, Operadores Identificadores São palavras utilizadas para nomear variáveis, métodos e classes Na linguagem Java, o identificador sempre começa por letra, sublinhado(_) ou cifrão ($) Não
Leia maisThreads. Leonardo Gresta Paulino Murta
Threads Leonardo Gresta Paulino Murta leomurta@ic.uff.br Aula de hoje Estudaremos a execução em paralelo de programas em Java por meio de Threads Leonardo Murta Threads 2 Por que usar Threads? Threads
Leia maisProgramação Estruturada e Orientada a Objetos
INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE Programação Estruturada e Orientada a Objetos Docente: Éberton da Silva Marinho e-mail: ebertonsm@gmail.com eberton.marinho@ifrn.edu.br
Leia maisUniversidade de Mogi das Cruzes Implementação Orientada a Objetos - Profª. Danielle Martin. Guia da Sintaxe do Java
Guia da Sintaxe do Java TIPOS PRIMITIVOS DE DADOS DO JAVA São os tipos nativos de dados do Java, que podem ser usados na declaração de atributos, variáveis, parâmetros. Tipo primitivo Tamanho Valor padrão
Leia maisTratamento de Exceções, Multithreads e arquivos (em Java) Programação Orientada a Objetos
Tratamento de Exceções, Multithreads e arquivos (em Java) Programação Orientada a Objetos Nesta unidade vamos ver os últimos assuntos de interesse em java. O primeiro deles, bem simples, é o tratamento
Leia maisNum programa em JAVA é possível definir diferentes sequências de execução independente: Threads.
Threads Folha 5-1 Num programa em JAVA é possível definir diferentes sequências de execução independente: Threads. Uma Thread é similar a um processo no sentido em que corresponde a um conjunto de instruções
Leia maisProgramação Orientada a Objetos em Java. Threads Threads Threads. Threads
Universidade Federal do Amazonas Departamento de Ciência da Computação IEC481 Projeto de Programas Programação Orientada a Objetos em Java Threads Threads Threads Threads Professor: César Melo Slides baseados
Leia maisProgramação Orientada a Objectos - P. Prata, P. Fazendeiro
9 Classes Abstractas e Interfaces Classe Abstracta Classe em que pelo menos um dos métodos de instância não é implementado. Exemplo: public abstract class Forma{ public abstract double area(); public abstract
Leia maisESQUEMA AULA PRÁTICA 1
P. Fazendeiro & P. Prata POO FP1/1 ESQUEMA AULA PRÁTICA 1 Familiarização com o Ambiente JBuilder Introdução à Linguagem de Programação JAVA 0 Inicie o ambiente de desenvolvimento integrado JBuilder. Start
Leia maisESQUEMA AULA PRÁTICA 1
P. Fazendeiro & P. Prata POO FP1/1 ESQUEMA AULA PRÁTICA 1 Familiarização com o Ambiente JBuilder Introdução à Linguagem de Programação JAVA 0 Inicie o ambiente de desenvolvimento integrado JBuilder. Start
Leia maisProf. Silvana Rossetto 9 de julho de DCC/IM/UFRJ
Computação Concorrente (MAB117) Gabarito Segunda Prova Prof. Silvana Rossetto 9 de julho de 2015 1 DCC/IM/UFRJ Questão 1 (2,5 pts) O código Java abaixo implementa uma solução para o problema do barbeiro
Leia maisThreads e Concorrência em Java (Material de Apoio)
Introdução Threads e Concorrência em Java (Material de Apoio) Professor Lau Cheuk Lung http//www.inf.ufsc.br/~lau.lung INE-CTC-UFSC A maioria dos programas são escritos de modo seqüencial com um ponto
Leia maisMultithreading. Programação Orientada por Objectos com Java. Ademar Aguiar. MRSC - Programação em Comunicações
Programação Orientada por Objectos com Java www.fe.up.pt/~aaguiar ademar.aguiar@fe.up.pt 1 Multithreading 154 Objectivos Ser capaz de: Explicar os conceitos básicos de multithreading Criar threads múltiplos
Leia maisProgramação Orientada a Objetos (DPADF 0063)
Programação Orientada a Objetos (DPADF 0063) Aula 10 Threads Universidade Federal de Santa Maria Colégio Agrícola de Frederico Westphalen Curso Superior de Tecnologia em Sistemas para Internet Prof. Bruno
Leia maisProgramação Orientada a Objetos SANTOS, Rafael (PLT)
Programação Orientada a Objetos SANTOS, Rafael (PLT) Possibilita atribuições em sequência na mesma instrução Retorna o valor atribuído Atribuições compostas: incluem a própria variável: +=, *=, -=, etc
Leia maisEstrutura de Dados Funções e Procedimentos
Estrutura de Dados Funções e Procedimentos Prof. Salustiano Rodrigues de Oliveira saluorodrigues@gmail.com www.profsalu.wordpress.com Java A linguagem Java utiliza o paradigma de programação orientada
Leia maisProgramação Orientada a Objectos - P. Prata, P. Fazendeiro. Hierarquia de classes e mecanismo de ligação
4 Conceito de Herança Hierarquia de classes e mecanismo de ligação Herança Uma classe pode herdar operações de uma superclasse e as suas operações podem ser herdadas por subclasses. O mecanismo de herança
Leia maisInstituto Superior de Engenharia de Lisboa
Instituto Superior de Engenharia de Lisboa Introdução à Programação (PG) Docente: Pedro Viçoso Fazenda (pfazenda@cedet.isel.ipl.pt) Professor Responsável: Pedro Alexandre Pereira (palex@cc.isel.ipl.pt)
Leia maisUniversidade da Beira Interior. Sistemas Distribuídos. Folha 4-1. Threads Daemon Threads
Threads Daemon Threads Folha 4-1 Uma Thread Daemon é uma Thread, geralmente usada para executar serviços em background, que tem a particularidade de terminar automaticamente após todas as Threads não Daemon
Leia maisParadigmas de Programação. Java First-Tier: Aplicações. Orientação a Objetos em Java (I) Nomenclatura. Paradigma OO. Nomenclatura
Java First-Tier: Aplicações Orientação a Objetos em Java (I) Paradigmas de Programação Programação Funcional Programação Procedural Programação Orientada por Objetos Grupo de Linguagens de Programação
Leia maisDEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO SISTEMAS OPERACIONAIS I SEM/12 PROVA I. Tempo de Prova: 100 minutos / Escore Máximo: 300 pontos
DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO SISTEMAS OPERACIONAIS I - 1 0 SEM/12 PROVA I Tempo de Prova: 100 minutos / Escore Máximo: 300 pontos Aluno: G A B A R I T O Escore: Responda às perguntas de forma
Leia maisFicha Prática 10. António Nestor Ribeiro, Paulo Azevedo, Mário Martins PPIV (LESI) 2005/06
Ficha Prática 10 António Nestor Ribeiro, Paulo Azevedo, Mário Martins {anr,pja,fmm@di.uminho.pt PPIV (LESI) 2005/06 Objectivos 1. Interfaces: declaração e utilização. 2. Interfaces como tipos de dados
Leia maisPROGRAMAÇÃO ORIENTADA A OBJETOS. Aula 12 - Threads e Concorrência em Java
Aula 12 - Threads e Concorrência em Java Conteúdo Programático desta aula Aplicar os conceitos e threads, processos concorrentes e sincronização em pequenos programas. Aplicar e verificar os conceitos
Leia maisLinguagem de Programação II Implementação
Linguagem de Programação II Implementação Prof. Alessandro Borges 2 Tópicos Implementação em Java Variáveis Palavras reservadas Pacotes Identificador this Acessando membros de outros objetos API Java Nossa
Leia mais4 Conceito de Herança
4 Conceito de Herança Hierarquia de classes e mecanismo de ligação Herança Uma classe pode herdar operações de uma superclasse e as suas operações podem ser herdadas por subclasses. O mecanismo de herança
Leia maisProgramando sistemas distribuídos com objetos distribuídos na rede TCP/IP. Prof. Me. Sérgio Carlos Portari Júnior
Programando sistemas distribuídos com objetos distribuídos na rede TCP/IP Prof. Me. Sérgio Carlos Portari Júnior Conteúdo Programático Contextualizando: Aula anterior Camada Middleware Programar para SD
Leia maisProgramação Orientada a Objectos - P. Prata, P. Fazendeiro
7 Classes Abstractas e Interfaces Classe Abstracta Classe em que pelo menos um dos métodos de instância não é implementado. Exemplo: public abstract class Forma{ public abstract double area(); public abstract
Leia maisProgramação Orientada a Objectos - P. Prata, P. Fazendeiro
3 Classes e instanciação de objectos (em Java) Suponhamos que queremos criar uma classe que especifique a estrutura e o comportamento de objectos do tipo Contador. As instâncias da classe Contador devem
Leia maisRESPOSTA: import java.util.arraylist; import java.util.list; class CarrinhoDeCompras2 { List<Produto> produtos;
Fundação CECIERJ - Vice Presidência de Educação Superior a Distância Curso de Tecnologia em Sistemas de Computação Disciplina: Programação Orientada a Objetos AP2 2 semestre de 2016. Nome Assinatura Observações:
Leia maisComputação II - Java - Prova 1 Prof. Adriano Joaquim de Oliveira Cruz /05/13. Questão: Total Pontos: Gráu:
Computação II - Java - Prova 1 Prof. Adriano Joaquim de Oliveira Cruz - 2015/05/13 Questão: 1 2 3 4 5 6 Total Pontos: 20 15 15 10 10 30 100 Gráu: 1. Defina os termos listados a seguir: (a) (10 Pontos)
Leia maisMsC. João Maria MsC. Liviane Melo
Disciplina: Programação Orientada à Objetos AULA 02 Corpo docente: MsC. Alexandro Vladno Edmilson Campos MsC. Fábio Procópio Esp. Felipe Dantas MsC. João Maria MsC. Liviane Melo 2 Tipo Tamanho Alcance
Leia mais9 Classes Abstractas e Interfaces
9 Classes Abstractas e Interfaces Classe Abstracta Classe em que pelo menos um dos métodos de instância não é implementado. Exemplo: public abstract class Forma{ public abstract double area(); public abstract
Leia maisLinguagem de Programação II Implementação
Linguagem de Programação II Implementação Prof. Alessandro Borges 2 Tópicos Criando objeto Definindo valores para os atributos do objeto Método construtor Definindo valores padrão para os atributos dos
Leia maisQuando um programa viola as restrições semânticas da linguagem, a JVM assinala um erro ao programa, sob a forma de exceção.
6 Exceções Quando um programa viola as restrições semânticas da linguagem, a JVM assinala um erro ao programa, sob a forma de exceção. Uma exceção é um erro recuperável - O controlo da execução do programa
Leia maisSistemas Distribuídos
Sistemas Distribuídos RPC Remote Procedure Call 1 Fonte: Alcides Calsavara e Thais V. Batista Chamada de Procedimentos Remotos (RPC) Motivação: comunicação baseada em operações de entrada/saída Ideal:
Leia maisProgramação Orientada a Objectos - P. Prata, P. Fazendeiro
Quando um programa viola as restrições semânticas da linguagem, a JVM assinala um erro ao programa, sob a forma de exceção. Uma exceção é um erro recuperável O controlo da execução do programa é transferido
Leia maisProgramação Na Web. Servlets: Ciclo de Vida. Agenda. Visão geral sobre ciclo de vida. Nascimento de uma Servlet. Execução de uma Servlet
Programação Na Web Servlets: Ciclo de Vida 1 António Gonçalves Agenda Visão geral sobre ciclo de vida Nascimento de uma Servlet Execução de uma Servlet Destruição de uma Servlet 2 Servlet Life Cycle 1
Leia maisProgramação Concorrente em java - Exercícios Práticos Abril 2004
Programação Concorrente em java - Exercícios Práticos Abril 2004 1. Introdução As threads correspondem a linhas de controlo independentes no âmbito de um mesmo processo. No caso da linguagem JAVA, é precisamente
Leia maisArquitecturas Paralelas I Computação Paralela em Larga Escala LESI - 4º Ano. Middleware de Aplicações Paralelas/Distribuídas
Arquitecturas Paralelas I Computação Paralela em Larga Escala LESI - 4º Ano Middleware de Aplicações Paralelas/Distribuídas João Luís Ferreira Sobral Departamento do Informática Universidade do Minho Outubro
Leia maisNum sistema de objectos distribuídos, dois conceitos são fundamentais.
Folha 9-1 Java RMI - Remote Method Invocation No modelo de programação orientada a objectos, vimos que um programa consiste numa colecção de objectos que comunicam entre si através da invocação dos seus
Leia maisSmart Proxies para Invocação de Serviços Web Replicados
Smart Proxies para Invocação de Serviços Web Replicados José Geraldo Ribeiro Júnior (CEFET-MG / PUC Minas) Orientador: Prof. Marco Túlio Valente (PUC Minas) Fevereiro 2007 Apresentação Motivação Proposta
Leia maisJava RMI. RMI Remote Method Invocation. Chamadas Remotas de Procedimentos (RPC) RPC - Implementação
Java Remote Method Invocation Java Remote Method Invocation () é um protocolo Java para comunicação entre processos Permite objetos Java invocar transparentemente métodos de outros objetos (que podem estar
Leia mais1. Estude e implemente a classe Exemplo1 apresentada abaixo:
P. Fazendeiro & P. Prata POO FP09/1 Exceções Uma exceção (Exception) é um sinal gerado pela máquina virtual de Java em tempo de execução indicando uma situação de erro da qual é possível recuperar. O objectivo
Leia maisTratamento de Exceções
Tratamento de Exceções Universidade Católica de Pernambuco Ciência da Computação Prof. Márcio Bueno poonoite@marciobueno.com Fonte: Material da Profª Karina Oliveira Introdução Exceções São eventos que
Leia maisProgramação concorrente (processos e threads)
Programação concorrente (processos e threads) Programação concorrente Por que precisamos dela? Para utilizar o processador completamente Paralelismo entre CPU e dispositivos de I/O Para modelar o paralelismo
Leia maisChamada Remota de Procedimento (RPC)
Chamada Remota de Procedimento (RPC) cont semântica de chamadas pelo menos uma vez no máximo uma vez exatamente uma vez relação com protocolo subjacente falhas e reinicializações de servidores funções
Leia maisComputação Paralela. Conceitos de Programação Orientada ao Objecto. João Luís Ferreira Sobral Departamento do Informática Universidade do Minho
Computação Paralela Conceitos de Programação Orientada ao Objecto João Luís Ferreira Sobral Departamento do Informática Universidade do Minho Setembro 2006 Revisão Conceitos de Programação Orientada ao
Leia maisSistemas Distribuídos e Paralelos
Sistemas Distribuídos e Paralelos Aula #6: Programação paralela em sistemas de memória compartilhada. ISUTIC - 2016 Eng. Alexander Rodríguez Bonet Aula de hoje Regiões paralelas. Cláusulas de âmbito. Partilha
Leia maisUniversidade Federal de Uberlândia Faculdade de Computação Programação Orientada a Objetos II Prof. Fabiano Dorça. Padrão Observer (Observador)
Universidade Federal de Uberlândia Faculdade de Computação Programação Orientada a Objetos II Prof. Fabiano Dorça Problema: Definir uma dependência um-para-muitos entre objetos, de forma quando o estado
Leia maisProgramação Orientada a Objectos - P. Prata, P. Fazendeiro
Variáveis e Métodos de Classe Em Java, quer as classes quer as instâncias das classes são objectos. Onde está o estado da classe? Com que operações é manipulado? UBI, Departamento de Informática T04-1
Leia mais(Aula 17) Threads em Java
(Aula 17) Threads em Java Difícil As Threads thread threads de emjava classificar sãogerenciadaspelajvm. podemser com user criadasdas thread ou kernel Profa. Patrícia A seguintesmaneiras: Fazendo extend
Leia maisOrientação a Objetos AULA 09
Orientação a Objetos AULA 09 Prof. Fabrício Martins Mendonça Conteúdo da Aula ü Coleções ü Coleções lista de objetos ü Coleções conjuntos 2 Coleções Podemos armazenar vários objetos em um array e este
Leia maisSistemas Distribuídos Aula 3
Sistemas Distribuídos Aula 3 Aula passada Processos IPC Características Ex. sinais, pipes, sockets Aula de hoje Threads Kernel level User level Escalonamento Motivação: Servidor Web Considere Servidor
Leia maisUniversidade Federal do Pará Instituto de Ciências Exatas e Naturais Faculdade de Computação
Universidade Federal do Pará Instituto de Ciências Exatas e Naturais Faculdade de Computação SISTEMAS OPERACIONAIS Aula 7 Regiane Kawasaki kawasaki@ufpa.br Slides adaptados da Profa. Sarita Mazzini Bruschi
Leia maisUNIVERSIDADE FEDERAL DE MATO GROSSO DO SUL SISTEMAS DE INFORMAÇÃO - CÂMPUS DE COXIM FUNDAMENTOS EM ORIENTAÇÃO A OBJETOS
Professor: Fernando Maia da Mota Orientações Básicas Leia atentamente as instruções para cada questão. A prova deverá ser feita a lápis ou caneta (preta ou azul) em uma folha de rascunho que será fornecida
Leia maisESQUEMA AULA PRÁTICA 0 Familiarização com o Ambiente de Desenvolvimento NetBeans Construção do primeiro programa em java.
P. Fazendeiro & P. Prata POO FP0/1 ESQUEMA AULA PRÁTICA 0 Familiarização com o Ambiente de Desenvolvimento NetBeans Construção do primeiro programa em java. 0 Iniciar o ambiente de desenvolvimento integrado
Leia maisINF1636 PROGRAMAÇÃO ORIENTADA A OBJETOS
INF1636 PROGRAMAÇÃO ORIENTADA A OBJETOS Departamento de Informática PUC-Rio Ivan Mathias Filho ivan@inf.puc-rio.br Programa Capítulo 9 Tratamento de Exceções Assertivas 1 Programa Capítulo 9 Tratamento
Leia maisINF1636 PROGRAMAÇÃO ORIENTADA A OBJETOS
INF1636 PROGRAMAÇÃO ORIENTADA A OBJETOS Departamento de Informática PUC-Rio Ivan Mathias Filho ivan@inf.puc-rio.br Programa Capítulo 3 Ponteiros e Variáveis de Objeto Construtores e Blocos de Inicialização
Leia maisConcorrência em Processos
Concorrência em Processos Anderson L. S. Moreira anderson.moreira@recife.ifpe.edu.br http://dase.ifpe.edu.br/~alsm Baseado nas aulas do professor Alberto Costa Neto da UFS 1 O que fazer com essa apresentação
Leia maisThread. Thread. Sistemas Operacionais. Leonard B. Moreira. UNIVERSIDADE ESTÁCIO DE SÁ fevereiro, / 41
Thread Sistemas Operacionais Leonard B. Moreira UNIVERSIDADE ESTÁCIO DE SÁ e-mail: leonardbarreto@gmail.com.br fevereiro, 2013 1 / 41 Sumário 1 Introdução 2 Ambientes Monothread 3 Ambientes Multithread
Leia maisINF1337 LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS
INF1337 LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS Departamento de Informática PUC-Rio Andrew Diniz da Costa andrew@les.inf.puc-rio.br Programa Capítulo 9 Tratamento de Exceções Assertivas Programa Capítulo
Leia maisSincronização. Cooperação entre Processos
Sincronização Parte II Programação Concorrente Cooperação entre Processos Vários processos executam em conjunto uma ou mais tarefas, nas quais Competem por recursos Indicam uns aos outros a: Ausência/existência
Leia maisLista 05 Herança. public class PessoaFisica extends Pessoa { private String RG; public PessoaFisica(){ super(); } public String getrg(){ return RG; }
Lista 05 Herança 1. Analisando a classe Java abaixo podemos observar que a mesma possui apenas um atributo, um construtor e dois métodos. Perceba que dentro do método main estão sendo invocados métodos
Leia maisINF1337 LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS
INF1337 LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS Departamento de Informática PUC-Rio Andrew Diniz da Costa andrew@les.inf.puc-rio.br Programa Capítulo 3 Ponteiros e Variáveis de Objeto Construtores
Leia maisModelagem Temporal com UML
Modelagem Temporal com UML! Tipo especial de diagrama de estados, onde são representados os estados de uma atividade, ao invés dos estados de um objeto.! Estados de Atividade: "Exemplo 1: passos de um
Leia maisSistemas Distribuídos INF
Sistemas Distribuídos INF2545 2015.1 alternativas p/ concorrência 1. multithreading várias linhas de execução compartilham globais com escalonamento preemptivo surgido de estudos de sistemas operacionais
Leia maisUtilização de threads em Java
Universidade Federal do Rio de Janeiro IM/DCC Utilização de threads em Java Prof. Austeclynio Pereira e-mail: austeclyniop@posgrad.nce.ufrj.br Ciclo de vida de uma thread nascimento start notify notifyall
Leia maisAula 08 Estruturas de Condição. Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes
Aula 08 Estruturas de Condição Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes http://www.profbrunogomes.com.br/ Agenda da Aula Entrada de Dados; Estruturas de Controle: Estrutura de Sequência;
Leia mais