Sistemas distribuídos. Grids e Clusters. Arquiteturas de SDs



Documentos relacionados
Sistemas Distribuídos

Sistemas Distribuídos

Sistemas Distribuídos

Modelos de Arquiteturas. Prof. Andrêza Leite

Projeto de Sistemas Distribuídos. Prof. Andrêza Leite

Sistemas Distribuídos

IMPLEMENTAÇÃO DE SOCKETS E THREADS NO DESENVOLVIMENTO DE SISTEMAS CLIENTE / SERVIDOR: UM ESTUDO EM VB.NET

Arquitetura dos Sistemas de Informação Distribuídos

Tópicos em Sistemas Distribuídos. Modelos de Comunicação

Faculdades Santa Cruz - Inove. Plano de Aula Base: Livro - Distributed Systems Professor: Jean Louis de Oliveira.

Introdução. Definição de um Sistema Distribuído (1) Definição de um Sistema Distribuído(2) Metas de Sistemas Distribuídos (2)

SIMULADOR DE ROTEAMENTO DE PACOTES (V. 3 20/05/2010)

Processos e Threads (partes I e II)

Sistemas Operacionais

Bancos de dados distribuídos Prof. Tiago Eugenio de Melo

Introdução ao Modelos de Duas Camadas Cliente Servidor

Curso de especialização em Teleinformática Disciplina Sistemas Distribuídos Prof. Tacla

UNIVERSIDADE. Sistemas Distribuídos

SISTEMAS DISTRIBUIDOS

Redes de Computadores

Udesc/Ceplan Bacharelado em Sistemas de Informação Sistemas Operacionais. Prof. Alexandre Veloso

Sistemas Distribuídos Capítulos 3 e 4 - Aula 4

4. Qual seria o impacto da escolha de uma chave que possua letras repetidas em uma cifra de transposição?

Carlos Eduardo Batista Centro de Informática - UFPB bidu@ci.ufpb.br

Arquitetura de Rede de Computadores

Comunicação Inter-Processos. Prof. Adriano Fiorese. Conceitos Iniciais

ARQUITETURA DE SISTEMAS DISTRIBUÍDOS. Aula 2- Aplicações distribuídas e TI VERDE

Sistemas Distribuídos. Introdução

Redes TCP/IP. Prof. M.Sc. Alexandre Fraga de Araújo. INSTITUTO FEDERAL DO ESPÍRITO SANTO Campus Cachoeiro de Itapemirim

Camadas de Serviço de Hardware e Software em Sistemas Distribuídos. Introdução. Um Serviço Provido por Múltiplos Servidores

Olho por olho, e o mundo acabará cego. Mohandas Gandhi

MODELO CLIENTE SERVIDOR

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064

Cursos da Escola de Engenharias e Ciências Exatas - UnP

Sistemas Distribuídos

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064

Considerações no Projeto de Sistemas Cliente/Servidor

Ciência de Computadores Sistemas Distribuídos e Móveis

Fundamentos de Banco de Dados

Sistemas Distribuídos

Princípios de Sistemas Distribuídos. Tecnologias utilizadas em sistemas distribuídos Aula 5

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064

3. Explique o motivo pelo qual os protocolos UDP e TCP acrescentam a informação das portas (TSAP) de origem e de destino em seu cabeçalho.

Sincronização e Comunicação entre Processos. Adão de Melo Neto

Sistemas Distribuídos

SISTEMAS DISTRIBUÍDOS

BANCO DE DADOS DISTRIBUÍDOS e DATAWAREHOUSING

SISTEMAS DISTRIBUÍDOS


REDES DE COMPUTADORES

Sistemas Operacionais

Capítulo 7 CAMADA DE TRANSPORTE

Visão do Usuário da DSM

Sistemas Operacionais

Introdução. Sistemas Distribuídos. Mas, o que é um sistema distribuído? Seriamente. Professor: Paulo Jorge Marques. Professora Práticas: Pinki Meggi

GERENCIADOR DE CORREIO ELETRÔNICO (V. 2 26/04/2010)

INTRODUÇÃO A REDES DE COMPUTADORES (DEFINIÇÕES) Prof. Msc. Hélio Esperidião

Licenciatura em Engenharia Informática Sistemas Distribuídos I 2ª chamada, 6 de Julho de º Semestre, 2004/2005

SISTEMAS DISTRIBUÍDOS

AULA Redes de Computadores e a Internet

Sistemas Distribuídos

SISTEMAS DISTRIBUÍDOS

Traceroute É uma ferramenta de diagnóstico que rastreia a rota de um pacote através de uma rede de computadores e que utiliza os protocolos IP e ICMP.

SISTEMAS OPERACIONAIS

Programação Concorrente

Sistemas Operativos. Threads. 3º ano - ESI e IGE (2011/2012) Engenheiro Anilton Silva Fernandes (afernandes@unipiaget.cv)

Sistemas Distribuídos. Ricardo Ribeiro dos Santos

USO GERAL DOS PROTOCOLOS SMTP, FTP, TCP, UDP E IP

Faculdade Lourenço Filho - ENADE

Exemplos práticos do uso de RMI em sistemas distribuídos

Notas da Aula 4 - Fundamentos de Sistemas Operacionais

Maestro. Arthur Kazuo Tojo Costa Universidade Federal de São Carlos Campus Sorocaba Bacharelado em Ciência da Computação

Sistemas Distribuídos

Departamento de Informática

Aula 03-04: Modelos de Sistemas Distribuídos

Ferramentas de Modelação e Análise de Sistemas baseadas em Redes de Petri (RdP)

Aula 30 - Sockets em Java

Grupo I [6v] Considere o seguinte extracto de um programa de definição de uma calculadora apenas com a função soma de dois valores reais

MC714 - Sistemas Distribuídos. Leandro Villas

Sistemas Distribuídos Grupos

Protocolo TCP/IP. Neste caso cada computador da rede precisa de, pelo menos, dois parâmetros configurados:

Informática I. Aula Aula 22-03/07/06 1

Arquitetura de Sistemas Operativos

Universidade Salgado de Oliveira

Sistemas Distribuídos

GERENCIADOR DE TRANSFERÊNCIA DE ARQUIVO (V. 3 17/03/2010)

PROJETO E IMPLANTAÇÃO DE INTRANETS 6 FTP

Até o final de década de 70, os sistemas operacionais suportavam apenas processos com um único thread;

Redes de Computadores I Licenciatura em Eng. Informática e de Computadores 1 o Semestre, 26 de Outubro de o Teste A

Curso de Aprendizado Industrial Desenvolvedor WEB

Sistema Operacional Correção - Exercício de Revisão

Sistemas Distribuídos

Transcrição:

UTFPR/Curitiba - Especialização em Teleinformática Sistemas Distribuídos (Prof. Tacla) EXERCÍCIOS Sistemas distribuídos * consultar slides 0010 1. Quais as diferenças entre um sistema distribuído e um sistema de computação paralela. 2. Transparência é um conceito fundamental em SDs. Dê exemplos de transparência em SDs. Grids e Clusters * Consultar links fornecidos nos slides responder as questões abaixo. O link do Condor contém informações mais detalhadas: http://www.cs.wisc.edu/condor 3. Sobre clusters, marque V ou F: ( ) são feitos normalmente com uma coleção de máquinas homogêneas em termos de software e hardware. ( ) é formado normalmente por uma coleção de máquinas geograficamente dispersas. ( ) é formado normalmente por uma coleção de máquinas fisicamente próximas. ( ) é bastante utilizado na execução tarefas complexas que podem ser decompostas em tarefas menores cujos resultados parciais podem ser obtidos de forma independente e, posteriormente, coletados para compor o resultado final. ( ) é sinônimo de grid. 4. O que é High-Throughput computing? 5. O que é High-Performance computing? 6. Quais tarefas realiza um software de gerenciamento de carga (workload management)? 7. Cite exemplos de aplicações que se beneficiam de grids e clusters. Arquiteturas de SDs *consultar slides 0020 8. Cite 2 exemplos de sistemas que rodam numa arquitetura cliente-servidor e classifique a mesma em mono-servidor, multi-servidores (em cadeia, replicados), com código móvel ou código móvel tipo push. 9. Diferencie arquiteturas cliente-servidor de arquiteturas peer-to-peer em relação aos papéis desempenhados pelos componentes, funcionamento do sistema e canais de comunicação entre componentes. 10. Qual arquitetura você utilizaria para implementar um sistema distribuído para atender a seguinte situação: Uma fábrica é composta por três unidades de igual capacidade produtiva. Cada unidade está numa cidade e possui seu próprio sistema de controle de produção. No início do dia, a matriz passa para todas as unidades a quantidade total a ser produzida no dia. As filiais, ao longo do dia, se comunicam para não ultrapassar ou ultrapassar o mínimo possível a produção total indicada pela matriz. A cada 2 horas as unidades devem estar cientes das quantidades produzidas pelas outras. Assim, uma unidade pode estimar quanto produzir conhecendo a quantidade produzida até o momento pelas outras unidades. As unidades devem comunicar a matriz que a meta foi alcançada ao atingirem a meta de produção diária. Exemplo: Matriz passa total a ser produzido no início do dia = 100. As unidades estimam produzir 33 produtos (100/3)

