реал тайм осы |
Ответить | Страница <1 678910 36> |
Автор | ||
Действительный член Присоединился: 14 Октябрь 2003 Категория: Ukraine Online Status: Offline Публикации: 267 |
Опубликовано: 18 Октябрь 2003 19:50 |
|
"... при потере связи..." - это у вас толко в случае "нормальной" потери связи: завершение приложения, или выгрузке OSна обратной стороне. В этом случае ваш socket получит FIN сегмент. А read() (или read после select) возвратит вам 0. И есть ещё "ненормальная" потеря связи: обрыв линии, или контакты в разъёмах - в этом случае вы никогда и никаким образом не обнаружите потерю канала. Это всё прописано не в реализациях отдельных OS- а в RFCs TCP/IP! |
||
Профили участников
Послать частное письмо
Поиск публикаций участников
Посетить домашнюю страницу участника
Добавить в список приятелей
Действительный член Присоединился: 09 Сентябрь 2003 Категория: Russian Federation Online Status: Offline Публикации: 247 |
||
К сожалению, сайт, на который Вы ссылаетесь, сейчас в
дауне... Но вообще замечу, что может и нужно в избах жить... Экология, то-се, картошечка, банька, теплая русская печка... :-) Однако, если Вы, как заказчик, потребуете от нас, чтобы мы на Кьюникс перешли, то проблем нет... с другой стороны, если кто придет и скажет, вообще ОС не надо - пережжем все в ПЗУ и так же проблем не будет... Я это к тому, что палить по 1000++ зеленых на ОС - это круто, но для этого должны быть некоторые основания. Кьникс мы рассматривали, к сожалению, анализ показал, что его использование для нас экономически менее эффективно, чем ДОС. а на форум по Кьюниксу обязательно схожу, почитаю... Может действительно Кьюникс надежнее ДОСа, хотя ДОС у нас только при начальной загрузке кода в ОЗУ используется, да на этапе загрузки нового кода программы на Флеш-диск... ;-)
|
||
Владимир Е. Зюбин
Язык Рефлекс -- Си-подобный язык программирования ПЛК http://reflex-language.narod.ru/ |
||
Профили участников
Послать частное письмо
Поиск публикаций участников
Посетить домашнюю страницу участника
Добавить в список приятелей
Действительный член Присоединился: 09 Сентябрь 2003 Категория: Russian Federation Online Status: Offline Публикации: 247 |
||
Ну и при чем здесь компиляция?
Вы же мне просто предлагаете РУЧКАМИ каждое тревожное место контролировать... что несомненно полезно, но, увы, не надежно, не гарантирует отсутствие ошибок, т.к. метод завязан на человеческий фактор. Кстати, то, что у нас сделано структурно эквивалентно предлагаемому Вами, только сконцентрировано в одном месте, этот контроль деления на ноль не нужно специально программировать, т.к. он выполнен КОНСТРУКТИВНО (его невозможно избежать, даже если сильно захотеть ;-)...
|
||
Владимир Е. Зюбин
Язык Рефлекс -- Си-подобный язык программирования ПЛК http://reflex-language.narod.ru/ |
||
Профили участников
Послать частное письмо
Поиск публикаций участников
Посетить домашнюю страницу участника
Добавить в список приятелей
Действительный член Присоединился: 09 Сентябрь 2003 Категория: Russian Federation Online Status: Offline Публикации: 247 |
||
А как Вы производительность замеряли? Может в методике замера ошибка? ;-)
|
||
Владимир Е. Зюбин
Язык Рефлекс -- Си-подобный язык программирования ПЛК http://reflex-language.narod.ru/ |
||
Профили участников
Послать частное письмо
Поиск публикаций участников
Посетить домашнюю страницу участника
Добавить в список приятелей
Действительный член Присоединился: 09 Сентябрь 2003 Категория: Russian Federation Online Status: Offline Публикации: 247 |
||
Действительно своппинг потенциально опасен с точки зрения надежности... не только из-за задержек, но и из-за того, что вся система может грохнутся при недостатке места на диске...
И я вот такую штуку слыхал, говорят, в Кьюникс 5.хх введен своппинг. ;-)
|
||
Владимир Е. Зюбин
Язык Рефлекс -- Си-подобный язык программирования ПЛК http://reflex-language.narod.ru/ |
||
Профили участников
Послать частное письмо
Поиск публикаций участников
Посетить домашнюю страницу участника
Добавить в список приятелей
Действительный член Присоединился: 09 Сентябрь 2003 Категория: Russian Federation Online Status: Offline Публикации: 247 |
||
А я бы тут вскомнил старый анекдот:
"Вам ехать нужно, или шашечки на такси"? Не стоит фетишизировать слова "реальное время"... тем более за ними ничего корректного с формальной точки зрения не стоит... Есть некая конкретная задача, да решайте ее хоть на Виндовз, хоть на ДОС... если выполнены все требования ТЗ, то в чем могут быть проблемы?! 8-) А если задача выполнена не за 1000++ баксов, а за 40, то это ПЛЮС, а не минус. Я так считаю: моя задача, как разработчика, не молиться на фетишизированные РТОС, а вырабатывать и реализовывать грамотное, экономически эффективное решение. Я работаю под ДОС 6.22, и горд тем, что мне удается выполнять проекты за меньшие деньги, в более короткие сроки и с качеством по нескольким параметрам превышающим решение на базе Кьюникс.
|
||
Владимир Е. Зюбин
Язык Рефлекс -- Си-подобный язык программирования ПЛК http://reflex-language.narod.ru/ |
||
Действительный член Присоединился: 14 Октябрь 2003 Категория: Ukraine Online Status: Offline Публикации: 267 |
||
Да, там что-то произошло, но это - практически впервые по-серьёзному (более чем на 2-3 часа) за 1-1.5 года. Но попозже - сходите обязательно: этот форум отмечен на конференции "QNX-2002" в С.-Петербурге QSSL (разработчик QNX) в 3-ке лучших некоммерческих информационных ресурсов по QNX в мире... Кстати, скоро ... в 1-й половине ноября - в С.-Петербурге опять ежегодная конференция "QNX-2003".
А здесь есть какое-то явное противоречие масштабов... ;-) - поэтому требуется уточнить. QNX действительно дорог начально - $7000-$14000 - но это developer-ская лицензия, т.е. ваше право поставлять коммерческие продукты на этой OS, так сказать ваше "въезжание" в сообщество разработчиков для QNX. Дальнейшие же "поэкземплярные" лицензионные платежи очень сильно зависят от тиражности изделия, и модульной комплектации OS, и составляет $80-$200 при малотиражности, и может падать до порядка на тиражах. Кроме того, обратите внимание - может не все знают - что с ~2000г. предоставляется free полноценная версия QNX, на сегодня это QNX 6.2.1 NC (non-commercial), которая позволяет проверить и обкатать до уровня макета изделие без начальных затрат вообще. |
||
Действительный член Присоединился: 14 Октябрь 2003 Категория: Ukraine Online Status: Offline Публикации: 267 |
||
Здесь есть небольшая неточность: наверное, не 5.ХХ (не было такого), а 6.ХХ, которая сейчас (~>200г.) сменяет линию 4.25. Да, в 6.ХХ сделана большая ревизия OS: - теперь система построена на компиляторе GCC (free, GNU, тот, который применяется, напр., в Linux - это даёт большие возможности для переносимости UNIX программ); - очень сильная ревизия на совместимость с POSIX-стандартами; - ... в частности, все процессы шедулирования перенесены с уровня процессов на уровень потоков (thread). - ... есть ещё много существенных изменений, не место их здесь все перечислять. В частности - "да" - в системе предоставлена (опционально) возможность свопинга, но: - возможность свопинга может быть разрешена для задачи, но только в отношении страниц RAM данных, но не может - для страниц программного кода; - такая возможность by default - запрещена, и должна быть установлена (если нужно) каждой задачей для себя; - это связано, в первую очередь, с потребностями GNU компилятора GCC в перелопачивании больших объёмов данных, и, может быть, при переносе в QNX другого общеупотребимого UNIX ПО. |
||
Действительный член Присоединился: 14 Октябрь 2003 Категория: Ukraine Online Status: Offline Публикации: 267 |
||
Фетишизировать ничего не стоит, по жизни даже вообще, не только по OS - это безупречно верно... ;-). А вот то, что за словами "реальное время" - ничего не стоит - это преувеличение. Худо то, что то немногое, что реально "стоит" - оно засорено и закамуфлировано массой наносной информации, циркулирующей в этой сфере. Вот то основное определение, которое повсеместно используется "давать гарантированную реакцию в гарантированное время..." - оно и вправду плохо формальное, а поэтому под него суют всё, что попало ("мягкий" ;-) реалтайм... - скоро появится "жидкий" реалтайм, на манер "жидкий кал"...). Но для его наполнения нужно выполнить некий комплекс обязательных требований, которые уже гораздо более формальные - я часть из них, как мог, попытался описать выше... Обратите внимание: всё, что realtime - обросло вокруг легендами: - почему-то многими считается, что realtime - это "быстро"... хотя realtime OS при прочих равных условиях, как правило, несколько (или заметно) медленнее, чем OS общего применения. И это понятно - все внутренние переключения контекстов там должны делаться тщательнее и корректнее. - realtime - это термин из области надёжности (безотказности, живучести), а уж никак не скоростных характеристик: выполните операцию 1000000 раз и усредните: в универсальной OS у вас, с большой вероятностью, среднее значение времени выполнения будет ниже, но дисперсия тестов - значительно больше. - и ещё, из области realtime... многие изготовители RTOS оперируют (беспокоятся) коэффициентами готовности 5 9-ток: 99.999% ... - это означает 5 мин. в максимуие простоя на 1 год непрерывной работы. Всем нужну ли и интересны такие масштабы цифр? Многие ли из обсуждаемых систем предназначены, должны и т.д. эксплуатироваться в режиме "год горячего времени"? И можно ли всерьёз говорить о потенциальной даже возможности работы в таких режимах общих OS: MS-DOS, Windows, OS/2... А как аргумент того, что для realtime есть определённая ниша и это не чисто коммерческий трюк - говорит, по-моему, то, что RTOS как отдельный "класс" появились "параллельно" весьма давно ... RT-11 та-же - 70-е годы.
Естественно... Только вот то "плохо формализованное условие" - оно начинает работать (сказываться) при некоторой сложности ПО. Я бы сказал: именно сложности в смысле числа N параллельных ветвей развития процесса (multitasking, вне зависимости того, чем эти task выражаются: обработчики IRQ, process, thread...). Взаимодействие таких ветвей - это основное место нарушения realtime. RTOS (да и любая OS) - это такое-же ПО, которое вы пишите, из которго вы, как пользователь, можете использовать API. Альтернативы: либо мы все элементарные операции (чтение с диска, напр.) сами прописываем, либо используем то, что уже прописано в API. Если вам знакома классическая работа Э.Дэйкстры "Взаимодействие последовательных процессов" - то вы должны знать, насколько там тонкие материи, и неочевидные при первом проходе, да и втором тоже... (а если вы не знакомы с этой работой - она в русскоязычном переводе публиковалась аж в ~1975г. - искренне советую: вы просто получите удовольствие от блеска ума). Так вот, в multitasking ничего принципиально нового со времён работ Э.Дейкстры не было придумано со 2-й половины 70-х - и всё это время ушло на реализации, и вытягивание тонких мест. Возвращаясь к RTOS - вы с этой OS получаете API механизмы, совместимые с POSIX 1003b (realtime) - выверенные как в логических противоречиях, так и в реализациях за пару-тройку десятилетий. С соответствующими вероятностями deadlock-ов и других прелестей в "ручном" коде и в API. |
||
Профили участников
Послать частное письмо
Поиск публикаций участников
Посетить домашнюю страницу участника
Добавить в список приятелей
Действительный член Присоединился: 09 Сентябрь 2003 Категория: Russian Federation Online Status: Offline Публикации: 247 |
||
Наверное Вы правы, 6.хх.
Я это просто к тому, что пункт со своппингом в т.н. РТОС надо как минимум править... наверное. Впрочем, это ремарка, разумеется... по мне хоть так, хоть эдак... Но с точки зрения любви к изящному из всех определений нужно еще выкосить числа... типа "приоритетов должно быть не менее 256"... непонятно... почему 256, а не 255? не 254? или не 1024? также мне показалось, что разговор шел просто об алгоритмах, используемых в планировщиках многозадачных ОС... может так и нужно говорить... не об РТОС, а об алгоритмах планирования. Например, ДОС - это вообще однозадачная ОС, да еще и нереентерабельная... там никакого планировщика по определению нет. А что, если он и не нужен? Вроде как ну и хорошо. Ну и при чем здесь т.н. задачи РТ? Тоже вроде ни при чем. Программируй под ДОС, если знаешь как. А Виндовз - и реентерабельная и многозадачная... ну и программируй под Виндовз, если умеешь. Тут, мне кажется, не имеет смысл особо всех агитировать за Кьюникс. Люди все вроде взрослые.
|
||
Владимир Е. Зюбин
Язык Рефлекс -- Си-подобный язык программирования ПЛК http://reflex-language.narod.ru/ |
||
Ответить | Страница <1 678910 36> |
Переход на форум | Права доступа на форуме Вы не можете публиковать новые темы в этом форуме Вы не можете отвечать на сообщения в этом форуме Вы не можете удалять Ваши сообщения на этом форуме Вы не можете редактировать Ваши сообщения на этом форуме Вы не можете создавать голосования на этом форуме Вы не можете выражать своё мнение в голосованиях на этом форуме |