static void Main(string[] args)
        {
            int resultado;
            var isTrue = true;
            IEscalonador Escalonamento = new Escalonador();

            while (isTrue)
            {
                Console.Clear();
                Console.WriteLine("Escalonador em lote.");
                Console.WriteLine("Trabalho de sistema operacional do segundo bimestre!");
                Console.WriteLine("----------------------------------------------------");
                Console.WriteLine("1 - Adicionar tarefas!");
                Console.WriteLine("2 - Rodar tarefas com algoritmo desejado!");
                Console.WriteLine("3 - Rodar tarefas com todos os algoritmos!");
                Console.WriteLine("4 - Sair!");
                resultado = int.Parse(Console.ReadLine());
                switch (resultado)
                {
                    case 1:
                        Escalonamento.AdicionarTarefa(); break;
                    case 2:
                        Escalonamento.RodarTarefa(); break;
                    case 3:
                        Escalonamento.RodarTodosAlgoritmos(); break;
                    case 4:
                        isTrue = false; break;
                    default:
                        break;
                }
            }
        }
示例#2
0
        static void Main(string[] args)
        {
            int    q, tC, slp; // Quantum, Troca de Contexto, Thread.Sleep;
            string nomeArquivo = "teste.txt";

            Console.Write("Valor do Quantum: ");
            q = Convert.ToInt32(Console.ReadLine());
            Console.Write("Valor da troca de contexto em ms: ");
            tC = Convert.ToInt32(Console.ReadLine());
            Console.Write("Valor do Thread.Sleep() em ms: ");
            slp = Convert.ToInt32(Console.ReadLine());

            Escalonador escalonador = Arquivo.LeituraArquivo(nomeArquivo, q, tC, slp);

            if (escalonador == null)
            {
                Console.WriteLine("O arquivo {0} não existe.", nomeArquivo);
            }
            else
            {
                Console.WriteLine(escalonador.ToString());
                escalonador.Run();
            }

            Console.WriteLine(escalonador.ToString());

            Console.WriteLine("\n\nPressione qualquer tecla para continuar...");
            Console.ReadKey();
        }
示例#3
0
        public static Escalonador LeituraArquivo(string nomeArquivo, int q, int tC, int sleep)
        {
            // Formatação do arquivo
            // id;nome;prioridade;quantidade_ciclos

            if (!File.Exists(nomeArquivo))
            {
                return(null);
            }

            string[]    info;
            Escalonador auxiliar = new Escalonador(q, tC, sleep);

            //Fazer a leitura do arquivo e organizar entre as 10 listas Circulares
            using (StreamReader entrada = new StreamReader(nomeArquivo))
            {
                while (!entrada.EndOfStream)
                {
                    info = entrada.ReadLine().Split(';');
                    auxiliar.AdicionarProcesso(new Processo(Convert.ToInt32(info[0]), info[1], Convert.ToInt32(info[2]), Convert.ToInt32(info[3])));
                }
            }

            return(auxiliar);
        }
示例#4
0
        private static void Main()
        {
            var tarefas = new List<Tarefa> { new Tarefa1 { IdTarefa = 'A' }, new Tarefa2 { IdTarefa = 'B' }, new Tarefa3 { IdTarefa = 'C' }, new Tarefa4 { IdTarefa = 'D' } };

            tarefas.ForEach(SolicitarInformacoesTarefa);

            var escalonador = new Escalonador.Escalonador(tarefas, SolicitarTempoTotalExecucao());

            ImprimeCabecalhoEmTela();
            SysConsole.WriteLine("Calculando tempo médio de execução...");
            escalonador.CalcularTemposExecucao();
            ImprimeTempoDeExecucao(tarefas);
            ImprimeCabecalhoEmTela();
            SysConsole.WriteLine("Escalonando...");

            escalonador.Escalonar();

            while (escalonador.EmProcessamento) ;

            ImprimeResultadoEscalonamento(escalonador.ProcessosExecutados, escalonador.TrocasContexto, escalonador.TempoTotalProcessamento);

            ImprimeGrafico(escalonador.ProcessosExecutados, escalonador.TempoTotalProcessamento);
            SysConsole.ReadKey();
        }