Passadas duas horas, unidade 1 produziu 5, unidade 2, 6 e unidade 3, 4, totalizando 15 produtos. Restam, portanto, 85 a serem feitos. Cada uma das unidades faz nova estimativa até o final do dia: 85/3 = 28 produtos. Computação em Nuvem LEITURA E RESENHA DE ARTIGO: A VIEW OF CLOUD COMPUTING * referência bibliográfica Michael Armbrust, Armando Fox, Rean Griffith, Anthony D. Joseph, Randy Katz, Andy Konwinski, Gunho Lee, David Patterson, Ariel Rabkin, Ion Stoica, and Matei Zaharia. 2010. A view of cloud computing. Commun. ACM 53, 4 (April 2010), 50-58. * link para o artigo: Doi:10.1145/1721654.1721672 http://doi.acm.org/10.1145/1721654.1721672 * A FAZER: Ler o artigo acima e fazer uma resenha, salientando os pontos vistos em sala de aula relativos à arquitetura de sistemas distribuídos, principalmente, comparar CLOUD COMPUTING com HIGH- THROUGHPUT COMPUTING e HIGH-PERFORMANCE COMPUTING Programação distribuída * consultar slides 0030 11. O que são threads? 12. Com base nos exemplos abaixo, explique as operações YIELD, SLEEP e JOIN que podem ser feitas sobre threads: http://www.dainf.ct.utfpr.edu.br/~tacla/javarepositorio/jthreads/jthreadcontadoras i) Baixe o arquivo JThreadContadoras.jar em uma pasta ii) Execute o cmd e se posicione na pasta iii) Execute no prompt: java jar JThreadContadoras.jar no exemplo das threads contadoras, examine o funcionamento do YIELD fazendo: java jar JThreadContadoras.jar YIELD no exemplo das threads contadoras, examine o funcionamento do SLEEP fazendo java jar JThreadContadoras.jar NO 2000, sendo que 2000 significa 2000ms. no exemplo das threads contadoras, examine o funcionamento do JOIN fazendo java jar JThreadContadoras.jar NO 2000 JOIN 13. Observe a prioridade entre threads no exemplo das threads contadoras java jar JThreadContadoras.jar OFF 0 OFF 1 10 1 é a prioridade da primeira thread 10 é a proridade da segunda thread 14. Considere um simulador de corridas de fórmula 1 que simula uma disputa entre dois pilotos: Schumacker e Barrichelo. Cada carro funciona de forma independente

O tempo de cada volta é dado por um valor randômico. O programa deve esperar por este tempo sem fazer nada para então iniciar a próxima volta Ao final da corrida (quando os dois carros completam 5 voltas), o simulador mostra o tempo acumulado para cada um dos pilotos e aponta o vencedor ou empate. Responda: que comandos da linguagem Java você utilizaria para resolver cada um dos itens acima? Problemas de concorrência *Slides 0030 15. O que é seção/região crítica de um processo? 16. Explique o que são os problemas de leitura suja e atualização perdida com base no exemplo que segue. Suponha que há duas entradas controladas por roletas. Cada roleta conta individualmente o número de passantes e atualizam um contador central conforme a figura. Rode o.jar disponível no link abaixo e observe que o valor do contador central não bate com a soma dos contadores individuais. Dê uma explicação contextualizada neste exemplo. http://www.dainf.ct.utfpr.edu.br/~tacla/javarepositorio/jthreads/jraceconditionroletas 17. Sobre programação concorrente, marque V ou F: ( ) Vivacidade é uma propriedade desejável para os programas multithread. ( ) Deadlock (impasse) é solucionável com algoritmos de exclusão mútua. ( ) Leitura suja é um problema que pode ocorrer quando dois processos executando de forma concorrente lêem uma área de memória compartilhada num momento indevido. ( ) Atualização perdida é um problema que pode ocorrer quando um processo seqüencial esquece de salvar uma alteração por um erro de lógica de programação. ( ) Starvation (inanição) significa que um processo, embora vivo, nunca consiga ganhar acesso uma região crítica (recurso) por ser eternamente postergado. ( ) Exclusão mútua é uma propriedade desejável para recursos críticos e significa que dois ou mais processos podem acessar o recurso ao mesmo tempo. ( ) Deadlock ocorre quando os processos de um SD entram numa espera eterna por um ou mais recursos que jamais obterão. ( ) Um banco de dados que não garanta transações atômicas (acesso exclusivo a um objeto para atualizá-lo) pode produzir resultados errados se duas transações tentarem modificá-lo ao mesmo tempo. ( ) Threads são processos 18. Liste três técnicas ou mecanismos que garantem acesso exclusivo a um recurso crítico. 19. Compare o tempo de execução dos programas da roleta. O primeiro não tem controle de exclusão mútua e, o segundo, tem. JAVARepositorio\JThreads\JRaceConditionRoletas JAVARepositorio\JThreads\JRaceConditionRoletasSol

