def buscar_Todos(self): processo = Processo() dados_brutos = processo.consultar_todos() pop = Toplevel(width=700, height=700) pop.title("Processos cadastrados") pop.geometry("500x500+300+150") scrollbar = Scrollbar(pop) scrollbar.pack(side=RIGHT, fill=Y) lista = Listbox(pop, yscrollcommand=scrollbar.set, font=('Helvetica', '12')) # lista.insert(END,' Sistema | Empreendimento | NumeroDoProcesso | DataRecebimento | Tipo | EncaminhamentoPara | DataDaVistoria | PrazoParaLaudo | NumeroDoOficio | Observacoes'.upper()) numDeLinha = 0 lista.insert(END, ' ') for linha in dados_brutos: numDeLinha += 1 for r in "()''": linha = str(linha).replace(r, "") lista.insert( END, " " + str(numDeLinha) + "ª " + linha.replace(',', " | ").upper()) lista.insert(END, " ") lista.insert(END, " ") lista.pack(fill=BOTH, expand=1) scrollbar.config(command=lista.yview)
def definirClasseSubstituicaoPaginaClasse2Test(): print("definirClasseSubstituicaoPaginaClasse2Test: ") processo = Processo() segmento = Segmento() classeEsperada = -1 processo.bitR = 1 processo.bitM = 0 # Execução if (processo.bitR == 0 and processo.bitM == 0): classeEsperada = 0 elif (processo.bitR == 0 and processo.bitM == 1): classeEsperada = 1 elif (processo.bitR == 1 and processo.bitM == 0): classeEsperada = 2 elif (processo.bitR == 1 and processo.bitM == 1): classeEsperada = 3 else: classeEsperada = -1 segmento.processo = processo # Validação segmento.definirClasseSubstituicaoPagina() if (classeEsperada == segmento.classeSubstituicao): print("Esperado: {} == Retornado: {}".format( classeEsperada, segmento.classeSubstituicao)) else: print("Esperado: {} != Retornado: {}".format( classeEsperada, segmento.classeSubstituicao))
def buscar(self): processo = Processo() if len(self.NumeroDoProcesso_entry.get()): processo.NumeroDoProcesso = self.NumeroDoProcesso_entry.get() self.status['text'] = processo.consultar() self.limparCampos() self.sistema_entry.insert(INSERT, processo.Sistema) self.Empreendimento_entry.insert(INSERT, processo.Empreendimento) self.NumeroDoProcesso_entry.insert(INSERT, processo.NumeroDoProcesso) self.DataRecebimento_entry.insert( 0, re.sub('[^0-9]', '', processo.DataRecebimento)) self.Tipo_entry.insert(INSERT, processo.Tipo) self.EncaminhamentoPara_entry.insert(INSERT, processo.EncaminhamentoPara) self.DataDaVistoria_entry.insert( 0, re.sub('[^0-9]', '', processo.DataDaVistoria)) self.PrazoParaLaudo_entry.insert(INSERT, processo.PrazoParaLaudo) self.NumeroDoOficio_entry.insert(INSERT, processo.NumeroDoOficio) self.Observacoes_entry.insert(INSERT, processo.Observacoes) else: self.status['text'] = "Erro_Campo vazio" self.limparCampos()
def excluir(self): processo = Processo() if len(self.NumeroDoProcesso_entry.get()): processo.NumeroDoProcesso = self.NumeroDoProcesso_entry.get() self.status['text'] = processo.excluir() else: self.status['text'] = "Erro_Campo vazio" self.limparCampos()
def inicilizarEntrada(nomeArquivo): identificador = 1 arquivoEntrada = open(nomeArquivo, 'r') filaEntrada = [] for linha in arquivoEntrada: linha = linha.split(', ') linha = [int(x) for x in linha] novoProcesso = Processo(linha[0], linha[1], linha[2], linha[3], linha[4], linha[5], linha[6], linha[7]) novoProcesso.id = identificador filaEntrada.append(novoProcesso) identificador += 1 arquivoEntrada.close() return filaEntrada
def criarProcessos(self): self.console.quebraDeLinha(3) quantidadeDeProcessos = int( self.console.obter('Quantidade de processos')) self.console.linha(10) for index in range(quantidadeDeProcessos): titulo = self.console.obter(f'Titulo do processo {index+1}') self.tituloDosProcessos.append(titulo) self.console.linha(10) self.console.quebraDeLinha(3) for index in range(quantidadeDeProcessos): processo = Processo() processo.init(self.tituloDosProcessos[index], self.tituloDosRecursos) self.processos.append(processo)
def algo_menor_primeiro(): st.header('Menor Primeiro (SJF) - Demonstração') escolhe_proc = st.selectbox( label='Escolha o csv para ser carregado', options=['Demonstração 1', 'Demonstração 2', 'Demonstração 3']) if (escolhe_proc == 'Demonstração 1'): df = pd.read_csv('menor_primeiro.csv') if (escolhe_proc == 'Demonstração 2'): df = pd.read_csv('menor_primeiro2.csv') if (escolhe_proc == 'Demonstração 3'): df = pd.read_csv('menor_primeiro3.csv') # Busca os processos de uma planilha do Google # df = pd.read_csv('https://docs.google.com/spreadsheets/d/e/2PACX-1vRqjZdPyFphn5nD9vwbv94obvpuY4vlPTRz31wLe_SaRCYSKGBZzvlIQkNd51rcow2Npua4RTLyf4PL/pub?output=csv') # df = pd.read_csv('processos.csv') st.write('**Processos**') st.write(df) # Lista de Processos processos = [] # Cria lista de processos for index, proc in df.iterrows(): processos.append( Processo(proc['id'], proc['ingresso'], proc['duracao'])) inicia_processos(processos) menor_primeiro(processos)
def power(self): listPro = [] i = 4 ref_arquivo = open("processo.txt", "r") for linhas in ref_arquivo: eventos = [] valores = linhas.split() id = valores[0] tamanho = valores[1] prioridade = valores[2] tchegada = valores[3] if(len(valores) > 4): while(i < len(valores)): eventos.append(valores[i]) i = i+1 pro = Processo(id,tamanho,prioridade,tchegada, eventos) listPro.append(pro) #del eventos[:] ref_arquivo.close() for pr in listPro: print(pr.id, pr.tamanho, pr.prioridade, pr.tempoChegada, pr.eventos, pr.tipoPros)
def criar(self): id = int(input("Digite o id do processo: ")) tamanho = int(input("Digite o tamanho do processo: ")) print("Defina o tipo de estrategia [ 0 - First-Fit; 1 - Best-Fit; 2 - Worst-Fit ]") estrategia = int(input("valor: ")) processo = Processo(id, tamanho, estrategia, None) return self.gerenciador.criar_novo_processo(processo)
def _converterStringParaProcesso(cls, processoStr): """ Faz o tratamento das informações do processo contidas na String :String processoStr: :param processoStr: metadados do Processo contidas na String :return: Retorna o objeto Processo com os seus devidos metadados """ tamanhoListaProcesso = len(processoStr) if (tamanhoListaProcesso != 0): infoProcessoTemp = processoStr.replace(' ', '') infoProcesso = infoProcessoTemp.split(',') try: quantidadeItensInfoProcesso = len(infoProcesso) if (quantidadeItensInfoProcesso != 6): raise ValueError else: processo = Processo() processo.idProcesso = infoProcesso[0] #processo.nomeProcesso = infoProcesso[1] processo.tamanhoProcesso = infoProcesso[2] processo.tempoExecucao = infoProcesso[3] processo.prioridade = infoProcesso[4] processo.tempoVida = infoProcesso[5] return processo except ValueError: raise ValueError else: return processo
def adicionarSegmentoTest(): print("\nadicionarSegmentoTest") # Configuração processo = Processo() processo.tamanhoProcesso = 255 mapeamentoEncadeadoBits = MapeamentoEncadeadoBits() # Execução segmento = Segmento() segmento.processo = processo segmento.posicaoInicial = mapeamentoEncadeadoBits.indiceMemoriaLivre segmento.quantidadePosicoes = processo.tamanhoProcesso mapeamentoEncadeadoBits.adicionarSegmento(segmento) # Validação mapeamentoEncadeadoBits.exibirMapaBits()
def armazenarProcessoDiscoTest(): print("\narmazenarProcessoDiscoTest") # Configuração caminhoDisco = "discorepositorio.csv" processo = Processo() processo.idProcesso = 380 processo.tamanhoProcesso = 560 processo.tempoVida = 30 # Execução MemoriaSecundaria.armazenarProcessoDisco(processo, caminhoDisco) disco = open("discorepositorio.csv", "r") processosStr = disco.readlines() disco.close() # Validação print(processosStr[-1])
def criarProcesso(idProcesso): processo = Processo() processo.idProcesso = idProcesso processo.tamanhoProcesso = randint(100, 1024) #processo.tempoExecucao = 2 processo.prioridade = randint(0, 4) processo.tempoVida = randint(1, 15) #processo.nomeProcesso = str( idProcesso ) + str( processo.tamanhoProcesso ) + str( processo.prioridade ) + str( processo.tempoVida ) return processo
def adicionarSegmentoTamanhoPaginaTest(): print("adicionarSegmentoTamanhoPaginaTest") # Configuração tamanhoPagina = 200 processo = Processo() processo.tamanhoProcesso = 150 processo1 = Processo() processo1.tamanhoProcesso = 120 processo2 = Processo() processo2.tamanhoProcesso = 300 mapeamentoEncadeadoBits = MapeamentoEncadeadoBits() # Execução segmento = Segmento() segmento.processo = processo segmento.posicaoInicial = mapeamentoEncadeadoBits.indiceMemoriaLivre segmento.quantidadePosicoes = tamanhoPagina mapeamentoEncadeadoBits.adicionarSegmento(segmento) segmento1 = Segmento() segmento1.processo = processo1 segmento1.posicaoInicial = mapeamentoEncadeadoBits.indiceMemoriaLivre segmento1.quantidadePosicoes = tamanhoPagina mapeamentoEncadeadoBits.adicionarSegmento(segmento1) segmento2 = Segmento() segmento2.processo = processo2 segmento2.posicaoInicial = mapeamentoEncadeadoBits.indiceMemoriaLivre segmento2.quantidadePosicoes = tamanhoPagina mapeamentoEncadeadoBits.adicionarSegmento(segmento2) # Validação mapeamentoEncadeadoBits.exibirMapaBits()
def adicionarSegmentoVericarIndiceMemoriaLivreAtualizadoTest(): print("\nadicionarSegmentoVericarIndiceMemoriaLivreAtualizadoTest") # Configuração processo = Processo() processo.tamanhoProcesso = 255 processo1 = Processo() processo1.tamanhoProcesso = 350 processo2 = Processo() processo2.tamanhoProcesso = 500 mapeamentoEncadeadoBits = MapeamentoEncadeadoBits() # Execução segmento = Segmento() segmento.processo = processo segmento.posicaoInicial = mapeamentoEncadeadoBits.indiceMemoriaLivre segmento.quantidadePosicoes = processo.tamanhoProcesso mapeamentoEncadeadoBits.adicionarSegmento(segmento) segmento1 = Segmento() segmento1.processo = processo1 segmento1.posicaoInicial = mapeamentoEncadeadoBits.indiceMemoriaLivre segmento1.quantidadePosicoes = processo1.tamanhoProcesso mapeamentoEncadeadoBits.adicionarSegmento(segmento1) segmento2 = Segmento() segmento2.processo = processo2 segmento2.posicaoInicial = mapeamentoEncadeadoBits.indiceMemoriaLivre segmento2.quantidadePosicoes = processo2.tamanhoProcesso mapeamentoEncadeadoBits.adicionarSegmento(segmento2) # Validação mapeamentoEncadeadoBits.exibirMapaBits()
def nomeProcessoTest(): # Configuração for id in range(10): processo = Processo() processo.idProcesso = id processo.tamanhoProcesso = randint(1, 50) processo.tempoExecucao = randint(1, 50) processo.tempoVida = randint(1, 50) processo.prioridade = randint(0, 4) processo.bitR = randint(0, 1) processo.bitM = randint(0, 1) # Execução nomeProcessoEsperado = str(processo.idProcesso) + str( processo.tamanhoProcesso) + str(processo.prioridade) + str( processo.tempoVida) if (nomeProcessoEsperado == processo.nomeProcesso): print("{} == {}".format(processo.nomeProcesso, nomeProcessoEsperado)) else: print("{} != {}".format(processo.nomeProcesso, nomeProcessoEsperado))
def algo_round_robin(): st.header('Round Robin - Demonstração') # st.write('Para mudar os processos, basta alterar [essa planilha](https://docs.google.com/spreadsheets/d/1vTeJ80BnAhXqQjpO9ml0bRAjikwSyBhkKS9iH1vPRe8/edit?usp=sharing) e atualizar a página :wink:') escolhe_proc = st.selectbox( label='Escolha o csv para ser carregado', options=['Demonstração 1', 'Demonstração 2', 'Demonstração 3']) if (escolhe_proc == 'Demonstração 1'): df = pd.read_csv('round_robin.csv') if (escolhe_proc == 'Demonstração 2'): df = pd.read_csv('round_robin2.csv') if (escolhe_proc == 'Demonstração 3'): df = pd.read_csv('round_robin3.csv') # Busca os processos de uma planilha do Google # df = pd.read_csv('https://docs.google.com/spreadsheets/d/e/2PACX-1vRqjZdPyFphn5nD9vwbv94obvpuY4vlPTRz31wLe_SaRCYSKGBZzvlIQkNd51rcow2Npua4RTLyf4PL/pub?output=csv') # df = pd.read_csv('processos.csv') st.write('**Processos**') st.write(df) quantum = st.number_input(label='Escolha o quantum (em segundos)', step=1, value=2, min_value=0, max_value=99999) # Lista de Processos processos = [] # Cria lista de processos for index, proc in df.iterrows(): processos.append( Processo(proc['id'], proc['ingresso'], proc['duracao'])) inicia_processos(processos) round_robin(processos, quantum)
Rosa = Advogado('OAB-SP 444.444', 'Rosa Weber') # AUDIENCIAS audiencia1 = Audiencia('01/01/2021', 'Acordo', 60) audiencia2 = Audiencia('02/02/2022', 'Litigio', 90) audiencia3 = Audiencia('03/03/2023', 'Acordo', 30) audiencia4 = Audiencia('04/04/2024', 'Litigio', 120) audiencia5 = Audiencia('05/05/2025', 'Acordo', 90) audiencia6 = Audiencia('06/06/2026', 'Litigio', 120) audiencia7 = Audiencia('07/07/2027', 'Acordo', 60) audiencia8 = Audiencia('08/08/2028', 'Litigio', 30) audiencia9 = Audiencia('09/09/2029', 'Acordo', 90) audiencia10 = Audiencia('10/10/2030', 'Litigio', 60) #PROCESSOS processo1 = Processo('Dano Morais', custo3, False, 'Transitado em julgado', Ciro, Carmem) processo2 = Processo('Divorcio Litigioso', custo5, True, 'Recurso', Jair, Gilmar) processo3 = Processo('Indenizacao por Danos Materiais', custo2, True, 'Em execucao', Marina, Rosa) processo4 = Processo('Execucao Contratual', custo9, False, 'Arquivado', Geraldo, Gilmar) processo5 = Processo('Habeas Corpus', custo4, False, 'Negado', Jair, Gilmar) processo6 = Processo('Habeas Data', custo6, True, 'Transitado em Julgado', Benevenuto, Rosa) processo7 = Processo('Pedido de Liminar', custo8, False, 'Arquivado', Fernando, Carmem) processo8 = Processo('Homicidio Duplamente Qualificado', custo7, True, 'Diligencia', Jair, Gilmar) processo9 = Processo('Recurso Extraordinario', custo10, False, 'Embargos Declaratorios', Joao, Roberto)
def main(): count_memoria = 0 dicionario_de_processos = ler_entrada.pegar_processos(entrada) #criando_processos for chave in dicionario_de_processos: processo_instrucoes = dicionario_de_processos[chave] nome = chave tamanho = processo_instrucoes[0][1] processo_temp = Processo(tamanho, nome, processo_instrucoes) lista_de_processos.append(processo_temp) #num_processos = len(lista_de_processos) # for x in lista_de_processos: # x._print_processo() mmu = Mmu(tamanho_frames, tamanho_frames, memoria_principal) mmu._iniciar__memoria() # for x in mmu._memoria_principal_posicoes: # print(x) mmu._iniciar_memoria_logica(lista_de_processos) mmu._iniciar_memoria_secundaria(lista_de_processos) # for x in mmu._memoria_secundaria_posicoes: # print('mmmmmmmmmmmmmmmeemmmmeeemmmooorriiiaseecccuuunnddaarriiasssssssssssssssssssssssss',x) i_lista_proc = 0 i_lista_proc_exec = 0 #i_lista_proc_block = 0 for x in lista_de_processos: del x.instrucoes[0] a = 0 while a < 20: a += 1 print("loop_inicio") if len(lista_de_processos) > 0: lista_de_processos_executando.append( lista_de_processos[i_lista_proc]) del lista_de_processos[i_lista_proc] for x in lista_de_processos_bloqueados: #print("pdovjspdoivjpiov",x.tempo_bloqueio) if tempo >= x.tempo_bloqueio: x.tempo_bloqueio = 0 del x.instrucoes[0] lista_de_processos.append(x) lista_de_processos_bloqueados.remove(x) if len(lista_de_processos_executando) > 0: proc_temp = lista_de_processos_executando[i_lista_proc_exec] if len(proc_temp.instrucoes) > 0: if "I" not in proc_temp.instrucoes[0][0]: regiao_logica = proc_temp.instrucoes[0][1] #print("REGIAAAAAAAAAAAAO LOGICA",regiao_logica) page_to_frame = -1 for x in range(len(mmu._memoria_principal_posicoes)): for y in mmu._memoria_principal_posicoes[x]: #print("y",y) if (len(mmu._memoria_principal_posicoes[x][y][2]) == 0) and page_to_frame == -1: page_to_frame = x if page_to_frame == -1: indice_logico = (int(regiao_logica) - (int(regiao_logica) % tamanho_frames)) / tamanho_frames print() print() print("#SWAP_PROCESSO") proc_temp._print_processo() print() print() print() count_memoria = swap(mmu, tabela_de_paginas, count_memoria) else: indice_logico = (int(proc_temp.instrucoes[0][1]) - (int(proc_temp.instrucoes[0][1]) % tamanho_frames)) / tamanho_frames tabela_de_paginas[page_to_frame] = int(indice_logico) chave = list( mmu._memoria_principal_posicoes[page_to_frame])[0] tupla_to_list = list( mmu._memoria_principal_posicoes[page_to_frame] [chave]) tupla_to_list[2] = [proc_temp.instrucoes[0]] #print("AQUI",tupla_to_list) mmu._memoria_principal_posicoes[page_to_frame][ chave] = tuple(tupla_to_list) executar_uma_instrucao() del proc_temp.instrucoes[0] lista_de_processos.append(proc_temp) del lista_de_processos_executando[i_lista_proc_exec] for x in mmu._memoria_secundaria_posicoes: for y in x: temp = list(x[y])[2] # print('tttttteempijociocoidjcjiociddicjcjdi',temp) if len(temp) > 0: idx = int(temp[0][1]) idx_logico = (idx - (idx % tamanho_frames) ) / tamanho_frames if idx_logico == indice_logico: temp2 = [] # print('hhuuhehuhuehhuehheuheuheueuhhbrbbrbrbrbrbbtttttteempijociocoidjcjiociddicjcjdi',x[y][2]) list(x[y])[2] = temp2 else: proc_temp.tempo_bloqueio = tempo + int( proc_temp.instrucoes[0][1]) lista_de_processos_bloqueados.append(proc_temp) del lista_de_processos_executando[i_lista_proc_exec] else: del lista_de_processos_executando[i_lista_proc_exec] print("lista_de_processos") for x in lista_de_processos: x._print_processo() print("lista_de_processos_bloc") for x in lista_de_processos_bloqueados: x._print_processo() print("lista_de_processos_exec") for x in lista_de_processos_executando: x._print_processo() if len(lista_de_processos) == 0 and len( lista_de_processos_bloqueados) == 0 and len( lista_de_processos_executando) == 0: break #print(len(lista_de_processos) , len(lista_de_processos_bloqueados) , len(lista_de_processos_executando)) print("TEMPO", tempo) executar_uma_instrucao() print("TABELA-DE-PAGINAS", tabela_de_paginas)
quantum = int(input("Digite o valor do quantum: ")) troca_contexto = int(input("Digite o valor da troca de contexto: ")) quant_process = int(input("Digite a quantidade de processos: ")) # quantum = 2#randint(1,5) # troca_contexto = 2#randint(1,3) # quant_process = 4#randint(1,5) # valores = [3,7,4,5] processos = ListaCircular() for i in range(quant_process): tempo_processo = int(input("Tempo do processo {}: ".format(i+1))) processo = Processo(tempo_processo) processos.push(processo) print ("Processo criados\n") for i in range(len(processos)): print (processos[i]) proc = Processador(quantum,contexto=troca_contexto) proc.execute(processos) print ("\nOrdem terminados e seus valores\n") for indice,valor in enumerate(proc.get_processos()): print ("{} - {}".format(indice+1,valor)) print (" - Turnarroud: {}u".format(valor.get_turnarroud())) print (" - Espera: {}u\n".format(valor.get_tempo_espera()))
def executarTest(): # Configuração for id in range(10): processo = Processo() processo.idProcesso = id processoEsperado = id processo.tamanhoProcesso = randint(1, 50) processo.tempoExecucao = randint(1, 50) processo.tempoVida = randint(1, 50) processo.prioridade = randint(0, 4) processo.bitR = randint(0, 1) processo.bitM = randint(0, 1) # Execução processo.executar() if (processoEsperado == processo.idProcesso): print("Esperado: {} == Retornado: {}".format( processo.idProcesso, processoEsperado)) else: print("Esperado: {} != Retornado: {}".format( processo.idProcesso, processoEsperado))
def atualizar(self): processo = Processo() if len(self.NumeroDoProcesso_entry.get()): processo.Sistema = self.sistema_entry.get() processo.Empreendimento = self.Empreendimento_entry.get() processo.NumeroDoProcesso = self.NumeroDoProcesso_entry.get() processo.DataRecebimento = self.DataRecebimento_entry.get() processo.Tipo = self.Tipo_entry.get() processo.EncaminhamentoPara = self.EncaminhamentoPara_entry.get() processo.DataDaVistoria = self.DataDaVistoria_entry.get() processo.PrazoParaLaudo = self.PrazoParaLaudo_entry.get() processo.NumeroDoOficio = self.NumeroDoOficio_entry.get() processo.Observacoes = self.Observacoes_entry.get() self.limparCampos() self.status['text'] = processo.editar() else: self.status['text'] = "Erro_Campo vazio "
audiencia7 = Audiencia('07/07/2027', 'Acordo', 60, 7) audiencia8 = Audiencia('08/08/2028', 'Litigio', 30, 8) audiencia9 = Audiencia('09/09/2029', 'Acordo', 90, 9) audiencia10 = Audiencia('10/10/2030', 'Litigio', 60, 10) audiencia11 = Audiencia('11/11/2031', 'Acordo', 180, 11) lista_audiencias.extend([ audiencia1, audiencia2, audiencia3, audiencia4, audiencia5, audiencia6, audiencia7, audiencia8, audiencia9, audiencia10, audiencia11 ]) #PROCESSOS lista_processos = [] processo1 = Processo('Dano Morais', custo3, False, 'Transitado em julgado', Ciro, Carmem, 1) processo2 = Processo('Divorcio Litigioso', custo5, True, 'Recurso', Jair, Gilmar, 2) processo3 = Processo('Indenizacao por Danos Materiais', custo2, True, 'Em execucao', Marina, Carmem, 3) processo4 = Processo('Execucao Contratual', custo9, False, 'Arquivado', Geraldo, Gilmar, 4) processo5 = Processo('Habeas Corpus', custo4, False, 'Negado', Jair, Gilmar, 5) processo6 = Processo('Habeas Data', custo6, True, 'Transitado em Julgado', Benevenuto, Rosa, 6) processo7 = Processo('Pedido de Liminar', custo8, False, 'Arquivado', Fernando, Carmem, 7) processo8 = Processo('Homicidio Duplamente Qualificado', custo7, True, 'Diligencia', Jair, Gilmar, 8) processo9 = Processo('Recurso Extraordinario', custo10, False, 'Embargos Declaratorios', Joao, Roberto, 9)
# -*- coding: utf-8 -*- from memoria import Memoria from processo import Processo from disco import Disco from menu import menu if __name__ == "__main__": menu() mem = Memoria() disco = Disco() processo = Processo(escrita=True) processo2 = Processo(escrita=True) processo3 = Processo(escrita=True) processo4 = Processo(escrita=False) mem.init_Mem() disco.init_Disco() if mem.mapear_processo(processo): print("[+] O processo 1 foi mapeado para a memória") if mem.mapear_processo(processo2): print("[+] O processo 2 foi mapeado para a memória") if mem.unmmap_processo(processo, disco): print("[+] O processo 1 foi desmapeado da memória") if mem.mapear_processo(processo3): print("[+] O processo 3 foi mapeado para a memória")
def removerSegmentoIndice3Test(): print("\nremoverSegmentoIndice3Test") # Configuração processo = Processo() processo.tamanhoProcesso = 150 processo1 = Processo() processo1.tamanhoProcesso = 120 processo2 = Processo() processo2.tamanhoProcesso = 300 processo3 = Processo() processo3.tamanhoProcesso = 650 mapeamentoEncadeadoBits = MapeamentoEncadeadoBits() segmento = Segmento() segmento.processo = processo segmento.posicaoInicial = mapeamentoEncadeadoBits.indiceMemoriaLivre segmento.quantidadePosicoes = processo.tamanhoProcesso mapeamentoEncadeadoBits.adicionarSegmento(segmento) segmento1 = Segmento() segmento1.processo = processo1 segmento1.posicaoInicial = mapeamentoEncadeadoBits.indiceMemoriaLivre segmento1.quantidadePosicoes = processo1.tamanhoProcesso mapeamentoEncadeadoBits.adicionarSegmento(segmento1) segmento2 = Segmento() segmento2.processo = processo2 segmento2.posicaoInicial = mapeamentoEncadeadoBits.indiceMemoriaLivre segmento2.quantidadePosicoes = processo2.tamanhoProcesso mapeamentoEncadeadoBits.adicionarSegmento(segmento2) segmento3 = Segmento() segmento3.processo = processo3 segmento3.posicaoInicial = mapeamentoEncadeadoBits.indiceMemoriaLivre segmento3.quantidadePosicoes = processo3.tamanhoProcesso mapeamentoEncadeadoBits.adicionarSegmento(segmento3) # Execução mapeamentoEncadeadoBits.exibirMapaBits() mapeamentoEncadeadoBits.removerSegmento(3) # Validação mapeamentoEncadeadoBits.exibirMapaBits()
def popularMapaBits(cls, listaTamanhoProcesso): processo = Processo() processo.bitR = 0 processo.bitM = 0 processo.tamanhoProcesso = listaTamanhoProcesso[0] processo1 = Processo() processo1.bitR = 0 processo1.bitM = 0 processo1.tamanhoProcesso = listaTamanhoProcesso[1] processo2 = Processo() processo2.bitR = 0 processo2.bitM = 1 processo2.tamanhoProcesso = listaTamanhoProcesso[2] processo3 = Processo() processo3.bitR = 1 processo3.bitM = 1 processo3.tamanhoProcesso = listaTamanhoProcesso[3] processo4 = Processo() processo4.bitR = 1 processo4.bitM = 0 processo4.tamanhoProcesso = listaTamanhoProcesso[4] mapeamentoEncadeadoBits = MapeamentoEncadeadoBits() segmento = Segmento() segmento.processo = processo segmento.definirClasseSubstituicaoPagina() segmento.posicaoInicial = mapeamentoEncadeadoBits.indiceMemoriaLivre segmento.quantidadePosicoes = processo.tamanhoProcesso mapeamentoEncadeadoBits.adicionarSegmento(segmento) segmento1 = Segmento() segmento1.processo = processo1 segmento1.definirClasseSubstituicaoPagina() segmento1.posicaoInicial = mapeamentoEncadeadoBits.indiceMemoriaLivre segmento1.quantidadePosicoes = processo1.tamanhoProcesso mapeamentoEncadeadoBits.adicionarSegmento(segmento1) segmento2 = Segmento() segmento2.processo = processo2 segmento2.definirClasseSubstituicaoPagina() segmento2.posicaoInicial = mapeamentoEncadeadoBits.indiceMemoriaLivre segmento2.quantidadePosicoes = processo2.tamanhoProcesso mapeamentoEncadeadoBits.adicionarSegmento(segmento2) segmento3 = Segmento() segmento3.processo = processo3 segmento3.definirClasseSubstituicaoPagina() segmento3.posicaoInicial = mapeamentoEncadeadoBits.indiceMemoriaLivre segmento3.quantidadePosicoes = processo3.tamanhoProcesso mapeamentoEncadeadoBits.adicionarSegmento(segmento3) segmento4 = Segmento() segmento4.processo = processo4 segmento4.definirClasseSubstituicaoPagina() segmento4.posicaoInicial = mapeamentoEncadeadoBits.indiceMemoriaLivre segmento4.quantidadePosicoes = processo4.tamanhoProcesso mapeamentoEncadeadoBits.adicionarSegmento(segmento4) return mapeamentoEncadeadoBits
def __init__(self, tamanho_memoria): self.processo_main = Processo(-1, 0, 0, 0, None) self.tamanho_memoria = tamanho_memoria self.estrategia = Estrategia(self.processo_main, self.tamanho_memoria)
def __init__(self, processo_main=None, tamanho_memoria=0): self.processo_main = processo_main self.tamanho_memoria = tamanho_memoria self.processo_main.processo = Processo(None, self.tamanho_memoria, None, 0, 'L')
def __init__(self, tamanho_memoria): self.processo_main = Processo(-1, 0, 0, 0) self.tamanho_memoria = tamanho_memoria self.identificadores = {} self.estrategia = Estrategia(self.processo_main, self.tamanho_memoria, self.identificadores)
def exibirProcessoTest(): # Configuração for id in range(10): processo = Processo() processo.idProcesso = id processo.tamanhoProcesso = randint(1, 50) processo.tempoExecucao = randint(1, 50) processo.tempoVida = randint(1, 50) processo.prioridade = randint(0, 4) processo.bitR = randint(0, 1) processo.bitM = randint(0, 1) # Execução processo.exibirInfoProcesso()