На проходившей в сентябре конференции Real-Time Linux Workshop достаточно активно обсуждался (http://linux.slashdot.org/story/09/10/20/137241/Deadline-Sch...) вопрос добавления в ядро Linux планировщика режима реального времени. Такая возможность могла бы быть реализована с использованием уже отработанного в других RT-системах алгоритма приоритезации задач с более ранним временем завершения (EDF, Earliest Deadline First). В настоящее время для ядра Linux разработана экспериментальная версия диспетчера EDF — SCHED_DEADLINE, которая ранее была известна как SCHED_EDF.Необходимость планировщика реального времени в Linux (http://www.evidence.eu.com/content/view/313/390/) обусловлена теми ограничениями, которые привносят существующие алгоритмы диспетчеризации процессорного времени. Среди них можно выделить два основных:
- Существующие решения не способны гарантировать необходимое время выполнения запущенной задачи. Например, если условиями задано...URL: http://linux.slashdot.org/story/09/10/20/137241/Deadline-Sch...
Новость: http://www.opennet.me/opennews/art.shtml?num=23916
тоесть приложения в линуксе уже не умеют сами использовать таймеры и прочее что бы завершаться в нужное время?
крутоприложения в линуксе уже неуправляемые ...
Хорошо подумал прежде чем высказаться?
>Хорошо подумал прежде чем высказаться?есть чем дополнить? или кроме похоливарить ничего не умеем?
Сам блин холиваришь. И не похоливарить, а подкормить.
Поведение приложения (наверное вы имели ввиду процесса) зависит от ядра. Если ядро решит что процессу стоит отдохнуть и не будет давать ему кванты времени, то никакие таймеры на уровне самого процесса не помогут.Этот диспетчер предназначен не для настольных PC, а для ...(написано в тексте новости)
> Этот диспетчер предназначен не для настольных PCА для настольных лучше всего -- планировщик BFS Кона Коливаса, который, к сожалению, наверное в ядро так и не войдёт.
>А для настольных лучше всего -- планировщик BFS Кона Коливаса, который,
>к сожалению, наверное в ядро так и не войдёт.потому что линукс - это свобода.
правильно.
и это не значит, что в ядро надо пихать любое дерьмо.
Проблема в том, что BFS довольно хорош для своих задач. При том, откуда взялся CFS (Kolivas достал Molnar своим планировщиком SD и Ingo написал нечто, менее остающее от SD по отзывчивости, чем старый планировщик, но при этом строго лучшее по серверной пропускной способности, чем оба других варианта), есть надежда, что RT может быть высоко напильникопригоден и для desktop.
это никакая не проблема...
пробовал я этот bfs. мало того, что ничуть не лучше cfs, так ещё и глюки наблюдаются. например, с sqlite и прогами его использующими (например, evolution - у меня почта где-то 1.2 gb в нём. сломалось всё нахер. хорошо на лвм со снепшотом был)Вы то сами его пробовали?
Напиши программку которая считает сумму всех простых чисел от 1 до 2^64
Чтоб она работала ровно 150 мс, а с учётом допускаемых отклонений в
пределах 120 - 180 мс, прекращала суммировать и выводила полученный
результат и время работы.А самое главное: ПОСТОЯННО И ПРИ ЛЮБЫХ УСЛОВИЯХ РАБОТЫ И НАГРУЗКИ, ЛЮБЫХ ЧАСТЕЙ КОМПЬЮТЕРА.
Дада, именно для этого и нужны RTOS.
>Напиши программку которая считает сумму всех простых чисел от 1 до 2^64
>Чтоб она работала ровно 150 мс, а с учётом допускаемых отклонений в
>пределах 120 - 180 мс, прекращала суммировать и выводила полученный
>результат и время работысам то CPU без планировщика в состоянии с этим временем справиться?
или линукс хочет стать главнее CPU?
производить вычисление быстрее чем сам CPU? O_O это что то новое
линукс ОС метит занять место вместо уже существующих CPU?
ну-ну
"прекращала суммировать" - это не значит, что просчитала всё до конца.т.е. "кончил, не кончил, а регламент 10 минут"....
толи Горбачёв, толи Черномырдин - не помню.
>"прекращала суммировать" - это не значит, что просчитала всё до конца.Угу...
>т.е. "кончил, не кончил, а регламент 10 минут"....
>толи Горбачёв, толи Черномырдин - не помню.Да любой пример, где не важна работа, сколь время. А, вот - любая измерительная аппаратура.
радует одно - глубокое понимание предметной области у людей с ником hatelinux.
>[оверквотинг удален]
>
>Угу...
>>т.е. "кончил, не кончил, а регламент 10 минут"....
>>толи Горбачёв, толи Черномырдин - не помню.
>
>Да любой пример, где не важна работа, сколь время. А, вот -
>любая измерительная аппаратура.
>
>
>Или системы контроля автоматизированных производственных линий (конвееров), реакторов, и т.п.
Или системы обработки биржевых транзакций.
Или embedded-системы управления автомобылями (да и, в принципе, всем, что движется).Вопшем, много чего...
respect,
ronin
octaword summa() {
long two_power_63 = 9223372036854775808;
return (1+2*two_power_63)*(two_power_63);
}И это я еще не оптимизировал по времени. :-)
А ведь зная, что там будут сплошные операции сдвига и сумма, я могу представить это массивом, заполненным нулями, старший бит всей последовательности в нотации платформы равен единице.
В итоге, результатом сложения должно быть число, полученное сложением двух чисел:
0x40000000000000000000000000000000 и 0x4000000000000000
Число можно в данном случае получить и как битовую сумму, а можно просто на глаз прикинуть: 0x40000000000000004000000000000000Погрешность моего предсказания велика, но смею предположить, что на ассемблере Z80 это вычисление заняло бы примерно 150 тактов генератора процессора, что выразилось бы в 150/(3.5E6) секунд процессорного времени. Что дает мне право сделать ошибку и посчитать не за 150 тактов, а в 3.5 раза дольше, дабы уложиться в лимит времени.
А так, задача красивая.
>octaword summa() {
> long two_power_63 = 9223372036854775808;
> return (1+2*two_power_63)*(two_power_63);
>}
>В итоге, результатом сложения должно быть число, полученное сложением двух чисел:
>0x40000000000000000000000000000000 и 0x4000000000000000
>Число можно в данном случае получить и как битовую сумму, а можно просто на глаз прикинуть: 0x4000000000000000400000000000000040000000000000008000000000000000
Дык, а где ж простые? :)
Ну зачем такие вещи пейсать, а.. :(
Пришёл вечером, набросал... ругайте и пользуйтесь:// (c) .kkursor, 2009
// This code is licensed under WTFPL v.2, available at http://sam.zoy.org/wtfpl/#include <stdio.h>
#define true 1
#define false 0long int input (void) {
long int a=-1;
printf("Prime number sum calculator\nCopyright (c) .kkursor 2009\nThis code is licensed under WTFPLv2.\n\n");
while (a < 0) {
printf("Enter the maximum number you want to use in finding and summing prime numbers: ");
scanf("%ld", &a);
printf("\n");
}
return a;
}long int find_prime (long int number) // find the following prime number
{
long int i, current_num, remain;
current_num = number+1;
while (true != false)
{
for (i=2; i<current_num; i++)
{
remain = current_num%i;
if (remain == 0) // the number is not prime
break;
}
if (remain != 0)
break;
else
current_num++;
}
return current_num;
}int main (void) {
long int limit, i=0, sum=0, current_number;
limit = input();
if (limit <= 2)
{
printf("There are no prime numbers in this range.\n");
return 0;
}
printf("Calculating...\n");
current_number = 2;
while (true != false)
{
if (current_number >= limit)
break;
printf ("Found prime number: %ld\n", current_number);
current_number = find_prime (current_number);
sum += find_prime (current_number);
}
printf("The sum of prime numbers from 1 to %ld is %ld\n", limit, sum);
return 1;
}Сижу сейчас, считаю на своём Celeron M 1.73 до 2^32 для начала...
ой! а не проще битовыми полями? решение влоб не всегда самое быстрое :)
к тому же деление в цикле....
>ой! а не проще битовыми полями? решение влоб не всегда самое быстрое
>:)
>к тому же деление в цикле....Не стреляйте больно, я только начинаю си изучать. :)
Щас пытаюсь приделать к ней вывод remaining % по запросу - не получается :(((
да это не критика. :)
операция деления выполняется примерно в 4 раза медленнее операции умножения. ну и остаток от деления - тоже. поэтому надо избегать медленной операции, поэтому нужен массив с true/false, который будет указывать на принадлежность к простому числу, или нет. ;)
>да это не критика. :)
>операция деления выполняется примерно в 4 раза медленнее операции умножения. ну и
>остаток от деления - тоже. поэтому надо избегать медленной операции, поэтому
>нужен массив с true/false, который будет указывать на принадлежность к простому
>числу, или нет. ;)Каких же размеров должен быть этот массив... предлагаете на каждое число по элементу? Но всё равно же придётся тогда определять, простое оно или нет, с помощью цикла с делением с остатком... А как иначе?
А торможение заметно очень. Первые несколько десятков тысяч чисел перебирает очень шустро, а потом всё медленнее и медленнее...Ошибок ещё нашёл логических несколько в коде, неправильно считало, вот с исправлением:
// (c) .kkursor, 2009
// This code is licensed under WTFPL v.2, available at http://sam.zoy.org/wtfpl/#include <stdio.h>
#define true 1
#define false 0unsigned long int input (void) {
unsigned long int a=0;
printf("Prime number sum calculator\nCopyright (c) .kkursor 2009\nThis code is licensed under WTFPLv2.\n\n");
while (a == 0) {
printf("Enter the maximum number you want to use in finding and summing prime numbers: ");
scanf("%ld", &a);
printf("\n");
}
return a;
}unsigned long int find_prime (unsigned long int number) // find the following prime number
{
unsigned long int i, current_num, remain;
current_num = number+1;
while (true != false)
{
for (i=2; i<current_num; i++)
{
remain = current_num%i;
if (remain == 0) // the number is not prime
break;
}
if (remain != 0)
break;
else
current_num++;
}
return current_num;
}int main (void) {
unsigned long int limit, i=0, sum=0, current_number;
limit = input();
if (limit < 2)
{
printf("There are no prime numbers in this range.\n");
return 0;
}
printf("Calculating...\n");
current_number = 1;
while (true != false)
{
current_number = find_prime (current_number);
if (current_number >= limit)
break;
printf ("Found prime number: %ld\n", current_number);
sum += current_number;
}
printf("The sum of prime numbers from 1 to %ld is %ld\n", limit, sum);
return 1;
}Но всё равно, блин, не получается большие числа считать... 225263 - последнее простое число, которое может прибавиться, не превратив сумму неизвестно во что...
для каждого числа нужен всго лишь один бит. потом, массив можно немного сократить. и прочие трюки встроить. скажем, грубо операция деления в несколько раз медленнее операции доступа к памяти. по крайней мере - в твоем решении.в 1 мегабайте памяти можно уместить 1024х1024 чисел. ну и так далее.
но это даже не единственное решение.
просто найденное тобой решение это как метод сортировки пузырьком в сравнении с другими алгоритмами сортировки.
при битовой кодировке - 1024х1024х8х2 чисел. все четные можно выкинуть
>при битовой кодировке - 1024х1024х8х2 чисел. все четные можно выкинутьВсё равно же делить на 2 %)
Или типа если младший бит 0, то выкинуть нафиг? Побитовые операции, если мне не изменяет мой склероз, выполняются гораздо быстрее...
конечно гораздо быстрее, особенно в конвейере, если развернутый цикл, к примеру. или если компилятор его смог развернуть.
ускоряем твой алгоритм в 2 раза:for (i=3; i<current_num; i+=2){
remain = current_num%i;
if (remain == 0) // the number is not prime
break;
}можешь еще одну проверку встроить
>ой! а не проще битовыми полями? решение влоб не всегда самое быстрое
>:)
>к тому же деление в цикле....А как без деления в цикле можно определить "простоту" числа?
Обнаружил, что несмотря на введённое в прогу 4294967296 (2^32) она понимает ровно в пополам меньше - (2^31-1). Блджад.
А это значит, что она не будет считать даже до (2^31-1), не говоря уже до 2^64.
pavlinux, современные компьютеры это не умеют!
Или я криворук :(
нарисуй алгоритм на бумаге. скажем, определение простых чисел до 40 начиная с двойки
двойка: зачеркиваем 4, 6, 8, 10...
тройка: зачеркиваем 6, 9, 12, 15...
пять: 10, 15, 20, 25...
семь: 14, 21, 28...
ну и т.д.
уже зачеркнутнутые можно не зачеркивать ;)
даже узнал, как алгоритм называется: сечение Эратосфена
си вообще-то разрешает использовать числа ling long int или __int64
long long int
>[оверквотинг удален]
>>:)
>>к тому же деление в цикле....
>
>А как без деления в цикле можно определить "простоту" числа?
>Обнаружил, что несмотря на введённое в прогу 4294967296 (2^32) она понимает ровно
>в пополам меньше - (2^31-1). Блджад.
>А это значит, что она не будет считать даже до (2^31-1), не
>говоря уже до 2^64.
>pavlinux, современные компьютеры это не умеют!
>Или я криворук :("Всё украдено уже до нас" (с) Ы
#include <limits.h>
#include <gmp.h>int main (int argc, char **argv)
{
mpz_t x, sum;
unsigned long long int i, j, k;mpz_init (x);
mpz_init (sum);for (i = 0; i < ULLONG_MAX; i++) { /* ULLONG_MAX = (2^64) - 1 */
for (j = 0; j < ULLONG_MAX; j++) {k = i + j;
mpz_init_set_ui(x, k);
if ( mpz_probab_prime_p (x, 10) == 2 ) {
mpz_add(sum, x, sum);
}
}
}
gmp_printf("%Zd\n", sum);
mpz_clear (x);
mpz_clear (sum);
return 0;
}
# gcc-4.4.2 isprime.c -lgmp
# time ./a.out &
# echo "Курить...."
Бенчмарк для тех, кто орёт с 8 Gb оператифки своп не нужен!!! :)
ну это же процесс творческий ;)сколько он там памяти аллокирует? O_o для 64 бит
примерно базировано на подобном алгоритме:
// http://www.fpx.de/fp/Software/sieve.c
//
#include <stdio.h>
#include <malloc.h>
#include <time.h>#define TEST(f,x) (*(f+(x)/16)&(1<<(((x)%16L)/2)))
#define SET(f,x) *(f+(x)/16)|=1<<(((x)%16L)/2)int
main(int argc, char *argv[])
{
unsigned char *feld=NULL, *zzz;
unsigned long teste=1, max, mom, hits=1, count, alloc, s=0, e=1;
time_t begin;if (argc > 1)
max = atol (argv[1]) + 10000;
else
max = 14010000L;while (feld==NULL)
zzz = feld = malloc (alloc=(((max-=10000L)>>4)+1L));for (count=0; count<alloc; count++) *zzz++ = 0x00;
printf ("Searching prime numbers to : %ld\n", max);
begin = time (NULL);
while ((teste+=2) < max)
if (!TEST(feld, teste)) {
if (++hits%2000L==0) {printf (" %ld. prime number\x0d", hits); fflush(stdout);}
for (mom=3L*teste; mom<max; mom+=teste<<1) SET (feld, mom);
}printf (" %ld prime numbers foundn %ld secs.\n\nShow prime numbers",
hits, time(NULL)-begin);while (s<e) {
printf ("\n\nStart of Area : "); fflush (stdout); scanf ("%ld", &s);
printf ("End of Area : "); fflush (stdout); scanf ("%ld", &e);count=s-2; if (s%2==0) count++;
while ((count+=2)<e) if (!TEST(feld,count)) printf ("%ld\t", count);
}
free (feld);
return 0;
}
/*
* Для прогрева всех ядрывшек, теперь c OpenMP
* gcc-4.4.2 primesum.c -std=gnu99 -O3 -ffast-math -lgmp -fopenmp -o pimesum
*/#include <gmp.h>
#define POW2_128 "340282366920938463463374607431768211456"
int main (int argc, char **argv)
{
int k;
mpz_t i, sum;
mpz_t LIMIT;mpz_init (i);
mpz_init (sum);
mpz_init_set_str(LIMIT, POW2_128, 10);#pragma omp parallel
{
#pragma omp do private (i, k)
do {
mpz_add_ui(i, i, 1ULL);
k = mpz_cmp(LIMIT, i);
if (mpz_probab_prime_p (i, 10) == 2 ) {
#pragma omp shared (sum)
#pragma omp critical (sum)
mpz_add(sum, i, sum);
gmp_printf("Prime: %Zd, Sum %Zd\n", i, sum);
#pragma omp flush(sum)
}
} while ( k != 0 );
#pragma omp end parallel
}
gmp_printf("%Zd\n", sum);
mpz_clear (i);
mpz_clear (sum);return 0;
}
в принципе, просто использовать битовые массивы (сечение) - тоже решение "в лоб". проблема с нерациональным использованием памяти - налицо.
>в принципе, просто использовать битовые массивы (сечение) - тоже решение "в лоб".
>проблема с нерациональным использованием памяти - налицо.Уж поверь, в GMP над этим поработали.
Если глянешь исходники, там все увидишь, и битовые, и спец малоки,...Так вот, теперь надо чтоб эта программка работала ровно, ну скажем 1300 мс +/- 30 мс.
доверяй,но проверяй. ;)
качнул исходники с докой из репозитория. мерси за инфу.
Учим матчасть, что такое шедулер и что такое таймеры, а потом не задаём глупых вопросов.
Друг, лучше иди почитай, что такое ОС реального времени и какими характеристиками она должна обладать. А то ну такую муйню написал.
чего только люди не придумают, чтобы не использовать QNX
Ваш QNX уже свободен?
открыт != свободен
Если вы его используете в научных целях - меняйте что хотите, даже если вы разаработчик и зарабатываете этим - бесплатно скачиваете систему с сайта; если в коммерческих, на свою АЭС - платите;
Кажется вполне справедливо, или для экспериментов на ноутбуке нужно чтобы было написано три раза: свободен? Просто не пойму, ну какая разница, если вы законно ставите систему, никому ничего не платите, и программы писать можете?
Ну так пользователи будут должны платить за неё.
> чего только люди не придумают, чтобы не использовать QNXЧто только люди не придумают, чтобы не пользоваться узелками на веревках для счета!
Как много появилось салабонов, которые не усвоили главное: Open Source дает СВОБОДУ ВЫБОРА.
Но зато вставить свое "я" они готовы в любой теме, обсолютно в ней ничего не смысля.
И это "я" часто заключается в бездумных испражнениях типа "закопать!", "не нужен!", и эти личности искренне заблуждаются, считая, что их "мнение" должно быть определяющим для всех остальных.QNX поддерживает весьма ограниченный круг "железа".
Чего не скажешь о Linux. И в случае использования QNX выбор железа будет определяться возможностями именно ОС, а не задачей.
Собственно, не вижу сравнения с RT патчами от Ingo Molnar_а :)
В lkml писали что существующий rt планировщик не совсем их устраивает. Как я понял этот планировщик совмещает в себе плюсы от fair и от rt каким-то образом.
>В lkml писали что существующий rt планировщик не совсем их устраивает. Как
>я понял этот планировщик совмещает в себе плюсы от fair и
>от rt каким-то образом.А ещё дрова от nvidia в дамп падают
Так что, кто хочет порубиться QuakeWars под Real-Time да и ещё с twinview - обломись :)
У меня не падают. Или проблема только с twinview (не пробовал)?
>У меня не падают. Или проблема только с twinview (не пробовал)?драйвер правил?
Гы-гы, еще на форониксе потом запустят под rt-планировшиком мускул из шифрованной домашней папки, и скажут, что хуже чем cfq :)
Ну наконец-то!
ещё бы внесли в ядро диспетчер для десктопов (а не для "метафизического компутера") и было бы счастье
Ну и зачем?
Чтоб firefox всегда грузился за 15 сек., пофигу на Pentium III или на Core i7 ? :)
>Ну и зачем?
>Чтоб firefox всегда грузился за 15 сек., пофигу на Pentium III или
>на Core i7 ? :)на десктопе линукс всё таки тормозит(может быстрее висты, но не быстрее хр), поэтому +1.
>на десктопе линукс всё таки тормозит(может быстрее висты, но не быстрее хр),
>поэтому +1.У меня Mandriva 2009.1 тормозит, а вот Opensuse работала как будто быстрее, но Opensuse 11.1 глючная какая то. Жду выхода Opensuse 11.2
1) Смотря как приготовить ( можно LFS-ом, например :) ).
2) Смотря что использовать ( В Ubuntu запускаете столько всякой всячины, что голова кругом идёт. Дистрибутив наравне с Mandriva напичканный разнообразными рюшками, колокольчиками и т.д. ) При допиливании - разгоняется прилично.
3) Windows XP вышла в 2001 году. Уж извините, но функционал по умолчанию десктопного окружения... уж очень ограничен. Возьмём Mandriva 2009. Там KDE 4.1.2 - default desktop. Что такое KDE ? Это... всё пожалуй ))) Самая красивая и конфигурируемая среда из всех, но... и самая ресурсоёмкая (ну GNOME с его GNOME Shell скоро догонит). Я вообще не против этих сред. Но я как-то более аскетичен в этом плане. Предпочитаю XFCE.Для чистоты экперимента можно взять какой-нибудь дистриб с тех времён ). Разукрасить напильником, прикрутить новый compiz, X, ядро. Задача нетривиальная, но...
4) Linux - просто ядро. Нацепить на него можно всё что угодно. Само по себе это ядро намного прогрессивней и более масштабируемо, чем ядро Windows (являющееся развитием VMS). Ну - по моему мнению.
Да и вообще люблю ОС с ядром Linux за гибкость и динамичность. Сравните скорость работы и предоставляемую функциональность по умолчанию предустановленной Windows XP и фирменной ОС на основе Linux, например, Xandros, которая ставится на EeePC. А включение RT-планировщика в ядро будет ещё одним шагом по курсу максимальной масштабируемости и адаптируемости.
Спорить ни с кем не буду по поводу вышесказанного - со всем согласен по умолчанию ;).
>В Ubuntu запускаете столько всякой всячины
>При допиливании - разгоняется прилично.в моем понимании "допиливание" - это нечто иное, чем попытка слепить ещё один минималистичный выкидыш, избавившись от функционала. это _добавление_ и оптимизация имеющегося функционала, а так же работа над юзабилити.
>3) Windows XP вышла в 2001 году.
что делает ms честь.
>функционал по умолчанию десктопного окружения... уж очень ограничен
вам нужны три календарика и пять часов на рабочем столе или клизмоид "глазки"? может быть, вам не хватает обоев с фракталами?
>Возьмём Mandriva 2009
там глючный kde, с огромным трудом поднимается интернет (vpn, wifi, etc.). каша из qt3.5-qt4.5, gtk2. валится драйвер мобильного радеона. нет даже элементарного индикатора раскладки клавиатуры.
>Что такое KDE ?
это самое бажное десктопное окружение за всю историю человеческой расы.
kde4 пилится больше пяти лет и конца-края не видно. из запланированных фич (обертки над обертками над железом, семантический десктоп, социальный десктоп, etc. etc.) не реализована и треть.
Это... всё пожалуй>самая ресурсоёмкая
что же ещё можно ожидать!? если, к примеру, каждый долбаный раз при изменении размера элемента, его декорации заново растеризуются из svg. ну кто так делает!!???
>Для чистоты экперимента можно взять какой-нибудь дистриб с тех времён ). Разукрасить
>напильником, прикрутить новый compiz, X, ядро. Задача нетривиальная, но...задача практически невыполнимая
>Само по себе это ядро намного прогрессивней и более масштабируемо, чем
>ядро Windows (являющееся развитием VMS). Ну - по моему мнению.проверяли, консультировались с признанными экспертами или вы сам эксперт?
анонимный оналитег, как же>Сравните скорость работы и предоставляемую функциональность по умолчанию
>предустановленной Windows XP и фирменной ОС на основе Linux, например, Xandrosxp умеет гибернацию. а xandros?
> что же ещё можно ожидать!? если, к примеру, каждый долбаный раз при изменении размера элемента, его декорации заново растеризуются из svg. ну кто так делает!!???А что в этом плохого? И может предложите путь получше? Или одни риторические вопросы? Какие то 10 лет все расчеты в cairo будет CUDA выполнять.
>А что в этом плохого?Да ничего, кроме тормозов
>И может предложите путь получше?
Bitmap, не?
>Какие то 10 лет
Всего-то?! Вендекапец близок как никогда! :-D
>>анонимный оналитег, как же:D :D :D
на себя посмотри
>на себя посмотриот этого ксандрос не научится нормальной гибернации и гибридному режиму.
> на десктопе линукс всё таки тормозит(может быстрее висты, но не быстрее хр)хм... достаточно точный сравнительный анализ, основанный на деталлированном описании операционных систем.
Ну вот обрадую Вас, любители RT на десктопах, - пока сырое дож...ы.Больше одной задачи, с этим планировщиком, на одном ядре/проце запускать нельзя,
иначе.Pid: 11, comm: sirq-hrtimer/0 Not tainted 2.6.31-sched-rt #3
Call Trace:
[<ffffffff8136ade1>] ? thread_return+0x170/0x65f
[<ffffffff8100bdde>] ? apic_timer_interrupt+0xe/0x20
[<ffffffff8136b50a>] ? schedule+0xa/0x30
[<ffffffff810578cd>] ? hrtimer_wait_for_timer+0x5d/0xa0
[<ffffffff81053460>] ? autoremove_wake_function+0x0/0x30
[<ffffffff81057920>] ? hrtimer_cancel+0x10/0x30
[<ffffffff810368ce>] ? finish_task_switch+0x13e/0x140
[<ffffffff8136acb2>] ? thread_return+0x41/0x65f
[<ffffffff81031eb4>] ? update_curr_rt+0x144/0x1a0
[<ffffffff8136b4dd>] ? preempt_schedule+0x6d/0x90
[<ffffffff810316f8>] ? deadline_timer+0x58/0xa0
[<ffffffff81056a42>] ? run_hrtimer_softirq+0xc2/0x1b0
[<ffffffff810316a0>] ? deadline_timer+0x0/0xa0
[<ffffffff810426b2>] ? ksoftirqd+0x172/0x2d0
[<ffffffff81042540>] ? ksoftirqd+0x0/0x2d0
[<ffffffff810530b6>] ? kthread+0xa6/0xb0
[<ffffffff8100c30a>] ? child_rip+0xa/0x20
[<ffffffff81053010>] ? kthread+0x0/0xb0
[<ffffffff8100c300>] ? child_rip+0x0/0x20
Для тех, кому это нужно, давно уже есть набор rt-патчей и некоторые дистрибутивы предоставляют альтернативный вариант сборки ядра с этими патчами. Одно из применений — обработка звука с низкими задержками (обычно требуется, чтобы весь цикл обработки одного буфера, в котором могут участвовать несколько приложений, занимал порядка 5-10 мс). В любом "студийном" дистрибутиве (Ubuntu Studio, PlanetCCRMA и т.п.) такое ядро по умолчанию. Естественно, при использовании rt-ядра общая производительность системы несколько снижается, а отзывчивость увеличивается.
Ставил, кернел паник хапанул сразу же. И много народу пишут что у них то же самое.Действительно нехорошая проблема на самом деле. Под линух есть неплохие коммерческие DAW'ы energy xt и renoise, а вот попользоваться ими нормально не получается из-за хренового реалтайма.