/// <summary> /// Посылает планировщику запрос на создание нового процесса. /// </summary> /// <param name="pid">ID процесса.</param> /// <param name="cpuBurstTime">Время CPU, необходимое процессу на выполнение.</param> /// <param name="ioBurstTime">Время I/O, необходимое процессу на выполнение.</param> /// <param name="priority">Приоритет процесса.</param> /// <param name="parent">Родительский процесс.</param> /// <returns>true, если процесс успешно добавлен, и false, иначе.</returns> public bool AddProcess(int pid, int cpuBurstTime, int ioBurstTime, ProcessPriority priority = ProcessPriority.Normal, Process parent = null) { return Scheduler.AddProcess(pid, cpuBurstTime, ioBurstTime, priority, parent); }
/// <summary> /// Создаёт процесс с заданным ID процесса, временными характеристиками и родительским процессом. /// </summary> /// <param name="pid">ID процесса.</param> /// <param name="cpuBurstTime">Время работы CPU, необходимое процессу.</param> /// <param name="ioBurstTime">Время работы I/O, необходимое процессу.</param> /// <param name="priority">Приоритет процесса.</param> /// <param name="parent">Родительский процесс.</param> public Process(int pid, int cpuBurstTime, int ioBurstTime, ProcessPriority priority, Process parent) : this(pid, cpuBurstTime, ioBurstTime, priority) { Parent = parent; }
/// <summary> /// Посылает планировщику запрос на создание нового процесса. /// </summary> /// <param name="pid">ID процесса.</param> /// <param name="cpuBurstTime">Время CPU, необходимое процессу на выполнение.</param> /// <param name="ioBurstTime">Время I/O, необходимое процессу на выполнение.</param> /// <param name="priority">Приоритет процесса.</param> /// <param name="parent">Родительский процесс.</param> /// <returns>true, если процесс успешно добавлен, и false, иначе.</returns> public bool AddProcess(int pid, int cpuBurstTime, int ioBurstTime, ProcessPriority priority = ProcessPriority.Normal, Process parent = null) { if (ProcessExists(pid)) { return false; } Process process = new Process(pid, cpuBurstTime, ioBurstTime, priority, parent); _processesPendingCreation.Enqueue(process); return true; }