Você está na página 1de 10

Questão 1/5 - Computação Paralela

if (ArquivoExiste("arquivo.txt")) {
EscreverDados("arquivo.txt");
}

Sobre o código acima analise as afirmações a seguir:

I. Mesmo que múltiplas threads interajam com o "arquivo.txt" os resultados


deste código acima sempre serão consistentes pois temos o comando if
antes da escrita.

II. Eventuais condições de corrida que podem afetar o código acima seriam
evitadas com o uso de mutex.

III. Caso múltiplas threads executem o código acima é possível gerar um


deadlock.
É correto apenas o que se afirma em

Nota: 0.0

A II apenas.
Considerando o conteúdo da aula 3.

(FALSO) I. Mesmo que múltiplas threads interajam com o "arquivo.txt" os resultados deste có
temos o comando if antes da escrita.
- Pode ocorrer uma falha caso depois da validação do if, mas antes da execução do método outra thre

(CORRETO) II. Eventuais condições de corrida que podem afetar o código acima seriam evitad
- Garantia de que somente uma thread modifique o arquivo.txt evitaria eventuais inconsistências por
(FALSO) III. Caso múltiplas threads executem o código acima é possível gerar um deadlock.
- Condições de corrida podem ocorrer, mas não deadlocks

B III apenas.
Considerando o conteúdo da aula 3.

(FALSO) I. Mesmo que múltiplas threads interajam com o "arquivo.txt" os resultados deste có
temos o comando if antes da escrita.
- Pode ocorrer uma falha caso depois da validação do if, mas antes da execução do método outra thre

(CORRETO) II. Eventuais condições de corrida que podem afetar o código acima seriam evitad
- Garantia de que somente uma thread modifique o arquivo.txt evitaria eventuais inconsistências por
(FALSO) III. Caso múltiplas threads executem o código acima é possível gerar um deadlock.
- Condições de corrida podem ocorrer, mas não deadlocks

C I e II apenas.
Considerando o conteúdo da aula 3.

(FALSO) I. Mesmo que múltiplas threads interajam com o "arquivo.txt" os resultados deste có
temos o comando if antes da escrita.
- Pode ocorrer uma falha caso depois da validação do if, mas antes da execução do método outra thre

(CORRETO) II. Eventuais condições de corrida que podem afetar o código acima seriam evitad
- Garantia de que somente uma thread modifique o arquivo.txt evitaria eventuais inconsistências por
(FALSO) III. Caso múltiplas threads executem o código acima é possível gerar um deadlock.
- Condições de corrida podem ocorrer, mas não deadlocks

D II e III apenas.
Considerando o conteúdo da aula 3.

(FALSO) I. Mesmo que múltiplas threads interajam com o "arquivo.txt" os resultados deste có
temos o comando if antes da escrita.
- Pode ocorrer uma falha caso depois da validação do if, mas antes da execução do método outra thre

(CORRETO) II. Eventuais condições de corrida que podem afetar o código acima seriam evitad
- Garantia de que somente uma thread modifique o arquivo.txt evitaria eventuais inconsistências por
(FALSO) III. Caso múltiplas threads executem o código acima é possível gerar um deadlock.
- Condições de corrida podem ocorrer, mas não deadlocks

E I, II e III.
Considerando o conteúdo da aula 3.

(FALSO) I. Mesmo que múltiplas threads interajam com o "arquivo.txt" os resultados deste có
temos o comando if antes da escrita.
- Pode ocorrer uma falha caso depois da validação do if, mas antes da execução do método outra thre

(CORRETO) II. Eventuais condições de corrida que podem afetar o código acima seriam evitad
- Garantia de que somente uma thread modifique o arquivo.txt evitaria eventuais inconsistências por
(FALSO) III. Caso múltiplas threads executem o código acima é possível gerar um deadlock.
- Condições de corrida podem ocorrer, mas não deadlocks

Questão 2/5 - Computação Paralela


Tratando-se de programação multiprocessada, OpenMP é uma das
principais APIs utilizadas hoje especialmente pela sua simplicidade e
abstração em alto nível de algumas funcionalidades que demandam muita
codificação adicional em outras APIs.
Sobre este assunto analise as afirmações a seguir:

I. OpenMP é focado especificamente para soluções empresariais de larga


escala.
II. OpenMP é voltado para soluções em sistemas de memória distribuída
como clusters.
III. OpenMP sozinho não soluciona questões de sincronismo.
É correto apenas o que se afirma em
Nota: 20.0

A I apenas.
Considerando o conteúdo da aula 4.

(FALSO) I. OpenMP é focado especificamente para soluções empresariais de larga escala.


- As soluções de OpenMP são escalonáveis e funcionam para sistemas com qualquer quantidade de p

(FALSO) II. OpenMP é voltado para soluções em sistemas de memória distribuída como cluste
- OpenMP considera sistemas de memória compartilhada.

(CORRETO) III. OpenMP sozinho não soluciona questões de sincronismo.


- O OpenMP embora ofereça comandos de sincronismo é papel do programador utilizá-los de forma

B II apenas.
Considerando o conteúdo da aula 3.

(FALSO) I. OpenMP é focado especificamente para soluções empresariais de larga escala.


- As soluções de OpenMP são escalonáveis e funcionam para sistemas com qualquer quantidade de p

(FALSO) II. OpenMP é voltado para soluções em sistemas de memória distribuída como cluste
- OpenMP considera sistemas de memória compartilhada.

(CORRETO) III. OpenMP sozinho não soluciona questões de sincronismo.


- O OpenMP embora ofereça comandos de sincronismo é papel do programador utilizá-los de forma

C III apenas.
Você acertou!
Considerando o conteúdo da aula 3.

(FALSO) I. OpenMP é focado especificamente para soluções empresariais de larga escala.


- As soluções de OpenMP são escalonáveis e funcionam para sistemas com qualquer quantidade de p

(FALSO) II. OpenMP é voltado para soluções em sistemas de memória distribuída como cluste
- OpenMP considera sistemas de memória compartilhada.
(CORRETO) III. OpenMP sozinho não soluciona questões de sincronismo.
- O OpenMP embora ofereça comandos de sincronismo é papel do programador utilizá-los de forma

D I e III apenas.
Considerando o conteúdo da aula 3.

(FALSO) I. OpenMP é focado especificamente para soluções empresariais de larga escala.


- As soluções de OpenMP são escalonáveis e funcionam para sistemas com qualquer quantidade de p

(FALSO) II. OpenMP é voltado para soluções em sistemas de memória distribuída como cluste
- OpenMP considera sistemas de memória compartilhada.

(CORRETO) III. OpenMP sozinho não soluciona questões de sincronismo.


- O OpenMP embora ofereça comandos de sincronismo é papel do programador utilizá-los de forma

E I, II e III.
Considerando o conteúdo da aula 3.

(FALSO) I. OpenMP é focado especificamente para soluções empresariais de larga escala.


- As soluções de OpenMP são escalonáveis e funcionam para sistemas com qualquer quantidade de p

(FALSO) II. OpenMP é voltado para soluções em sistemas de memória distribuída como cluste
- OpenMP considera sistemas de memória compartilhada.

(CORRETO) III. OpenMP sozinho não soluciona questões de sincronismo.


- O OpenMP embora ofereça comandos de sincronismo é papel do programador utilizá-los de forma

Questão 3/5 - Computação Paralela


O problema do barbeiro dorminhoco é um importante desafio de
sincronismo que ocorre em diversos contextos dentro da computação.

Sobre este assunto analise as afirmações a seguir:

I. Trata sobre como lidar com falha de comunicação quando um servidor


(barbeiro) sofre uma falha(dorme).
II. É um caso especial do problema do consumidor e produtor.

III. O sincronismo de uma impressora(barbeiro), que fica em stand-by e só


