URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 87027
[ Назад ]

Исходное сообщение
"Для ядра Linux представлена шестая версия планировщика задач..."

Отправлено opennews , 27-Окт-12 23:05 
Анонсирована (http://permalink.gmane.org/gmane.linux.kernel/1381800) шестая версия планировщика задач SCHED_DEADLINE (https://github.com/jlelli/sched-deadline), реализующего алгоритм EDF (Earliest Deadline First), основанный на идее выбора для выполнения из очереди ожидающих процессов задачи, наиболее близкой к истечению крайнего расчётного времени (deadline). Из изменений, представленных в новой версии SCHED_DEADLINE, можно отметить перевод патчей для использования в качестве основы ядра 3.7-rc2 (в ближайшее время также планируется выпуск варианта для ядра 3.6.2-rt4 с патчами PREEMPT_RT) и проведение тестирования на платформе ARM.

SCHED_DEADLINE поддерживает обеспечение работы процессов, требующих выполнения операций в режиме реального времени, предоставляя для подобных задач гарантированное время выполнения, независимо от общего количества обслуживаемых процессов, и реализуя возможность резервирования пропускной способности CPU для процессов. Обычный планировщик задач не способен гарантировать необходимое время выполнения задачи в заданном интервале времени (например, гарантировать выполнение задачи 10 мсек в интервале 100 мсек) из-за того, что переключение между задачами зависит от общего количества обслуживаемых процессов, каждый из которых может выполняться с произвольной задержкой и, таким образом, может задержать выполнение следующей задачи.

URL: http://permalink.gmane.org/gmane.linux.kernel/1381800
Новость: http://www.opennet.ru/opennews/art.shtml?num=35188


Содержание

Сообщения в этом обсуждении
"Для ядра Linux представлена шестая версия планировщика задач..."
Отправлено Zenitur , 27-Окт-12 23:05 
Он тоже неофициальный?

"Для ядра Linux представлена шестая версия планировщика задач..."
Отправлено c0rax , 27-Окт-12 23:28 
>Он тоже неофициальный?

Официальный


"Для ядра Linux представлена шестая версия планировщика задач..."
Отправлено pavlinux , 28-Окт-12 15:15 
>>Он тоже неофициальный?
> Официальный

Хрен


"Для ядра Linux представлена шестая версия планировщика задач..."
Отправлено Sw00p aka Jerom , 29-Окт-12 18:00 
ktune его почемуто выставляет

"Для ядра Linux представлена шестая версия планировщика задач..."
Отправлено pavlinux , 29-Окт-12 18:36 
> ktune его почемуто выставляет

Это не тот DEADLINE


"Для ядра Linux представлена шестая версия планировщика задач..."
Отправлено Аноним , 28-Окт-12 04:21 
> Он тоже неофициальный?

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


"Для ядра Linux представлена шестая версия планировщика задач..."
Отправлено pavlinux , 28-Окт-12 15:16 
>> Он тоже неофициальный?
> Нет, уже давно в мейнстриме.

Как пешком до Китая.
> Вполне закономерно - специфический нишевый планировщик, по области применения практически
> не пересекающийся с CFQ. В отличие от якобы универсальных, а по
> факту - непригодных ни для чего в силу недопиленности, поделок типа
> BFQ и RIFS-ES.

Спициалисты, хватит гнать.


"Для ядра Linux представлена шестая версия планировщика задач..."
Отправлено pavlinux , 28-Окт-12 14:55 
Нет.

"Для ядра Linux представлена шестая версия планировщика задач..."
Отправлено Аноним , 29-Окт-12 00:37 
А это кто?

$ cat /sys/block/sda/queue/scheduler
noop [deadline] cfq


"Для ядра Linux представлена шестая версия планировщика задач..."
Отправлено pavlinux , 29-Окт-12 02:34 
> А это кто?
> $ cat /sys/block/sda/queue/scheduler
> noop [deadline] cfq

Здрастье, приехали. :) Это мил человек, планировщик ввода/вывода, он же I/O Scheduler.
Тут тема про планировщик задач, он же Task Scheduler  


"Для ядра Linux представлена шестая версия планировщика задач..."
Отправлено onorua , 28-Окт-12 05:20 
>> предоставляя для подобных задач гарантированное время выполнения, независимо от общего количества обслуживаемых процессов

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


