Алгоритм планирования в Windows XP

3595

Кто-нибудь сейчас, какие алгоритмы планирования реализованы в Windows XP? Есть ли возможность установить / использовать алгоритм ULE? Я думаю нет.

Спасибо.

2

1 ответ на вопрос

2
Bibhas

AFAIK вы не можете изменить (т.е. установить) другой алгоритм планирования окон. Это реализовано, когда это разработано. И я также где-то читал, что ОС на базе Windows NT 'использует многоуровневую очередь обратной связи в качестве алгоритма планирования.

многоуровневая очередь обратной связи является алгоритмом планирования. Он предназначен для удовлетворения следующих требований к конструкции для многомодовых систем:

  1. Отдай предпочтение коротким работам.
  2. Отдайте предпочтение процессам, связанным с вводом / выводом.
  3. Быстро установить характер процесса и соответствующим образом запланировать процесс.

Используется несколько очередей FIFO, и операция выполняется следующим образом:

  1. Новый процесс располагается в конце очереди FIFO верхнего уровня.
  2. На каком-то этапе процесс достигает начала очереди и назначается ЦП.
  3. Если процесс завершен, он покидает систему.
  4. Если процесс добровольно отказывается от управления, он покидает сеть очередей, а когда процесс снова становится готовым, он входит в систему на том же уровне очереди.
  5. Если процесс использует все квантовое время, он переопределяется и помещается в конец следующей очереди более низкого уровня.
  6. Это будет продолжаться до тех пор, пока процесс не завершится или не достигнет очереди базового уровня.

    • В очереди на базовом уровне процессы циркулируют циклически, пока не завершатся и не покинут систему.
    • Необязательно, если процесс блокируется для ввода-вывода, он «продвигается» на один уровень и помещается в конец следующей наивысшей очереди. Это позволяет планировщику предпочитать процессы, связанные с вводом / выводом, и позволяет процессам «избегать» очереди базового уровня.

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

Это не совсем правильное описание планировщика семейства Windows NT. На шаге 1 измените «очередь FIFO верхнего уровня» на «очередь с ее текущим приоритетом». На шаге 6 измените «очередь базового уровня» на «очередь для ее базового приоритета» (которая обычно не является очередью самого низкого уровня в системе). Кроме того, рекламные акции для завершения ввода / вывода имеют различное количество уровней, в зависимости от устройства ввода / вывода; и измените «процесс» на «нить» повсюду. Есть больше; см. книгу _Windows Internals_. Jamie Hanrahan 9 лет назад 0
Когда я использовал XP, он работал в режиме циклического перебора (без многоуровневой очереди обратной связи): одна задача с интенсивным использованием процессора могла бы остановить систему. Я думаю, что где-то читал, что они добавили многоуровневую очередь обратной связи с SMP, и у них было два разных ядра, в зависимости от того, было ли у вас многоядерное или нет. Это объяснило бы, почему Microsoft сказала нам, что нам нужна система ядра дуэли, чтобы улучшить многозадачность (это было необходимо для получения базовой производительности, к которой мы привыкли в Unix). Я думаю, что этот лучший планировщик теперь включен даже для одного ядра. ctrl-alt-delor 7 лет назад 0
@ Richard Нет. Это многоуровневый (32 уровня приоритета) начиная с NT 3.1. Jamie Hanrahan 6 лет назад 0
Так же производительность все еще ужасна, когда процесс пытается загрузить процессор (при условии, что одно ядро ​​процессора или одно ядро ​​на ядро). ctrl-alt-delor 6 лет назад 0

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