public void RoundRobin() { if (!Memory.EmptyProcessUser()) { //tira processo da fila Process p = Memory.KillProcess(); if (p != null) { RefreshData(); //Progressbar CPU ProgressCPU.Value = 0; ProgressCPU.Maximum = p.Time; //Nome do processo na CPU lblName.Text = p.Name; int i = 1; while (i <= 20) { //executa se for true break if (CPU.Execute(ref p)) { break; } //tempo do processo na CPU lblTime.Text = p.Time.ToString(); RefreshData(); //tempo de execução Thread MinhaThread = new Thread(ThTimer); MinhaThread.Start(); ProgressCPU.Increment(1); i++; } //mmu traduz MMU.Translate(ref p); ProgressCPU.Value = 0; //reseta nome e tempo CPU lblName.Text = ""; lblTime.Text = ""; } } //começa novamente o timer que irá chamar os escalonadores TimerCPU.Start(); }
public void FCFS() { //executar se a memoria não estiver vazia if (!Memory.EmptyProcessUser()) { //tira processo da fila Process p = Memory.KillProcess(); if (p != null) { RefreshData(); //progressbar CPU ProgressCPU.Value = 0; ProgressCPU.Maximum = p.Time; //nome do processo na cpu lblName.Text = p.Name; while (!CPU.Execute(ref p)) { //tempo do processo na cpu lblTime.Text = p.Time.ToString(); //tempo de execução Thread MinhaThread = new Thread(ThTimer); MinhaThread.Start(); ProgressCPU.Increment(1); } //MMU traduz MMU.Translate(ref p); //reseta progressBar CPU ProgressCPU.Value = 0; //reseta nome e tempo CPU lblName.Text = ""; lblTime.Text = ""; } } //começa novamente o timer que irá chamar os escalonadores TimerCPU.Start(); }