Jeremiah_

Main.py

Jun 27th, 2018
153
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 5.25 KB | None | 0 0
  1. from Menu import *
  2. from CacheDrct import *
  3. from CacheBySets import *
  4. from datetime import datetime
  5.  
  6.  
  7. def start_simulation():
  8.     while True:
  9.         try:
  10.             patht = str(input('Nome de arquivo com os traços: '))
  11.             arqtracos = open(patht, 'r')
  12.             tracos = arqtracos.readlines()
  13.             break
  14.         except FileNotFoundError:
  15.             print('Arquivo não encontrado!\n')
  16.  
  17.     for i in tracos:
  18.         typ = mapt.calcula(i)
  19.         if typ == 'I':
  20.             mapt.loadInstrucao()
  21.         elif typ == 'L':
  22.             mapt.loadData()
  23.         elif typ == 'S':
  24.             mapt.storeData()
  25.         elif typ == 'M':
  26.             mapt.modifyData()
  27.  
  28.  
  29.     arqname = str(str(menu.linhas_cache) + 'x' + str(menu.palavras_linha) + '_' + tmap + str(datetime.now()).replace(':', '-') + '.txt')
  30.     arqgerado = open(arqname, 'a')
  31.     arqgerado.write('Arquivo lido: '+patht+'\n'+info + mapt.__str__()+'\n')
  32.     arqgerado.close()
  33.     print(mapt.__str__())
  34.  
  35.  
  36. while True:
  37.     try:
  38.         m = int(input("MODO DE EXECUÇÃO\n1.Escolher parâmetros\n2.Carregar parâmetros\n"))
  39.         if m != 1 and m != 2:
  40.             print('Escolha corretamente o modo de execução')
  41.             continue
  42.         if m == 1:
  43.             menu = Menu()
  44.             menu.le_mapeamento()
  45.             menu.le_linhas_cache()
  46.             menu.le_palavras_linha()
  47.             menu.le_linhas_conjunto()
  48.             menu.le_politica()
  49.             menu.le_alg_sub()
  50.  
  51.             if menu.politica == 1:
  52.                 tpol = '-Write through'
  53.             else:
  54.                 tpol = '-Write back'
  55.             if menu.alg_subs == 0:
  56.                 talg_subs = '-FIFO'
  57.             else:
  58.                 talg_subs = '-Aleatorio'
  59.  
  60.             if menu.mapeamento == 1:
  61.                 tmap = 'DrctMap_'
  62.                 info = 'Mapeamento: '+tmap+'\nLinhas_cache: '+str(menu.linhas_cache)+'\nPalavras_linha: '+str(menu.palavras_linha)+'\nPolitica_escrita: '+str(menu.politica)+tpol+'\n\n'
  63.                 mapt = CacheDrct(menu.linhas_cache, menu.palavras_linha, menu.politica)
  64.             elif menu.mapeamento == 2:
  65.                 tmap = 'AssMap_'
  66.                 info = 'Mapeamento: '+tmap+'\nLinhas_cache: '+str(menu.linhas_cache)+'\nPalavras_linha: '+str(menu.palavras_linha)+'\nPolitica_escrita: '+str(menu.politica)+tpol+'\n'
  67.                 info = info + 'Alg_substituicao: '+str(menu.alg_subs)+talg_subs+'\nLinhas_conjunto: '+str(menu.linhas_cache)+'\n\n'
  68.                 mapt = CacheBySets(menu.linhas_cache, menu.palavras_linha, menu.alg_subs, menu.politica, menu.linhas_cache)
  69.             else:
  70.                 tmap = 'SetAssMap_'
  71.                 info = 'Mapeamento: '+tmap+'\nLinhas_cache: '+str(menu.linhas_cache)+'\nPalavras_linha: '+str(menu.palavras_linha)+'\nPolitica_escrita: '+str(menu.politica)+tpol+'\n'
  72.                 info = info + 'Alg_substituicao: '+str(menu.alg_subs)+talg_subs+'\nLinhas_conjunto: '+str(menu.linhas_conjunto)+'\n\n'
  73.                 mapt = CacheBySets(menu.linhas_cache, menu.palavras_linha, menu.alg_subs, menu.politica, menu.linhas_conjunto)
  74.             start_simulation()
  75.         else:
  76.             try:
  77.                 path = input("Digite o nome do arquivo (deve estar na mesma pasta)\n")
  78.                 arqconfig = open(path, 'r')
  79.                 config = arqconfig.read().split()
  80.                 arqconfig.close()
  81.  
  82.                 if menu.politica == 1:
  83.                     tpol = '-Write through'
  84.                 else:
  85.                     tpol = '-Write back'
  86.                 if menu.alg_subs == 0:
  87.                     talg_subs = '-FIFO'
  88.                 else:
  89.                     talg_subs = '-Aleatorio'
  90.  
  91.                 if int(config[0]) == 1:
  92.                     tmap = 'DrctMap_'
  93.  
  94.                     info = 'Mapeamento: '+tmap+'\nLinhas_cache: '+str(menu.linhas_cache)+'\nPalavras_linha: '+str(menu.palavras_linha)+'\nPolitica_escrita: '+str(menu.politica)+tpol+'\n\n'
  95.                     mapt = CacheDrct(int(config[1]), int(config[2]), int(config[3]))
  96.                 elif int(config[0]) == 2:
  97.                     tmap = 'AssMap_'
  98.                     info = 'Mapeamento: '+tmap+'\nLinhas_cache: '+str(menu.linhas_cache)+'\nPalavras_linha: '+str(menu.palavras_linha)+'\nPolitica_escrita: '+str(menu.politica)+tpol+'\n'
  99.                     info = info + 'Alg_substituicao: '+str(menu.alg_subs)+talg_subs+'\nLinhas_conjunto: '+str(menu.linhas_cache)+'\n\n'
  100.                     mapt = CacheBySets(int(config[1]), int(config[2]), int(config[3]), int(config[4]), int(config[1]))
  101.                 else:
  102.                     tmap = 'SetAssMap_'
  103.                     info = 'Mapeamento: '+tmap+'\nLinhas_cache: '+str(menu.linhas_cache)+'\nPalavras_linha: '+str(menu.palavras_linha)+'\nPolitica_escrita: '+str(menu.politica)+tpol+'\n'
  104.                     info = info + 'Alg_substituicao: '+str(menu.alg_subs)+talg_subs+'\nLinhas_conjunto: '+str(menu.linhas_conjunto)+'\n\n'
  105.                     mapt = CacheBySets(int(config[1]), int(config[2]), int(config[3]), int(config[4]), int(config[5]))
  106.                 start_simulation()
  107.             except IOError:
  108.                 print('Arquivo não encontrado. Tente novamente')
  109.                 continue
  110.         break
  111.  
  112.     except ValueError:
  113.         print('Entrada Inválida! Tente novamente.')
Advertisement
Add Comment
Please, Sign In to add comment