예제 #1
0
        private static void _mostraProcessoEmExecucao(List <Processo> lstProcesso)
        {
            Processo processoEmExecucao = findByStatus(lstProcesso, EnumStatus.EmExecucao);

            if (processoEmExecucao != null)
            {
                Console.WriteLine($"O processo em execução é o processo: {processoEmExecucao.Nome}");
            }
            else
            {
                Console.WriteLine("Não existe nenhum processo em execução!");
            }
        }
예제 #2
0
        static void _down(Processo processo)
        {
            bool emExecuxao = processo.Status == EnumStatus.EmExecucao;
            bool finalizado = processo.Status == EnumStatus.Finalizado;

            if (!emExecuxao && !finalizado)
            {
                Console.WriteLine($"O processo - {processo.Nome} está solicitando um recurso.");
            }

            if (podeAlocar && _isAlocavel(processo))
            {
                ProcessoEmExecucao = processo;
                processo.Status    = EnumStatus.EmExecucao;
            }
            else if (processo.Status == EnumStatus.Livre)
            {
                processo.Status = EnumStatus.Dormindo;
            }

            podeAlocar = false;
        }