Учебники

Алгоритмы планирования операционной системы

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

  • Планирование «первым пришел — первым обслужен» (FCFS)
  • Планирование Shortest-Job-Next (SJN)
  • Приоритетное планирование
  • Самое короткое оставшееся время
  • Круглый Робин (RR) Планирование
  • Планирование многоуровневых очередей

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

First Come First Serve (FCFS)

  • Задания выполняются в порядке поступления.
  • Это не упреждающий, упреждающий алгоритм планирования.
  • Легко понять и реализовать.
  • Его реализация основана на очереди FIFO.
  • Низкая производительность, так как среднее время ожидания велико.

Алгоритм планирования «первым пришел - первым обслужен»

Время ожидания каждого процесса выглядит следующим образом —

Процесс Время ожидания: Время обслуживания — Время прибытия
P0 0 — 0 = 0
P1 5 — 1 = 4
P2 8 — 2 = 6
P3 16 — 3 = 13

Среднее время ожидания: (0 + 4 + 6 + 13) / 4 = 5,75

Кратчайшая работа следующая (SJN)

  • Это также называется первой короткой работой , или SJF

  • Это не упреждающий, упреждающий алгоритм планирования.

  • Лучший подход для минимизации времени ожидания.

  • Легко реализовать в пакетных системах, где необходимое время процессора известно заранее.

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

  • Процессор должен заранее знать, сколько времени займет процесс.

Это также называется первой короткой работой , или SJF

Это не упреждающий, упреждающий алгоритм планирования.

Лучший подход для минимизации времени ожидания.

Легко реализовать в пакетных системах, где необходимое время процессора известно заранее.

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

Процессор должен заранее знать, сколько времени займет процесс.

Дано: таблица процессов и время их прибытия, время выполнения

Процесс Время прибытия Время исполнения Время обслуживания
P0 0 5 0
P1 1 3 5
P2 2 8 14
P3 3 6 8

Алгоритм планирования самой короткой работы

Время ожидания каждого процесса выглядит следующим образом —

Процесс Время ожидания
P0 0 — 0 = 0
P1 5 — 1 = 4
P2 14 — 2 = 12
P3 8 — 3 = 5

Среднее время ожидания: (0 + 4 + 12 + 5) / 4 = 21/4 = 5,25

Приоритетное планирование

  • Приоритетное планирование — это алгоритм без вытеснения и один из самых распространенных алгоритмов планирования в пакетных системах.

  • Каждому процессу назначается приоритет. Процесс с наивысшим приоритетом должен выполняться первым и так далее.

  • Процессы с одинаковым приоритетом выполняются по принципу «первым пришел — первым обслужен».

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

Приоритетное планирование — это алгоритм без вытеснения и один из самых распространенных алгоритмов планирования в пакетных системах.

Каждому процессу назначается приоритет. Процесс с наивысшим приоритетом должен выполняться первым и так далее.

Процессы с одинаковым приоритетом выполняются по принципу «первым пришел — первым обслужен».

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

Дано: таблица процессов, их время прибытия, время выполнения и приоритет. Здесь мы рассматриваем 1 является самым низким приоритетом.

Процесс Время прибытия Время исполнения приоритет Время обслуживания
P0 0 5 1 0
P1 1 3 2 11
P2 2 8 1 14
P3 3 6 3 5

Алгоритм приоритетного планирования

Время ожидания каждого процесса выглядит следующим образом —

Процесс Время ожидания
P0 0 — 0 = 0
P1 11 — 1 = 10
P2 14 — 2 = 12
P3 5 — 3 = 2

Среднее время ожидания: (0 + 10 + 12 + 2) / 4 = 24/4 = 6

Самое короткое оставшееся время

  • Наименьшее оставшееся время (SRT) является преимущественной версией алгоритма SJN.

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

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

  • Он часто используется в пакетных средах, где короткие задания должны отдавать предпочтение.

Наименьшее оставшееся время (SRT) является преимущественной версией алгоритма SJN.

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

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

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

Круглый Робин Планирование

  • Round Robin — это алгоритм планирования вытесняющих процессов.

  • Каждому процессу предоставляется определенное время для выполнения, оно называется квантом .

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

  • Переключение контекста используется для сохранения состояний вытесненных процессов.

Round Robin — это алгоритм планирования вытесняющих процессов.

Каждому процессу предоставляется определенное время для выполнения, оно называется квантом .

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

Переключение контекста используется для сохранения состояний вытесненных процессов.

Круглый алгоритм планирования Робина

Время ожидания каждого процесса выглядит следующим образом —

Процесс Время ожидания: Время обслуживания — Время прибытия
P0 (0 — 0) + (12 — 3) = 9
P1 (3 — 1) = 2
P2 (6 — 2) + (14 — 9) + (20 — 17) = 12
P3 (9 — 3) + (17 — 12) = 11

Среднее время ожидания: (9 + 2 + 12 + 11) / 4 = 8,5

Планирование многоуровневых очередей

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

  • Для процессов с общими характеристиками поддерживается несколько очередей.
  • Каждая очередь может иметь свои собственные алгоритмы планирования.
  • Приоритеты присваиваются каждой очереди.

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