![]() |
Модераторы: xvr |
![]() ![]() ![]() |
|
Evgenij |
|
|||
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 10.6.2006 Репутация: нет Всего: нет |
Решил заняться пограммированием на реалтайм системах (чем раньше начну - тем больше буду знать). Купил дистрибутив реал тайм системы Sand Linux для обучения (как в аннотации написано). Поставил и даже не знаю с чего начать? Может кто-нибудь работал с этой системой, или может подскажите какую-нибудь литературу по программированию таких вещей.
Как я понял, приложение должно выполняться на уровне ядра, как его заставить это сделать? А самое странное, что раздницы в работе между этим sand linuxom и Fedora 3, я не заметил. Что делать? |
|||
|
||||
Sardar |
|
|||
![]() Бегун ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6986 Регистрация: 19.4.2002 Где: Нидерланды, Groni ngen Репутация: нет Всего: 317 |
Evgenij, трудно когда есть желание, но нет потребности/задачи
![]() Для начала определись что же ты хочешь писать. Real-time система это обычно память блоками, что бы не было фрагментации, либо вообще заранее выделяем требуемую память в своём process image. Тредов поменьше с кодом попроще. Вообще всё проще, минимум "наворотов", главное надёжность. Вот и думай надо оно тебе (по доброй воле ![]() -------------------- Опыт - сын ошибок трудных © А. С. Пушкин Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik Оценить мои качества можно тут. |
|||
|
||||
Evgenij |
|
|||
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 10.6.2006 Репутация: нет Всего: нет |
Трудно, но уверен за этим будущее, слышал сколько зарабатывают такие программисты даже в России!!!
Странное у тебя понятие о реалтайм системах, я даже растерялся, зря я чтоли столько статей и кник пролистал? На самом деле хочу тебе сказать (как я сам это понимаю) реал-тайм программа, программа написаная и выполняющаяся на операционной системе реального времени, использующая соответствующие библиотеки и отвечающая заранее оговоренным требованиям (впрочим здесь конечно хотелось бы уточнить, кто же отвечает за соблюдение характеристик система или приложение?), к примеру гарантированное время отклика на какое-либо событие. Чего:"Real-time система это обычно память блоками"? Реал тай система это обычно реал тайм планировщик ![]() Да я уверен мне это надо, надеюсь пыл не утихнет, хоть и лето на дворе ![]() Если всетаки у тебя есть опыт в программирование для реал-тайма, то посмотри про sand linux и скажи на нем это возможно? Вот ссылка SandLinux |
|||
|
||||
bilbobagginz |
|
|||
![]() Naughtius Maximus ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8813 Регистрация: 2.3.2004 Где: Israel Репутация: 4 Всего: 317 |
Евгений. зарплаты высокие, да: просто для работы в реальном времени требуется много побочных знаний, обычно напрямую с программированием не всегда связанными - аэро/гидро динамика, аналитическая механика, электроника - иногда всё вместе. для имения оных знаний люди подолгу сидят в универах, и потом, при выходе хотят восполнить 6-7 лет в академии высокой зарплатой. кроме того в реальном времени программируют частенько на низкоуровневых языках, и под специфические процессоры, и на нестандартном оборудовании, и часто перед программированием нужно заниматься пайкой и лобзиком.
если ты ищешь просто легкие деньги - это не самый выигрышный вариант. и вообще, программирование это очень нелегкие деньги ![]() маркетинг, ПиАр, и т.д. - это немного другое измерение. там и ошибку нелегко отыскать в действиях 'профессионала', а в программировании, особенно в реальном времени: разбивается самолет с человеком - и иди доказывай, что в инжектор турбины попала маринованная редька. а теперь по теме: когда ты работаешь в реальном времени - не всегда у тебя имеется оперативная система, вообще. если ты работаешь таки с ОС, то у системы есть параметры, предсказуемые, и при нагрузке до опр. уровня, она тебе говорит, что напр. событие Х передастся в такой-то буффер за максимум так и так микро секунд. а что приложение с этим событием сделает - это уже сам понимаешь - в твоих руках. ( ну или ногах, или хвосте - смотря чем пишешь ). еще такая система может сказать, что каждый процесс получает определенный, настраиваемый квантум времени, после которого контроль передается следующему процессу, т.е. preemptive scheduling, это уже другой уровень реального времени. пока. Это сообщение отредактировал(а) bilbobagginz - 12.6.2006, 20:14 -------------------- Я ещё не демон. Я только учусь. |
|||
|
||||
Evgenij |
|
|||
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 10.6.2006 Репутация: нет Всего: нет |
bilbobagginz, Ни о каких легких деньгах я не говорю и не думаю (но мечтаю
![]() ![]() ![]() А насчет ОС реального времени: примерно так я себе все и представлял. Спасибо за ответ. |
|||
|
||||
takedo |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 501 Регистрация: 1.6.2005 Репутация: нет Всего: 3 |
bilbobagginz, не совсем понял причем здесь аэрогазодинамика и мухи в инжекторах тубрины? Кстати редька никак не попадет, там фильтры стоят
![]() ![]() Самый главный вопрос, ответ на который необходимо знать: "Каким образом распределяется процессорное время между потоками с разным приоритетом в этой ОС"? Потому, что реалтайм система - также ограничена возможностями процессора и если бухнуть функцию расчета полета редиски в турбине и ожидать , что она должна завершиться через 1 секунду будет глупо. О чём же это я? А о том, что в системе нереального времени мы запланировав вызов функции f1 через 5 секунд можем никогда(до тех пор пока в системе есть более приоритетные потоки) не получим квант процессорного времени. А что же в реалтайме? Мы зайдём в f1 через 5 секунд +-частота дискретизации. А что дальше? Сколько мы получим времени процессора при наличии все того же более приоритеного потока или нескольких? Я на этот вопрос имею пока смутные представления, поэтому приводить их не буду. Evgenij, если ты прочитал кучу книг, может приведёшь выдерки по некоторым ОС по этому поводу? Уверен, что разобравшись с этим вопросом ты и мы вместе с тобой сделаем первый прыжок к большим ганарарам. ![]() -------------------- я не гольфист - я хоккеист |
|||
|
||||
Sardar |
|
||||||
![]() Бегун ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6986 Регистрация: 19.4.2002 Где: Нидерланды, Groni ngen Репутация: нет Всего: 317 |
И не обязательно преемптивная многозадачность должна быть, есть RTOS пользующие кооперативный "шедулер", тогда каждый тред сам отдаёт процессор. Естественно код должен быть вылизан до идеала, отсюда пользуеться это только на микроконтроллерах с минимум кода.
Заявлена как RTOS, известно точное время отклика, значит в real-time окружении пользоваться может, надёжность конечно в расчёт не берёться. Сам пользовался RZK от Zilog'а и XINU в ранних Zilog Software Suite (веб сервер, ftp сервер, шел и прочее).
Также обычно прога вместе с системой должна быть способна работать десяток лет "без перезагрузки" (пользуеться память блоками, что бы избежать фрагментации). Должно быть точно известно сколько максимум памяти прога может потребить, поэтому часто прога выделяет всю необходимую ей память и разделяет её сама на массивы структур. Естественно памяти потребляеться много, но нет издержек на поиск и выделение динамической памяти и точно известно сколько её нужно. Стек вещь не резиновая, обычно должна быть точно известна максимальная глубина стека, алгоритмы с рекурсией не в почёте. Блокировки все с таймаутами, если что прога аккуратно вылетает. Вообщем программить для real-time окружения это масса ограничений и большая ответственность, поэтому "рюшечек" в твоей проге будет минимум, отсюда низкий интерес у креативных программистов. А вот когда тебе за 40, большой опыт и нет желания итди в архитекторы софта, то real-time будет новым рубежом со свежими идеями (акцент делай на "большой опыт", отсюда ответственонсть за то что ты делаешь ![]() -------------------- Опыт - сын ошибок трудных © А. С. Пушкин Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik Оценить мои качества можно тут. |
||||||
|
|||||||
![]() ![]() ![]() |
Правила форума "С/С++: Программирование под Unix/Linux" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, xvr. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Программирование под Unix/Linux | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |