Pular para o conteúdo principal

Questão de TI - Desenvolvimento de Sistemas — Programação Concorrente, Paralela e Distribuída — VUNESP 2023

TI - Desenvolvimento de SistemasProgramação Concorrente, Paralela e Distribuída
Código
vu196848
Banca
VUNESP
Órgão
CM Aparecida
Ano
2023
Cargo
TInf ( )
Considere o seguinte algoritmo.   1) Criar uma lista de arquivos para download.   2) Iniciar múltiplas threads para baixar os arquivos em paralelo.   3) Cada thread faz o download de um arquivo da lista.   4) Ao final de cada download, atualizar a lista de arquivos marcando que o download foi efetuado.   5) Exibir uma mensagem informando que todos os downloads foram concluídos.   Assinale a alternativa com o algoritmo corrigido para evitar a condição de corrida, sem abrir mão do paradigma de programação concorrente.
  1. A1) Criar uma lista de arquivos para download. 2) Fazer o download de cada arquivo, sequencialmente. 3) Exibir uma mensagem informando que todos os downloads foram concluídos.
  2. B1) Criar uma lista de arquivos para download.
    2) Inicializar um mutex (exclusão mútua) para controlar o acesso à lista de arquivos.
    3) Iniciar múltiplas threads para baixar os arquivos em paralelo.
    4) Cada thread adquire o mutex (exclusão mútua) antes de acessar a lista, seleciona um arquivo disponível e libera o mutex (exclusão mútua).
    5) Cada thread faz o download de um arquivo da lista.
    6) Após o download, a thread adquire o mutex (exclusão mútua) novamente e atualiza a lista, marcando que o download foi efetuado, e então libera o mutex (exclusão mútua).
    7) Exibir uma mensagem informando que todos os downloads foram concluídos.
  3. C1) Criar uma lista de arquivos para download.
    2) Verificar se existe conexão com a Internet.
    3) Iniciar múltiplas threads para baixar os arquivos em paralelo.
    4) Cada thread faz o download de um arquivo da lista.
    5) Ao final de cada download, atualizar a lista de arquivos marcando que o download foi efetuado.
    6) Exibir uma mensagem informando que todos os downloads foram concluídos.
  4. D1) Criar uma lista de arquivos para download.
    2) Iniciar múltiplas threads para baixar os arquivos em paralelo.
    3) Verificar se o arquivo existe.
    4) Cada thread faz o download de um arquivo da lista.
    5) Ao final de cada download, atualizar a lista de arquivos marcando que o download foi efetuado.
    6) Exibir uma mensagem informando que todos os downloads foram concluídos.
  5. E1) Criar uma lista de arquivos para download.
    2) Iniciar múltiplas threads para baixar os arquivos em paralelo.
    3) Verificar se o existe espaço disponível para o download.
    4) Cada thread faz o download de um arquivo da lista.
    5) Ao final de cada download, atualizar a lista de arquivos marcando que o download foi efetuado.
    6) Exibir uma mensagem informando que todos os downloads foram concluídos.
Revelar gabarito e comentário

GabaritoB — 1) Criar uma lista de arquivos para download. 2) Inicializar um mutex (exclusão mútua) para controlar o acesso à lista de arquivos. 3) Iniciar múltiplas threads para baixar os arquivos em paralelo. 4) Cada thread adquire o mutex (exclusão mútua) antes de acessar a lista, seleciona um arquivo disponível e libera o mutex (exclusão mútua). 5) Cada thread faz o download de um arquivo da lista. 6) Após o download, a thread adquire o mutex (exclusão mútua) novamente e atualiza a lista, marcando que o download foi efetuado, e então libera o mutex (exclusão mútua). 7) Exibir uma mensagem informando que todos os downloads foram concluídos.

Link permanente: /questoes/vu196848