Example #1
0
    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)
Example #2
0
    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()
Example #3
0
    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)
Example #4
0
    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):