Планирование процессов — это деятельность диспетчера процессов, которая обрабатывает удаление запущенного процесса из ЦП и выбор другого процесса на основе конкретной стратегии.
Планирование процессов является неотъемлемой частью многопрограммных операционных систем. Такие операционные системы позволяют загружать в исполняемую память более одного процесса за один раз, и загруженный процесс совместно использует ЦП, используя временное мультиплексирование.
Очереди планирования процессов
ОС поддерживает все печатные платы в очередях планирования процессов. ОС поддерживает отдельную очередь для каждого из состояний процессов, а печатные платы всех процессов в одном и том же состоянии выполнения помещаются в одну и ту же очередь. Когда состояние процесса изменяется, его печатная плата отсоединяется от текущей очереди и перемещается в новую очередь состояний.
Операционная система поддерживает следующие важные очереди планирования процессов:
-
Очередь заданий — в этой очереди хранятся все процессы в системе.
-
Готовая очередь — эта очередь хранит набор всех процессов, находящихся в основной памяти, готовых и ожидающих выполнения. Новый процесс всегда помещается в эту очередь.
-
Очереди устройства — процессы, которые заблокированы из-за недоступности устройства ввода-вывода, составляют эту очередь.
Очередь заданий — в этой очереди хранятся все процессы в системе.
Готовая очередь — эта очередь хранит набор всех процессов, находящихся в основной памяти, готовых и ожидающих выполнения. Новый процесс всегда помещается в эту очередь.
Очереди устройства — процессы, которые заблокированы из-за недоступности устройства ввода-вывода, составляют эту очередь.
ОС может использовать разные политики для управления каждой очередью (FIFO, Round Robin, Priority и т. Д.). Планировщик ОС определяет, как перемещать процессы между готовыми и запущенными очередями, которые могут иметь только одну запись на процессорное ядро в системе; на приведенной выше диаграмме он был объединен с процессором.
Модель двух состояний
Модель процесса с двумя состояниями относится к рабочим и неработающим состояниям, которые описаны ниже —
SN | Состояние и описание |
---|---|
1 |
Бег Когда создается новый процесс, он входит в систему как в рабочем состоянии. |
2 |
Не бегать Процессы, которые не запущены, остаются в очереди, ожидая своей очереди на выполнение. Каждая запись в очереди является указателем на определенный процесс. Очередь реализуется с помощью связанного списка. Использование диспетчера заключается в следующем. Когда процесс прерывается, этот процесс передается в очередь ожидания. Если процесс завершен или прерван, процесс отбрасывается. В любом случае диспетчер затем выбирает процесс из очереди для выполнения. |
Бег
Когда создается новый процесс, он входит в систему как в рабочем состоянии.
Не бегать
Процессы, которые не запущены, остаются в очереди, ожидая своей очереди на выполнение. Каждая запись в очереди является указателем на определенный процесс. Очередь реализуется с помощью связанного списка. Использование диспетчера заключается в следующем. Когда процесс прерывается, этот процесс передается в очередь ожидания. Если процесс завершен или прерван, процесс отбрасывается. В любом случае диспетчер затем выбирает процесс из очереди для выполнения.
Планировщики
Планировщики — это специальное системное программное обеспечение, которое обрабатывает планирование процессов различными способами. Их основная задача — выбрать задания для отправки в систему и решить, какой процесс запустить. Планировщики бывают трех типов —
- Долгосрочный планировщик
- Краткосрочный планировщик
- Среднесрочный планировщик
Долгосрочный планировщик
Это также называется планировщиком заданий . Долгосрочный планировщик определяет, какие программы допущены в систему для обработки. Он выбирает процессы из очереди и загружает их в память для выполнения. Процесс загружается в память для планирования ЦП.
Основной целью планировщика заданий является обеспечение сбалансированного сочетания заданий, таких как привязка ввода-вывода и привязка процессора. Он также контролирует степень мультипрограммирования. Если степень мультипрограммирования стабильна, то средняя скорость создания процесса должна быть равна средней скорости вылета процессов, покидающих систему.
В некоторых системах долгосрочный планировщик может быть недоступен или минимален. Операционные системы с разделением времени не имеют долгосрочного планировщика. Когда процесс меняет состояние с нового на готовое, тогда используется долгосрочный планировщик.
Краткосрочный планировщик
Он также называется планировщиком ЦП . Его основная цель — повысить производительность системы в соответствии с выбранным набором критериев. Это изменение состояния готовности в рабочее состояние процесса. Планировщик ЦП выбирает процесс среди процессов, готовых к выполнению, и выделяет ЦП одному из них.
Краткосрочные планировщики, также известные как диспетчеры, принимают решение о том, какой процесс выполнять дальше. Краткосрочные планировщики быстрее, чем долгосрочные.
Среднесрочный планировщик
Среднесрочное планирование является частью обмена . Удаляет процессы из памяти. Это уменьшает степень мультипрограммирования. Среднесрочный планировщик отвечает за обработку замененных процессов.
Работающий процесс может быть приостановлен, если он сделает запрос ввода-вывода. Приостановленные процессы не могут достичь прогресса. В этом случае, чтобы удалить процесс из памяти и освободить место для других процессов, приостановленный процесс перемещается во вторичное хранилище. Этот процесс называется обменом , а процесс называется обмен или выкатывание. Обмен может быть необходимым для улучшения технологического процесса.
Сравнение среди Планировщика
SN | Долгосрочный планировщик | Краткосрочный планировщик | Среднесрочный планировщик |
---|---|---|---|
1 | Это планировщик работы | Это планировщик процессора | Это планировщик обмена процессами. |
2 | Скорость меньше, чем краткосрочный планировщик | Скорость самая быстрая среди двух других | Скорость находится между краткосрочным и долгосрочным планировщиком. |
3 | Контролирует степень мультипрограммирования | Это обеспечивает меньший контроль над степенью мультипрограммирования | Это уменьшает степень мультипрограммирования. |
4 | Она практически отсутствует или минимальна по времени | Это также минимальная система разделения времени | Это часть систем разделения времени. |
5 | Он выбирает процессы из пула и загружает их в память для выполнения | Он выбирает те процессы, которые готовы выполнить | Это может повторно ввести процесс в память, и выполнение может быть продолжено. |
Переключение контекста
Переключение контекста — это механизм для сохранения и восстановления состояния или контекста ЦП в блоке управления процессом, так что выполнение процесса может быть возобновлено с той же точки в более позднее время. Используя эту технику, переключатель контекста позволяет нескольким процессам совместно использовать один ЦП. Переключение контекста является неотъемлемой частью функций многозадачной операционной системы.
Когда планировщик переключает ЦП с выполнения одного процесса на выполнение другого, состояние текущего запущенного процесса сохраняется в блоке управления процессом. После этого состояние следующего процесса загружается с его собственной печатной платы и используется для настройки ПК, регистров и т. Д. В этот момент может начаться выполнение второго процесса.
Переключение контекста требует значительных вычислительных ресурсов, поскольку регистр и состояние памяти должны быть сохранены и восстановлены. Чтобы избежать количества времени переключения контекста, некоторые аппаратные системы используют два или более набора регистров процессора. Когда процесс переключается, следующая информация сохраняется для последующего использования.