ine 5645 programação paralela e distribuída - inf.ufsc.br...

Download INE 5645 Programação Paralela e Distribuída - inf.ufsc.br bosco/ensino/ine5645/Unidade1_urian.pdf ·…

Post on 13-Dec-2018

212 views

Category:

Documents

0 download

Embed Size (px)

TRANSCRIPT

INE 5645 Programao Paralelae Distribuda

Prof. Joo Bosco M. SobralINE - UFSC

bosco@inf.ufsc.br

Urian K. BardemakerPPGCC - INE - UFSCuriank@gmail.com

Contedo Programtico da Disciplina

1. Introduo

2. Programao Paralela

3. Controle de Concorrncia

4. Programao Distribuda

5. Comunicao entre processos

Atividades da Disciplina

Avaliao

2 Provas tericas (P1 e P2);

4 Atividades de laboratrio (LAB1 a 4);

1 Projeto final (PROJ).

MT = (P1 + P2)/2

Se MT < 6,00; ((P1+P2)/2)+PR)/2.

MP = (LAB1 + LAB2 + LAB3 + LAB4 + 2 * PROJ)/6

Se MT e MF > 6,00; MF = (MT + MP)/2

Referncias Bibliogrficas ANDREWS, G. R., Concurrent Programming, Benjamin-Cummings,

1991.

COULOURIS, George; DOLLIMORE, Jean; KINDBERG, Tim. DistributedSystems: -Concepts and Design. 3rd Edition. Addison-Wesley, 2001.

DEA, Doug; Concurrent Programing in Java, 2nd Ed., Addison-Wesley, 2000.

DEITEL, Harvey M.; DEITEL, Paul J. Java: Como Programar. 4a Edio. Bookman, 2002.

HORSTMANN, Cay S.; CORNELL, Gary. Core Java 2. Vol I e II. MakronBooks, 1999

Recursos

Software

Java JDK

Pgina da disciplina

http://www.inf.ufsc.br/~bosco/

http://www.inf.ufsc.br/~lau.lung/INE5645/

Lista de e-mails

UNIDADE I

INTRODUO PROGRAMAO

PARALELA E DISTRIBUDA

Tpicos

Histria

Programao Concorrente

Programao Paralela e Distribuda

Vantagens e Dificuldades

Plataformas de Execuo

Suporte Computacional

Histria

O campo da programao paralela e distribuda surgiu do campo da programao concorrente.

O campo da Programao Concorrente iniciou uma explosiva expanso desde:

Histrico

1968 E. W. Dijkstra: Cooperando Processos Seqenciais.

1971 E. W. Dijkstra: Ordem hierrquica de processos seqenciais.

1973 C. L. Liu e J. W. Layland : Algoritmos de escalonamento para multiprogramao em ambiente de tempo real.

E.W. Dijkstra

Histrico

1974 C. A. R. Hoare: Monitores - conceito para estruturar sistemas operacionais.

1974 Lamport: Uma nova soluo parao problema da programao concorrente de Dijkstra.

Leslie Lamport

Histrico

1976 J. H. Howard: Provando monitores.

1976 S. Owicki e D. Gries: Verificando propriedades de programas paralelos: uma abordagem axiomtica.

1977 P. Brinch Hansen: A arquitetura deprogramas concorrentes.

P. Brinch Hansen

Histrico

1978 C. A. R. Hoare: Comunicao deProcessos Sequenciais.

1978 E. W. Dijkstra, L. Lamport, A. J. Martin, C. S. Sholtene E. F. M. Steffens: Um exerccio em cooperao para garbage collection.

1980 E. W. Dijkstra e C. S. Sholten: Deteco e terminao.

C. A. R. Hoare

Histrico

1981 G. Ricart e A. Agrawala: Um algoritmo timo pra excluso mtua distribuda.

1981 G. L. Peterson: O problema da excluso mtua.

1982 J. Misra e K. M. Chandy: Deteco de terminao em Communicating Sequencial Processes.

Histrico

1983 G. L. Peterson: Uma nova soluo para o prolema de programao concorrente de Lamport usando variveis compartilhadas.

1983 DoD, USA: Linguagem de Programao Ada.

1985 D. Gelernter: A Linguagem Linda

David Gelernter

O que Programao Concorrente

Um programa ordinrio consiste de declaraes de dados e instrues executveis em uma linguagem de programao.

M. Ben-Ari, Principles of Concurrent andDistributed Programming

O que Programao Concorrente

As instrues so executadas sequencialmente sobre um computador, o qual aloca memria para reter os dados do programa.

Um programa concorrente um conjunto de programas sequenciais ordinrios os quais so executados em uma abstrao de paralelismo.

O que Programao Concorrente

Usamos a palavra processo para programas sequenciais e reservamos a palavra programa para o conjunto de processos.

Pseudo-Paralelismo

Um programa concorrente executado por se compartilhar o poder de processamento de um nico processador entre os processos desse programa.

