Beispiel #1
0
        public static void ProcessaIO(Processo processo)
        {
            var bound = 0;

            while (bound < 100 && processo.Ciclos > 0)
            {
                processo.Ciclos--;
                bound++;
            }
            if (bound > 0)
            {
                Console.WriteLine(string.Format("CICLO NUMERO: {0}, PROCESSO {1}  DO TIPO {3} EXECUTOU POR UNIDADES {2} DE TEMPO", processo.Num, processo.Nome, bound, processo.Tipo));
            }
        }
Beispiel #2
0
        static void Main(string[] args)
        {
            Console.WriteLine("                         ``                       ");
            Console.WriteLine("                      :;;::'':                    ");
            Console.WriteLine("                    `',`....`;'.                  ");
            Console.WriteLine("                   `'`........,'.                 ");
            Console.WriteLine("                   '...,,,,,,,,:'`                ");
            Console.WriteLine("                  ;:,,,,,,,,,,:,+;                ");
            Console.WriteLine("                  ',,,,,,::::::::+`               ");
            Console.WriteLine("                 ;',:::::::::::::#;               ");
            Console.WriteLine("                 '::@,,+;::;;;;;;+'               ");
            Console.WriteLine("                .+:#:@@+;;;;;;;;;'+,              ");
            Console.WriteLine("                ;#+;+``.@@;'@+'@''#;              ");
            Console.WriteLine("                '#'@,.`..+'@'@#;#+#'              ");
            Console.WriteLine("                '#',...`.##@:``;+@@+`             ");
            Console.WriteLine("               `+@#,.```.,@,..`.,+@+.             ");
            Console.WriteLine("               ,+@@..```',+..```.#@#:             ");
            Console.WriteLine("               :#@#.````@;':````.:@#;             ");
            Console.WriteLine("               ;#@+,```,@#@,````.,@#'             ");
            Console.WriteLine("               '#@#,```.@@@@````.,@#'             ");
            Console.WriteLine("               '#@@,.```+++@````.;@#'             ");
            Console.WriteLine("               '#@@,.```.,#,.`...@@@'             ");
            Console.WriteLine("               +@@@:,..,``.,,.``'@@@+             ");
            Console.WriteLine("               +@@@@...:``.,,,,@@@@@+`            ");
            Console.WriteLine("              ,#@@@@#.`::,.,,:.@@@@@#:            ");
            Console.WriteLine("              ;#@@@@`,:::::,,,``@@@@#'            ");
            Console.WriteLine("             .,@@@@```..::,::.`` @@@@',           ");
            Console.WriteLine("             ::@@@+````,,:::,.```;@@@'.           ");
            Console.WriteLine("            ,,'@@@`````.,:::.`````@@@#.:          ");
            Console.WriteLine("            ,:#@@+``````,,:,.`````;@@@,,`         ");
            Console.WriteLine("           ::'@@@```````....```````@@@':,         ");
            Console.WriteLine("          ;:'@@@@`````````.````````#@@@'::        ");
            Console.WriteLine("         ::'@@@@;``````````````````,@@@@+::       ");
            Console.WriteLine("        `:'##@@@````````````````````@@@##':.      ");
            Console.WriteLine("        :;++##@@````````````````````@@##++;:      ");
            Console.WriteLine("       `:+';`#@@....................#@#`;'+;.     ");
            Console.WriteLine("       ,;;`  +@#....................+@+   ;;,     ");
            Console.WriteLine("       .:    '#'....................:#+    ,,     ");
            Console.WriteLine("             '#:....................,#'           ");
            Console.WriteLine("             :#,....................,#:           ");
            Console.WriteLine("             :#,.....................#:           ");
            Console.WriteLine("             ,:,.....................::           ");
            Console.WriteLine("              ,,,,,,,,,,,,,,,,,,,,,,,:`           ");
            Console.WriteLine("              :.,,,,,,,,,,,,,,,,,,,,.:            ");
            Console.WriteLine("              :,.,,,,,,,,,,,,,,,,,,.,;            ");
            Console.WriteLine("               :.:::,,,,,,,,,,,,::,,:`            ");
            Console.WriteLine("               ':;;;;:,,,,,,,,:;;;;:'             ");
            Console.WriteLine("               ,:;:::;::,,,,,:;;::;:,             ");
            Console.WriteLine("              ,,```.::;:,,,,:;::,```.,            ");
            Console.WriteLine("             ..`````,::;:,,:;:::``````,           ");
            Console.WriteLine("            `,.......::::,,::::.......,.          ");
            Console.WriteLine("            ,,.......:::;,,;:::........,          ");
            Console.WriteLine("            ,,,,,...,:::;:,;:::....,,,,:.         ");
            Console.WriteLine("          `.::,,,,,,,:::;::;;:::,,,,,,,:,`        ");
            Console.WriteLine("         ``,:;:::::::::;;::;;;:::::::::::`        ");
            Console.WriteLine("         `.,:;;::::::;;;;'';;;;::::::;;:,.`       ");
            Console.WriteLine("         `.,::;;;;;;;;;'''''';;;;;;;;:::,.`       ");
            Console.WriteLine("         ``..,,,,,::::::;;;;::::::,,,,,..`        ");
            Console.WriteLine("           ````........,,,,,,.......`````         ");
            Console.WriteLine("                  ````````````````                ");
            Console.WriteLine("                                                  ");
            Console.WriteLine("                                                  ");
            Console.WriteLine("                                                  ");
            Console.WriteLine("                                                  ");
            Console.WriteLine("                                                  ");
            Console.WriteLine("                                                  ");

            Console.WriteLine("");
            Console.WriteLine("");
            Console.WriteLine("");
            Console.WriteLine("Digite os valores de entrata no formato nome,ciclos,tipo");
            var input     = Console.ReadLine();
            var processos = new List <Processo>();

            var count = 1;

            while (!input.Equals("X"))
            {
                var dados = input.Split(',');

                try
                {
                    var processo = new Processo
                    {
                        Nome   = dados[0],
                        Ciclos = Int32.Parse(dados[1]),
                        Tipo   = (Tipo)Enum.Parse(typeof(Tipo), dados[2]),
                    };
                    if (processos.Select(a => a.Nome).Contains(processo.Nome))
                    {
                        Console.WriteLine("Ja existe um processo com este nome.");
                    }
                    else
                    {
                        processo.Num = count;
                        processos.Add(processo);
                        count++;
                    }
                }
                catch (Exception e)
                {
                    Console.WriteLine("Dados em formato incorreto");
                }

                Console.WriteLine();
                Console.WriteLine();
                Console.WriteLine("Digite os novos dados ou X para sair:");
                input = Console.ReadLine();
            }

            processos.Add(new Processo
            {
                Nome   = "A",
                Ciclos = 170,
                Tipo   = Tipo.C,
                Num    = 1
            });
            processos.Add(new Processo
            {
                Nome   = "B",
                Ciclos = 25,
                Tipo   = Tipo.C,
                Num    = 2
            });
            processos.Add(new Processo
            {
                Nome   = "C",
                Ciclos = 1000,
                Tipo   = Tipo.C,
                Num    = 3
            });
            processos.Add(new Processo
            {
                Nome   = "D",
                Ciclos = 50,
                Tipo   = Tipo.I,
                Num    = 4
            });
            processos.Add(new Processo
            {
                Nome   = "E",
                Ciclos = 35,
                Tipo   = Tipo.I,
                Num    = 5
            });

            processos.Add(new Processo
            {
                Nome   = "F",
                Ciclos = 200,
                Tipo   = Tipo.I,
                Num    = 6
            });

            processos.Add(new Processo
            {
                Nome   = "G",
                Ciclos = 200,
                Tipo   = Tipo.I,
                Num    = 7
            });


            processos = OrderList(processos);
            while (processos.Select(a => a.Ciclos).Sum() > 0)
            {
                foreach (var processo in processos)
                {
                    if (processo.Tipo == Tipo.I)
                    {
                        ProcessaIO(processo);
                    }
                    else
                    {
                        ProcessaCPU(processo);
                    }
                }
            }
            Console.ReadLine();
        }