LINUX.ORG.RU

Путешествие вглубь планировщика ядра


0

0

Ядро Linux продолжает развиваться, увеличивая надежность, масштабируемость и производительность. Одно из наиболее важных нововведений ветки 2.6 - планировщик, который реализовал Ingo Molnar. Этот планировщик динамический, поддерживает балансировку нагрузки, и работает за постоянное время О(1). В данной статье рассматриваются более подробно все эти аспекты.

>>> Статья



Проверено: Shaman007 ()
Ответ на: комментарий от pazke2

> Если мне не изменяет склероз чаще стречается расшифровка Not Invented Here :)

ну может быть, мне почему-то запомнилось именно Not In House, что впрочем сути определения не сильно меняет :)

// wbr

klalafuda ★☆☆
()
Ответ на: комментарий от fghj

> если вы видите технические преимущества опишите их, а не отсылайте куда-то,

Мне эта дискуссия напоминает SCO vs IBM.

IBM: Покажите, где мы нарушили ваше интеллектуальное право? SCO: Вам надо - вот сами и ищите!

anonymous
()
Ответ на: комментарий от domenick

> Самое смешное, что PPP и для Линукс, как раз Сергей Вакуленко и доводил до современного состояния.

Ну и что? Честь ему и хвала. :) Но там-то его (пока) нет. Значит, задача, которой нужен ppp - сразу мимо. Если, конечно, сам не программист. ;-)

> Я о том, что uOS отличный пример отечественной ОС на котором можно изучать хорошее построение архитектуры.

Ах это, но, хорошо. Пусть изучают. _Я_ не против. :))) Может понадобится - сам посмотрю...

> У нас очень мало реально готовых что-либо делать людей.

Будете смеяться, но и у них. Как там развитие Hurd идёт? ;-) Люди развивают мейнстрим, что довольно очевидно. Это ещё когда будет работать, а Linux он уже сейчас.

> Пользуемся иноземным энтузиазмом.

Коммиетры в Linux (известные) по всему миру живут. Можно, например, вспомнить кто iproute2 делал.

Или какая-то странная самоцель получается: с одной стороны - открытая система, с другой - чтобы только наши её и делали?

atrus ★★★★★
()
Ответ на: комментарий от domenick

>Вообще весело с вами... обычно. Лишний раз убеждаешься, как нам далеко до того, чтобы жить более менее прилично, по совести и тп... :) У вас понятия нет, что есть порядочный русский человек...

Еще один неспровергатель основ. Мил человек, объясни нам пожалуйства, а кто такой этот "порядочный русский человек" (ПРЧ)?

Был ли Ф.М. Достоевский ПРЧ? Или граф Толстой? Может барон Врангель?

А то любим ярлычок повесить и сразу в кусты.

Sun-ch
()
Ответ на: комментарий от Zulu

Ребята! Да, вы же все здест пионэры! Товарищ domenick обсалютно прав, а вот в ваших фразах я не нашел ни одной мысли. Если вы не знаете, кроме Линупся больше ничего, то это ваша проблема.

p.s. Не люблю винду, но планировщик там реализован лучше.

anonymous
()
Ответ на: комментарий от anonymous

> p.s. Не люблю винду, но планировщик там реализован лучше.

Планировщик лучше всех в ДОСе! Потому что я так сказал.

anonymous
()
Ответ на: комментарий от forgiven

> Так как же надо перестроить архитектуру линукса, чтобы она стала не тупиковой?

Перейти на Hurd

anonymous
()
Ответ на: комментарий от domenick

дочитал коменты до пловины, надоело читать бредовые посты доменика, фактов так и небыло...

alt0v14 ★★★
()
Ответ на: комментарий от anonymous

Ваша фамилия случайно не Семанин?

Lumi ★★★★★
()
Ответ на: комментарий от anonymous

>> p.s. Не люблю винду, но планировщик там реализован лучше.

>Планировщик лучше всех в ДОСе! Потому что я так сказал.

+1

alt0v14 ★★★
()
Ответ на: комментарий от anonymous

> И как же он там реализован? :)

возьмите да посмотрите сами? в двухстах с копейками мегабайт исходников [архив] может что и найдете.

// wbr

klalafuda ★☆☆
()
Ответ на: комментарий от domenick

>>Еслиб ты ещё знал как обстоят дела в других ОС

>:) >Скажем так... некоторое представление об этом у нас присутствует.

О каких же ОС?

tailgunner ★★★★★
()
Ответ на: комментарий от domenick

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

