LINUX.ORG.RU

Реализация SCHED_IDLE


0

0

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

>>> Подробности

★★★★★

кстати, есть QNX, реалтайм система, слышал про такого-же типа реал-тайм линукс. Как он называется? Или как выставить максимальный приоритет программе, чтобы она выбивала как нибудь, хоть kill -9 все левые процессы относительно тех данных, которые в емейле и которые надо обрабатывать(расчет координат для шаговых движков, типа системы наведения, но не ракет :)?

Спасибо!

vilfred ☆☆
()

Смотрите RTLinux, скачать можно только весь CD-IMAGE (ISO), сам я его не смотрел, но он позиционируется (и вроде успешно продается) как realtime система. Посмотрите еще low latency патчи (к сожалению не помню ссылки где они). Есть еще какие то патчи sheduler-a и ядра на предмет блокировок во время прихода различных событий и пр.

saper ★★★★★
()

Смотрите RTLinux, скачать можно только весь CD-IMAGE (ISO), сам я его не смотрел, но он позиционируется (и вроде успешно продается) как realtime система. Посмотрите еще low latency патчи (к сожалению не помню ссылки где они). Есть еще какие то патчи sheduler-a и ядра на предмет блокировок во время прихода различных событий и пр.

saper ★★★★★
()

Есть еще RTAI ( http://www.rtai.org ) оно свободное , и некоторые фичи прикольные имеет. Сайт иногда валяется, но само софтину можно взять тут:

Log in (password is "anoncvs"): Check out the RTAI CVS tree: cvs -d :pserver:anonymous@cvs.rtai.org:/opt/cvsroot/rtai co rtai4

anonymous
()

Кстати, Low latency патч идет вместе с ядром RH 7.3 (точнее, с редхатовской версией ядра 2.4.18 :-))

no-dashi ★★★★★
()

а вот у кого есть LabView под линус?

ananymous
()

Кстати, неплохая вещь RTAI.
В настоящее время делаем на нем проект.
Идея hard real time в user space (когда процесс по системному вызову "отбирается" у линуксового планировщика и начинает управляться планировщиком реального времени) мне очень нравится. Так работать поудобнее будет, чем в режиме модулей ядра.

yoush
()

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

anonymous
()

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

anonymous
()

Чем микроядро может помочь в realtime (просьба не отвечать qnx микроядерна, и qnx умеет реалтайм значит реалтайм = микроядерность -это плохая логика)? Может быть достаточно HZ побольше выставить если 100Гц маловато кажется? Какой драйвер не поддается insmod,rmmod?
Это не наезды - действительно интересно узнать почему все считают что реалтайм = микроядерность
geekkoo

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

>Чем микроядро может помочь в realtime?

На ходу можно поменять ядро, планировщик, систему распределения памяти
и все остальное, а так же и параметры realtime-ности. Имеется в виду
не отдельные способы решения отдельных проблем, а один подход для
решения комплекса задач по навороченному управлению самым нижним
уровнем системы.

> действительно интересно узнать почему все считают что реалтайм =
> микроядерность

Я так не считаю и этот вывод не следует из моего предыдущего постинга.
Не правда ли? ( без наездов :)

anonymous
()

ядра и планировшик менять - это конечно хорошо (кстати по поводу ядра - asoneofus вроде бы пару месяцев назад писал о том, что он где-то такое видел, причем более или менее стандартными способами), но я смотрю с узко-практической точки зрения - если в моем драйвере опрос устройства посажен на таймер с периодом в 30 jiffies, то что может помешать ему раз в 300 мс проверять состояние devicea? Cудя по Linux Driver Book ничего. Так чем это не реалтайм - гарантированное время отклика обеспечено (другое дело что я в user space не могу данные с такой же скоростью перебросить)?
Ну я кстати твой постинг так и понял (realtime=microkernel)- может быть у меня плохая логика :). Но тем не менее по-моему опыту Linux даже в том виде (в монолитном) в каком он сейчас существует вполне приемлемо работает в реальном времени, особенно если с LabView сравнивать.
RTLinux - на мой взгляд очень сильно от стандартного Linuxа отличается - видел как-то драйвер под него написанный - никакого сходства. Но в RTLinux я совсем не спец, может кто-нибудь меня поправит.
geekkoo

anonymous
()

ядра и планировшик менять - это конечно хорошо (кстати по поводу ядра - asoneofus вроде бы пару месяцев назад писал о том, что он где-то такое видел, причем более или менее стандартными способами), но я смотрю с узко-практической точки зрения - если в моем драйвере опрос устройства посажен на таймер с периодом в 30 jiffies, то что может помешать ему раз в 300 мс проверять состояние devicea? Cудя по Linux Driver Book ничего. Так чем это не реалтайм - гарантированное время отклика обеспечено (другое дело что я в user space не могу данные с такой же скоростью перебросить)?
Ну я кстати твой постинг так и понял (realtime=microkernel)- может быть у меня плохая логика :). Но тем не менее по-моему опыту Linux даже в том виде (в монолитном) в каком он сейчас существует вполне приемлемо работает в реальном времени, особенно если с LabView сравнивать.
RTLinux - на мой взгляд очень сильно от стандартного Linuxа отличается - видел как-то драйвер под него написанный - никакого сходства. Но в RTLinux я совсем не спец, может кто-нибудь меня поправит.
geekkoo

