Круговой циклический алгоритм разделения времени - C#

Узнай цену своей работы

Формулировка задачи:

В пакете 5 заданий. Всем заданиям пакета по очереди предоставляется процессор на одинаковое время 10 с (круговой циклический алгоритм разделения времени). Если в течение этого времени заканчивается выполнение задания, оно покидает систему и освобождает процессор. Если же очередного кванта времени не хватает для завершения задания, оно помещается в конец очереди – пакета. Задания характеризуются временем работы процессора 50 +/- 45 с. Посоветуйте, как реализовать.

Решение задачи: «Круговой циклический алгоритм разделения времени»

textual
Листинг программы
  Queue<double[]> myQ = new Queue<double[]>();
              for (int w = 0; w < 5; w++)
              {
                  double[] Pak = new double[3];
                  Pak[0] = oPaket[w];
                  Pak[1] = 0;
                  Pak[2] = w;
                  myQ.Enqueue(Pak);
              }
              prab = 0; 
              while (myQ.Count >0)
              {
 
                  if (myQ.Peek()[0] > p)
                  {
                      prab += p;
                      double[] Newp = new double[3];
                      Newp[0] = myQ.Peek()[0]-p;
                      Newp[1] = prab;
                      Newp[2] = myQ.Peek()[2];
                      
                      myQ.Dequeue();
                      myQ.Enqueue(Newp);
                  }
                  else
                  {
                      if (myQ.Peek()[0] == p)
                      {
                          prab += p;
                          myQ.Peek()[1] = prab;
                         
                          rPaket[Convert.ToInt32(myQ.Peek()[2])] = myQ.Peek()[1];
                          myQ.Dequeue();
                      }
                      else
                      {
                          prab += myQ.Peek()[0];
                          myQ.Peek()[1] = prab;
                          rPaket[Convert.ToInt32(myQ.Peek()[2])] = myQ.Peek()[1];
                          myQ.Dequeue();
                      }
                  }
              }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 3.923 из 5
Похожие ответы