Лабораторная работа №3

Задание

  1. Создать класс, реализующий планировщик Round Robin. Экземпляры класса должны позволять запускать планировщик с ограничением его работы по времени, добавлять и удалять задачи, получать доступ к общему набору задач и набору задач, еще не завершивших свое исполнение.
    Пример для freepascal:
    
    type  
     TTask=function (maxtime:longint): boolean of object; // отдельная задача - метод класса
     или
    type  
     TTask=function (maxtime:longint): boolean; // отдельная задача - глобальная функция
     ... на выбор студента
    
    type
     TRoundRobin=class
      private 
       {внутренние поля и методы}
      public
       constructor Create();
       function Run(maxtime:longint):boolean; 
        // запускает планировшик, 
        // maxtime - максимальное время работы
       procedure add(task:TTask);
        // добавляет новую задачу
       procedure delete(task:TTask);
        // удаляет задачу
       property tasks[index:integer]:TTask read getTask;
        // позволяет получить доступ к задачам по индексу
       property countTasks:integer read getCountTask;
        // позволяет получить количество задач
       property workTasks[index:integer]:TTask read getWorkTask;
        // позволяет получить доступ к работающим задачам по индексу
       property countWorkTasks:integer read getCountWorkTask;
        // позволяет получить количество работающих задач
      end;
    
    Проверить работоспособность экземпляра класса планировщика, воспользовавшись решением предыдущей лабораторной работы.