Programação Paralela e Distribuída

Documentos relacionados
Programação Concorrente

INE 5645 Programação Paralela e Distribuída

Bancos de Dados Distribuídos. Bancos de Dados Distribuídos. Conteúdo. Motivação. Motivação. Introdução aos BDs Distribuídos.

AULA 06: PROGRAMAÇÃO EM MÁQUINAS PARALELAS

Sistemas Operacionais. Visão Geral

SISTEMAS DISTRIBUÍDOS

Curso: Redes de Computadores

Sistema Distribuído. Sistema Distribuído. Aplicações Distribuídas. Conceitos Básicos

Aula 2: Tipos de Sistemas Operacionais. Instituto Federal da Bahia Campus Salvador INF009 - Sistemas Operacionais Profª Flávia Maristela

Introdução aos Sistemas Operacionais

Características de Sistemas Distribuídos

Introdução à Ciência da Computação

Arquitetura de Computadores Paralelos. Introdução Conceitos Básicos Ambientes de Programação Modelos de Programação Paralela

Sistemas Operacionais. Prof. Fabio Augusto Oliveira

Apresentação. Ementa da Disciplina. Objetivo da Disciplina. DCA-108 Sistemas Operacionais. Referências Bibliográfica. Referências Bibliográfica

Características de Sistemas Distribuídos

30/5/2011. Sistemas computacionais para processamento paralelo e distribuído

Conceitos de Sistemas Distribuídos

Sistemas Distribuídos. Plano de Curso. Plano de Curso 04/03/12 ! EMENTA:

Sistema Operacional. Prof. Leonardo Barreto Campos. 1/30

Sistemas Operacionais - Aula 02

Arquitetura de Computadores. Processamento Paralelo

Componente de aplicação. Figura 1 - Elementos funcionais de uma aplicação sendo executados de forma distribuída

INFORMÁTICA: Informação automática

Sistemas Distribuídos

Sistemas Operacionais. Introdução

Processos ca 3 pítulo

Sistemas Operacionais (SO)

Estrutura dos Sistemas Operacionais. Adão de Melo Neto

Sistemas Distribuídos

Prof. Gregorio Perez 2007

Sistemas Operacionais Aula 3

Estruturas de Sistemas Operacionais

Tecnólogo em Análise e Desenvolvimento de Sistemas. Sistemas Operacionais (SOP A2)

Desenvolvimento de Aplicações Distribuídas

Tipos de Sistemas Operacionais

Sistemas Distribuídos Aula 3

Sistemas Distribuídos

Introdução a Sistemas Operacionais. Adão de Melo Neto

SISTEMAS OPERACIONAIS

Sistemas Distribuídos

Thread. Thread. Sistemas Operacionais. Leonard B. Moreira. UNIVERSIDADE ESTÁCIO DE SÁ fevereiro, / 41

Sistemas Distribuídos

AULA Nº 08 SISTEMAS OPERACIONAIS. Threads

Fundamentos de Sistemas Operacionais de Arquitetura Aberta. CST em Redes de Computadores

Parte I Multiprocessamento

Caracterização de Sistemas Distribuídos

CP Introdução à Informática Prof. Msc. Carlos de Salles

Sistemas Multiprogramáveis/Multitarefa

1- Confiabilidade ( 2 ) Proteção contra perdas e estragos. 2- Integridade ( 3 ) Proteção contra interferência de cortes de funcionamento

Sistemas distribuídos. Prof. Emiliano Monteiro

Sistemas Distribuídos. Edy Hayashida

Estrutura dos Sistemas Operacionais. Adão de Melo Neto

Sistemas Distribuídos

Sistema de Software Distribuído

Fundamentos de Sistemas Operacionais

PROVA 03/07 Segunda-feira (semana que vem)

A IMPORTÂNCIA DE THREADS NO DESEMPENHO DE APLICAÇÕES

Roteiro... Sistemas Distribuídos Aula 4. Troca de mensagens. Comunicação entre processos. Conceitos de SD, vantagens e desvantagens

Sistemas Operacionais. Tipos de SO

Redes de Computadores. Fundamentos de Sistemas Operacionais - 2º Período

Threads. Sistemas Operacionais. Charles Tim Batista Garrocho. Instituto Federal de São Paulo IFSP Campus Campos do Jordão. charles.garrocho.

Aula 2. Prof: Carlos Eduardo de Carvalho Dantas

Sistemas Operacionais. Sistema de entrada e Saída

Computação Distribuída

Sistemas Operacionais Distribuídos

Fundamentos de Sistemas Operacionais

2. Conceitos Básicos. Introdução à Ciência da Computação.

O que é um sistema distribuído?

AULA 03: PROCESSAMENTO PARALELO: MULTIPROCESSADORES

Processos e Threads e em sistemas distribuídos. Prof. Me. Hélio Esperidião

Estrutura do Sistema Operacional

ARQUITETURA DE SISTEMAS OPERACIONAIS. VISÃO GERAL DE UM SISTEMA OPERACIONAL Prof. André Luís Alves E. M. DR. LEANDRO FRANCESCHINI

Transcrição:

