Skip to content

Instantly share code, notes, and snippets.

@sant0will
Created May 23, 2019 21:29
Show Gist options
  • Save sant0will/e87e1d28d6d345f70db8098dd542b1d0 to your computer and use it in GitHub Desktop.
Save sant0will/e87e1d28d6d345f70db8098dd542b1d0 to your computer and use it in GitHub Desktop.
import time, random
def main():
end = 0
coordenador = 0
processos = list()
# processos.sort(key = lambda processos: processos['prioridade'], reverse = True)
# print(processos)
processo_inicial = random.randint(1, 9)
print("Processo "+ str(processo_inicial) +" detectou falha de coordenação")
processos.append({'id': processo_inicial, 'prioridade': random.randint(1, 10) })
for i in range(9):
if(i >= processo_inicial):
num_prio = random.randint(1, 10)
processos.append({'id': i+1, 'prioridade': num_prio })
else:
num_prio = random.randint(1, 10)
processos.append({'id': i, 'prioridade': num_prio })
i = 0
max_prioridade = 0
max_id = 20
while end != 1:
for processo in processos:
if(max_id == processo['id'] and max_prioridade == processo['prioridade']):
print("Sou o processo "+str(processo['id'])+" e sou o novo coordenador")
end = 1
break
print("")
print("-------------------------------------------")
print("Maior Prioridade: "+str(max_prioridade)+" ")
print("Maior id: "+str(max_id)+" ")
print("-------------------------------------------")
print("Sou o processo "+str(processo['id'])+" e minha prioridade é "+str(processo['prioridade'])+"")
print("")
if(i == 0):
print("Iniciando eleição")
max_prioridade = processo['prioridade']
max_id = processo['id']
i = 1
print("Enviado para nó da direita")
print("")
else:
if(max_prioridade >= processo['prioridade']):
print("Minha prioridade é menor ou igual, passo adiante")
print("")
else:
max_prioridade = processo['prioridade']
max_id = processo['id']
print("Minha prioridade é maior, reenviando")
print("")
time.sleep(1)
if __name__ == '__main__':
main()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment