// 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)); } }
abstract public void executaAcao(RAM ram);