anonymous
()

Однако.....

Так вот:

1) По возможностям монолитные ядра от микро ничем не отличаются, разве что можно уместить их со всем что есть (приложения, графика, сеть) в 500К - 3Мб и прошить в ПЗУ, и исполнять код от туда (без копирования в ОЗУ). Также можно (и нужно) выкинуть все лишнее, например весь ввод/вывод (файловые и т.д.).
Пример классного монолитного(?) RT - HPUX (даже не знали?).
Примеры чистых микро(?) RT OS: QNX, VxWorks, PSOS, OSE, OS-9, RTLinux, RTAI, RTX.

2) RTAI вырос из RTLinux. Добавилась библиотека user-space и некоторые фичи. Стал более интегрирован с ядром Linux в отличии от RTLinux. Последний не дистрибутив, и поставляется в исходниках БЕЗ всякого CD-ROM образа, к стати, его и нет совсем.

3) Аналоги RTAI/RTLinux в мире классических RT OS - VxWorks, PSOS, RTX.

4) RTAI/RTLinux чистые и, увы, независимые ос, которые имеют мало общего с Linux, кроме того, что используют общие пространство памяти и механизмы взаимодействия. Их поведение чисто "вирусное".
Пример в реальном мире - RTX - Real Time eXtension for msWindows.

5) Профессионально в Linux-ядре RealTime поддерживают две фирмы MontaVista (HardHat Linux) и Lineo (Lineo). У них есть свои расширения RT для стандартного планировщика. Один из них уже присутствует в ветке 2.5 (vanilla). В прочем, все доступны по GPL :)

6) По проведенным тестам посто стандартное ядро Linux с докрученным таймером на 1-10ms ничем не уступает ОС QNX и OS-9. За небольшим исключением, количество RT процессов не должно превышать 5-8, иначе все плывет (я имею в виду реальное время как ПРЕДСКАЗУЕМОСТЬ поведения процесса в заданном контексте/окружении).

Другими словами - если нужно 5 RT процессов пользователя, то Linux рулит и так, а вот если 50 - то милости просим за покупками :)

Что касается RTLinux/RTAI, то это RT системы "жесткого" времени (по реакции) и здесь им конкурент(?) VxWorks, PSOS, OSE, но никак не QNX и OS-9 (у них свои прелести).

? - все в мире относительно (Энштейн?)

Leah

anonymous
()

К стати о перезагрузке ядра на лету. Этим пока обладают только VxWorks AE (не путать с просто VxWorks), Linux (см. в Intel Telco Linux - TLT и один из MVista/Lineo - пока не скажу кто :)), HPUX. Все - я больше не знаю (IBM c ее MainFrame не из того огорода).

Leah.

anonymous
()

Так что RTLinux - микроядерная 8-О? Вот уж действительно " Если увидишь на клетке со львом надпись тигр - не верь глазам своим" (или как там точно у Пруткова)
geekkoo

anonymous
()

Я конечно понимаю, NIH синдром, и всё такое прочее, но отчего бы не посмотреть на то, что другие сделали в десятке других OS? Priority propagation - и никаких тебе "вечных" блокировок.

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

to Leah: К стати о перезагрузке ядра на лету

А ссылками не поделитесь?

anonymous
()

To geekkoo: Точно, угадали - микро.

Правда, за 2 года они выпустили (похоже) и не гпл версию. Буду смотреть.... То, с чем я раньше сталкивался, сейчас OpenRTLinux. Вот информация с их сайта . Ууууу как все меняется....
-----------------
RTLinux/Pro - A hard realtime operating system running the Linux GPL operating system as a pre-emptible task.

RTLinux/BSD - A hard realtime operating system running Free BSD and Net BSD Operating Systems as a pre-emptible subtask. RTLinux/BSD uses the same base code as RTLinux/Pro.

OpenRTLinux and GPL - OpenRTLinux contains the realtime kernel, Linux application, and a base Linux distribution all under the GPL and the OpenRTLinux Patent License.
-----------------

To anonymous: ну, в общем, перезагрузка в некотором смысле там конечно нужна, ведь мы говорим о замене ядра на лету... Iso-образ, ссылки и сам софт есть на http://cedar.intel.com/cgi-bin/ids.dll/topic.jsp?catCode=CIH

А это те два конкурента (между собой конечно)
http://www.lineo.com
http://www.mvista.com

Best regards.
Leah

anonymous
()

a что такое realtime ???

anonymous
()

To last anonymous:

Ну это совсем просто. Там все написано http://www.dedicated-systems.com/magazine/bakissue.htm

Это архив журнала "Dedicated Systems Magazine" (formed RealTime Magazine and like as PC Magazine from another world).
Начни с первого выпуска :-)

PS. Если понравится, то еще ссылочек подкину :-)))

Удачи
Leah.

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