"Для ядра Linux представлена шестая версия планировщика задач..."
Отправлено pro100master , 28-Окт-12 12:02 
фраза сумбурная, но, тем не менее, написано - резервируется. Общее время тут ни при делах

"Для ядра Linux представлена шестая версия планировщика задач..."
Отправлено robux , 28-Окт-12 12:48 
> для выполнения из очереди ожидающих процессов задачи, наиболее близкой к истечению крайнего расчётного времени

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


"Для ядра Linux представлена шестая версия планировщика задач..."
Отправлено Andrey Mitrofanov , 28-Окт-12 13:03 
>>задачи, наиболее близкой к истечению крайнего расчётного времени
>на процессы, к-е вот-вот завершатся

Вы совершенно не поняли, что написано в первой квоте.


"Для ядра Linux представлена шестая версия планировщика задач..."
Отправлено НЕТ , 28-Окт-12 14:37 
Извините, в первой... чём? Вери стренджительное експрэшивание

"Для ядра Linux представлена шестая версия планировщика задач..."
Отправлено Andrey Mitrofanov , 28-Окт-12 19:41 
> Извините, в первой... чём?

Я и грю, первый соколик тоже ничего не понял, но мнение вякал.

В городе опять каникулы??



"Для ядра Linux представлена шестая версия планировщика задач..."
Отправлено VoDA , 28-Окт-12 15:12 
> Т.е. бросать ресурс CPU на процессы, к-е вот-вот завершатся, в ущерб другим?

Бросать ресурсы CPU которые ближе всего к вылету за рамки гарантированного отклика. Т.е. Запрос 1 пришел 80 мс назад, а запрос 20 мс тому. Гарантированный отклик - 100 мс. В этом случае система должна отработать сначала запрос 1, а затем запрос 2.

Если же 1-й запрос пришел 50 мс назад, но гарантированный отклик для этого типа запросов 100 мс, а 2-й свалился 20 мс, но гарантир. отклик на этот тип составляет 50 мс. То тогда система должна отработать сначала 2-й запрос (на него осталось 30 мс), а уже затем 1-й (на него есть 50 мс).

Да, системы реального времени отрабатывают реал-тайм запросы в ущерб менее привеллигированным.

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


"Для ядра Linux представлена шестая версия планировщика задач..."
Отправлено Аноним , 28-Окт-12 14:22 
Ну запустит это планировщик процесс, даст поработать 10 мс, а потом сам же его и прибьёт, так и не дав выполнить поставленную задачу и получить результат. А если процесс успевает все, что хочет - ему с любым планировщиком хорошо, да он сам планировщик, отдаёт CPU добровольно.

"Для ядра Linux представлена шестая версия планировщика задач..."
Отправлено Аноним , 28-Окт-12 15:04 
Ачо, вытесняющую многозадачность уже отменили? Вы вообще-то в курсях, как работают планировщики осей?

"Для ядра Linux представлена шестая версия планировщика задач..."
Отправлено VoDA , 28-Окт-12 15:16 
> Ну запустит это планировщик процесс, даст поработать 10 мс, а потом сам
> же его и прибьёт, так и не дав выполнить поставленную задачу
> и получить результат.

Задача отработать сигнал за отведенное время. К примеру задача управления автомобилем комплексная и длительная. Но при появлении препятствия на дороге - сигнал об этом должен быть отработан за мс. И дальше система постепенно (по сравнению с миллисекундной задержкой на обработку) исполняет полученный сигнал.

В примере сигнал это появление препятствия справа и, возможно, решение об его объезде слева. А дальше работает основная задача и в течении 100-200 мс поворачивает колеса, чем меняет траекторию движения.



"Для ядра Linux представлена шестая версия планировщика задач..."
Отправлено Аноним , 28-Окт-12 16:15 
Чувак, ты форумом не ошибся ли? Тут речь так-то не о RT-осях идет.... :))))))))))))))))))))))))))

"Для ядра Linux представлена шестая версия планировщика задач..."
Отправлено VoDA , 28-Окт-12 16:49 
Так данный планировщик как раз и помогает сделать из ядра Linux ядро подходящее для создания RT-ОС.

Плюс тот же RedHat выпускает ОС на базе Linux для RealTime-обработки ;)


