LINUX.ORG.RU

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


0

0

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

>>> Статья



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

Ну что вы набросились на доминика. Все он сказал верно, в 2000-2002 был настолько массированный PR про то что в Линуксе подавляющее преимущество по определению (помните все эти сотни комментов и бенчмарков) а сейчас все подозрительно затихло. Упоминать про бенчмарки вообще стало неприлично, получаешь ответ вроде "мы из этого выросли" "померяй сам" и так далее. Все это создало тот образ защитника современного Линукса как лжеца и хвастуна. Мне то причина слива понятна, ATI/NVIDIA так и не открыли исходники а представить домашний компьютер без видеокарты и игр невозможно. GCC вообще решили что оптимизация кода это глупость. Но есть и другие моменты, например совершенно нелепая ситуация с reiser4, с системой виртуальной памяти которая постоянно переписывалась (но похвальбы о том что она самая лучшая было немерянно), полный провал в OCR, анекдотично работающий freetype+RENDER (сравните скриншоты L.O.R где инверсия цвета - светлым по черному).

Тперь про планировщик. Те кто следит за LKML неверняка помнят постоянные споры вокруг ("костылей" ?) натыканых для улучшения пробуждения потока на другой стороне Pipe, абсолютно шаманский подход к "интерактивности" то есть он оастолько плох что приходится придумывать алгоритмы предсказания поведения задач и хоть как то улучшить ситуацию. Есть решение -сk ветки - обьясните чтомешает ее интегрировать в mainline ? Вы читали как разработчики Wine прыгали от радости что в каждом новом ярде меняется подход к планированию потоков и из за этого приходится все переосмысливать и переписывать ? Что скажете про нехорошие посты впоследнее время о том что ядро дропает сетевые пакеты в угоду интерактивности движения мыши ? Скажите, может себе позволить такое современное ядро, разработанное грамотным специалистом ?

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

>Что скажете про нехорошие посты впоследнее время о том что ядро дропает сетевые пакеты в угоду интерактивности движения мыши ?
Где??? Кстати, планировщик в ядре не единственный, вы о каком?
>Скажите, может себе позволить такое современное ядро, разработанное грамотным специалистом ?
Что есть "современное" ядро? Ядро 21-го века? Поясните, что имелось в виду?
Иначе звучит как: может ли современный автомобиль до сих пор работать на бензине и использовать колеса для передвижения? :-)

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

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

> Мне то причина слива понятна, ATI/NVIDIA так и не открыли исходники а представить домашний компьютер без видеокарты и игр невозможно. GCC вообще решили что оптимизация кода это глупость. Но есть и другие моменты, например совершенно нелепая ситуация с reiser4, с системой виртуальной памяти которая постоянно переписывалась (но похвальбы о том что она самая лучшая было немерянно), полный провал в OCR, анекдотично работающий freetype+RENDER (сравните скриншоты L.O.R где инверсия цвета - светлым по черному).

Про gcc - это новость. Откуда взял? У меня один и тотже код собранный gcc и VC7.1 - от gcc работает намного быстрее. Все остальное - издержки открытого(бесплатного)/закрытого(платного) ПО. В винде ,к примеру, происходит все тоже самое, только называется сервиспаки, и что в них есть - никто толком не открывает.

> Вы читали как разработчики Wine прыгали от радости что в каждом новом ярде меняется подход к планированию потоков и из за этого приходится все переосмысливать и переписывать?

Ну так вспомни про WinAPI на переходах вин11-вин95-вин98-винНТ....

Шедулер в линухе был хуже, чем в XP - по крайней мере до 2.6 ядра, как сейчас - не в курсе - руки не доходят. Все развивается, как в линухе, так и винде, так и везде. Какой смысл их сравнивать - непонятно. Задача - сроки - деньги - выбор решения. Для большинства задач линух более предпочтителен. Я не имею ввиду десктопы для игроманов и чайников.

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

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

Ты на себя роль провидца примерил? Не трепись о том, о чем понятия не имеешь.

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

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

Ты четвертый значит :) . Учитель.

domenick ★★
()

Читаю тут и все-таки это напоминает задачу про член в тисках ;-)))

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

>Ну что вы набросились на доминика. Все он сказал верно, в 2000-2002 был настолько массированный PR про то что в Линуксе подавляющее преимущество по определению (помните все эти сотни комментов и бенчмарков) а сейчас все подозрительно затихло.

Потому что он задрал. Ничего не приводит, ни в чем не разбирается, но с апломбом заявляет, что все в линуксе - говно.

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

У нас конкурент сейчас Solaris. А windows давно в хвосте.

>Мне то причина слива понятна, ATI/NVIDIA так и не открыли исходники а представить домашний компьютер без видеокарты и игр невозможно.

А мне нет. Дрова есть, причем даже для очень старых видеокарт и несмотря на то, что X-Server работает не в нулевом кольце, винда умудряется ему слить. Ну а уж об апдейтах одной командой я даже не говорю...

>Есть решение -сk ветки - обьясните чтомешает ее интегрировать в mainline ?

Мы исправляем фундаментальные баги. (с) Линус Торвальдс.

Они не могут вписаться в правильное представление, наверное.

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

>Ты на себя роль провидца примерил? Не трепись о том, о чем понятия не имеешь.

К сожалению, я имею.

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

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

>> "Мы - Николай второй"

>а мы - Вадим I

А мы - главный врач. :)

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

> Что скажете про нехорошие посты впоследнее время о том что ядро дропает сетевые пакеты в угоду интерактивности движения мыши ? Скажите, может себе позволить такое современное ядро, разработанное грамотным специалистом ?

Венде все можно.

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

domenick, ну так все заждались уже-с. Где краткий список по пунктам почему "ядро Линукс недоразвито, ненадежно, недостаточно производительно, читай низкоэффективно"? Ждем нечто вроде: пункт первый - недостаток такой-то, опционально вариант решения проблемы, пункт второй - недостаток такой-то и т.д. А то пока от вас, кроме, извиняюсь, воплей и философствований, мы так ничего до сих пор и не услышали.

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

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

anonymous
()

Да, кстати объясните популярно - если в ring0 вместе с микроядром (шедулер, прерывания и т.д.) крутятся в виде отдельных задач драйвера/сервисы то это что, уже монолит с модулями будет?

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

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

>domenick, ну так все заждались уже-с. Где краткий список по пунктам почему "ядро Линукс недоразвито, ненадежно, недостаточно производительно, читай низкоэффективно"?

с 19 по 22ое будут обсуждать недоразвитости на LinuxSymposium2006 ;) И с тем что Линукс недоразвит вроде никто не сомневается, но вот почему архитектура тупиковая - эти его слова непонятны..

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

> Да, кстати объясните популярно - если в ring0 вместе с микроядром (шедулер, прерывания и т.д.) крутятся в виде отдельных задач драйвера/сервисы то это что, уже монолит с модулями будет?

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

В соответствии с:

http://en.wikipedia.org/wiki/Microkernel

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

Как я понимаю, вследствие дополнительного слоя между системными сервисами, вызывающего дополнительные переключения контекста и копирование в/из буферов обмена Линус и ругает микроядра нехорошими словами. На мой взгляд железная виртуализация появившаяся в массовых ЦПУ делает плюсы микроядра менее выпуклыми на _этих_ ЦПУ, поскольку взлом/отказ сервиса и гостевой ОСи не влияет на другие сервисы запущенные в других гостевых ОСях (http://en.wikipedia.org/wiki/Xen).

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

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

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

Я одно пытаюсь понять - если в ring0 будет помимо микроядра ещё ОТДЕЛЬНЫМИ задачами драйвера и и т.д., это будет что? При этом само ядро, основная задача дёргаемая таймером и интами остаётся микро; драйвера, ФС - всё отдельными задачами. Что это будет? Гибридное ядро?

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

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

> Я одно пытаюсь понять - если в ring0 будет помимо микроядра ещё ОТДЕЛЬНЫМИ задачами драйвера и и т.д., это будет что? При этом само ядро, основная задача дёргаемая таймером и интами остаётся микро; драйвера, ФС - всё отдельными задачами. Что это будет? Гибридное ядро?

а как такое вообще может быть если под "ОТДЕЛЬНЫМИ задачами" имеются ввиду процессы с полноценной виртуализацией памяти? поскольку в ring0 память доступается в real memory addressing (http://en.wikipedia.org/wiki/Ring_0), то говорить про процессы вообще бессмысленно и в этом случае это всё то же монолитное ядро

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

>> Ты четвертый значит :) . Учитель.
> Спросим общественность, мой оптимистичный друг.

Jackill человек умный и хорошо разбирающийся в Linux.
Вам бы ламеркам его слушать внимательно а не гнать пургу.

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

> Jackill человек умный и хорошо разбирающийся в Linux.

4.2

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

Предлагаю Доменика причислить к сонму святолоровцев! Саныч уже там, Батарейкин кажыся тоже....

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

> Шедулер в линухе был хуже, чем в XP - по крайней мере до 2.6 ядра, как сейчас - не в курсе - руки не доходят.

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

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

>Проблема в том, что domenic и остальные говорят о разном. Он об абстрактной теоретически правильной ОС, а все остальные о лучшей на сегоднящний день реальной ОС общего назначения.

Я понимаю трудно прочитать бред доменика но если это сделать то можно увидеть, что он абстрактной оси и не рассматривает, а прямо тычет в некую uOS.

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

Скажем прямо и без утайки: сэр Джекилл - резок, но крут и много знает; Саныч - пророк, правда иногда бухой в жопень и несущий редкую пургу, но с учетом оного состояния сия мелочь простительна; ну а domenick - чего уж джентльменам стесняться друг друга - просто далбайоп-гуманитарий, с явным ГСМ.

P.S. ничего личного... ;)

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

У доменика гуманитарный склад ума? Вот это юмор, oбалдеть просто... нет слов!

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

>>Покажите мне, в какой еще ОС есть подобный выбор?

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

Саныч, не нужно путать понятие приоритета и типа планирования с тем, что предоставлет планировщик Linux. Первое и второе присутствует во всех известных Unix системах, а preemptible/non-preemptible kernel есть только в Linux.

>Sun-ch # (*) (07.07.2006 13:39:13)

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