Ejemplo n.º 1
0
 public void cpu_stan_zapisz(Procesor x)
 {
     cpu_stan[0]      = x.get_r0();
     cpu_stan[1]      = x.get_r1();
     cpu_stan[2]      = x.get_r2();
     cpu_stan[3]      = x.get_r3();
     proces_last_time = x.get_lr() - cpu_stan[4];
     cpu_stan[4]      = x.get_lr();
 }
Ejemplo n.º 2
0
 public void cpu_stan_wczytaj(Procesor x)
 {
     currentForm.SetText("|||||||WCZYTUJE STAN PROCESORA|||||||");
     x.set_r0(cpu_stan[0]);
     x.set_r1(cpu_stan[1]);
     x.set_r2(cpu_stan[2]);
     x.set_r3(cpu_stan[3]);
     x.set_lr(cpu_stan[4], this.proces_name);
 }
        public void srt(List <Proces> grupy_procesow, Procesor cpu)
        {
            if (grupy_procesow.Count == 1)
            {
                proces_indeks = 0;
            }
            foreach (Proces x in grupy_procesow)
            {
                if (x.blocked == false && x.stopped == false)
                {
                    oblicz_czas(x);
                }
            }
            currentForm.SetText("SRT: Obliczone nowe czasy przewidywane do konca procesow");
            Proces run = grupy_procesow[proces_aktywny(grupy_procesow)];

            proces_indeks = min_czas(ref run, grupy_procesow);
            if (proces_indeks >= 0)
            {
                if (grupy_procesow[proces_indeks] != run)
                {
                    /*  uruchom nowy proces*/
                    run.running = false;
                    run.cpu_stan_zapisz(cpu);
                    run.czy_sprawdzony = false;
                    grupy_procesow[proces_indeks].running = true;
                    grupy_procesow[proces_indeks].cpu_stan_wczytaj(cpu);
                    currentForm.SetText("SRT: Uruchomiono proces o nazwie " + grupy_procesow[proces_indeks].proces_name);
                }
                else
                {
                    /*nie zmieniaj i kontynuuj stary*/
                    currentForm.SetText("SRT: Kontynuujemy proces o nazwie " + grupy_procesow[proces_indeks].proces_name);
                }
            }
            else
            {
                currentForm.SetText("SRT: Kontynuujemy proces o nazwie " + run.proces_name);
            }
        }