"Для ядра Linux представлена шестая версия планировщика задач..."
Отправлено Аноним , 28-Окт-12 17:06 
Это ты ошибся, не RT оси канули в лету в 70-х. Больше не надо стоять в живой очереди к считывателю с колодой перфокарт, потом 3 суток ждать результата. Сейчас ты тыкаешь мышкой и видишь резултат на экране как будт то экран живой и шевелится. Это и есть реал тайм. А бед про "гарантированное бла бла за бла бла" - это обеспечивают любые ос без ошибок. К примеру гарантировано твоя колода перфокарт будет обработана за 10000 лет, что очевидно показывает что по этому дебитьно мартетоижному определению практически любая ОС - реального времени.

"Для ядра Linux представлена шестая версия планировщика задач..."
Отправлено Аноним , 28-Окт-12 17:41 
Боюсь, ты кое-что путаешь. Пойди хоть к викип.дорам, почитай, что так-то называется реалтаймом. Софт и хард. М? И потом потрындим. С пониманием вопроса. Ога?

"Для ядра Linux представлена шестая версия планировщика задач..."
Отправлено Аноним , 28-Окт-12 16:51 
>сигнал об этом должен быть отработан

Должен быть отработан до конца. До принятия решения. До тех пор, пока процесс сам не отдаст CPU. А 10 мс зачем?


"Для ядра Linux представлена шестая версия планировщика задач..."
Отправлено VoDA , 28-Окт-12 16:58 
>>сигнал об этом должен быть отработан
> Должен быть отработан до конца. До принятия решения. До тех пор, пока
> процесс сам не отдаст CPU. А 10 мс зачем?

Только принятие решения для обработки решения не есть принятие решения для всего приложения. Потому вся обработка и принятие решения для ОДНОГО сигнала обычно довольно короткое.


"Для ядра Linux представлена шестая версия планировщика задач..."
Отправлено Аноним , 28-Окт-12 17:18 
>принятие решения для ОДНОГО сигнала обычно довольно короткое.

Да, да и ещё раз да.
А теперь читаем товарища выше:

>ты тыкаешь мышкой и видишь резултат на экране как будт то экран живой и шевелится

И меня в самом начале:

>А если процесс успевает все, что хочет - ему с любым планировщиком хорошо

Что и требовалось доказать.


"Для ядра Linux представлена шестая версия планировщика задач..."
Отправлено Аноним , 29-Окт-12 00:49 

>>А если процесс успевает все, что хочет - ему с любым планировщиком хорошо
> Что и требовалось доказать.

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


"Для ядра Linux представлена шестая версия планировщика задач..."
Отправлено Аноним , 29-Окт-12 10:50 
Про приоритеты я слышал, они у меня и сейчас есть, при чём тут новый планировщик? Вопрос звучит буквально так: "Зачем 10 мс?". Приоритетная задача будет работать столько, сколько ей надо, даже в перегруженной чем-то ещё системе и с любым планировщиком. А запускать приоритетную задачу и не дать ей закончиться - не лучшее решение в любом случае.

"Для ядра Linux представлена шестая версия планировщика задач..."
Отправлено Аноним , 28-Окт-12 15:14 
Ну талант, https://github.com/jlelli/sched-deadline/blob/mainline-dl/ke...

Функция возвращает (int), а он преобразует к (s64) :)


static inline int dl_time_before(u64 a, u64 b)
{
    return (s64)(a - b) < 0;
}

Мож я чё-нить не вкуриваю, но если беззнаковое (u64 a) будет больше (u64 b),
то (a-b) станет, скажем, 0xfffffffffffffabc, что явно больше нуля.


"Для ядра Linux представлена шестая версия планировщика задач..."
Отправлено ВовкаОсиист , 28-Окт-12 15:30 
> 0xfffffffffffffabc, что явно больше нуля.

нет, для signed типа это число со знаком минус.


"Для ядра Linux представлена шестая версия планировщика задач..."
Отправлено pavlinux , 28-Окт-12 16:03 
Опа, а я-то думал это когда флаг SF==1 :)

"Для ядра Linux представлена шестая версия планировщика задач..."
Отправлено Aquarius , 28-Окт-12 16:56 
Опа, а я-то думал, что SF, в зависимости от инструкции, сбрасывается в 0, не меняется или получает значение старшего бита результата

"Для ядра Linux представлена шестая версия планировщика задач..."
Отправлено pavlinux , 29-Окт-12 02:41 
> сбрасывается в 0, не меняется или получает значение старшего бита результата

