GeraProva GeraProva Provas com IA para professores do Brasil
Computação2º anoBNCC EF15CO02Difícil⏱ longo

Escreva, em pseudocódigo, um algoritmo para um receptor que reconstrói um arquivo transmitido em pacotes com…

Publicado por Alexandre Lombardi dos Santos, fundador do GeraProva

Habilidade BNCC EF15CO02

Construir e simular algoritmos, de forma independente ou em colaboração, que resolvam problemas simples e do cotidiano com uso de sequências, seleções condicionais e repetições de instruções.

Fonte: Base Nacional Comum Curricular (MEC).

Questão

Escreva, em pseudocódigo, um algoritmo para um receptor que reconstrói um arquivo transmitido em pacotes com campos de sequência e checksum; trate pacotes fora de ordem, perdas e duplicatas e explique como verifica integridade e quando libera o buffer.

✍️ Questão dissertativa: veja abaixo a resposta esperada e a explicação.

Resposta esperada

Modelo de resposta (pseudocódigo e descrição): Inicializar: buffer := mapa vazio (seq ? payload) esperado := 0 timers := mapa vazio (seq ? timestamp) maxRetries := 3 retries := mapa vazio (seq ? 0) Ao receber pacote P: if not verificar_checksum(P) then enviar_NACK(P.sequencia) return if P.sequencia em buffer então enviar_ACK(P.sequencia) // duplicata, ignora armazenamento return armazenar buffer[P.sequencia] := P.payload enviar_ACK(P.sequencia) atualizar timers[P.sequencia] = agora() Enquanto buffer contém esperado: escrever arquivo += buffer[esperado] remover buffer[esperado] esperado += tamanho_do_segmento_correspondente Rotina de timeout periódico: para cada seq em timers: if agora() - timers[seq] > TIMEOUT then if retries[seq] < maxRetries then enviar_retransmissao_request(seq) retries[seq] += 1 timers[seq] = agora() else liberar buffer inteiro registrar erro e notificar aplicação abortar reassemblagem Condições de término: - Se EOF conhecido e todos os segmentos até EOF foram escritos: fechar arquivo e liberar buffers. - Se maxRetries excedido: abortar e liberar buffers. Observações técnicas: - Verificação de integridade: usar checksum/CRC por pacote; descartar pacotes com checksum inválido e pedir retransmissão. - Tratamento de duplicatas: reconhecer por número de sequência e responder com ACK sem reescrever arquivo. - Reordenação: armazenar fragmentos fora de ordem em mapa indexado por sequência e só concatenar quando houver sequência contínua a partir do próximo esperado. - Gestão de recursos: timers por sequência e limite de tentativas evitam bloqueio de memória; liberar buffer após falha persistente e comunicar estado à aplicação.

Explicação

O pseudocódigo apresentado aborda de forma eficaz a recepção e reassembly de pacotes, garantindo a integridade dos dados por meio da verificação de checksums e do manejo de pacotes duplicados e fora de ordem. A implementação de timers e limites de tentativas para retransmissão assegura que o sistema não fique bloqueado em caso de falhas, permitindo a liberação de buffers e a notificação adequada à aplicação. Além disso, as condições de término garantem que o processo finalize de maneira controlada, evitando perda de dados.

Raio-X da questão

Dificuldade Difícil
Bloom Criar
Leitura alto
Discriminação alto
Peso pedagógico alto
Autonomia do enunciado completo
Cobertura da habilidade multipla
🧪 Simulado🩺 Diagnóstico🧮 Exige cálculo🏠 Cotidiano🔗 Interdisciplinar⭐ Representativa✍️ interpretativa🧩 desafio
🎯 Conceito central

algoritmo de recepção

📌 Objetivo

avaliacao

🧱 Pré-requisitos

algoritmo de recepção · verificação de integridade

📚 Reveja

Revisar conceitos de protocolos de comunicação e verificação de integridade.

⚠️ Erro mais comum

O aluno pode esquecer de implementar a lógica para tratar pacotes duplicados, levando a uma reconstrução incorreta do arquivo.

🌎 Tema transversal

ciencia_tecnologia

🤝 Socioemocional

criatividade

🏫 Contexto

cientifico

Questões parecidas com resolução

Todas as questões de Algoritmos

🔎 Procurar outra questão

Procure no banco do GeraProva pelo tema ou por um trecho do enunciado. Cada questão já vem com resolução comentada e a análise de cada alternativa.

Professor: monte a prova com questões como esta, com gabarito e folha de respostas, em 30 segundos. Ver planos · Blog

Ocorreu um erro inesperado. Recarregar X

Rejoining the server...

Rejoin failed... trying again in seconds.

Failed to rejoin.
Please retry or reload the page.

The session has been paused by the server.

Failed to resume the session.
Please retry or reload the page.