Abstrao para Concorrncia

O paralelismo abstrato porque no requeremos que um processador fsico seja usado para executar cada processo.

Exemplos de Concorrncia

Sobreposio de I/O e Computao (Overlapped I/O andComputation)

Multiprogramao (Multi-programming)

Multi-tarefao (Multi-Tasking)

Sobreposio de I/O e Computao

Controlar I/O no pode ser feito em paralelo com outra computao sobre um nico processador.

Mas possivel, fazer concorrentemente, retirando da computao principal, alguns microsegundos necessrios para controlar I/O.

Sobreposio de I/O e Computao

Entretanto, mais simples programar os controladores de I/O como processos separados, os quais so executados em paralelo com o processo de computao principal.

Multiprogramao

Uma simples generalizao de sobreposio de I/O dentro de um nico programa sobrepor a computao e I/O de diversos programas.

Multiprogramao

a execuo concorrente de diversos programas / processos independentes sobre um processador.

Time-Slicing

Fatia de tempo.

Compartilhar o processador entre diversas computaes de processos.

Ao contrrio do que um processo esperar para o trmino de uma operao de I/O, o processador compartilhado atravs de um hardware (timer) usado para interromper uma computao de um processo em intervalos pre-determinados.

Time-Slicing

Um programa do SO chamado scheduler executado para determinar qual processo deve ser permitido executar no prximo intervalo.

O Scheduler pode levar em considerao, prioridades dos processos.

Interactive Time-Sharing Systems

Usam multiprogramao com time-sliced, para dar a um grupo de usurios a iluso que cada um tem acesso a um computador dedicado.

Multi-Tasking

Resolvendo um problema por decomposio, dentro de diversos processos concorrentes.

Correo de um programa concorrente

Por causa das possveis interaes entre os processosque compreendem um programa concorrente difcil escrever um programa concorrente correto.

Para interagirem, processos precisam se sincronizar e se comunicar diretamente ou no.

Correo de um programa concorrente

Programao concorrente pode expressar a concorrnciarequerida, provendo instrues de programao para a sincronizao e comunicao entre processos.

Ferramentas de Correo

Um programador pode ser totalmente confundido pelo comportamento que um programa concorrente pode exibir.

Ferramentas so necessrias para especificar, programare verificar propriedades desses programas.

Programao Concorrente

Estuda a abstrao que usada (sequncias de instrues atmicas de execuo intercalada.

Define o que significa um programa concorrente ser correto e introduz os mtodos usados para provar correo.

Programao Concorrente

Trata as primitivas e as estruturas de programao concorrente clssicas:

Semforos

Monitores

Threads

Panorama Atual

Poder de processamento das mquinas vem crescendo rapidamente.

Grande parte das mquinas so interligadas em rede.

Sistemas e aplicaes esto cada vez mais complexos:

- Funcionalidade, Interfaceamento grfico, Comunicao, ...- Maior carga, Maior nmero de usurios, ...

- Melhor tempo de resposta, Maior confiabilidade

Programao Paralelae Distribuda

Programao Paralela

uma forma de computao em que vrios clculos so realizados simultaneamente, operando sob o princpio de que grande problemas geralmente podem ser divididos em problemas menores, que ento so resolvidos concorrentemente (em paralelo)

Consiste em executar simultaneamente vrias partes de um mesmo programa.

Tornou-se possvel a partir do desenvolvimento de sistemas operacionais multi-tarefa, multi-thread e paralelos.

Programao Paralela

Aplicaes so executadas paralelamente:

Em um mesmo processador (pseudo-paralelismo).

Em uma mquina multiprocessada.

Em um grupo de mquinas interligadas que se comporta como uma s mquina.

Programao Distribuda

Coleo de computadores independentes que se apresenta ao usurio como um sistema nico e consistente.

Andrew Tanenbaum

Coleo de computadores autnomos interligados atravs de uma rede de computadores e equipados com software que permita o compartilhamento dos recursos do sistema: hardware, software e dados

George Coulouris

Programao Distribuda

Aplicaes so executadas em mquinas diferentes interligadas por uma rede:

Intranets

Internet

Outras redes pblicas ou privadas

Diferenas

Acoplamento

Sistemas paralelos so fortemente acoplados:

compartilham hardware ou se comunicam atravs de um barramento de alta velocidade.

Sistemas distribudos so fracamente acoplados:

no compartilham hardware e se comunicam atravs de uma rede.

Diferenas

Previsibilidade

O comportamento de sistemas paralelos mais previsvel.

J os sistemas distribudos so mais imprevisveis devido ao uso da rede e a falhas.

Diferenas

Influncia do Tempo

Sistemas distribudos so bastante influenciados pelo tempo de comunicao pela rede; em geral no h uma referncia de tempo global.

Em sistemas paralelos o tempo de troca de mensagens pode ser desconsiderado.

Diferenas

Controle

Em geral em sistemas parale

Recommended

View more >