def adicionarProcessoMemoria3ProcessosTamanhoPaginaTest(): print("\nadicionarProcessoMemoria3ProcessosTamanhoPaginaTest") # Configuração caminhoDisco = "discorepositorio.csv" processo = MemoriaSecundaria.buscarProcessoDisco(caminhoDisco) processo1 = MemoriaSecundaria.buscarProcessoDisco(caminhoDisco) processo2 = MemoriaSecundaria.buscarProcessoDisco(caminhoDisco) tamanhoPagina = 22 # Execução memoriaPrimaria = MemoriaPrimaria() posicaoInicial = 0 memoriaPrimaria.adicionarProcessoMemoria(processo, posicaoInicial, tamanhoPagina) posicaoInicial = tamanhoPagina memoriaPrimaria.adicionarProcessoMemoria(processo1, posicaoInicial, tamanhoPagina) posicaoInicial = tamanhoPagina memoriaPrimaria.adicionarProcessoMemoria(processo2, posicaoInicial, tamanhoPagina) # Validação memoriaPrimaria.exibirMemoriaPrimariaTamanhoPagina(tamanhoPagina)
def adicionarProcessoMemoria3ProcessosTamanhoTotalProcessoTest(): print("\nadicionarProcessoMemoria3ProcessosTamanhoTotalProcessoTest") # Configuração caminhoDisco = "discorepositorio.csv" processo = MemoriaSecundaria.buscarProcessoDisco(caminhoDisco) processo1 = MemoriaSecundaria.buscarProcessoDisco(caminhoDisco) processo2 = MemoriaSecundaria.buscarProcessoDisco(caminhoDisco) # Execução memoriaPrimaria = MemoriaPrimaria() posicaoInicial = 0 memoriaPrimaria.adicionarProcessoMemoria(processo, 0) posicaoInicial = processo.tamanhoProcesso memoriaPrimaria.adicionarProcessoMemoria(processo1, posicaoInicial) posicaoInicial = processo1.tamanhoProcesso memoriaPrimaria.adicionarProcessoMemoria(processo2, posicaoInicial) # Validação memoriaPrimaria.exibirMemoriaPrimariaTamanhoTotalProcesso()
def liberarMemoria3ProcessosIndice1TamanhoPaginaTest(): print("\nliberarMemoria3ProcessosIndice1TamanhoPaginaTest") # Configuração memoriaPrimaria = MemoriaPrimaria() mapaBits = MapeamentoEncadeadoBits() caminhoDisco = "discorepositorio.csv" tamanhoPagina = 20 processo = MemoriaSecundaria.buscarProcessoDisco(caminhoDisco) processo.bitR = 1 processo.bitM = 0 posicaoInicial = mapaBits.indiceMemoriaLivre memoriaPrimaria.adicionarProcessoMemoria(processo, posicaoInicial, tamanhoPagina) segmento = Segmento() segmento.processo = processo segmento.posicaoInicial = posicaoInicial segmento.quantidadePosicoes = tamanhoPagina segmento.definirClasseSubstituicaoPagina() mapaBits.adicionarSegmento(segmento) processo1 = MemoriaSecundaria.buscarProcessoDisco(caminhoDisco) processo1.bitR = 0 processo1.bitM = 0 posicaoInicial = mapaBits.indiceMemoriaLivre memoriaPrimaria.adicionarProcessoMemoria(processo1, posicaoInicial, tamanhoPagina) segmento1 = Segmento() segmento1.processo = processo1 segmento1.posicaoInicial = posicaoInicial segmento1.quantidadePosicoes = tamanhoPagina segmento1.definirClasseSubstituicaoPagina() mapaBits.adicionarSegmento(segmento1) processo2 = MemoriaSecundaria.buscarProcessoDisco(caminhoDisco) processo2.bitR = 0 processo2.bitM = 1 posicaoInicial = mapaBits.indiceMemoriaLivre memoriaPrimaria.adicionarProcessoMemoria(processo2, posicaoInicial, tamanhoPagina) segmento2 = Segmento() segmento2.processo = processo2 segmento2.posicaoInicial = posicaoInicial segmento2.quantidadePosicoes = tamanhoPagina segmento2.definirClasseSubstituicaoPagina() mapaBits.adicionarSegmento(segmento2) # Execução memoriaPrimaria.exibirMemoriaPrimariaTamanhoPagina(tamanhoPagina) indiceProcessoASerRemovido = mapaBits.buscarPosicaoInicialProcessoPelaClasseSubstituicao( 0) memoriaPrimaria.liberarMemoria(indiceProcessoASerRemovido, tamanhoPagina) # Validação memoriaPrimaria.exibirMemoriaPrimariaTamanhoPagina(tamanhoPagina)
TAMANHOPAGINA = 200 gerenciadorMemoria = GerenciadorMemoria() if (opcao == 1): metodoSubstituicaoProcesso = SubstituicaoProcesso.SWAPPING gerenciadorMemoria.tamanhoPagina = None else: metodoSubstituicaoProcesso = SubstituicaoProcesso.PAGINACAO gerenciadorMemoria.tamanhoPagina = TAMANHOPAGINA contadorIdProcesso = 1000 # Caminho para o disco físico (arquivo) caminhoDisco = "disco.csv" memoriaPrimaria = MemoriaPrimaria() processador = Processador() while (True): print("O método de substituição atual é {}\n".format( metodoSubstituicaoProcesso.name)) opcao = menu() if (opcao == 1): novoProcesso = criarProcesso(contadorIdProcesso) MemoriaSecundaria.armazenarProcessoDisco(novoProcesso, caminhoDisco) contadorIdProcesso += 1 elif (opcao == 2):