Exemple #1
0
    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))
Exemple #2
0
    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 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