// No caso desta classe ela tira itens da lista
        public override void executaAcao(RAM ram)
        {
            // verificar se a ram esta cheia
            if (ram.espCritico[ram.inicio] == 0)
            {
                Console.Write("Area Critica Vazia\n");
                return;
            }

            for (int i = 0; i < base.quantidadeBlocosAcao; ++i)
            {
                var aux = Convert.ToString(ram.espCritico[ram.inicio]);
                Console.Write("Removeu: {0}\n", aux);
                ram.remover();
            }
        }
        static void Main(string[] args)
        {
            RAM ram = new RAM();
            var r   = new Random();

            Processo[] processos = new Processo[10];

            /// CONTAR AS 200 VEZES
            for (int contador = 0; contador < 200; ++contador)
            {
                /// Cria processos e adiciona no Aray
                for (int i = 0; i < 5; ++i)
                {
                    var aux = new ProcessoInput();
                    processos[i] = aux;
                }
                for (int i = 5; i < 10; ++i)
                {
                    var aux2 = new ProcessoOutput();
                    processos[i] = aux2;
                }


                /// DEIXAR OS 10 PROCESSOS ALEATORIO
                for (int i = 0; i < 10; i++)
                {
                    var j   = r.Next(10);
                    var obj = processos[j];
                    processos[j] = processos[i];
                    processos[i] = obj;
                }

                /// Executa os Processos
                for (int i = 0; i < 10; ++i)
                {
                    Console.Write("\nCarga[{0}] Processo [{1}]\n", contador + 1, i + 1);
                    var aux = processos[i];
                    aux.executaAcao(ram);
                }
            }
            ram.imprimir();
            Console.Read();
        }
        /// metodo feito para preencher a lista
        public override void executaAcao(RAM ram)
        {
            Random valor = new Random();

            if (ram.fim == 1000)
            {
                ram.fim = 0;
            }
            if (ram.espCritico[ram.fim] != 0)
            {
                Console.Write("Area Critica Cheia");
                return;
            }


            for (int i = 0; i < base.quantidadeBlocosAcao; ++i)
            {
                var aux = valor.Next(1, 101);
                ram.inserir(aux);
                Console.Write("Inseriu:{0}\n", Convert.ToString(aux));
            }
        }
Beispiel #4
0
 abstract public void executaAcao(RAM ram);