Разница между упреждающим и не вытесняющим планированием в операционных системах

Планирование процессора (или Планирование ЦП) определяет, какие процессы назначены и удалены из ЦП на основе моделей планирования, таких как упреждающий и Непланирующее планирование (также известен как Совместное планирование).

Старые системы могут работать в простых автономных режимах, но с растущей потребностью в гибких, отзывчивых системах, а также в виртуализации эффективное управление многопроцессорной обработкой обеспечивает быстрый отклик на все запросы на обработку задач..

Единицы планирования часто упоминаются как задача и задача планировщика - запускать и управлять этими задачами, когда это необходимо; Планировщик выбирает задачу, которая будет удалена и назначена для обработки ЦПУ, в соответствии с используемой моделью планирования.

Как Планировщик знает, какие задачи являются приоритетными?

Планировщик должен выполнить честный и эффективный процесс выбора, принимая во внимание переменные, динамические запросы обработки и максимально используя циклы ЦП..

В процессе обработки задачи могут находиться в двух состояниях:

  1. В CPU Burst где ЦП выполняет вычисления для обработки задачи (период для пакета ЦП варьируется от задачи к задаче и от программы к программе).
  2. В Пакет ввода / вывода (I / O) ожидание данных, которые будут получены или отправлены из системы.

Когда процессор простаивает, планировщик читает Готовая очередь, и выбирает следующую задачу для запуска. Тогда это диспетчер это дает выбранную задачу управления процессором, поэтому он должен быть быстрым! Любое время, отведенное Диспетчером, называется Латентность отправки.

Существуют различные структуры и пользовательские параметры для определения Готовая очередь, а также несколько методов, которые можно использовать для управления сложностями процесса планирования.

Как правило, речь идет об оптимизации и максимизации загрузки процессора, пропускной способности и т. Д..

Планировщик должен принять решение на одном из следующих этапов:

  1. Когда Задача меняется с Бег к Состояние ожидания (например, ожидание во время запроса ввода-вывода).
  2. Когда задание меняется с Бег в готов (например, реагирование на прерывание).
  3. Когда задание меняется с Ожидание в готов (например, запрос ввода / вывода выполнен).
  4. Когда задача

Новая задача должна быть выбрана, если на 1-м или 4-м этапе происходит полная загрузка ЦП, а на 2-м и 3-м этапах задача может продолжаться или же выбирается новая..

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

Оба имеют схожие функции с задачами, состояниями задач, очередями и приоритетами (статическими или динамическими):

  • Непланирующее планирование когда задание выполняется до тех пор, пока оно не остановится (добровольно) или не завершится. В Windows® было непланирующее планирование до Windows 3.x, после чего оно изменилось на Preemptive с Windows 95.
  • Упреждающее планирование где задача может быть принудительно приостановлена ​​прерыванием процессора, в отличие от Non-Preemptive, где задача выполняется до тех пор, пока она не освободит управление процессором.

Непланирующее планирование

Задачи в непревзойденной системе будут выполняться до завершения.

Затем планировщик проверяет состояния всех задач и планирует следующую задачу с наивысшим приоритетом с помощью готов государство.

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

Управление расписанием для всех задач является «справедливым», а время отклика предсказуемо, поскольку задачи с высоким приоритетом не могут препятствовать ожидающим задачам дальше по очереди..

Планировщик гарантирует, что каждая задача получает свою долю ЦП, избегая любой задержки с любой задачей. «Количество времени», выделенное ЦП, не обязательно может быть одинаковым, так как оно зависит от того, сколько времени занимает выполнение задачи..

Упреждающее планирование

Эта модель планирования позволяет прерывать задачи - в отличие от Неприоритетного планирования, которое имеет подход «от выполнения к завершению».

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

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

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

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

В итоге

Можно определить множество различий и зависимостей в разных политиках, например, используя «Round Robin Policy [i]» где каждая задача (с равным приоритетом) выполняется один раз, а затем помещается в конец очереди для следующего цикла.

Другие политики включают в себя Первым прибыл, первым обслужен, Кратчайший-Job-первых, Кратчайший-Job-Next, Самое короткое оставшееся время, и т.д.

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