public void une_file_rnd(RAM_fix ram, List <string> Derl) //ordonnancement par une seule file d'attente { int t = 0; //n = 1; int part = 0; if (fifo.Count != 0) { t = 0; switch (n) { case 1: t = ram.Rech_first(fifo[0]); break; case 2: t = ram.Rech_best(fifo[0]); break; case 3: t = ram.Rech_worst(fifo[0]); break; } if (t != -1) { Derl.Add(">>>> le processus <" + fifo[0].name + "> est ajouter a lemplacement <" + t + ">\n\n"); fifo[0].Set_part(t); en_cours.Add(fifo[0]); ram.occ_part(ram.list_rep[t], fifo[0], fifo[0].Get_taille()); //ram.list_rep[t].Set_id(fifo[0].Get_id()); fifo.Remove(fifo[0]); } } t = -1; for (int i = 0; i < en_cours.Count; i++) { if (en_cours[i] != null) { en_cours[i].Set_time(en_cours[i].Get_temps() - 1); if (en_cours[i].Get_temps() == 0) { Derl.Add(""); Derl[minute + 1] += ">>>> le processus <" + en_cours[i].name + "> est libere de lemplacement<" + en_cours[i].Get_part() + ">\n\n"; part = en_cours[i].Get_part(); //finish(en_cours[i].Get_id()); ram.vider_part(ram.list_rep[part], en_cours[i].Get_taille()); finis++; fini.Add(en_cours[i]); en_cours.Remove(en_cours[i]); i--; if (fifo.Count != 0) { t = ram.Rech_first(fifo[0]); } } } } minute += 1; }
public void plusieurs_fifo(RAM_fix ram) //ordonnancement des processus par la methode de +files { int i = 0; i = 0; int part = 0; for (i = 0; i < en_cours.Count; i++) { if (en_cours[i] != null) { en_cours[i].Set_time(en_cours[i].Get_temps() - 1); if (en_cours[i].Get_temps() == 0) { finis++; fini.Add(en_cours[i]); part = en_cours[i].Get_part(); //en_cours.Remove(en_cours[i]); //ram.vider_part(ram.list_rep[part]); if (ram.list_rep[part].f_proc.Count > 0) { en_cours[i] = ram.list_rep[part].f_proc[0]; fifo.Remove(ram.list_rep[part].f_proc[0]); ram.list_rep[part].Set_id(en_cours[i].Get_id()); //ram.occ_part(ram.list_rep[part]); ram.list_rep[part].f_proc.Remove(ram.list_rep[part].f_proc[0]); } else { // ram.vider_part(ram.list_rep[part], en_cours[i].Get_taille()); en_cours.Remove(en_cours[i]); i--; } } } } }