Упреждающее и ненаблюдаемое планирование в операционных системах

Anonim

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Непрерывное планирование

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

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

При использовании Non-Preemptive Scheduling, когда задача имеет свое назначение для CPU, ее нельзя отменить, даже если короткие задачи должны ждать завершения более длинных задач.

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

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

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

Эта модель планирования позволяет прерывать задачи - в отличие от Non-Preemptive Scheduling, которая имеет подход «от запуска к завершению».

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

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

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

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

В итоге

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

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

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