desperta quando recebe solicitações de impressão(clientes) representa um
cenário do barbeiro dorminhoco.
É correto apenas o que se afirma em
Nota: 20.0

A I apenas.
Considerando o conteúdo da aula 3.

(FALSO) I. Trata sobre como lidar com falha de comunicação quando um servidor (barbeiro) s
- Trata-se de um problema de sincronismo e não persistência de rede.

(FALSO) II. O barbeiro dorminho é um caso especial do problema do jantar dos filósofos.
- O jantar dos filósofos trata de sincronizar o compartilhamento de um número limitado de recursos, e
sincronizar resolução de uma fila de demandas.

(CORRETO) III. O sincronismo de uma impressora(barbeiro), que fica em stand-by e só desper


impressão(clientes) representa um cenário do barbeiro dorminhoco.
- Este é um exemplo problema de barbeiro dorminho na computação, uma impressora, na analogia, é
quando uma solicitação de impressão(cliente) chega via rede ela atende, coloca na fila, ou informa qu

B II apenas.
Considerando o conteúdo da aula 3.

(FALSO) I. Trata sobre como lidar com falha de comunicação quando um servidor (barbeiro)
- Trata-se de um problema de sincronismo e não persistência de rede.

(FALSO) II. O barbeiro dorminho é um caso especial do problema do jantar dos filósofos.
- O jantar dos filósofos trata de sincronizar o compartilhamento de um número limitado de recursos, e
sincronizar resolução de uma fila de demandas.

(CORRETO) III. O sincronismo de uma impressora(barbeiro), que fica em stand-by e só desper


impressão(clientes) representa um cenário do barbeiro dorminhoco.
- Este é um exemplo problema de barbeiro dorminho na computação, uma impressora, na analogia, é
quando uma solicitação de impressão(cliente) chega via rede ela atende, coloca na fila, ou informa qu

C III apenas.
Você acertou!
Considerando o conteúdo da aula 3.

(FALSO) I. Trata sobre como lidar com falha de comunicação quando um servidor (barbeiro)
- Trata-se de um problema de sincronismo e não persistência de rede.

(FALSO) II. O barbeiro dorminho é um caso especial do problema do jantar dos filósofos.
- O jantar dos filósofos trata de sincronizar o compartilhamento de um número limitado de recursos, e
sincronizar resolução de uma fila de demandas.

(CORRETO) III. O sincronismo de uma impressora(barbeiro), que fica em stand-by e só desper


impressão(clientes) representa um cenário do barbeiro dorminhoco.
- Este é um exemplo problema de barbeiro dorminho na computação, uma impressora, na analogia, é
quando uma solicitação de impressão(cliente) chega via rede ela atende, coloca na fila, ou informa qu

D I e III apenas.
Considerando o conteúdo da aula 3.

(FALSO) I. Trata sobre como lidar com falha de comunicação quando um servidor (barbeiro) s
- Trata-se de um problema de sincronismo e não persistência de rede.

(FALSO) II. O barbeiro dorminho é um caso especial do problema do jantar dos filósofos.
- O jantar dos filósofos trata de sincronizar o compartilhamento de um número limitado de recursos, e
sincronizar resolução de uma fila de demandas.

(CORRETO) III. O sincronismo de uma impressora(barbeiro), que fica em stand-by e só desper


impressão(clientes) representa um cenário do barbeiro dorminhoco.
- Este é um exemplo problema de barbeiro dorminho na computação, uma impressora, na analogia, é
quando uma solicitação de impressão(cliente) chega via rede ela atende, coloca na fila, ou informa qu

E II e III apenas.
Considerando o conteúdo da aula 3.

(FALSO) I. Trata sobre como lidar com falha de comunicação quando um servidor (barbeiro) s
- Trata-se de um problema de sincronismo e não persistência de rede.

(FALSO) II. O barbeiro dorminho é um caso especial do problema do jantar dos filósofos.
- O jantar dos filósofos trata de sincronizar o compartilhamento de um número limitado de recursos, e
sincronizar resolução de uma fila de demandas.

(CORRETO) III. O sincronismo de uma impressora(barbeiro), que fica em stand-by e só desper


impressão(clientes) representa um cenário do barbeiro dorminhoco.
- Este é um exemplo problema de barbeiro dorminho na computação, uma impressora, na analogia, é
quando uma solicitação de impressão(cliente) chega via rede ela atende, coloca na fila, ou informa qu

Questão 4/5 - Computação Paralela


Quando temos múltiplas threads querendo permissão de escrita em uma
mesma posição de memória a solução amplamente adotada para evitar a
condição de corrida é a técnica chamada de mutex.

Sobre este assunto analise as afirmações a seguir:

I. Consiste das funções de lock (travar) e unlock (destravar).


II. A utilização de técnicas de sincronismo compromete o desempenho.
III. Seu uso inadequado pode gerar deadlocks.
É correto apenas o que se afirma em
Nota: 0.0

A III apenas.
Considerando o conteúdo da aula 3.

(CORRETO) I. Consiste das funções de lock (travar) e unlock (destravar).


- O lock trava o recurso/região crítica do código e unlock destrava a mesma.

(CORRETO) II. A utilização de técnicas de sincronismo compromete o desempenho.


- Os métodos de sincronismo forçam as threads aguardarem certas condições, que diminui o desempe

(CORRETO) III. Seu uso inadequado pode gerar deadlocks.


- Uma thread travando uma mutex enquanto aguarda outra ser liberada pode gerar impasse conhecido

B I e II apenas.
Considerando o conteúdo da aula 3.

(CORRETO) I. Consiste das funções de lock (travar) e unlock (destravar).


- O lock trava o recurso/região crítica do código e unlock destrava a mesma.

(CORRETO) II. A utilização de técnicas de sincronismo compromete o desempenho.


- Os métodos de sincronismo forçam as threads aguardarem certas condições, que diminui o desempe

(CORRETO) III. Seu uso inadequado pode gerar deadlocks.


- Uma thread travando uma mutex enq

C I e III apenas.
Considerando o conteúdo da aula 3.

(CORRETO) I. Consiste das funções de lock (travar) e unlock (destravar).


- O lock trava o recurso/região crítica do código e unlock destrava a mesma.

(CORRETO) II. A utilização de técnicas de sincronismo compromete o desempenho.


- Os métodos de sincronismo forçam as threads aguardarem certas condições, que diminui o desempe

(CORRETO) III. Seu uso inadequado pode gerar deadlocks.


- Uma thread travando uma mutex enq

D II e III apenas.
Considerando o conteúdo da aula 3.

(CORRETO) I. Consiste das funções de lock (travar) e unlock (destravar).


- O lock trava o recurso/região crítica do código e unlock destrava a mesma.

(CORRETO) II. A utilização de técnicas de sincronismo compromete o desempenho.


- Os métodos de sincronismo forçam as threads aguardarem certas condições, que diminui o desempe

(CORRETO) III. Seu uso inadequado pode gerar deadlocks.


- Uma thread travando uma mutex enq
E I, II e III.
Considerando o conteúdo da aula 3.

(CORRETO) I. Consiste das funções de lock (travar) e unlock (destravar).


- O lock trava o recurso/região crítica do código e unlock destrava a mesma.

(CORRETO) II. A utilização de técnicas de sincronismo compromete o desempenho.


- Os métodos de sincronismo forçam as threads aguardarem certas condições, que diminui o desempe

(CORRETO) III. Seu uso inadequado pode gerar deadlocks.


- Uma thread travando uma mutex enq

Questão 5/5 - Computação Paralela


