Что такое упреждающее планирование?
Упреждающее планирование - это метод планирования, при котором задачи в основном назначаются с учетом их приоритетов. Иногда важно запустить задачу с более высоким приоритетом перед другой задачей с более низким приоритетом, даже если задача с более низким приоритетом все еще выполняется.
В это время задача с более низким приоритетом сохраняется в течение некоторого времени и возобновляется, когда задача с более высоким приоритетом завершает свое выполнение.
В этом руководстве по операционной системе вы узнаете:
- Что такое упреждающее планирование?
- Что такое упреждающее планирование?
- Разница между упреждающим и не вытесняющим расписанием в ОС
- Преимущества упреждающего планирования
- Преимущества бесперспективного планирования
- Недостатки упреждающего планирования
- Недостатки непрерывного планирования
- Пример планирования без вытеснения
- Пример упреждающего планирования
Что такое упреждающее планирование?
В этом типе метода планирования ЦП выделен определенному процессу. Процесс, который держит ЦП занятым, освобождает ЦП либо путем переключения контекста, либо завершением.
Это единственный метод, который можно использовать для различных аппаратных платформ. Это потому, что для этого не требуется специализированное оборудование (например, таймер), такое как упреждающее планирование.
Планирование без прерывания происходит, когда процесс добровольно переходит в состояние ожидания или завершается.
Разница между упреждающим и не вытесняющим расписанием в ОС
Здесь представлены упреждающее и неперспективное планирование в ОС.
Упреждающее планирование | Планирование без вытеснения |
Процессор может быть вытеснен для выполнения различных процессов в середине выполнения любого текущего процесса. | Как только процессор начинает свое выполнение, он должен завершить его перед выполнением другого. Не может быть остановлено посередине. |
Использование ЦП более эффективно по сравнению с планированием без вытеснения. | Использование ЦП менее эффективно по сравнению с упреждающим планированием. |
Время ожидания и отклика упреждающего планирования меньше. | Время ожидания и ответа для метода планирования без прерывания больше. |
Упреждающее планирование имеет приоритет. Процесс с наивысшим приоритетом - это процесс, который используется в настоящее время. | Когда какой-либо процесс переходит в состояние выполнения, состояние этого процесса никогда не удаляется из планировщика, пока он не завершит свою работу. |
Упреждающее планирование является гибким. | Непредвиденное планирование является жестким. |
Примеры: - Сначала наименьшее оставшееся время, циклический алгоритм и т. Д. | Примеры: первым пришел - первым обслужен, самое короткое задание - первым, приоритетное планирование и т. Д. |
Алгоритм упреждающего планирования может быть упреждающим, то есть процесс может быть запланирован | При невытесняющем планировании процесс не может быть запланирован |
В этом процессе ЦП выделяется процессам на определенный период времени. | В этом процессе процессору назначается процесс, пока он не завершится или не перейдет в состояние ожидания. |
У алгоритма вытеснения есть накладные расходы на переключение процесса из состояния готовности в состояние выполнения и наоборот. | Планирование без прерывания не имеет таких накладных расходов, связанных с переключением процесса из состояния готовности в состояние готовности. |
Преимущества упреждающего планирования
Вот плюсы / преимущества метода упреждающего планирования:
- Метод упреждающего планирования более надежен, поэтому один процесс не может монополизировать ЦП.
- Выбор выполняемой задачи пересматривается после каждого прерывания.
- Каждое событие вызывает прерывание выполнения задач
- ОС гарантирует, что использование ЦП одинаково для всех запущенных процессов.
- В этом случае использование ЦП одинаково, т. Е. Все запущенные процессы будут использовать ЦП одинаково.
- Этот метод планирования также увеличивает среднее время отклика.
- Упреждающее планирование полезно, когда мы используем его для среды с несколькими программами.
Преимущества бесперспективного планирования
Вот плюсы / преимущества метода непрерывного планирования:
- Предлагает низкие накладные расходы на планирование
- Предлагает высокую пропускную способность
- Это концептуально очень простой метод
- Для планирования требуется меньше вычислительных ресурсов
Недостатки упреждающего планирования
Вот минусы / недостатки метода упреждающего планирования:
- Требуются ограниченные вычислительные ресурсы для планирования
- Планировщику требуется больше времени для приостановки выполняющейся задачи, переключения контекста и отправки новой входящей задачи.
- Процесс с низким приоритетом должен ждать более длительное время, если некоторые процессы с высоким приоритетом поступают постоянно.
Недостатки непрерывного планирования
Вот минусы / недостатки метода планирования без вытеснения:
- Это может привести к голоду, особенно при выполнении задач в реальном времени.
- Ошибки могут привести к зависанию машины
- Это может затруднить планирование в режиме реального времени и приоритетов.
- Плохое время отклика для процессов
Пример планирования без вытеснения
При планировании SJF без вытеснения, как только цикл ЦП выделяется для процесса, процесс удерживает его до тех пор, пока он не достигнет состояния ожидания или не завершится.
Рассмотрим следующие пять процессов, каждый из которых имеет свое уникальное время пачки и время прибытия.
Очередь процесса | Время взрыва | Время прибытия |
P1 | 6 | 2 |
P2 | 2 | 5 |
P3 | 8 | 1 |
P4 | 3 | 0 |
P5 | 4 | 4 |
Шаг 0) В момент времени = 0 прибывает P4 и начинает выполнение.
Шаг 1) В момент времени = 1 наступает процесс P3. Но для завершения P4 все еще требуется 2 исполнительных блока. Он продолжит выполнение.
Шаг 2) В момент времени = 2 прибывает процесс P1 и добавляется в очередь ожидания. P4 продолжит выполнение.
Шаг 3) В момент времени 3 процесс P4 завершит свое выполнение. Сравнивается время пакета P3 и P1. Процесс P1 выполняется, потому что его время пакета меньше по сравнению с P3.
Шаг 4) В момент времени = 4 прибывает процесс P5 и добавляется в очередь ожидания. P1 продолжит выполнение.
Шаг 5) В момент времени = 5 прибывает процесс P2, который добавляется в очередь ожидания. P1 продолжит выполнение.
Шаг 6) В момент времени = 9 процесс P1 завершит свое выполнение. Сравнивается время пакета P3, P5 и P2. Процесс P2 выполняется, потому что у него наименьшее время пакета.
Шаг 7) В момент времени = 10 P2 выполняется, а P3 и P5 находятся в очереди ожидания.
Шаг 8) В момент времени = 11 процесс P2 завершит свое выполнение. Сравнивается время пакета P3 и P5. Процесс P5 выполняется, потому что его время пакета меньше.
Шаг 9) В момент времени = 15 процесс P5 завершит свое выполнение.
Шаг 10) В момент времени = 23 процесс P3 завершит свое выполнение.
Шаг 11) Рассчитаем среднее время ожидания для приведенного выше примера.
Wait timeP4= 0-0=0P1= 3-2=1P2= 9-5=4P5= 11-4=7P3= 15-1=14Average Waiting Time= 0+1+4+7+14/5 = 26/5 = 5.2
Пример упреждающего планирования
Рассмотрим следующие три процесса в циклическом режиме.
Очередь процесса | Время взрыва |
P1 | 4 |
P2 | 3 |
P3 | 5 |
Шаг 1) Выполнение начинается с процесса P1, который имеет время пакета 4. Здесь каждый процесс выполняется в течение 2 секунд. P2 и P3 все еще находятся в очереди ожидания.
Шаг 2 ) В момент времени = 2 P1 добавляется в конец очереди, и P2 начинает выполнение
Шаг 3) В момент времени = 4 P2 выгружается и добавляется в конец очереди. P3 начинает выполнение.
Шаг 4) В момент времени = 6 P3 выгружается и добавляется в конец очереди. P1 начинает выполнение.
Шаг 5) В момент времени = 8, P1 имеет время пачки импульсов 4. Он завершил выполнение. P2 начинает выполнение
Шаг 6) P2 имеет пакетное время 3. Он уже выполнен в течение 2-х интервалов. В момент времени = 9 P2 завершает выполнение. Затем P3 начинает выполнение до его завершения.
Шаг 7) Рассчитаем среднее время ожидания для приведенного выше примера.
Wait timeP1= 0+ 4= 4P2= 2+4= 6P3= 4+3= 7
ОСНОВНЫЕ ОТЛИЧИЯ
- При упреждающем планировании ЦП назначается процессам на определенный период времени, а ЦП с невытесняющим планированием выделяется процессу до его завершения.
- При упреждающем планировании задачи переключаются на основе приоритета, в то время как при невытесняющем расписании переключение не происходит.
- Алгоритм с вытеснением имеет накладные расходы на переключение процесса из состояния готовности в состояние выполнения, в то время как планирование без вытеснения не имеет таких накладных расходов на переключение.
- Планирование с вытеснением является гибким, в то время как планирование без прерывания является жестким.