예제 #1
0
파일: DehaxOS.cs 프로젝트: Dehax/DehaxOS
 /// <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);
 }
예제 #2
0
파일: Process.cs 프로젝트: Dehax/DehaxOS
 /// <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;
 }
예제 #3
0
        /// <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;
        }