Ejemplo n.º 1
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 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()
Ejemplo n.º 3
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))
    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()
Ejemplo n.º 6
0
    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