Опа, попытался ответить, а получилось, что рассказал, как работает флаг SF



"Для ядра Linux представлена шестая версия планировщика задач..."
Отправлено ВовкаОсиист , 31-Окт-12 03:06 
Здаётся мне это был тонкий намёк.

"Для ядра Linux представлена шестая версия планировщика задач..."
Отправлено ram_scan , 28-Окт-12 16:25 
Я все удивляюсь. Очень неглупый дядька с фамилией Эрланг вывел свои формулы уж больше полвека тому как, и под теорию массового обслуживания фундаментально их подложил, а народ до сих пор планировщики основываясь на "идеях" изобретает... Может книжку по ТРИ почитать просто ?

"Для ядра Linux представлена шестая версия планировщика задач..."
Отправлено VoDA , 28-Окт-12 16:52 
> Я все удивляюсь. Очень неглупый дядька с фамилией Эрланг вывел свои формулы
> уж больше полвека тому как, и под теорию массового обслуживания фундаментально
> их подложил, а народ до сих пор планировщики основываясь на "идеях"
> изобретает... Может книжку по ТРИ почитать просто ?

Одно из двух или формулы Эрланга не очень удобно реализуются в реальности (на языке Эрлан не очень то много и пишут) или реализация хромает. Почему то развиваются монолитные ядра типа Linux, а микро-ядерные ОС, которые все такие-раз таки в теории на практике практически не используются.



"Для ядра Linux представлена шестая версия планировщика задач..."
Отправлено Aquarius , 28-Окт-12 17:20 
>> Я все удивляюсь. Очень неглупый дядька с фамилией Эрланг вывел свои формулы
>> уж больше полвека тому как, и под теорию массового обслуживания фундаментально
>> их подложил, а народ до сих пор планировщики основываясь на "идеях"
>> изобретает... Может книжку по ТРИ почитать просто ?
> Одно из двух или формулы Эрланга не очень удобно реализуются в реальности
> (на языке Эрлан не очень то много и пишут) или реализация
> хромает. Почему то развиваются монолитные ядра типа Linux, а микро-ядерные ОС,
> которые все такие-раз таки в теории на практике практически не используются.

сдается мне, что язык с дядькой никак не связан, кроме того, что назван в его честь
P.S. а с учетом того, что язык создан в недрах Ericsson, не факт, что и посвящением связан


"Для ядра Linux представлена шестая версия планировщика задач..."
Отправлено Аноним , 28-Окт-12 17:43 
>> Я все удивляюсь. Очень неглупый дядька с фамилией Эрланг вывел свои формулы
>> уж больше полвека тому как, и под теорию массового обслуживания фундаментально
>> их подложил, а народ до сих пор планировщики основываясь на "идеях"
>> изобретает... Может книжку по ТРИ почитать просто ?
> Одно из двух или формулы Эрланга не очень удобно реализуются в реальности
> (на языке Эрлан не очень то много и пишут) или реализация
> хромает. Почему то развиваются монолитные ядра типа Linux, а микро-ядерные ОС,
> которые все такие-раз таки в теории на практике практически не используются.

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


"Для ядра Linux представлена шестая версия планировщика задач..."
Отправлено GentooBoy , 28-Окт-12 23:33 
Микро ядра только в теории выигрывают. Да и не думаю что где то есть научные расчеты чтобы микро ядра выигрывали по быстродействию у монолитных.

"Для ядра Linux представлена шестая версия планировщика задач..."
Отправлено Аноним , 29-Окт-12 01:06 
> Микро ядра только в теории выигрывают. Да и не думаю что где
> то есть научные расчеты чтобы микро ядра выигрывали по быстродействию у
> монолитных.

оно не должно выигрывать в скорости. Прикинь, <sarcasm>даже допускается</sarcasm>, чтобы оно проигрывало. Что и происходит из-за лишних переключений контекста (правда все хотят и надеются, чтобы проигрывало в разумных пределах). Но от него ждут другого - чтобы было надежное и живучее, чтобы ядро не умирала от кривого звукового драйвера, написанного такими как ты. И кто-то готов ради этого пожертвовать толикой производительности. В свое время я поразился QNX. Очень жалел что ее не хотели превратить в ОС универсального назначения (хотя бы планировщики задач расширить и вытеснение задач на диск прикрутить для обычных процессов). Прикинь, там даже поиграться можно было - второго квейка на нем прошел (правда, файлы ресурсов (уровни, картинки) пришлось с виндовой версии брать)


