Статья: Эволюция планировщиков задач в операционной системе Linux

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

Аналогичный подход к организации подсистемы планирования был предложен раньше Кон Коливас (Con Kolivas) [8,9]. Коливас первым предложил идею модульной организации планировщика, и выдвинул на обсуждение свою первую реализацию. Тем не менее, автор ядра Linux - Линус Торвальдс (Linus Torvalds) отклонил предложенную реализацию. Принципиальное отличие варианта Коливаса от Молнара заключается в возможности выбора нужного алгоритма планировщика в момент функционирования ОС. Это разногласие послужило поводом к бурным спорам в обществе ОС Linux. По мнению Молнара и Торвальдса планировщик задач является очень низкоуровневой частью ОС, должен четко и предсказуемо функционировать, и быть пригодным для использования во многих случаях, и пользователь должен довольствоваться стандартным планировщиком. Коливас же настаивает, что пользователь должен иметь право выбора нужного ему планировщика, и предлагает более гибкую архитектуру для построения необходимой среды выполнения.

В качестве замены стандартного алгоритма планировщика ядра 2.6.x, Коливас предложил свою реализацию алгоритма Staircase Deadline(SD) или же Rotating Staircase Deadline (RSDL).

На основе анализа работ Коливаса кратко опишем свойства этого алгоритма:

в сущности, алгоритм не позволяет «голодать» нитям, вне зависимости от нагрузки ЦПУ;

нет суждения об интерактивности нитей;

нет бонусного механизма;

фактически полное справедливое распределение ЦПУ, основано на статическом приоритете (nice) задач;

маленькое время задержки (latency) с эффективным deadline механизмом;

отличная интерактивность задач в допустимых пределах ограничений, накладываемых предыдущими пунктами;

время работы планировщика оценивается в O(1);

также как и в текущем планировщике ядра 2.6.х используется двойной битовый массив (что в некоторой мере вносит недостатки);

использование статических приоритетов (nice) для распределения времени ЦПУ очень эффективно.

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

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

Литература

linux планировщик задача многоцелевой

1. Вахалия Ю. UNIX изнутри. - СПб.: Питер, 2003. - 848 с.

2. Клаудия Зальзберг Родригес, Гордон Фишер, Стивен Смолски Linux. Азбука ядра. - М.: КУДИЦ-Пресс, 2007. - 448 с.

3. Роберт Лав. Разработка ядра Linux. - М.: Вильямс, 2006. - 448с.

4. Скотт Максвелл. Ядро Linux в комментариях. М.: ДиаСофт, 2000. - 488 с.

5. Таненбаум Э. С. Архитектура компьютера. 5-е изд. - СПб.: Питер, 2006. - 848 с.

6. Таненбаум Э. С. Вудхалл А.С. Операционные системы. Разработка и реализация. Классика CS. 3-е изд. - СПб.: Питер, 2007. - 704 с.

7. Таненбаум Э. С. Современные операционные системы. 2-е изд. - СПб.: Питер, 2007. - 1037 с.

8. Con Kolivas http://ck.kolivas.org/patches/staircase-deadline/rsdl_scheduler.readme

9. Con Kolivas, Linux Kernel CPU Scheduler Contributor, IRC conversations, no transcript. December 2004 г.

10. Josh Aas Understanding, the Linux 2.6.8.1 CPU Scheduler, 2005 Silicon Graphics, Inc. (SGI)

11. Mel Gorman. Understanding The Linux Virtual Memory Manager. Unpublished, 2004 г.

Источник: https://otherreferats.allbest.ru/download/1241850/