Пример #1
0
        public RR(double lambda, List <double> t, List <int> k, int n, double quantum, int clusterNum, double a, double b, List <double> percent, double tetta, double eps, double crit)
        {
            queue = new ListQueue <Task>();
            ListQueue <Task> listQueue = new ListQueue <Task>();
            Random           random    = new Random();
            int id = 0;

            for (int i = 0; i < t.Count; i++)
            {
                double time         = 0;
                double timeDeadline = k.ElementAt(i) * t.ElementAt(i);
                for (int j = 0; j < n; j++)
                {
                    time += generateEvent(lambda);
                    double timeTaskInit = time;
                    double trust        = random.NextDouble();
                    listQueue.Enqueue(new Task(timeTaskInit, timeDeadline, t.ElementAt(i), id, trust));
                    id++;
                }
            }
            // Надо добавить идентификаторы что бы потом удобно переносить
            while (listQueue.Count != 0)
            {
                double initTime = double.MaxValue;
                int    ptr      = 0;
                for (int i = 0; i < listQueue.Count; i++)
                {
                    if (listQueue.ElementAt(i).getTimeInit() < initTime)
                    {
                        ptr      = i;
                        initTime = listQueue.ElementAt(i).getTimeInit();
                    }
                }
                queue.Enqueue(listQueue.ElementAt(ptr));
                listQueue.RemoveAt(ptr);
            }
            listQ = new ListQueue <Task>();
            ready = new ListQueue <Task>();
            //overdue = new ListQueue<Task>();
            this.quantum = quantum;
            cluster      = new Cluster(clusterNum, percent, tetta, eps, crit);
            this.a       = a;
            this.b       = b;
        }
Пример #2
0
 public RR(ListQueue <Task> queue)
 {
     this.queue = queue;
 }
Пример #3
0
 public EDF(ListQueue <Task> queue)
 {
     this.queue = queue;
 }