Created
May 23, 2019 21:29
-
-
Save sant0will/e87e1d28d6d345f70db8098dd542b1d0 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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