Ir ao conteúdo
  • Cadastre-se

Criar um programa em PYTHON que simule um dispositivo Switch


Lufarc

Posts recomendados

Bom dia/tarde/noite/madrugada !

Meu professor acabou pedindo a sala, de apenas 3 dias de aula, que fizéssemos o seguinte programa em python:

Prezados alunos,

 
Segue a definição da avaliação 1 que faremos na disciplina.
 
0) Vocês devem entregar até dia 11/04, sexta-feira, às 23h59, por email, o trabalho correspondente de um grupo de até 3 alunos. Ele deve consistir de um arquivo de código e os arquivos de recursos (tabela, entradas e saídas).
 
1) Vocês devem implementar um programa que simula um dispositivo switch. Ele deve possuir 8 portas de entrada e 8 portas de saída. Cada porta é representada por um arquivo de texto que deve estar no mesmo diretório do código do programa. Se qualquer arquivo não for encontrado, ele deve ser considerado vazio.
 
2) Toda vez que o programa for executado ele deve verificar quais mensagens estão nas suas portas de entrada, que são representadas como textos dentro dos arquivos, e redirecioná-las para as portas de saída correspondentes. Esse envio é representado pela gravação da mesma mensagem no arquivo da porta de saída.
 
3) Para saber qual porta de saída corresponde a cada máquina, o switch conta com uma tabela que relaciona endereços MAC com as portas de saída. Essa tabela deve ser atualizada sempre que o switch processar a mensagem de uma máquina (remetente) que não está associada a nenhuma porta de saída.
 
4) A tabela MAC-Porta de saída deve ser carregada no início da rotina a partir de um arquivo específico que também deve estar no mesmo diretório do programa. Se o programa não encontrar esse arquivo, ele deve considerar uma tabela vazia.
 
5) Cada mensagem é representada por um conjunto de caracteres estruturados. A mensagem é composta de endereços MAC de destino, endereço MAC do remetente e o conteúdo em si. Elas podem ser de 3 tipos, unicast, multicast ou broadcast, dependendo do número de endereços de destino. Se não houver endereço de destino, é do tipo broadcast, e deve ser enviada para todas as portas de saída. Se houver um, ela é unicast, e deve ser enviada apenas para o endereço especificado. Se houver mais de um, ela é multicast, e deve ser enviada para cada endereço especificado. Cada grupo deve propor uma maneira única de estruturar as mensagens.
 
6) Quando o programa não encontrar na tabela MAC-Porta de saída uma linha correspondente ao destinatário de uma mensagem, ela deve ser enviada como se fosse broadcast, mesmo que não seja.
 
Exemplos:
1)
situação inicial
 - Tabela vazia
 - entrada1: pc2,pc1,olá
 - entrada2: pc3,pc2,interessante
situação final
 - Tabela: entrada1, pc1; entrada2, pc2
 - saída1: pc3,pc2,interessante
 - saída2: pc2,pc1,olá;
 - saída3: pc2,pc1,olá; pc3,pc2,interessante
 - saída4: pc2,pc1,olá; pc3,pc2,interessante
 - saída5: pc2,pc1,olá; pc3,pc2,interessante
 - saída6: pc2,pc1,olá; pc3,pc2,interessante
 - saída7: pc2,pc1,olá; pc3,pc2,interessante
 - saída8: pc2,pc1,olá; pc3,pc2,interessante

2)
situação inicial
 - Tabela: entrada1,pc1; entrada2,pc2
 - entrada3: pc1,pc3,ei você!
 - entrada2: pc2,ei galera!
 - saída1: pc1,pc3,ei você!; pc2,ei galera!
 - saída2 vazia
 - saída3: pc2,ei galera!
 - saída4: pc2,ei galera!
 - saída5: pc2,ei galera!
 - saída6: pc2,ei galera!
 - saída7: pc2,ei galera!
 - saída8: pc2,ei galera!
 

 

Okay, tentei começar o programa, mas não saí do 0, pedi algumas explicações mas o professor só me pediu para pensar com calma que eu chegaria lá! Não tenho nenhuma experiência em Python e não faço a mínima ideia de como começar esse programa!

Poderiam me ajudar? Obrigada!

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...