def liberarMemoria3ProcessosIndice1TamanhoTotalProcessoTest(): print("\nliberarMemoria3ProcessosIndice1TamanhoTotalProcessoTest") # Configuração memoriaPrimaria = MemoriaPrimaria() mapaBits = MapeamentoEncadeadoBits() caminhoDisco = "discorepositorio.csv" processo = MemoriaSecundaria.buscarProcessoDisco(caminhoDisco) processo.bitR = 0 processo.bitM = 0 posicaoInicial = mapaBits.indiceMemoriaLivre memoriaPrimaria.adicionarProcessoMemoria(processo, posicaoInicial) segmento = Segmento() segmento.processo = processo segmento.posicaoInicial = posicaoInicial segmento.quantidadePosicoes = processo.tamanhoProcesso segmento.definirClasseSubstituicaoPagina() mapaBits.adicionarSegmento(segmento) processo1 = MemoriaSecundaria.buscarProcessoDisco(caminhoDisco) processo1.bitR = 1 processo1.bitM = 1 posicaoInicial = mapaBits.indiceMemoriaLivre memoriaPrimaria.adicionarProcessoMemoria(processo1, posicaoInicial) segmento1 = Segmento() segmento1.processo = processo1 segmento1.posicaoInicial = posicaoInicial segmento1.quantidadePosicoes = processo1.tamanhoProcesso segmento1.definirClasseSubstituicaoPagina() mapaBits.adicionarSegmento(segmento1) processo2 = MemoriaSecundaria.buscarProcessoDisco(caminhoDisco) processo2.bitR = 0 processo2.bitM = 0 posicaoInicial = mapaBits.indiceMemoriaLivre memoriaPrimaria.adicionarProcessoMemoria(processo2, posicaoInicial) segmento2 = Segmento() segmento2.processo = processo2 segmento2.posicaoInicial = posicaoInicial segmento2.quantidadePosicoes = processo2.tamanhoProcesso segmento2.definirClasseSubstituicaoPagina() mapaBits.adicionarSegmento(segmento2) # Execução memoriaPrimaria.exibirMemoriaPrimariaTamanhoTotalProcesso() # OBSERVAR RETORNO DO -1 PARA BUSCA DA CLASSE indiceProcessoASerRemovido = mapaBits.buscarPosicaoInicialProcessoPelaClasseSubstituicao( 0) memoriaPrimaria.liberarMemoria(indiceProcessoASerRemovido) # Validação memoriaPrimaria.exibirMemoriaPrimariaTamanhoTotalProcesso()
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 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 adicionarProcessoMemoriaPrimaria(self, memoriaPrimaria, processo): if (self._tamanhoPagina == None): espacoOcupadoProcesso = processo.tamanhoProcesso else: espacoOcupadoProcesso = self._tamanhoPagina posicaoInicial = self._mapaBits.indiceMemoriaLivre memoriaPrimaria.adicionarProcessoMemoria(processo, posicaoInicial, espacoOcupadoProcesso) segmento = Segmento() segmento.processo = processo segmento.posicaoInicial = posicaoInicial segmento.quantidadePosicoes = espacoOcupadoProcesso self._mapaBits.adicionarSegmento(segmento)
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 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