INE 5645 Programação Paralela e Distribuída Professor: Lau Cheuk Lung (turma A) INE UFSC lau.lung@inf.ufsc.br Conteúdo Programático 1. Introdução 2. Programação Paralela 3. Controle de Concorrência 4. Programação Distribuída 5. Comunicação entre Processos Recursos Computacionais Software J2SE SDK Página da disciplina http://www.inf.ufsc.br/~lau.lung/ine5645 Lista de e-mails ine5645-0538a@inf.ufsc.br Unidade 1 Introdução à Programação Paralela e Distribuída Programação Paralela e Distribuída Vantagens e Dificuldades Panorama Atual Onde estamos no curso? Poder de processamento das máquinas vem crescendo rapidamente Programação Paralela e Distribuída Grande parte das máquinas interligada por redes de computadores Sistemas e aplicações estão cada vez mais complexos Funcionalidade, Interfaceamento gráfico, Comunicação, Maior carga, Maior número de usuários, Melhor tempo de resposta, Maior confiabilidade Aplicações Computação Distribuída Prog. Paralela e Distribuída Sistemas Operacionais Redes de Computadores 5 6 1

O que é? Programação Paralela Consiste em executar simultaneamente várias partes de uma mesma aplicação Tornou-se possível a partir do desenvolvimento de sistemas operacionais multi-tarefa, multi-thread e paralelos Um sistema de computação paralelo é um computador com mais de um processador para processamento paralelo. Aplicações são executadas paralelamente: Em um mesmo processador Em uma máquina multiprocessada Em um grupo de máquinas interligadas que se comporta como uma só máquina 7 Programação Distribuída O que é? Consiste em executar aplicações cooperantes em máquinas diferentes Tornou-se possível a partir da popularização das redes de computadores Aplicações são executadas em máquinas diferentes interligadas por uma rede Intranets Internet Outras redes públicas ou privadas 8 Acoplamento Sistemas paralelos são fortemente acoplados: compartilham hardware ou se comunicam através de um barramento de alta velocidade Sistemas distribuídos são fracamente acoplados Previsibilidade O comportamento de sistemas paralelos é mais previsível; já os sistemas distribuídos são mais imprevisíveis devido ao uso da rede (AP, Hub, Switch, Roteadores, Firewall, etc.) e a falhas Internet 9 10 Influência do Tempo Sistemas distribuídos são bastante influenciados pelo tempo de comunicação pela rede; em geral não há uma referência de tempo global Em sistemas paralelos o tempo de troca de mensagens pode ser desconsiderado Controle Em geral em sistemas paralelos se tem o controle de todos os recursos computacionais; já os sistemas distribuídos tendem a empregar também recursos de terceiros 11 Vantagens Usam melhor o poder de processamento Apresentam um melhor desempenho Permitem compartilhar dados e recursos Podem apresentar maior confiabilidade Permitem reutilizar serviços já disponíveis Atendem um maior número de usuários 12 2

Dificuldades Desenvolver, gerenciar e manter o sistema Controlar o acesso concorrente a dados e a recursos compartilhados Evitar que falhas de máquinas ou da rede comprometam o funcionamento do sistema Garantir a segurança do sistema e o sigilo dos dados trocados entre máquinas Lidar com a heterogeneidade do ambiente 13 Platafomas de Execução Um S.O. multitarefa permite simular o paralelismo em um único processador, alternando a execução de processos P3 P2 P4 P1 P5 Escalonador N1 P6 Platafomas de Execução Um processador com núcleo múltiplo permite paralelismo real entre processos, executando múltiplas instruções por ciclo Uma Placa-Mãe Multiprocessador permite que cada processador execute um processo Um Cluster é uma solução de baixo custo para processamento de alto desempenho Computação Distribuída é possível em redes, como numa Intranet e na Internet 3

Suportes para Computação Paralela e Distribuída devem fornecer: Mecanismos para execução paralela ou distribuída de programas Mecanismos para controle de concorrência Mecanismos para comunicação entre processos / threads paralelos / distribuídos Ferramentas e mecanismos para desenvolvimento, testes, gerenciamento, controle, segurança, tolerância a faltas, etc. Suporte para Computação Paralela Sistemas Operacionais Multi-Tarefa: permitem a troca de contexto entre processos / threads. Ex.: Windows, Linux, Solaris, HP-UX, AIX, etc. Linguagens Multi-Tarefa: permitem escrever programas paralelos. Ex.: Pascal FC, Java, etc. Sistemas Operacionais Paralelos: permitem usar vários processadores em uma máquina. Ex.: Linux, Solaris, Windows, etc. Suportes para Programação Paralela: permitem criar uma máquina paralela virtual. Ex.: PVM 19 20 Sist. Operacionais / Linguagens Multi-tarefa Sistemas Operacionais Paralelos Máquina P1 Máquina paralela P3 P2 P4 P5 P6 / Linguagem Multi-tarefa Escalonador Paralelo Processador N1 Processador 1 Processador N 21 22 Suportes para Computação Paralela Máquina virtual paralela Linguagem / Suporte para Computação Paralela 23 Suporte para Computação Distribuída APIs e Bibliotecas: fornecem rotinas para comunicação entre processos Ex.: UNIX Sockets, WinSock, java.net, etc. Middleware para Programação Distribuída: fornece suporte para criar / executar programas distribuídos. Ex.: CORBA, JavaRMI, COM, etc. Servidores de : permitem o acesso a aplicações via rede. Ex.: Tomcat, JBoss, etc. Linguagens e sistemas operacionais distribuídos caíram em desuso por não suportarem heterogeneidade de ambiente 24 4

APIs e Bibliotecas para Comp. Distribuída Middleware para Programação Distribuída API / Biblioteca API / Biblioteca Middleware para Programação Distribuída Servidor de Servidor de 27 5