20. Para solucionar o problema de deadlock dos filosófos basta coordenar suas ações (não é preciso nenhum algoritmo específico). Ou seja, basta que um e apenas um deles pegue os pauzinhos na ordem inversa dos demais. Verificar se a solução apresentada funciona para 4 filósofos sendo o f2 aquele que pega na ordem invertida. Represente em um diagrama de sequência um cenário na qual os filosófos tentam pegar os pauzinhos ao mesmo tempo. 21. Utilizando o editor de redes de Petri abaixo, construa um modelo para coordenação de acesso a um buffer (problema produtor-consumidor) onde há 3 produtores, um buffer com capacidade de 7 mensagens e um consumidor. http://www.informatik.uni-hamburg.de/tgi/petrinets/tools/java/guth/ SOCKETS *slides 0050 22. É CORRETO afirmar que um sistema construído com base em SOCKETS UDP é indicado para: ( ) Difusão de fluxo contínuo de áudio em tempo real ( ) Videoconferência ( ) FTP ( ) Difusão de fluxo contínuo de vídeo tempo real. ( ) Chat 23. Sobre SOCKETS UDP, marque V ou F: ( ) ora pode enviar dados pelo TCP ora pelo UDP. ( ) envia datagramas sem manter o estado da conexão. ( ) envia datagramas mantendo o estado da conexão. ( ) pode funcionar em modo conectado, enviando dados somente ao socket UDP ao qual ele se conectou. ( ) Pode funcionar em modo promíscuo, mandando dados a qualquer outro socket UDP. 24. Sobre sockets TCP, marque V ou F: ( ) utilizam o conceito de stream (fluxo contínuo) de dados. ( ) o programador não precisa se preocupar com o tamanho das mensagens a serem enviadas, pois o TCP se encarrega de segmentar o stream do buffer de saída. ( ) implementam um canal de comunicação confiável onde os datagramas chegam na ordem correta. ( ) podem ser utilizados para fazer multicast. ( ) em relação aos sockets UDP, apresentam maior overhead de comunicação notadamente devido ao handshake de início de comunicação. 25. 4. Um sistema construído com base em sockets de multicast é indicado para (marque V ou F): ( ) Difusão de fluxo contínuo de áudio em tempo real ( ) Videoconferência ( ) FTP ( ) Difusão de fluxo contínuo de vídeo tempo real. ( ) Chat 26. Faça uma tabela comparativa com os métodos disponíveis aos programadores para construírem na linguagem JAVA sistemas distribuídos com sockets TCP, UDP e MULTICAST. SOCKET UDP TCP MULTICAST

27. Em linhas gerais, como deve funcionar um programa servidor capaz de atender até 3 clientes simultaneamente? 28. Como você faria para que uma comunicação interprocessos por sockets UDP tratasse perda de datagramas para se tornar mais confiável? Sistemas multiagentes x Web Services 29. Ler o artigo e fazer uma resenha, salientando os pontos vistos em sala de aula: WEB SERVICES FROM AN AGENT PERSPECTIVE, disponível em: http://dx.doi.org/10.1109/mis.2008.37 (ACESSÍVEL SOMENTE NA UTFPR ou através do proxy da UTFPR). Middleware *slides 0070 30. O que é middleware em sistemas distribuídos (basicamente, qual a sua função)? 31. O que é invocação remota de métodos (RMI) e como funciona?