int lista[1000];
#pragma omp parallel num_threads(4)
{
int id = omp_get_thread_num();
metodo(lista,id);
}
printf("fim\n);
I. Ao todo serão executadas 5 threads as 4 lançadas pelo openMP mais
a thread principal que lançou as demais.

II. Suponha que o código seja executado em um máquina com um único


núcleo, é garantido pelo OpenMP que as thread de id 0 será executada
antes da thread de id 1.

III. #pragma omp parallel por debaixo dos panos cria e une threads. O que
significa que só será executado o comando printf("fim") depois que todas
as threads terminarem de executar.
Considere o código acima analise as afirmações a seguir:
É correto apenas o que se afirma em
Nota: 0.0

A I apenas.
Considerando o conteúdo da aula 4.

(FALSO) I. Ao todo serão executadas 5 threads as 4 lançadas pelo openMP mais a thread princi
- Ao todo 4 threads serão executadas, o que significa que apenas 3 novas serão lançadas.

(FALSO) II. Suponha que o código seja executado em um máquina com um único núcleo, é gar
executada antes da thread de id 1.
- A ordem depende do sistema operacional que não garante ordem.
(CORRETO) III. #pragma omp parallel por debaixo dos panos cria e une threads. O que signif
comando printf("fim") depois que todas as threads terminarem de executar.
- O código printf("fim") será executado depois das threads terminarem o bloco do #pragma omp para

B II apenas.
Considerando o conteúdo da aula 4.

(FALSO) I. Ao todo serão executadas 5 threads as 4 lançadas pelo openMP mais a thread princi
- Ao todo 4 threads serão executadas, o que significa que apenas 3 novas serão lançadas.

(FALSO) II. Suponha que o código seja executado em um máquina com um único núcleo, é gar
executada antes da thread de id 1.
- A ordem depende do sistema operacional que não garante ordem.

(CORRETO) III. #pragma omp parallel por debaixo dos panos cria e une threads. O que signifi
comando printf("fim") depois que todas as threads terminarem de executar.
- O código printf("fim") será executado depois das threads terminarem o bloco do #pragma omp para

C III apenas.
Considerando o conteúdo da aula 4.

(FALSO) I. Ao todo serão executadas 5 threads as 4 lançadas pelo openMP mais a thread princi
- Ao todo 4 threads serão executadas, o que significa que apenas 3 novas serão lançadas.

(FALSO) II. Suponha que o código seja executado em um máquina com um único núcleo, é gar
executada antes da thread de id 1.
- A ordem depende do sistema operacional que não garante ordem.

(CORRETO) III. #pragma omp parallel por debaixo dos panos cria e une threads. O que signifi
comando printf("fim") depois que todas as threads terminarem de executar.
- O código printf("fim") será executado depois das threads terminarem o bloco do #pragma omp para

D I e III apenas.
Considerando o conteúdo da aula 4.

(FALSO) I. Ao todo serão executadas 5 threads as 4 lançadas pelo openMP mais a thread princi
- Ao todo 4 threads serão executadas, o que significa que apenas 3 novas serão lançadas.

(FALSO) II. Suponha que o código seja executado em um máquina com um único núcleo, é gar
executada antes da thread de id 1.
- A ordem depende do sistema operacional que não garante ordem.

(CORRETO) III. #pragma omp parallel por debaixo dos panos cria e une threads. O que signifi
comando printf("fim") depois que todas as threads terminarem de executar.
- O código printf("fim") será executado depois das threads terminarem o bloco do #pragma omp para

E II e III apenas.
Considerando o conteúdo da aula 4.

(FALSO) I. Ao todo serão executadas 5 threads as 4 lançadas pelo openMP mais a thread princi
- Ao todo 4 threads serão executadas, o que significa que apenas 3 novas serão lançadas.

(FALSO) II. Suponha que o código seja executado em um máquina com um único núcleo, é gar
executada antes da thread de id 1.
- A ordem depende do sistema operacional que não garante ordem.

(CORRETO) III. #pragma omp parallel por debaixo dos panos cria e une threads. O que signifi
comando printf("fim") depois que todas as threads terminarem de executar.
- O código printf("fim") será executado depois das threads terminarem o bloco do #pragma omp para