Что планирует циклический алгоритм?

Это уродливо, как и все ад, но всегда производит правильное арифметическое округление.

public double ArithRound(double number,int places){

  string numberFormat = "###.";

  numberFormat = numberFormat.PadRight(numberFormat.Length + places, '#');

  return double.Parse(number.ToString(numberFormat));

}
12
задан Premraj 24 July 2015 в 04:58
поделиться

6 ответов

Круговое планирование

Если бы Вы - хост в стороне 100 гостей, циклическое планирование означало бы пребывание в течение 1 минуты (установленная сумма) на гостя. Вы проходите каждого гостя один за другим, и после 100 минут, Вы провели бы 1 минуту с каждым гостем. Больше на Википедию.

Существует много других типов планирования, такой как основанные на приоритете (т.е. самые важные люди сначала), first-come-first-serve, earliest-deadline-first (т.е. человек, оставляющий самым ранним первые), и т.д. Можно начаться путем поиска с помощью Google для алгоритмов планирования или планирования выезда в Википедии

21
ответ дан 2 December 2019 в 04:43
поделиться

Ответы здесь и даже статья Wikipedia описывают циклическое планирование по сути включать периодический timeslicing. В то время как это очень распространено, я полагаю, что Циклическое планирование и timeslicing не являются точно тем же самым. Конечно, чтобы timeslicing имел смысл, циклический алгоритм schedling подразумевается при вращении к каждой задаче, однако можно сделать циклическое планирование, не имея timeslicing. Таким образом, каждой задаче в том же приоритете в циклическом вращении можно позволить работать, пока они не достигают условия блока ресурса и только затем наличия следующей задачи в выполненном вращении. Другими словами, когда равные приоритетные задачи существуют, точки reschedling не время приоритетные.

Вышеупомянутая идея на самом деле осознана конкретно в случае реки Ветра ядро VxWorks. В рамках их системы приоритетов задачи каждого приоритета выполняют циклический алгоритм, но не делают интервала, конкретно не активируя ту опцию в ядре. Причина этой гибкости состоит в том, чтобы избежать издержек timeslicing задач, которые, как уже известно, сталкиваются с блоком в течение хорошо ограниченного времени.

Поэтому, в то время как timeslicing базировался, планирование подразумевает циклическое планирование, циклическое планирование не требует равного времени базирующийся timeslicing.

3
ответ дан 2 December 2019 в 04:43
поделиться

Timeslicing свойственен к любой циклической системе планирования на практике, AFAIK.

Я не соглашаюсь с импликацией InSciTek Jeff, что следующее является циклическим планированием:

Таким образом, каждой задаче в том же приоритете в циклическом вращении можно позволить работать, пока они не достигают условия блокирования ресурса прежде, чем уступить следующей задаче во вращении.

Я не вижу, как это можно было считать циклическим алгоритмом. Это - на самом деле упреждающее планирование. Однако возможно иметь алгоритм планирования, который имеет элементы и циклического алгоритма и упреждающего планирования, которое делает VxWorks, если циклическое планирование и вытеснение оба включены (циклический алгоритм отключен по умолчанию). Способ включить циклическое планирование состоит в том, чтобы обеспечить ненулевое значение в kernelTimeSlice.

Я действительно соглашаюсь с этим оператором:

Поэтому, в то время как timeslicing базировался, планирование подразумевает циклическое планирование, циклическое планирование не требует равного времени базирующийся timeslicing.

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

Редактирование направило на InSciTek Jeff (у меня нет полномочий комментария) Да, я обращался к блокировке/запрету прерываний задачи, хотя я, очевидно, не выражал этого очень хорошо. Вы вытеснили меня (ха!) с Вашим вторым комментарием. Я надеюсь обсудить более угловую точку, что Вы полагаете, что циклическое планирование может существовать без квантования времени. Или Вы просто имели в виду равное основанное на времени квантование времени? Я не соглашаюсь с первым, но соглашаюсь с последним. Я стремлюсь учиться.Спасибо.

Edit2 направил на Jeff:

Циклический алгоритм может существовать без timeslicing. Это точно, что происходит в VxWorks, когда kernelTimeSlice отключен (обнуляют).

Я не соглашаюсь с этим оператором. См., что этот документ разделяет 2.2.3 с направляющимся Циклическим Планированием.

Циклический алгоритм планируя квантование времени использования для достижения справедливого выделения ЦП ко всем задачам с тем же приоритетом. Каждая задача, в группе задач с тем же приоритетом, выполняется для определенного интервала или интервала времени. Циклическое планирование включено путем вызова kernelTimeSlice (), который берет параметр какое-то время часть или интервал. [...], Если циклическое планирование включено, и вытеснение включено для выполняющейся задачи, системный обработчик галочек увеличивает количество интервала задачи.

Timeslicing свойственен от циклического планирования. Иначе Вы полагаетесь на задачу бросить контроль ЦП, который циклическое планирование предназначается для решения.

7
ответ дан 2 December 2019 в 04:43
поделиться

Циклический алгоритм является простым алгоритмом планирования, где время разделено равномерно между заданиями без приоритета.

Например - если у Вас есть 5 выполнений процессов - каждому процессу позволят выполнить для 1/5 единицу времени, прежде чем другому процессу позволят работать. Циклический алгоритм обычно легко реализовать в ОС.

0
ответ дан 2 December 2019 в 04:43
поделиться

На самом деле вас путают с упреждающим планированием и циклическим перебором. Infact RR является частью упреждающего планирования.

0
ответ дан 2 December 2019 в 04:43
поделиться

Мнение. Кажется, что мы переплетаем два механизма в один. Если предположить только исходное утверждение OP «В контексте многозадачной операционной системы», тогда

1 - Планировщик циклического перебора всегда планирует следующий элемент в циклической очереди.

2 - То, как планировщик восстанавливает контроль над выполнением планирования, является отдельным и не связанным между собой.

Я не возражаю, что наиболее распространенный метод для 2 - это временные интервалы / ожидание выхода ресурса, но, как уже отмечалось, есть и другие. Если я не ошибаюсь, первые Mac не использовали квантование времени, они использовали добровольный выход / выход в ожидании ресурса (клетки мозга 20-летнего возраста иногда могут ошибаться;).

1
ответ дан 2 December 2019 в 04:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: