private void FormSimulador_Load(object sender, EventArgs e)
        {
            algoritmo = new AlgoritmoFIFO();

            comboBox1.SelectedIndex = 0;

            #region Dados Exemplo 1
            //algoritmo.CriaProcesso(0, 4, "A", 5);
            //algoritmo.CriaProcesso(2, 4, "B", 4);
            //algoritmo.CriaProcesso(2, 4, "C", 3);
            //algoritmo.CriaProcesso(4, 4, "D", 1);
            //algoritmo.CriaProcesso(4, 4, "E", 1);
            //algoritmo.CriaProcesso(6, 4, "F", 1);
            #endregion

            #region Dados Exemplo 2 (livro)
            algoritmo.CriaProcesso(0, 5, "A", 2);
            algoritmo.CriaProcesso(0, 2, "B", 3);
            algoritmo.CriaProcesso(1, 4, "C", 1);
            algoritmo.CriaProcesso(3, 3, "D", 4);
            #endregion

            var bindList = new BindingList<Processo>(algoritmo.Processos);
            dataGridViewProcessos.DataSource = bindList;

            dataGridViewProcessos.Columns["PID"].Width = 35;
            dataGridViewProcessos.Columns["Nome"].Width = 60;
            dataGridViewProcessos.Columns["Inicio"].Width = 70;
            dataGridViewProcessos.Columns["Duracao"].Width = 70;
            dataGridViewProcessos.Columns["Prioridade"].Width = 70;
        }
        private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            labelPrioridade.Visible = comboBox1.SelectedIndex == 1;
            textBoxPrioridade.Visible = comboBox1.SelectedIndex == 1;

            var tempProcessos = algoritmo.Processos;

            switch (comboBox1.SelectedIndex)
            {
                case 0: // FIFO
                    algoritmo = new AlgoritmoFIFO();
                    break;
                case 1: // Prioridade
                    algoritmo = new AlgoritmoPrioridade();
                    break;
                case 2: // Round-Robin
                    algoritmo = new AlgoritmoRoundRobin();
                    break;
                case 3: // SJF
                    algoritmo = new AlgoritmoSJF();
                    break;

                default:
                    break;
            }

            foreach (var item in tempProcessos)
            {
                algoritmo.CriaProcesso(item.Inicio, item.Duracao, item.Nome, item.Prioridade);
            }

            var bindList = new BindingList<Processo>(algoritmo.Processos);
            dataGridViewProcessos.DataSource = bindList;
        }