Рекомендуем, 2024

Выбор редакции

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

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

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

Сравнительная таблица

Основа для сравненияУпреждающее планированиеНе вытесняющее планирование
основнойРесурсы выделяются процессу в течение ограниченного времени.Как только ресурсы выделены процессу, процесс удерживает его до тех пор, пока не завершит свое пакетное время или не перейдет в состояние ожидания.
ПрерываниеПроцесс может быть прерван между ними.Процесс не может быть прерван до тех пор, пока он не завершится или не перейдет в состояние ожидания.
голоданиеЕсли процесс с высоким приоритетом часто поступает в очередь готовности, процесс с низким приоритетом может голодать.Если процесс с длительным временем пакетной обработки запускает процессор, то другой процесс с меньшим временем пакетной обработки может голодать.
накладные расходыУпреждающее планирование накладно расходуется на планирование процессов.Непрерывное планирование не имеет накладных расходов.
гибкостьУпреждающее планирование является гибким.Непрерывное планирование является жестким.
СтоимостьУпреждающее планирование связано с затратами.Непрерывное планирование не связано с затратами.

Определение упреждающего планирования

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

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

Алгоритмы, которые работают на упреждающем планировании, являются Round Robin. Планирование наименьшего количества заданий (SJF) и Приоритет может планироваться или не подпадает под упреждающее планирование.

Давайте возьмем пример упреждающего планирования, посмотрите на картинку ниже. У нас есть четыре процесса P0, P1, P2, P3. Из которых P2 прибывает в момент 0. Таким образом, ЦП выделяется процессу P2, так как в очереди нет других процессов. Между тем, P2 выполнялся, P3 прибывает в момент 1, теперь оставшееся время для процесса P2 (5 миллисекунд) больше, чем время, требуемое для P3 (4 миллисекунды). Таким образом, процессор выделен процессору P3.

Между тем, P3 выполнялся, процесс P1 прибывает в момент 2. Теперь оставшееся время для P3 (3 миллисекунды) меньше, чем время, необходимое для процессов P1 (4 миллисекунды) и P2 (5 миллисекунд). Так что P3 разрешено продолжать. Пока P3 продолжает процесс, P0 прибывает в момент 3, теперь оставшееся время для P3 (2 миллисекунды) равно времени, требуемому для P0 (2 миллисекунды). Таким образом, P3 продолжается, и после завершения P3 центральный процессор выделяется для P0, поскольку он имеет меньшее время пакетной передачи, чем другие. После завершения P0 ЦПУ выделяется для P1, а затем для P2.

Определение не вытесняющего планирования

Непрерывное планирование - это планирование, которое может применяться в тех случаях, когда процесс завершается или процесс переключается из режима ожидания в состояние ожидания . В Непрерывном планировании, когда ресурсы (ЦП) выделяются процессу, процесс удерживает ЦП до тех пор, пока он не завершится или не достигнет состояния ожидания.

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

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

Давайте решим вышеупомянутый пример планирования без упреждающего способа. Первоначально процесс P2 поступает в момент времени 0, поэтому ЦП выделяется процессу P2, для его выполнения требуется 6 миллисекунд. Между всеми процессами, то есть P0, P1, P3, приходит в очередь готовности. Но все ждет, пока процесс P2 не завершит загрузку своего ЦП. Затем процесс, который прибывает после P2, то есть P3, затем выделяет ЦП, пока он не завершит свое время пакета. Аналогично, затем выполняется P1, и ЦП позже передается для обработки P0.

Ключевые различия между упреждающим и не вытесняющим расписанием

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

Заключение:

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

Top