"Для ядра Linux представлена шестая версия планировщика задач..."
Отправлено Аноним , 28-Окт-12 17:22 
Все проще, программы пишут не для абстрактных воображаемых устройств, а для конкретных аппаратных изделий коммерческих фирм, полных компромиссов, мухляжа, вранья и ошибок в спецификациях, трюков навроде эмуляции и повторного исполнения операций при сбое, скрытом от внешнего наблюдателя. Во времена транзисторнвх микросборок еще боле менее модно окинуть взглядом как там по времени логика работает, а сейчас это просто общие догадки на основе спецификаций и полу магических статистических оценок типа "ну я пол часа тест прогнал вроде прерывание за 500 тактов успевает обработать, вот погоняю еще неделю и скажу точнее".

"Для ядра Linux представлена шестая версия планировщика задач..."
Отправлено Crazy Alex , 29-Окт-12 02:25 
Для простых железок (вроде AVR тех же) вполне можно посчитать по тактам худший вариант. Если нужно что-то большее - welcome в Verilog.

"Для ядра Linux представлена шестая версия планировщика задач..."
Отправлено ram_scan , 29-Окт-12 04:44 
У меня такое ощущение что большинство и тут отписавшихся, да и в принципе "вообще", не в курсе о наличии таких научных дисциплин, как "теория массового обслуживания", которая числится в википедии как "теория очередей" (правда в википедии теория почему-то забыли про отказы по причине "неисправности") и "теория распределения информации", что такое Пуассоновский поток и т.д. Все умными людями еще в том столетии придумано, математический аппарат создан, как для моделирования процессов так и для их исследования, бери и пользуйся.

Не пользуются, наощупь ходют...


"Для ядра Linux представлена шестая версия планировщика задач..."
Отправлено Аноним , 29-Окт-12 18:31 
> У меня такое ощущение что большинство и тут отписавшихся, да и в
> принципе "вообще", не в курсе о наличии таких научных дисциплин, как
> "теория массового обслуживания", которая числится в википедии как "теория очередей" (правда
> в википедии теория почему-то забыли про отказы по причине "неисправности") и
> "теория распределения информации", что такое Пуассоновский поток и т.д. Все умными
> людями еще в том столетии придумано, математический аппарат создан, как для
> моделирования процессов так и для их исследования, бери и пользуйся.
> Не пользуются, наощупь ходют...

Ты прав, чувак. Они - юзвери, те самые пресловутые хомяки, торчащие на порносайтах и втентаклике. Только щеки надувают и по принципу "А зато я убунту осилил поставить, я СИСОДМИН!" и гнут пальцы типо с пониманием вопроса. :)))))))))))))))))))


"Для ядра Linux представлена шестая версия планировщика задач..."
Отправлено pavlinux , 31-Окт-12 18:17 
> бери и пользуйся.

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


"Для ядра Linux представлена шестая версия планировщика задач..."
Отправлено pavlinux , 31-Окт-12 18:04 
> Я все удивляюсь. Очень неглупый дядька с фамилией Эрланг вывел свои формулы

Он использует теор. вероятностей, что для атомного реактора иль автопилота недопустимо. :)


"Для ядра Linux представлена шестая версия планировщика задач..."
Отправлено ВовкаОсиист , 28-Окт-12 19:12 
Непонятно, где скачать патчи, а не ядро целиком.

"Для ядра Linux представлена шестая версия планировщика задач..."
Отправлено skybon , 29-Окт-12 03:54 
Лучше на десктопе чем CFQ. С последним система виснет при копировании больших файлов.

"Для ядра Linux представлена шестая версия планировщика задач..."
Отправлено Аноним , 22-Янв-14 19:31 
CFQ: Производительность самая высокая, изза учета приоритетов. Отзывчивость(зависания) самые вероятные.
DEADLINE: Производительность средняя, изза непозволения приоритетам задавливать неприоритеты. Зато отзывчивость высокая.

DEADLINE является равносправедливым.
CFQ является справедливым к приоритетам.

DEADLINE нужно ставить туда, где отзывчивость важна (дестопы, realtime).
CFQ нужно ставить только туда, где нет интеракции (cервера).