Buscar

Introdução à programação paralela e distribuída

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Introdução à programação paralela e distribuída
Exercícios
1. A programação paralela e distribuída permite tirar proveito do paralelismo
oferecido pelas arquiteturas onde elas se executam. A diferença da programação
paralela e da distribuída está na arquitetura onde é executada.
Sobre essa afirmação, é correto afirmar que:
Você acertou!
E. a programação distribuída se baseia em processos.
Por   ser   distribuída,   ou   seja,   consistir   de   máquinas   com   memória   distribuída, a
programação distribuída se dá unicamente por meio de processos. Já   a
programação   paralela,   que   ocorre   em   memória   compartilhada,   pode   ser   feita   com
processos e com threads.
2. A programação paralela e distribuída tem como parte fundamental para alcançar
o paralelismo a forma como os processos ou threads vão se comunicar. Portanto, a
comunicação é parte fundamental da programação paralela e distribuída.
Com relação à comunicação, é correto afirmar que:
Você acertou!
E. a comunicação de programas distribuídos ocorre pela troca de mensagens.
A comunicação de programas distribuídos ocorre apenas pela troca de
mensagens, pois são máquinas distribuídas, cada uma com sua própria memória local.
Já programas paralelos, por estarem numa única máquina com memória compartilhada,
podem se comunicar pela troca de mensagens ou por memória compartilhada.
3. A programação paralela tem uma série de plataformas para sua implementação
em diversas linguagens. Qual das alternativas a seguir se refere a uma plataforma
exclusiva de programação paralela?
Você acertou!
C. OpenMP.
OpenMP é uma plataforma construída especificamente para programação paralela
em arquiteturas de memória compartilhada.
PVM é uma biblioteca utilizada para trocar mensagens entre processos num ambiente
distribuído, assim como o MPI, um padrão definido pela academia e indústria para uma
interface de programação.
Já  Spark   e  Hadoop   são   plataformas   distribuídas   para   o   processamento   paralelo   de
grandes volumes de dados.
4. A programação paralela e distribuída é feita principalmente por dois conceitos
básicos: processos e threads.
Sabe-se que processos são mais pesados que threads. Por que isso acontece?
Resposta correta.
E. Threads vivem dentro de um processo já existente e têm acesso à sua memória.
Threads são mais leves do que processos, pois pertencem a um processo já
inicializado e já têm um endereçamento de memória alocado para ele.
Essas threads têm acesso ao endereçamento de memória de forma compartilhada, por
isso são mais leves, pois inicializam muito mais rápido. Threads não são mais rápidas por
alocar menos memória; na verdade não alocam memória, e sim processos.
Processos não se comunicam apenas pela troca de mensagens. Threads se comunicam
pela memória compartilhada, mas não é esse o motivo que as deixa mais leves.
Processos não necessariamente realizam mais comunicações do que threads.
5. Em programação paralela, o principal meio de comunicação
entre threads/processos é a memória compartilhada.
Qual das técnicas a seguir pode ser utilizada para controlar a concorrência em
memória compartilhada?
Você acertou!
D. Locks.
Na programação paralela com memória compartilhada, a técnica utilizada para
controlar a concorrência são os locks, que controlam o acesso a recursos, evitando
que dois processos/threads acessem um recurso ao mesmo tempo.
A   troca   de   mensagens   se   relaciona   a   outra   técnica   de   comunicação   entre
processos. Heartbeats são   uma   técnica   de   comunicação   em   sistemas   distribuídos.
Particionamento de dados e tarefas diz respeito à forma como o paralelismo vai ocorrer.
	Introdução à programação paralela e distribuída
	Exercícios

Continue navegando

Outros materiais