Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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();
        }