LOL

всех-всех-всех процессоров, всех-всех-всех архитектрур? ;)

а может даже еще не созданных?

AcidumIrae ★★★★★
()
Ответ на: комментарий от domenick

domenick, твои высказывания суть - громкие слова, сводящиеся к тому, что монолитность это почему-то плохо (тебе не нравится). Вот видные эксперты Соломон с Руссиновичем почему-то так не считают, вместе с Вахалией, утверждая, что монолитные модульные ядра - самый нормальный компромисс между неудобным монолитным и избыточно сложным микро.

А вообще, когда я слышу слово "оптимальное" я спрашиваю: "по какому критерию, мой черный брат?". Кто оценивал грамотность uOS? При всем уважении, где но работает кроме песочниц?

Shaman007 ★★★★★
()
Ответ на: комментарий от AcidumIrae

>кто-то сказал "раз", а вот и "два" прозвучало

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

Sun-ch
()
Ответ на: комментарий от Sun-ch

> Вместо того, чтобы поглядеть как это реализовано у старших братьев по разуму, потративших деньги на сотни тысяч человеко-часов опытнейших системных архитекторов и программистов, линуксоиды идут своим путем

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

> правда еще не решили в каком направлении.

За Линукс стоит множество игроков, а не одна Sun, как за Solaris. Это ведет к большей живучести и большей анархии^Wразнообразности подходов.

tailgunner ★★★★★
()
Ответ на: комментарий от domenick

>Мое мнение. Лучшее - из всех рассмотренных систем.

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

jackill ★★★★★
()
Ответ на: комментарий от domenick

>Лишний раз убеждаешься, как нам далеко до того, чтобы жить более менее прилично, по совести и тп

А вы с какой планеты?

jackill ★★★★★
()
Ответ на: комментарий от anonymous

>а вы не подскажите чем КОНКРЕТНО ядро линакса лучше ядра ... ну скажем W2K?

Сначала научись гуглить.

jackill ★★★★★
()
Ответ на: комментарий от Sun-ch

>Не понял твоего сарказма.

":)))" видел?

>Вместо того, чтобы поглядеть как это реализовано у старших братьев по разуму

выссказывание было не по топику ;)

просто саныч был бы не саныч, если б он не был затычкой соляры везде и во всем ;)))

AcidumIrae ★★★★★
()
Ответ на: комментарий от Sun-ch

>линуксоиды идут своим путем, правда еще не решили в каком направлении.

Так у кого-там FreeBSD за основу взял планировщик?

jackill ★★★★★
()
Ответ на: комментарий от AcidumIrae

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

>LOL

>всех-всех-всех процессоров, всех-всех-всех архитектрур? ;)

>а может даже еще не созданных?
Нелепое какое-то предположение.

Процессоров предназначения, естественно. Надеюсь, никто не будет спорить с тем, что архитекура ОС в частности ядра это в большинстве случаев компромисс.

domenick ★★
()
Ответ на: комментарий от Shaman007

>domenick, твои высказывания суть - громкие слова,
Это вопрос восприятия. Прежде всего это только мое мнение.

>сводящиеся к тому, что монолитность это почему-то плохо (тебе не нравится).

Верно. Порой есть вещи, которые, как принято говорить "на кончике пера".
Не считаю, что настоящий форум - место для серьезного разбора темы. Специалист с опытом часто просто чувствует, где искать ошибку.

Монолитность плохо не почему-то. Чтобы все это рассмотреть, вероятно, правильнее всего выработать систему оценки. Возможно, создать некий коммитет, рабочую группу, обзавестись, может быть, собственным сайтом, принять инструменты оценки и измерения, периодически публиковать некие результаты тестов и тому подобное. Не вижу смысла в принятии на себя всех этих функций сейчас и тем более здесь. Более того, все это происходит так или иначе и без нас. И результаты так же доступны.
Я же приводил много ссылок на статьи, обзоры, результаты тестов и комментарии по теме. Лень уже в который раз все это пережевывать. "Имеющий уши, да услышит".



>Вот видные эксперты Соломон с Руссиновичем почему-то так не считают, вместе с Вахалией, утверждая, что монолитные модульные ядра - самый нормальный компромисс между неудобным монолитным и избыточно сложным микро.

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

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

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

Это без рассмотрения псевдореволюционных концепций.

Это все вещи, которые мы уже обсуждали много раз. Что мы опять-то к ним возвращаемся?

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

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

>А вообще, когда я слышу слово "оптимальное" я спрашиваю: "по какому критерию, мой черный брат?". Кто оценивал грамотность uOS? При всем уважении, где но работает кроме песочниц?

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

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

domenick ★★
()
Ответ на: комментарий от jackill

>>Мое мнение. Лучшее - из всех рассмотренных систем.

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

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

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

Однако, твой комментарий, Жень, выглядит подозрительно. То ли это расчетливая провокация, когда мы и так это обсуждали. Нечто вроде "тыкнуть" пальцем - "Смотрите, люди добрые, этж псих!. Его запятые не устраивают и т.п...", то ли не особо расчетливая, когда часть утверждений вырывается из контекста и далее на этой псевдооснове строится система "очернения" :). Цена такой системе ясна.

domenick ★★
()
Ответ на: комментарий от jackill

>>а вы не подскажите чем КОНКРЕТНО ядро линакса лучше ядра ... ну скажем W2K? >Сначала научись гуглить.

ха-ха-ха!!! ну зачем же так сразу сливаться? тем более что вопрос был задан не вам. если вы (уверен на все 100%) не в состоянии ничего сказать по теме, то нечего совать башку под колеса - отпилит.

anonymous
()
Ответ на: комментарий от domenick

> Я оценивал.

Ссылочку, иначе обычное словоблудие получаеться.

Sano
()
Ответ на: комментарий от domenick

В который раз замечаю, что читать посты domenick'а очень трудно. Мне кажется все это можно написать гораздо короче.

Если без воды, то все-таки в чем _конкретно_ по пунктам uOS лучше Linux или других ядер?

init ★★★★★
()
Ответ на: комментарий от init

>В который раз замечаю, что читать посты domenick'а очень трудно. Мне >кажется все это можно написать гораздо короче.

>Если без воды, то все-таки в чем _конкретно_ по пунктам uOS лучше Linux >или других ядер?

а все уже знают что товарищь доминик ничего не знает :), то что он льет много воды в своих постах это да, я их просто уже не читаю, ничего нового там нет, конкретно на вопросы товарищ отвечать затрудняется видимо.

alt0v14 ★★★
()
Ответ на: комментарий от init

>Если без воды, то все-таки в чем _конкретно_ по пунктам uOS лучше Linux или других ядер?

>>Все, что возможно рассматривать на этих "кухонных" дискуссиях - это персональные мнения о степени приближения той или иной конструкции к наилучшему результату. Дальше каждому не запрещено изучать тему самостоятельно. Брать документацию или исходный текст, собирать, прогонять тесты, сравнивать и составлять свое мнение по данному поводу.

domenick ★★
()
Ответ на: комментарий от alt0v14

>а все уже знают что товарищь доминик ничего не знает :), то что он льет много воды в своих постах это да, я их просто уже не читаю, ничего нового там нет, конкретно на вопросы товарищ отвечать затрудняется видимо.

Я прекрасно представляю, зачем вам конкретика. Конкретики было предостаточно, кстати, ранее. Здешняя аудитория в большинстве своем к конкретике не готова, как показывает опыт. Не беспокойтесь, прицепиться я вам поводов давать не собираюсь :) . Вам надо - вы мне и доказывайте, чем Линукс лучше uOS, например :). А я уж потом посмотрю, поразвлекать ли себя выискиванием в ваших выкладках.

Вообще ничего кроме умиления, здесь не вызывают те, кто серьезно полагает, что в этих "кухонных" беседах можно что-либо рассматривать серьзно. Меня это все потешает.

Вся конкретика в документации. Главное-то не конструктив, да? Главное подцепить :). Вот поэтому никакой конкретики не будет. Докажите, что можете вести дискуссию честно, тогда и до конкретики доберемся. Без этих - детско-наивных "вода", "ничего не знает" :))) , вам так считать удобнее, так и считайте. Вам здесь конкретика зачем? От неумения работать с документацией? Или от желания доказать, что я ничего не знаю? Вы определитесь, а потом поговорим.

domenick ★★
()
Ответ на: комментарий от anonymous

> Да, вы же все здест пионэры! Товарищ domenick обсалютно прав

Дык бля. Не знаем ни хрена, сидим гениев травим. Тем и развлекаемся. А ты с какого раёна?

Zulu ★★☆☆
()
Ответ на: комментарий от annoynimous

> Ох... Последний раз попытаюсь донести мысль: "совершенству нет предела, если нет другого дела". ОС совершенствуется до тех пор, пока _есть_смысл_ это делать. Улавливаешь разницу м/ду "есть смысл" и "есть возможность"? Да, линуксойды часто говорят, что "в других ОС это реализовано хуже, или, по крайней мере не лучше". Это часто правда (все же считаем, что не все красноглазые фанатики). Однако это отнюдь не означает, что мы достигли пика совершенства, отнюдь. Однако "технически совершенная ОС" - экстремально дорогое удовольствие, в самом широком смысле этого слова - по деньгам, времени, квалификации и числу специалистов, занятых ее написанием. Иногда проще купить новое железо, чем адаптироваться к новой ОС. И, между прочим, Линукс демонстрирует невиданную доселе гибкость, подстраиваясь и меняясь так быстро, как ни одна ОС до этого. Расплатой за это служат разные "нестабильности", от которых воет другая половина ЛОРа. Вот и не поймешь вас, детей, кому чего надо: то ли технически совершенной ОС, то ли железобетонного API, выбитого на скрижалях для потомков.

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

----------------------------------------
Хуже есть лучше(http://en.wikipedia.org/wiki/Worse_is_better)

Richard P. Gabriel(http://en.wikipedia.org/wiki/Richard_P._Gabriel) предложил, что ключевое преимущество Unix заключается в том, что Unix воплощает философию проектирования "Хуже есть лучше". В манере "Хуже есть лучше" простота обоих интерфейса и реализации более важна, чем любая другая черта этой системы, включая корректность, согласованность и завершённость. Габриель утверждает, что эта манера проектирования имеет ключевые эволюционные преимущества, хотя он ставит под сомнение качество некоторых результатов.

Например, в ранние дни UNIX имела монолитное ядро(http://en.wikipedia.org/wiki/Monolithic_kernel) (что означает, что процессы пользователя выполняют все системные вызовы на стеке пользователя). Если некоторый сигнал был вручён процессу, когда последний был заблокирован на длительном вводе-выводе в ядре, таком как sleep (10*60), то что должно быть сделано? Должен этот сигнал быть отложен, возможно на долгое время (может быть неопределено), до тех пор пока ввод-вывод не завершится? Обработчик сигнала не мог быть вызван когда процес был в режиме ядра с чувствительными данными ядра на этом стеке. Должно ядро откатить этот системный вызов и сохранить его для перевоспроизведения и перезапуска позднее, предполагая, что обработчик сигнала завершится успешно?

В таких случаях Кен Томпсон(http://en.wikipedia.org/wiki/Ken_Thompson) и Деннис Ритчи(http://en.wikipedia.org/wiki/Dennis_Ritchie) предпочли простоту совершенству. Система UNIX должна иногда возвращаться преждевременно из системного вызова с ошибкой, что ничего не сделано - "Прерванный сискол" ("Interrupted System Call") - ошибка номер 4 (EINTR) в современных системах. Конечно, этот вызов прекращается (aborted), чтобы вызвать обработчик сигнала. Такое должно случаться только для горстки "долго-играющих" сисколов таких как read(), write(), open(), select(), и тд. Что касается плюсов, то это делает систему ввода-вывода намного проще спроектировать и понять. Подавляющее количество пользовательских приложений никогда не были затронуты, поскольку они не обрабатывают или не чувствуют сигналы отличные от SIGINT/^C и должны завершиться прямо в момент его получения. Для очень небольшого числа приложений - подобных шеллам или текстовым редакторам - которые отвечают на комбинации клавиш управляющих заданиями - эти приложения могли бы вставить небольшие обёртки вокруг сисколов и перезапускать сисколы сразу, как только ошибка EINTR произошла. Проблема решена простым способом.

Вследствие философии Unix, в течение многих ранних лет UNIX была операционной системой, падавшей несколько раз каждый день, в то же время это была ОС с наименьшими временами перезагрузки.

В течение дясятилетия, вследствие философии Unix и результирующей простоты системы, общим свойством UNIX систем стало превосходство над другими коммерческими операционными системами в среднем времени отказа измеряемом месяцами, а не часами.
----------------------------------------

весь перевод:

http://www.linux.org.ru/jump-message.jsp?msgid=1125500#1126184

filin ★★
()
Ответ на: комментарий от domenick

> Вам надо - вы мне и доказывайте, чем Линукс лучше uOS, например

Мне не надо. Да и прочим "лоровским аналитикам", думаю, тоже по барабану. Просто тут был какой-то пук, и народ попытался выяснить источник запаха, но виновник был уже в кустах. Но на одно положение я всё-таки отвечу. Персонаж по имени "domenick" выдаёт утверждение о том, что если что-то улучшили, то раньше оно было плохим, за верное. Опровержение, кстати, тривиальное. Развитие чего-то достаточно хорошего диктуется, как правило, не тем, что можно сделать лучше, а изменяющейся постановкой задачи. Т.е. нормально с течением времени люди формируют новые Технические Задания к имеющимся системам, отсюда и развитие того, что у нас есть.

Например, когда-то давно даже один процессор был роскошью, но время изменилось, и системы с 2-4 процессорами стали повседневностью, это означало изменение Технического Задания для планировщика, и его переделали.

Другой пример, наследие 70-х годов -- переменная errno. Пока не было даже концепции "легковесного процесса" это было вполне нормальным компромиссом, но с появлением threads пришлось во многом изменить работу с разделяемыми ресурсами, errno, планировщика.

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

Casus ★★★★★
()

Предлагаю взять за правило хорошего тона перевод англоязычных статей _автором_ новости, хотя бы вкратце :). Во-первых не все посетители хорошо знают английский язык, во-вторых не все имеют желание читать полностью, им вполне может хватить "выжимки".

------------------------------------------
Путешествие вглубь планировщика ядра

последняя версия этого важного для всего компонента улучшает масштабируемость

M. Tim Jones (mtj@mtjones.com), Consultant Engineer, Emulex

30 Jun 2006

Планировщик это часть ядра ОСи занимающаяся планированием времени ЦПУ.

ПРОБЛЕМЫ СО СТАРЫМИ ПЛАНИРОВЩИКАМИ

Планировщики ядер перед 2.6 имели серьёзное ограничение при большом кол-ве активных задач. Сложность использованного алгоритма была O(n), где n - число активных задач. Таким образом при большой нагрузке ЦПУ мог много времени заниматься планированием, не оставляя времени самим задачам.

Планировщик в pre-2.6 имел одну очередь выполнения на все ЦПУ в SMP-системах и позволял легко запускать задачу на любом свободном ЦПУ, что было хорошо для балансировки нагрузки, но плохо для использования кешей, задание "переехавшее" на другой ЦПУ делало бесполезными свои данные в кеше старого ЦПУ и требовало из перезагрузки в кеш нового ЦПУ.

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

Вытеснение также отсутствовало в предыдущем планировщике.

ВВЕДЕНИЕ В ПЛАНИРОВЩИК linux 2.6

Новый планировщик спроектирован и реализован Ingo Molnar. Его главной мотивацией было создать полностью O(1) планировщик относительно операций пробуждения, переключения контекста и обработки прерываний таймера. Одной их проблем, побудившей сделать это, было использование Ява-машин, которые часто используются для задач с большим количеством тредов, что критично для O(n) планировщика.

Главные структуры linux 2.6 ПЛАНИРОВЩИКА

Каждый ЦПУ имеет две очередь выполнения, состоящую из 140 списков с разным приоритетом обслуживаемых по алгоритму FIFO. Запланированная на выполнение задача добавляется в конец списка соответствующего прооритета. Каждая задача имеет временной slice, определяющий сколько времени задача может выполняться. Первые 100 приоритетом для реал-там задач, остальные 40 для пользовательских задач.

В дополнение к активной очереди выполнения есть истекшая. Когда задача из активной очереди израсходует весь slice она перемещается в истекшую очередь, её приоритет и slice перевычисляются. Если все задачи в активной очереди кончились указатель на неё меняется местами с указателем на использованную.

Работа планировщика проста: выбрать задачу из списка с наивысшим приоритетом. Для этого используется bitmap из пяти 32-разрядных слов (прим перев: 5*32=160 почему бы тогда не сделать 160 приоритетов???) и инструкция find-first-bit-set чтобы найти бит с наивысшим приоритетом в этих словах, что отнимает постоянное фиксированное время не зависимо от числа активных задач.

Лучшая поддержка для SMP систем

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

Вытеснение

Планировщик вытесняет процесс с более низким приоритетом если процесс с более высоким готов к выполнению, помещает первый в список с его приоритетом и выполняет перепланирование.

ДОПОЛНИТЕЛЬНЫЕ ВОЗМОЖНОСТИ

Динамическая смена приоритетов

На основе эвристики называемой интерактивность и отслеживающей время выполнения и спячки задачи планировщик делит задачи на связанные по вводу/выводу (альтруистичные) и на связанные по ЦПУ. Первым уменьшается приоритет до пяти пунктов вторым повышается до пяти пунктов (прим перев: ниже "приоритет" => быстрее запустится на выполнение, всё наоборот). Динамическая смена приоритетов выполняется только для пользовательских задач.

Балансировка нагрузки в SMP

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

filin ★★
()
Ответ на: комментарий от filin

>Предлагаю взять за правило хорошего тона перевод англоязычных статей _автором_ новости, хотя бы вкратце :).

я за, отлично!!

anonymous
()
Ответ на: комментарий от filin

оопс, поспешил, про смену очередей неправильно написал, так НЕправильно:

"Если все задачи в активной очереди кончились указатель на неё меняется местами с указателем на использованную..."

так правильно:

Указатели на активную и истекшую очереди меняются местами когда кончаются задачи в активной очереди в списке с _данным_ приоритетом.

filin ★★
()
Ответ на: комментарий от domenick

>Что тяжко признавать собственную неправоту? Понимаю... :) Болтали, болтали, что Линукс ядро такое хорошее...

Удивительный день. Четыре дебила за сутки. Трех в ходе часовой беседы вразумил.

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

Планировщик в linux неидеален. Существует две модели - либо планировщик универсальный, либо на процессы. В linux делаю универсальный. Он хорош. Очень хорош. Но можно лучше.

От того, что можно лучше, он не становится плох. Просто можно лучше.

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

А вовсе не потому, что все говно и все должны либо писать что-то новое, либо уйти в монастырь и замаливать грехи.

Теперь понятно или нужно писать в твоем стиле со скобками и палочками?

И вообще, шел бы ты на форум своей любимой ОС. Кстати, надеюсь, в инете ты с нее сидишь и в работе тоже ее используешь.

jackill ★★★★★
()
Ответ на: комментарий от domenick

>Если мы по недомыслию так и будем опасаться прогрессивных перемен рискуем существенно отстать от корпораций.

Я на этой неделе гонял висту. Даже без 3D расширений KDE по возможностям (и настройкам) рвет висту с Aero как тузик грелку. В том числе по потреблению ресурсов. И винт не трахает.

Думаю, что с xgl разницы тоже не будет особой.

Кстати, по fps виста сдает. Причем серьезно. Думал, что я кривой и почитал обзоров - так и есть.

Так что корпорациям нужно догонять.

>Нахватались терминов - юношеский максимализм

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

>Так приятно, что юношеский максимализм еще со мной

Мы все же надеемся, что у тебя он уйдет и твоя личность станет органичной, а разум - логичным и неоднонаправленным.

jackill ★★★★★
()
Ответ на: комментарий от domenick

>То есть сплошной "фанатизмъ" - а это опасно - застилает взор от того, чтобы трезво оценивать ситуацию.

Что-то я не пойму - надо дать идею модераторам, чтобы тебя забанили за "ъ"?

Заколебал. Пиши нормально.

jackill ★★★★★
()
Ответ на: комментарий от domenick

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

Слушай, выучи уже технический английский. Осилишь документацию и лес станет светлым.

jackill ★★★★★
()
Ответ на: комментарий от domenick

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

Тебе в свое время было сказано, что они своим размером банально отвлекают от текста, но ты не понял.

jackill ★★★★★
()
Ответ на: комментарий от domenick

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

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

PS: Позвольте еще небольшую цитату: "Если ученый не может объяснить восьмилетнему мальчику , чем он занимается , то он шарлатан." ( Курт Воннегут)

Displacer ★★
()
Ответ на: комментарий от domenick

>Я прекрасно представляю, зачем вам конкретика. Конкретики было предостаточно, кстати, ранее. Здешняя аудитория в большинстве своем к конкретике не готова, как показывает опыт.

После анализа твоих ссылок ты обычно сбегал.

Хоть своими словами роди то, что ты нам хотел дать почитать. Это же очень просто.

Только без этого обращения к пресвятым богам, сетованиям на псевдоавторитетов, гонений на гуманитариев (и без ошибок научись слова писать) и т.п.

Честно вышел под своей любимой ОС, подцепил спеллчекер и вперед, отвечать конкретно на вопросы (а не юлить как уж на сковородке).

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

jackill ★★★★★
()
Ответ на: комментарий от Displacer

>Позвольте еще небольшую цитату: "Если ученый не может объяснить восьмилетнему мальчику , чем он занимается , то он шарлатан." ( Курт Воннегут)

Есть такая же цитата про три кастрюли и пальцы. ;)

jackill ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.