ScholarGate
Ассистент

Планирование работы ЦП

Планирование работы ЦП (CPU scheduling) — это функция операционной системы, которая определяет, какой готовый процесс или поток будет выполняться на процессоре следующим, балансируя такие цели, как отзывчивость, пропускная способность, справедливость и соблюдение сроков.

Найти тему в PaperMindСкороFind papers & topics
Tools & resources
Скачать слайды
Learn & explore
ВидеоСкоро

Definition

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

Scope

Эта тема охватывает политики планирования и их оценку: «первым пришел — первым обслужен», «кратчайшая работа первой», циклическое планирование, приоритетное планирование и многоуровневые очереди обратной связи; вытесняющее и невытесняющее планирование; критерии использования ЦП, пропускной способности, времени оборота, времени ожидания и времени отклика; а также планирование на многопроцессорных системах и для систем реального времени. Она исключает представление планируемых задач (управление процессами и потоками) и синхронизацию (параллелизм).

Core questions

  • По каким критериям измеряется качество планирования?
  • Чем отличаются общие алгоритмы планирования по справедливости и эффективности?
  • Когда планировщик должен вытеснять выполняющуюся задачу?
  • Как планирование адаптируется для многопроцессорных систем и сроков реального времени?

Key concepts

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

Key theories

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

Mechanisms

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

Clinical relevance

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

History

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

Debates

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

Key figures

  • Edsger W. Dijkstra
  • Abraham Silberschatz
  • Andrew S. Tanenbaum
  • C. L. Liu
  • James W. Layland

Related topics

Seminal works

  • silberschatz2018
  • tanenbaum2014os

Frequently asked questions

В чем разница между вытесняющим и невытесняющим планированием?
Невытесняющее планирование позволяет выполняющейся задаче удерживать процессор до тех пор, пока она не заблокируется или не завершится. Вытесняющее планирование может принудительно забрать процессор — например, когда истекает ее квант времени или становится готовой задача с более высоким приоритетом, — что улучшает отзывчивость и требуется для гарантий реального времени.
Что такое голодание и как его предотвратить?
Голодание возникает, когда задача никогда не планируется к выполнению, потому что задачи с более высоким приоритетом постоянно получают преимущество. Обычно оно предотвращается с помощью старения (aging), которое постепенно повышает приоритет долго ожидающих задач, чтобы они в конечном итоге были выполнены.

Methods for this concept

Related concepts