Ejemplo n.º 1
0
    def mostrar_resultados(self):
        media_de_espera = 0
        media_em_memoria = 0

        for processo in self.processos:
            fatias_gastas = len(processo.historico)
            fatias_gastas_em_memoria = fatias_gastas - processo.inicio
            fatias_em_espera = fatias_gastas_em_memoria - processo.fatias

            media_de_espera += fatias_em_espera
            media_em_memoria += fatias_gastas_em_memoria

            Console.quebrar_linha(2)
            Console.mostrar(f'Resultados do processo {processo.nome}')
            Console.adicionar_separador(13)
            Console.mostrar(f'Tempo de espera   -> {fatias_em_espera}')
            Console.mostrar(f'Tempo de execução -> {fatias_gastas_em_memoria}')
            Console.adicionar_separador(13)

        quantidade_de_processos = len(self.processos)
        media_de_espera /= quantidade_de_processos
        media_em_memoria /= quantidade_de_processos

        Console.quebrar_linha(2)
        Console.adicionar_separador(19)
        Console.mostrar(
            f'Tempo médio de espera   -> {media_de_espera :.2f} fatias')
        Console.mostrar(
            f'Tempo médio de execução -> {media_em_memoria :.2f} fatias')
        Console.adicionar_separador(19)
Ejemplo n.º 2
0
    def mostrar_execucao(self):
        def obter_espacos(valor):
            return (2 - len(f'{valor}')) * ' '

        Console.quebrar_linha(vezes=1)

        for i, processo in enumerate(self.fila_de_execucao):
            faltando = processo.fatias - processo.processado
            n = ' | '

            Console.mostrar(f'{i+1} -> {processo.nome}', n=n)

            espacos = obter_espacos(faltando)
            Console.mostrar(f'Faltando -> {espacos}{faltando}', n=n, t='')

            espacos = obter_espacos(processo.processado)
            Console.mostrar(f'Processado -> {espacos}{processo.processado}',
                            n=n,
                            t='')

            espacos = obter_espacos(processo.fatias)
            Console.mostrar(f'Necessario -> {espacos}{processo.fatias}',
                            n=n,
                            t='')

            estado = processo.estado()
            if i == 0 and estado != 'finalizado':
                estado = 'executou'

            Console.mostrar(f'Estado -> {estado}', t='')
Ejemplo n.º 3
0
    def carregar_via_console(self):
        Console.quebrar_linha(vezes=1)

        self.quantum = int(Console.obter('De quanto é o quantum ?'))
        self.contexto = int(
            Console.obter('Qual o custo da troca de contexto ?'))

        quantidade_de_processos = int(
            Console.obter('Qual a quantidade de processos ?'))

        for i in range(quantidade_de_processos):
            Console.adicionar_separador(tamanho=22)

            nome = Console.obter(f'Qual o nome do processo {i + 1} ?').upper()
            inicio = int(
                Console.obter(
                    f'Em que fatia de tempo "{nome}" entra na memoria ?'))
            fatias = int(
                Console.obter(
                    f'Quantas fatias de tempo "{nome}" irá precisar ?',
                    linhas=0))

            Console.adicionar_separador(tamanho=22)
            Console.quebrar_linha(vezes=2)

            self.processos.append({
                'nome': nome,
                'inicio': inicio,
                'fatias': fatias
            })
Ejemplo n.º 4
0
    def mostrar_tabela(self):
        Console.quebrar_linha(2)

        n = '\033[0;0m'

        if self.fatias_executadas < 27:
            tamanho_da_fatia_em_tela = 3 * ' '
        elif self.fatias_executadas < 43:
            tamanho_da_fatia_em_tela = 2 * ' '
        else:
            tamanho_da_fatia_em_tela = 1 * ' '

        for processo in self.processos:
            Console.mostrar(f'{processo.nome} -> ', n=n, t='   ')

            for estado in processo.historico:
                representacao = f'{CORES[estado]}{tamanho_da_fatia_em_tela}'
                Console.mostrar(f'|{representacao}', n=n, t='')

            Console.quebrar_linha(2)