Ну мне, например, интересно. Тема заказа, над которым работает группа под моим руководством - Управление нелинейными системами в аварийных режимах. Сейчас уже понятно, что это будет кластер (задача эффективно распараллеливается). ОС и тип процессора пока не выбран.
В реальном времени - в твоём сотике. Голос нужно определённым образом в реальном времени обработать и результаты отослать. Используются специальные сигнальные процессоры.
Система разработана в рамках специального совершенно конкретного проекта -- управление манипулятором робота с обратной связью по усилию.
Я, когда прочитал заголовок, тоже подумал, что очередная пыонЭрская контора свалила в кучу несовместимые "вкусности" и хочет бабков, тем более, когда увидел "Мандрейк". Но, оказалось, просто Франция...
Вычисление в нереальном времени -- это такие вычисление, когда их результат уже нахрен никому не нужен, так как устарел, то есть всё очень сильно зависит от процесса для которого эти вычесления проводят :) Пример -- электропривод, сигналы с датчика тока и скорости нужно обрабатывать и решать систему дифф. уравнений 500 раз в секунду, дабы выдать нужный ШИМ на вход привода.
Кстати тема сейчас весьма перспективная... Года 2 назад с одним китайцем познакомился, который как раз делал подобные системы управления для автомобилей. Что-то типа автопилота навороченного. Он говорил что народ уже реально тестировал системы которые нормально ездят в городском потоке из точки А в точку Б без вмешательства человека (но разумеется пока под контролем оператора). Не знаю как сейчас с этим дело обстоит но ДЕНЬЖИЩИ под это дают огромные ;)
2sS
Дык писали же что амеровские военные большие бабки дают за полностью автономные машины - роботы, даже типа дакаровских гонок в неваде устроили. Условие: чья машина выиграет и сама без вмешательства пройдёт (на AI) через весь штат с какими-то там строгими условиями - тот проект выиграет конкурс и это будет вторым (после интернета) крупно финансируемым проектом. Типа все нарушили условия и провалились (или м.б. получив, что надо, всё засекретили?)
может быть дурацкий вопрос, но разве не будет реал-таймом - если я гарантированно (посредством соответствующей оси) получаю кол-беки из системы, скажем - каждую миллисекунду и на основании этого - корректирую погрешности, как считать итд? С этим подходом то что анонимус сказал про погоду - не такой уж и бред (просто временной масштаб другой - не миллисекунды, а часы-дни). То-есть реал-тайм - это когда мы можем гарантировать что выполнение закончится раньше произвольного момента времени T. Или неправильно?
> разве Лоренц не доказал что прогнозировать погоду - дело гнилое?
Нет. Лоренц доказал, что предсказуемость атмосферы принципиально ограничена из-за хаотического характера системы и наличия малых ошибок в начальных данных. Пока что теоретичекий предел предсказуемости погоды не достигнут, так что движение в этом направлении -- очень перспективное дело.
>Реалтайм - это тебе гарантируют, что ты успеешь квакнуть, до наступления часа Х.
а как _они_ (kernel) зна[юе]т что я делаю. И потом он же не ускорится, не включит спрятанные под полой дополнительные мощности, включив волшебную кнопку "turbo", а может я считаю чёрт знает что и не укладываюсь (он меня кильнет что-ли?)
имхо реал-тайм - просто сигналы синхронизированные железом (строго =определённому количеству тактов), а прога в user-space сверяет часы по этим сигналам и сам себе злобный буратино если что. Поправьте если не прально понимаю (реал-таймом не занимался - но интересно однако)
>Лоренц доказал, что предсказуемость атмосферы принципиально ограничена из-за хаотического характера системы и наличия малых ошибок в начальных данных. Пока что теоретичекий предел предсказуемости погоды не достигнут, так что движение в этом направлении -- очень перспективное дело.
>Нет. Лоренц доказал, что предсказуемость атмосферы принципиально >ограничена из-за хаотического характера системы и наличия малых ошибок >в начальных данных.
я про это и говорю :) ошибки в начальных данных будут всегда (даже не пытайся что-то возразить). Учитывая сложность системы, надо пологать, что погрешность из-за этих ошибок будет набегать ооочень быстро...
Предел не будет достигнут никогда. Если конечно не будет достигнут предел вычислительных мощьностей (либо в физике определенных процессов, что маловероятно)
>я про это и говорю :) ошибки в начальных данных будут всегда (даже не пытайся что-то возразить). Учитывая сложность системы, надо пологать, что погрешность из-за этих ошибок будет набегать ооочень быстро...
Предел не будет достигнут никогда. Если конечно не будет достигнут предел вычислительных мощьностей (либо в физике определенных процессов, что маловероятно)
дело не только в начальных ошибках. Фазовые кривые экспоненциально разбегаются (описываются аттрактором или поверхностью с отрицательной кривизной) и так-же как и в турбулентности - бесконечно-малый параметр (пример - взмах крылышек бабочки в Сахаре что никто не учтёт;) сильно (экспоненциально) меняет поведение системы в будущем.
Но строятся и другие (феноменологические) описания поведения таких систем.
anonymous (*) (16.02.2005 14:05:49), не болтай ерундой про вещи, в которых не разбираешься. Слушай Анода, он правильно говорит.
Период предсказуемости нестабильной системы определяется временем, за которое експоненциально растущая ошибка доходит до нелинейного насыщения. Дальше ошибка не растёт, а траектории, разность которых даёт эту ошибку, совсем не коррелируют, поэтому достоверность прогноза равна 0.
Так вот, если известны самые нестабильные собственные векторы системы (направления самого быстрого роста), то ортогонализация начальной ошибки относительно этих векторов может увеличить период предсказуемости в разы.
И это совсем не гнилое дело, которое, однако, не имеет никакого отношения ни к вычислениям в реальном времени, ни к линуксу.
Реал тайм в линуксе возможен, но для этого необходимо ставить 2 ядро которое буде решать сто делать с процессом если оно реал тайм то отдаст на выполнение реалтайм-ядру если нет то обычному. Процессы в линуксе не гарантируются быть выполненымы в определенное жесткое время без патча.Сматрите RTAIlinux, RTLinux. Причем связка из 2 ядер является не самым лучшим вариантом, поэтому для серьезного проекта где есть большие $ лучше использовать QNX с микроядерной архитектурой, все таки это система чистого реального времени.