Циклическое планирование в программировании на C



Эта статья предоставит вам подробные и всесторонние знания о том, как реализовать циклическое планирование в программировании на C.

В этой статье мы узнаем об алгоритме планирования, который называется циклическим алгоритмом планирования. Что такое циклический алгоритм? Как написать программу? И т.д. Приступим.

Что такое циклическое планирование?

Round Robin Scheduling - это алгоритм планирования, используемый системой для планирования загрузки ЦП. Это упреждающий алгоритм. Существует фиксированный временной интервал, связанный с каждым запросом, называемый квантом. Планировщик заданий сохраняет ход выполнения задания, которое в данный момент выполняется, и переходит к следующему заданию, присутствующему в очереди, когда конкретный процесс выполняется в течение заданного кванта времени.





Планирование циклического перебора

Ни один процесс не задержит ЦП надолго. Переключение называется переключением контекста. Вероятно, это один из лучших алгоритмов планирования. Эффективность этого алгоритма зависит от квантового значения.



Алгоритм ROUND ROBIN SCHEDULING ALGORITHM

  • Сначала у нас есть очередь, в которой процессы расположены в порядке очереди.
  • Для выполнения каждого процесса выделяется квантовое значение.
  • Первый процесс выполняется до конца квантового значения. После этого генерируется прерывание и сохраняется состояние.
  • Затем ЦП переходит к следующему процессу, и применяется тот же метод.
  • Эти же шаги повторяются до тех пор, пока все процессы не завершатся.

Рассмотрим пример кода

#include int main () {int i, limit, total = 0, x, counter = 0, time_quantum int wait_time = 0, turnaround_time = 0, arrival_time [10], burst_time [10], temp [10] float average_wait_time, average_turnaround_time printf ('nEnter Общее количество процессов: t') scanf ('% d', & limit) x = ограничение для (i = 0 i0) {temp [i] = temp [i] - time_quantum total = total + time_quantum} if (temp [i] == 0 && counter == 1) {x-- printf ('nProcess [% d] tt% dtt % dttt% d ', i + 1, burst_time [i], total - прибытие_время [i], total - arrival_time [i] - burst_time [i]) wait_time = wait_time + total - arrival_time [i] - burst_time [i] время поворота = Turnaround_time + total - arrival_time [i] counter = 0} if (i == limit - 1) {i = 0} else if (arrival_time [i + 1]<= total) { i++ } else { i = 0 } } average_wait_time = wait_time * 1.0 / limit average_turnaround_time = turnaround_time * 1.0 / limit printf('nnAverage Waiting Time:t%f', average_wait_time) printf('nAvg Turnaround Time:t%fn', average_turnaround_time) return 0 }

ВЫВОД:

ПОЯСНЕНИЕ:

В приведенном выше коде мы просим пользователя ввести количество процессов, а также время прибытия и время пакета для каждого процесса. Затем мы вычисляем время ожидания и время оборота, используя алгоритм циклического перебора.

что такое эхо в php

Основная часть здесь - это расчет времени оборота и времени ожидания. Время оборота рассчитывается путем сложения общего затраченного времени и вычитания времени прибытия.

Время ожидания рассчитывается путем вычитания времени прибытия и времени пакета из общего количества и прибавления его к времени ожидания. Вот как происходит циклическое планирование.



отсортировать массив c ++

ПРЕИМУЩЕСТВА:

  • Низкие накладные расходы на принятие решений.
  • В отличие от других алгоритмов, он дает равный приоритет всем процессам.
  • Голодание в этом процессе происходит редко.

НЕДОСТАТКИ:

  • Эффективность системы снижается, если квантовое значение мало, поскольку имеет место частое переключение.
  • Система может перестать отвечать, если значение кванта будет высоким.

На этом мы подошли к концу данной статьи.

Надеюсь, вы нашли это информативным и полезным, следите за обновлениями, чтобы увидеть больше уроков по аналогичным темам. Вы также можете ознакомиться с нашей программой обучения to получить глубокие знания о jQuery и его различных приложениях, вы можете для онлайн-обучения с круглосуточной поддержкой и пожизненным доступом.Реализуйте приведенный выше код с другими строками и модификациями. Теперь у нас есть хорошее понимание всех ключевых концепций, связанных с указателем.

Есть вопрос к нам? Упомяните их в разделе комментариев этого блога, и мы свяжемся с вами.