public static List <Kullanıcı> YazıcıRRhesapla(int[] sayfaSayilari, string[] kullaniciIsimleri, List <Kullanıcı> kullanıcıRR, YazıcıRR RR, int kontrol) { float toplam = 0, topSüre = 0; int sayac = 0, i = 0; if (kontrol == 1) { for (int l = 0; l < sayfaSayilari.Length; l++) { RR.enque(sayfaSayilari[l], l); } } Console.WriteLine("KULLANICI İSMİ İŞLEM SÜRESİ(İTS)\n-------------- ----------------"); while (!RR.bosMu()) { Kullanıcı gönderen = new Kullanıcı(); sayac++; var tuple = RR.deque(); toplam += tuple.Item1; gönderen.isim = tuple.Item2; gönderen.işlemSüresi = toplam / 6; gönderen.sayfaSayisi = tuple.Item1; kullanıcıRR.Add(gönderen); topSüre += kullanıcıRR[i].işlemSüresi; Console.Write("{0,-6}", kullanıcıRR[i].isim); Console.WriteLine(" --> {0:0.0} ", kullanıcıRR[i].işlemSüresi); i++; } Console.WriteLine("Ortalama işlem süresi: {0:0.0} \n", (topSüre / sayac)); Console.ReadLine(); return(kullanıcıRR); }
static void Main(string[] args) { string[] isimler = { "Kullanıcı 1", "Kullanıcı 2", "Kullanıcı 3", "Kullanıcı 4", "Kullanıcı 5", "Kullanıcı 6", "Kullanıcı 7", "Kullanıcı 8", "Kullanıcı 9" }; int[] sayfalar = { 21, 27, 41, 15, 3, 35, 43, 12, 17 }; int seçim = 0; int[] randomSayfaSayilari = new int[25]; string[] randomİsİsimleri = new string[25]; int randomSayfa = 0; YazıcıFIFO gidenFIFO = new YazıcıFIFO(); YazıcıPQ gidenPQ = new YazıcıPQ(); YazıcıRR gidenRR = new YazıcıRR(); YazıcıRR gidenRR2 = new YazıcıRR(); List <Kullanıcı> kullanıcılarFIFO = new List <Kullanıcı>(); List <Kullanıcı> kullanıcılarPQ = new List <Kullanıcı>(); List <Kullanıcı> randomKuyruk = new List <Kullanıcı>(); List <Kullanıcı> randomKuyruk2 = new List <Kullanıcı>(); List <Kullanıcı> kullanıcılarRR = new List <Kullanıcı>(); List <Kullanıcı> kullanıcılarRR2 = new List <Kullanıcı>(); List <Kullanıcı> randomKuyrukRR = new List <Kullanıcı>(); Console.WriteLine("Belgeler sadece YAZICIFIF0'ya gönderildiğinde :"); YazıcıFIF0hesapla(sayfalar, isimler, kullanıcılarFIFO, gidenFIFO, 1); // dizideki belgeler sadece yazıcı fifo'ya gönderilir Console.WriteLine("Belgeler sadece YAZICIPQ'ya gönderildiğinde :"); YazıcıPQhesapla(sayfalar, isimler, kullanıcılarPQ, gidenPQ, 1); // // dizideki belgeler sadece yazıcı pq'ya gönderilir Console.WriteLine("Belgeler her iki yazıcıdan birine random gönderildiğinde :"); for (int i = 0; i < sayfalar.Length; i++)// random ile ya fıfo ya da pqya yollanacak { seçim = sayi.Next(0, 2); if (seçim == 1) { gidenFIFO.enque(sayfalar[i]); } else { gidenPQ.enque(sayfalar[i]); } } randomKuyruk = YazıcıFIF0hesapla(sayfalar, isimler, randomKuyruk, gidenFIFO, 0); randomKuyruk2 = YazıcıPQhesapla(sayfalar, isimler, randomKuyruk2, gidenPQ, 0); kazançHesapla(kullanıcılarFIFO, kullanıcılarPQ, randomKuyruk, randomKuyruk2); Console.ReadKey(); List <Kullanıcı> randomIslerFIFO = new List <Kullanıcı>(); List <Kullanıcı> randomIslerPQ = new List <Kullanıcı>(); for (int k = 0; k < 25; k++) // for döngüsü 25 kere döner, 25 tane random iş üretilir { randomSayfa = sayi.Next(1, 101); randomSayfaSayilari[k] = randomSayfa; randomİsİsimleri[k] = "Kullanıcı " + (k + 1); } Console.WriteLine("\n25 TANE RANDOM İŞ ÜRETİLDİ !\nİŞ İSİMLERİ SAYFA SAY."); for (int l = 0; l < 25; l++) // { Console.WriteLine("{0,-9} --> {1,-5}", randomİsİsimleri[l], randomSayfaSayilari[l]); //Sayfa sayıları, iş numaraları ile birlikte ekrana yazdırılır } Console.WriteLine("\nRandom üretilen sayfa sayıları sadece YAZICIFIF0'ya gönderildiğinde :"); YazıcıFIF0hesapla(randomSayfaSayilari, randomİsİsimleri, randomIslerFIFO, gidenFIFO, 1); // random üretilen belgeler sadece yazıcı fifo'ya gönderilir Console.WriteLine("\nRandom üretilen sayfa sayıları sadece YAZICIPQ'ya gönderildiğinde :"); YazıcıPQhesapla(randomSayfaSayilari, randomİsİsimleri, randomIslerPQ, gidenPQ, 1); // random üretilen belgeler sadece yazıcı pq'ya gönderilir List <Kullanıcı> randomKuyrukİş = new List <Kullanıcı>(); List <Kullanıcı> randomKuyrukİş2 = new List <Kullanıcı>(); Console.WriteLine("\nRandom üretilen sayfa sayıları her iki yazıcıdan birine random gönderildiğinde :"); for (int i = 0; i < randomSayfaSayilari.Length; i++)// random üretilen sayfa sayıları, random olarak ya fıfo ya da pqya yollanacak { seçim = sayi.Next(0, 2); if (seçim == 1) { gidenFIFO.enque(randomSayfaSayilari[i]); } else { gidenPQ.enque(randomSayfaSayilari[i]); } gidenRR2.enque(randomSayfaSayilari[i], i); } randomKuyrukİş = YazıcıFIF0hesapla(randomSayfaSayilari, randomİsİsimleri, randomKuyrukİş, gidenFIFO, 0); randomKuyrukİş2 = YazıcıPQhesapla(randomSayfaSayilari, randomİsİsimleri, randomKuyrukİş2, gidenPQ, 0); kazançHesapla(randomIslerFIFO, randomIslerPQ, randomKuyrukİş, randomKuyrukİş2); Console.ReadKey(); Console.WriteLine("\nRandom üretilen sayfa sayıları YAZICIRR'ye gönderildiğinde :"); YazıcıRRhesapla(randomSayfaSayilari, randomİsİsimleri, randomKuyrukRR, gidenRR2, 0);//25 iş için işlemSüresiArtır(randomKuyrukRR, randomSayfaSayilari.Length); kazançRRHesapla(randomIslerFIFO, randomIslerPQ, randomKuyrukRR); //enUygunYazıcıyıBul(sayfalar, isimler); Console.ReadKey(); }