Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > C/C++: Программирование под Unix/Linux > Системы реального времени |
Автор: Evgenij 10.6.2006, 02:01 |
Решил заняться пограммированием на реалтайм системах (чем раньше начну - тем больше буду знать). Купил дистрибутив реал тайм системы Sand Linux для обучения (как в аннотации написано). Поставил и даже не знаю с чего начать? Может кто-нибудь работал с этой системой, или может подскажите какую-нибудь литературу по программированию таких вещей. Как я понял, приложение должно выполняться на уровне ядра, как его заставить это сделать? А самое странное, что раздницы в работе между этим sand linuxom и Fedora 3, я не заметил. Что делать? |
Автор: Sardar 10.6.2006, 02:20 |
Evgenij, трудно когда есть желание, но нет потребности/задачи ![]() Для начала определись что же ты хочешь писать. Real-time система это обычно память блоками, что бы не было фрагментации, либо вообще заранее выделяем требуемую память в своём process image. Тредов поменьше с кодом попроще. Вообще всё проще, минимум "наворотов", главное надёжность. Вот и думай надо оно тебе (по доброй воле ![]() |
Автор: Evgenij 11.6.2006, 01:26 |
Трудно, но уверен за этим будущее, слышал сколько зарабатывают такие программисты даже в России!!! Странное у тебя понятие о реалтайм системах, я даже растерялся, зря я чтоли столько статей и кник пролистал? На самом деле хочу тебе сказать (как я сам это понимаю) реал-тайм программа, программа написаная и выполняющаяся на операционной системе реального времени, использующая соответствующие библиотеки и отвечающая заранее оговоренным требованиям (впрочим здесь конечно хотелось бы уточнить, кто же отвечает за соблюдение характеристик система или приложение?), к примеру гарантированное время отклика на какое-либо событие. Чего:"Real-time система это обычно память блоками"? Реал тай система это обычно реал тайм планировщик ![]() Да я уверен мне это надо, надеюсь пыл не утихнет, хоть и лето на дворе ![]() Если всетаки у тебя есть опыт в программирование для реал-тайма, то посмотри про sand linux и скажи на нем это возможно? Вот ссылка http://cybsysdev.com |
Автор: bilbobagginz 12.6.2006, 20:08 |
Евгений. зарплаты высокие, да: просто для работы в реальном времени требуется много побочных знаний, обычно напрямую с программированием не всегда связанными - аэро/гидро динамика, аналитическая механика, электроника - иногда всё вместе. для имения оных знаний люди подолгу сидят в универах, и потом, при выходе хотят восполнить 6-7 лет в академии высокой зарплатой. кроме того в реальном времени программируют частенько на низкоуровневых языках, и под специфические процессоры, и на нестандартном оборудовании, и часто перед программированием нужно заниматься пайкой и лобзиком. если ты ищешь просто легкие деньги - это не самый выигрышный вариант. и вообще, программирование это очень нелегкие деньги ![]() маркетинг, ПиАр, и т.д. - это немного другое измерение. там и ошибку нелегко отыскать в действиях 'профессионала', а в программировании, особенно в реальном времени: разбивается самолет с человеком - и иди доказывай, что в инжектор турбины попала маринованная редька. а теперь по теме: когда ты работаешь в реальном времени - не всегда у тебя имеется оперативная система, вообще. если ты работаешь таки с ОС, то у системы есть параметры, предсказуемые, и при нагрузке до опр. уровня, она тебе говорит, что напр. событие Х передастся в такой-то буффер за максимум так и так микро секунд. а что приложение с этим событием сделает - это уже сам понимаешь - в твоих руках. ( ну или ногах, или хвосте - смотря чем пишешь ). еще такая система может сказать, что каждый процесс получает определенный, настраиваемый квантум времени, после которого контроль передается следующему процессу, т.е. preemptive scheduling, это уже другой уровень реального времени. пока. |
Автор: Evgenij 14.6.2006, 01:44 |
bilbobagginz, Ни о каких легких деньгах я не говорю и не думаю (но мечтаю![]() ![]() ![]() А насчет ОС реального времени: примерно так я себе все и представлял. Спасибо за ответ. |
Автор: takedo 14.6.2006, 07:09 |
bilbobagginz, не совсем понял причем здесь аэрогазодинамика и мухи в инжекторах тубрины? Кстати редька никак не попадет, там фильтры стоят ![]() ![]() Самый главный вопрос, ответ на который необходимо знать: "Каким образом распределяется процессорное время между потоками с разным приоритетом в этой ОС"? Потому, что реалтайм система - также ограничена возможностями процессора и если бухнуть функцию расчета полета редиски в турбине и ожидать , что она должна завершиться через 1 секунду будет глупо. О чём же это я? А о том, что в системе нереального времени мы запланировав вызов функции f1 через 5 секунд можем никогда(до тех пор пока в системе есть более приоритетные потоки) не получим квант процессорного времени. А что же в реалтайме? Мы зайдём в f1 через 5 секунд +-частота дискретизации. А что дальше? Сколько мы получим времени процессора при наличии все того же более приоритеного потока или нескольких? Я на этот вопрос имею пока смутные представления, поэтому приводить их не буду. Evgenij, если ты прочитал кучу книг, может приведёшь выдерки по некоторым ОС по этому поводу? Уверен, что разобравшись с этим вопросом ты и мы вместе с тобой сделаем первый прыжок к большим ганарарам. ![]() |