Advertisement
IcaroPeretti

ring

Jun 28th, 2022
750
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.83 KB | None
  1. import time, random
  2.  
  3. def main():
  4.   end = 0
  5.   first = 0
  6.   max_prioridade = 0
  7.   max_id = 20
  8.  
  9.   processos = list()
  10.   processo_inicial = random.randint(1, 9)
  11.   print("Processo "+ str(processo_inicial) +" detectou falha de coordenação")
  12.   processos.append({'id': processo_inicial, 'prioridade': random.randint(1, 10) })
  13.  
  14.   for i in range(9):
  15.     if(i >= processo_inicial):
  16.       num_prio = random.randint(1, 10)
  17.       processos.append({'id': i+1, 'prioridade': num_prio })
  18.     else:
  19.       num_prio = random.randint(1, 10)
  20.       processos.append({'id': i, 'prioridade': num_prio })
  21.  
  22.  
  23.   while end != 1:    
  24.     for processo in processos:
  25.       if(max_id == processo['id'] and max_prioridade == processo['prioridade']):
  26.         print("Sou o processo "+str(processo['id'])+" e sou o novo coordenador")
  27.         end = 1
  28.         break      
  29.  
  30.       print("")
  31.       print("-------------------------------------------")
  32.       print("Maior Prioridade: "+str(max_prioridade)+" ")
  33.       print("Maior id: "+str(max_id)+" ")
  34.       print("-------------------------------------------")
  35.       print("Sou o processo "+str(processo['id'])+" e minha prioridade é "+str(processo['prioridade'])+"")
  36.       print("")
  37.  
  38.       if(first == 0):
  39.         print("Iniciando eleição")
  40.         max_prioridade = processo['prioridade']
  41.         max_id = processo['id']
  42.  
  43.         first = 1
  44.         print("Enviado para nó da direita")
  45.         print("")
  46.       else:
  47.         if(max_prioridade >= processo['prioridade']):
  48.           print("Minha prioridade é menor ou igual, passo adiante")
  49.           print("")
  50.         else:            
  51.           max_prioridade = processo['prioridade']
  52.           max_id = processo['id']
  53.           print("Minha prioridade é maior, reenviando")
  54.           print("")
  55.  
  56.       time.sleep(1)
  57.  
  58. if __name__ == '__main__':
  59.     main()
Advertisement
RAW Paste Data Copied
Advertisement