The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Для ядра Linux представлена шестая версия планировщика задач SCHED_DEADLINE

27.10.2012 22:53

Анонсирована шестая версия планировщика задач SCHED_DEADLINE, реализующего алгоритм EDF (Earliest Deadline First), основанный на идее выбора для выполнения из очереди ожидающих процессов задачи, наиболее близкой к истечению крайнего расчётного времени (deadline). Из изменений, представленных в новой версии SCHED_DEADLINE, можно отметить перевод патчей для использования в качестве основы ядра 3.7-rc2 (в ближайшее время также планируется выпуск варианта для ядра 3.6.2-rt4 с патчами PREEMPT_RT) и проведение тестирования на платформе ARM.

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

  1. Главная ссылка к новости (http://permalink.gmane.org/gma...)
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/35188-sched_deadline
Ключевые слова: sched_deadline, sheduler, linux, realtime
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (50) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Zenitur (ok), 23:05, 27/10/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Он тоже неофициальный?
     
     
  • 2.2, c0rax (ok), 23:28, 27/10/2012 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >Он тоже неофициальный?

    Официальный

     
     
  • 3.15, pavlinux (ok), 15:15, 28/10/2012 [^] [^^] [^^^] [ответить]  
  • –2 +/
    >>Он тоже неофициальный?
    > Официальный

    Хрен

     
     
  • 4.54, Sw00p aka Jerom (?), 18:00, 29/10/2012 [^] [^^] [^^^] [ответить]  
  • –1 +/
    ktune его почемуто выставляет
     
     
  • 5.57, pavlinux (ok), 18:36, 29/10/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > ktune его почемуто выставляет

    Это не тот DEADLINE

     
  • 2.4, Аноним (-), 04:21, 28/10/2012 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Он тоже неофициальный?

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

     
     
  • 3.16, pavlinux (ok), 15:16, 28/10/2012 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >> Он тоже неофициальный?
    > Нет, уже давно в мейнстриме.

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

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

     
  • 2.11, pavlinux (ok), 14:55, 28/10/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Нет.
     
     
  • 3.39, Аноним (-), 00:37, 29/10/2012 [^] [^^] [^^^] [ответить]  
  • –2 +/
    А это кто?

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

     
     
  • 4.48, pavlinux (ok), 02:34, 29/10/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > А это кто?
    > $ cat /sys/block/sda/queue/scheduler
    > noop [deadline] cfq

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

     

  • 1.5, onorua (ok), 05:20, 28/10/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    >> предоставляя для подобных задач гарантированное время выполнения, независимо от общего количества обслуживаемых процессов

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

     
     
  • 2.6, pro100master (ok), 12:02, 28/10/2012 [^] [^^] [^^^] [ответить]  
  • +/
    фраза сумбурная, но, тем не менее, написано - резервируется. Общее время тут ни при делах
     

  • 1.7, robux (ok), 12:48, 28/10/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    > для выполнения из очереди ожидающих процессов задачи, наиболее близкой к истечению крайнего расчётного времени

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

     
     
  • 2.8, Andrey Mitrofanov (?), 13:03, 28/10/2012 [^] [^^] [^^^] [ответить]  
  • +/
    >>задачи, наиболее близкой к истечению крайнего расчётного времени
    >на процессы, к-е вот-вот завершатся

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

     
     
  • 3.10, НЕТ (?), 14:37, 28/10/2012 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Извините, в первой... чём? Вери стренджительное експрэшивание
     
     
  • 4.35, Andrey Mitrofanov (?), 19:41, 28/10/2012 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Извините, в первой... чём?

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

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


     
  • 2.13, VoDA (ok), 15:12, 28/10/2012 [^] [^^] [^^^] [ответить]  
  • +4 +/
    > Т.е. бросать ресурс CPU на процессы, к-е вот-вот завершатся, в ущерб другим?

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

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

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

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

     

  • 1.9, Аноним (-), 14:22, 28/10/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    Ну запустит это планировщик процесс, даст поработать 10 мс, а потом сам же его и прибьёт, так и не дав выполнить поставленную задачу и получить результат. А если процесс успевает все, что хочет - ему с любым планировщиком хорошо, да он сам планировщик, отдаёт CPU добровольно.
     
     
  • 2.12, Аноним (-), 15:04, 28/10/2012 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Ачо, вытесняющую многозадачность уже отменили? Вы вообще-то в курсях, как работают планировщики осей?
     
  • 2.17, VoDA (ok), 15:16, 28/10/2012 [^] [^^] [^^^] [ответить]  
  • +4 +/
    > Ну запустит это планировщик процесс, даст поработать 10 мс, а потом сам
    > же его и прибьёт, так и не дав выполнить поставленную задачу
    > и получить результат.

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

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


     
     
  • 3.20, Аноним (-), 16:15, 28/10/2012 [^] [^^] [^^^] [ответить]  
  • –4 +/
    Чувак, ты форумом не ошибся ли? Тут речь так-то не о RT-осях идет.... :))))))))))))))))))))))))))
     
     
  • 4.22, VoDA (ok), 16:49, 28/10/2012 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Так данный планировщик как раз и помогает сделать из ядра Linux ядро подходящее для создания RT-ОС.

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

     
  • 4.27, Аноним (-), 17:06, 28/10/2012 [^] [^^] [^^^] [ответить]  
  • –7 +/
    Это ты ошибся, не RT оси канули в лету в 70-х. Больше не надо стоять в живой очереди к считывателю с колодой перфокарт, потом 3 суток ждать результата. Сейчас ты тыкаешь мышкой и видишь резултат на экране как будт то экран живой и шевелится. Это и есть реал тайм. А бед про "гарантированное бла бла за бла бла" - это обеспечивают любые ос без ошибок. К примеру гарантировано твоя колода перфокарт будет обработана за 10000 лет, что очевидно показывает что по этому дебитьно мартетоижному определению практически любая ОС - реального времени.
     
     
  • 5.31, Аноним (-), 17:41, 28/10/2012 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Боюсь, ты кое-что путаешь. Пойди хоть к викип.дорам, почитай, что так-то называется реалтаймом. Софт и хард. М? И потом потрындим. С пониманием вопроса. Ога?
     
  • 3.23, Аноним (-), 16:51, 28/10/2012 [^] [^^] [^^^] [ответить]  
  • +/
    >сигнал об этом должен быть отработан

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

     
     
  • 4.26, VoDA (ok), 16:58, 28/10/2012 [^] [^^] [^^^] [ответить]  
  • +/
    >>сигнал об этом должен быть отработан
    > Должен быть отработан до конца. До принятия решения. До тех пор, пока
    > процесс сам не отдаст CPU. А 10 мс зачем?

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

     
     
  • 5.28, Аноним (-), 17:18, 28/10/2012 [^] [^^] [^^^] [ответить]  
  • +/
    >принятие решения для ОДНОГО сигнала обычно довольно короткое.

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

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

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

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

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

     
     
  • 6.42, Аноним (-), 00:49, 29/10/2012 [^] [^^] [^^^] [ответить]  
  • +/

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

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

     
     
  • 7.53, Аноним (-), 10:50, 29/10/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Про приоритеты я слышал, они у меня и сейчас есть, при чём тут новый планировщик? Вопрос звучит буквально так: "Зачем 10 мс?". Приоритетная задача будет работать столько, сколько ей надо, даже в перегруженной чем-то ещё системе и с любым планировщиком. А запускать приоритетную задачу и не дать ей закончиться - не лучшее решение в любом случае.
     

  • 1.14, Аноним (-), 15:14, 28/10/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Ну талант, https://github.com/jlelli/sched-deadline/blob/mainline-dl/kernel/sched/cpudead

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



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


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

     
     
  • 2.18, ВовкаОсиист (ok), 15:30, 28/10/2012 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > 0xfffffffffffffabc, что явно больше нуля.

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

     
     
  • 3.19, pavlinux (ok), 16:03, 28/10/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Опа, а я-то думал это когда флаг SF==1 :)
     
     
  • 4.25, Aquarius (ok), 16:56, 28/10/2012 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Опа, а я-то думал, что SF, в зависимости от инструкции, сбрасывается в 0, не меняется или получает значение старшего бита результата
     
     
  • 5.49, pavlinux (ok), 02:41, 29/10/2012 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > сбрасывается в 0, не меняется или получает значение старшего бита результата

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


     
     
  • 6.60, ВовкаОсиист (ok), 03:06, 31/10/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Здаётся мне это был тонкий намёк.
     

  • 1.21, ram_scan (?), 16:25, 28/10/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Я все удивляюсь. Очень неглупый дядька с фамилией Эрланг вывел свои формулы уж больше полвека тому как, и под теорию массового обслуживания фундаментально их подложил, а народ до сих пор планировщики основываясь на "идеях" изобретает... Может книжку по ТРИ почитать просто ?
     
     
  • 2.24, VoDA (ok), 16:52, 28/10/2012 [^] [^^] [^^^] [ответить]  
  • –3 +/
    > Я все удивляюсь. Очень неглупый дядька с фамилией Эрланг вывел свои формулы
    > уж больше полвека тому как, и под теорию массового обслуживания фундаментально
    > их подложил, а народ до сих пор планировщики основываясь на "идеях"
    > изобретает... Может книжку по ТРИ почитать просто ?

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


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

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

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

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

     
  • 3.38, GentooBoy (ok), 23:33, 28/10/2012 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Микро ядра только в теории выигрывают. Да и не думаю что где то есть научные расчеты чтобы микро ядра выигрывали по быстродействию у монолитных.
     
     
  • 4.46, Аноним (-), 01:06, 29/10/2012 [^] [^^] [^^^] [ответить]  
  • +1 +/
    оно не должно выигрывать в скорости Прикинь, sarcasm даже допускается sarcasm... большой текст свёрнут, показать
     
  • 2.30, Аноним (-), 17:22, 28/10/2012 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Все проще, программы пишут не для абстрактных воображаемых устройств, а для конкретных аппаратных изделий коммерческих фирм, полных компромиссов, мухляжа, вранья и ошибок в спецификациях, трюков навроде эмуляции и повторного исполнения операций при сбое, скрытом от внешнего наблюдателя. Во времена транзисторнвх микросборок еще боле менее модно окинуть взглядом как там по времени логика работает, а сейчас это просто общие догадки на основе спецификаций и полу магических статистических оценок типа "ну я пол часа тест прогнал вроде прерывание за 500 тактов успевает обработать, вот погоняю еще неделю и скажу точнее".
     
     
  • 3.47, Crazy Alex (ok), 02:25, 29/10/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Для простых железок (вроде AVR тех же) вполне можно посчитать по тактам худший вариант. Если нужно что-то большее - welcome в Verilog.
     
  • 2.51, ram_scan (?), 04:44, 29/10/2012 [^] [^^] [^^^] [ответить]  
  • +1 +/
    У меня такое ощущение что большинство и тут отписавшихся, да и в принципе "вообще", не в курсе о наличии таких научных дисциплин, как "теория массового обслуживания", которая числится в википедии как "теория очередей" (правда в википедии теория почему-то забыли про отказы по причине "неисправности") и "теория распределения информации", что такое Пуассоновский поток и т.д. Все умными людями еще в том столетии придумано, математический аппарат создан, как для моделирования процессов так и для их исследования, бери и пользуйся.

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

     
     
  • 3.56, Аноним (-), 18:31, 29/10/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Ты прав, чувак Они - юзвери, те самые пресловутые хомяки, торчащие на порносайт... большой текст свёрнут, показать
     
  • 3.62, pavlinux (ok), 18:17, 31/10/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > бери и пользуйся.

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

     
  • 2.61, pavlinux (ok), 18:04, 31/10/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > Я все удивляюсь. Очень неглупый дядька с фамилией Эрланг вывел свои формулы

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

     

  • 1.33, ВовкаОсиист (ok), 19:12, 28/10/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Непонятно, где скачать патчи, а не ядро целиком.
     
  • 1.50, skybon (ok), 03:54, 29/10/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    Лучше на десктопе чем CFQ. С последним система виснет при копировании больших файлов.
     
  • 1.63, Аноним (-), 19:31, 22/01/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    CFQ: Производительность самая высокая, изза учета приоритетов. Отзывчивость(зависания) самые вероятные.
    DEADLINE: Производительность средняя, изза непозволения приоритетам задавливать неприоритеты. Зато отзывчивость высокая.

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

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

     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру