реал тайм осы |
Ответить | Страница <1 45678 36> |
Автор | ||||||||
Действительный член Присоединился: 14 Октябрь 2003 Категория: Ukraine Online Status: Offline Публикации: 267 |
Опубликовано: 17 Октябрь 2003 18:01 |
|||||||
П.10. - это тоже из технических, не "академических" требований: RTOS должна иметь адекватные (realtime) средства сетевого взаимодействия.
Об чём речь? Что у нас есть практически во всех OS общего применения? Правильно - TCP/IP (IPX/SPX - это славная, но практически умершая технология, и - не считать же серьёзной сетевой технологией "одоробло" NETBEUI от MS?). TCP/IP по ряду причин не годится для realtime & embedded приложений. Т.е., очень даже годится, и даже крайне желателен, например, для управления извне (зашёл по telnet или ssh - и чудишь как у себя дома) - но не годится для гарантированной доставки данных. TCP/IP разрабатывался и оптимизировался для WAN, а не для LAN, и главная его характеристика "живучесть", но никак не "гарантированность". Вот, например, существует общее заблуждение, что TCP ("протокол гарантированной доставки", про UDP я даже не говорю) - может обнаружить обрыв канала... - не может: будете сидеть в своём блокирующем read() до посинения ;-)... И многое другое, причин много, сейчас не об этом - если кому будет интересно, я перечислю отдельно. Тот же QNX - имеет в своём составе развитую сетевую подсистему Qnet - "гарантированного реагирования", которая, кроме того - плотно и органично интегрируется с работой полностью автономного стека TCP/IP. |
||||||||
Действительный член Присоединился: 14 Октябрь 2003 Категория: Ukraine Online Status: Offline Публикации: 267 |
||||||||
Вот, пожалуй, на этом можно остановиться (хотя это ещё далеко не все П.П. "почему нельзя требовать от OS общего назначения - удовлетворять требованиям realtime").
P.S. Прошу прощения, если я написал слишком много, и утомил кого-то... Просто - "проходил мимо", сммотрю тема "реал тайм осы" - а в реал тайм осы скоро станут зачислять OS/2, и MS-DOS ... так дальше пойдёт - и MS Windows допустим в реалтайм... :-( Абыдно стало, панимаешь, да? Ещё раз прошу прощения. |
||||||||
Профили участников
Послать частное письмо
Поиск публикаций участников
Посетить домашнюю страницу участника
Добавить в список приятелей
Действительный член Присоединился: 08 Сентябрь 2003 Категория: Russian Federation Online Status: Offline Публикации: 178 |
||||||||
Вы еще будете меня за многозадачность агитировать ;-) Тем не менее - есть. Вот даже у меня рядом стоит - ящик для радиоканала - так внутри дос.
"Автоматчики" как вы выражаетесь поступают элементарно: используют цикл опроса на манер поллинга с такой частотой, что никакой асинхронности нету. Вон у меня в DSP - все укладывается в 2-3 микросекунды.
Заметьте - я про TSR ничего не говорил. Просто все сделано через большой цикл с кучей switch'ей, callback-ов, тайм-аутов и нарезкой данных на куски.
Конечно. squid работает на многих платформах и под большой нагрузкой. С предсказуемым поведением. И с такой архаичной внутренней организацией.
На ассемблере тоже можно все что угодно изобразить - однако ж. И эээ.. навскидку - с мутексами будет тормознее. Намного. |
||||||||
SY,
EK |
||||||||
Профили участников
Послать частное письмо
Поиск публикаций участников
Посетить домашнюю страницу участника
Добавить в список приятелей
Действительный член Присоединился: 08 Сентябрь 2003 Категория: Russian Federation Online Status: Offline Публикации: 178 |
||||||||
Не пользуйте блокирующие вызовы и будет вам щастье. Стандартные пайпы OS/2 совершенно спокойно живут под netbios'ом / netbios over ip. |
||||||||
SY,
EK |
||||||||
Действительный член Присоединился: 14 Октябрь 2003 Категория: Ukraine Online Status: Offline Публикации: 267 |
||||||||
Почти как говорил М.Жванецкий: что ящик стоит - верю, что там внутри дос - верю, а вот что однозадачность - не верю - отныне и во веки веков, аминь ;-). Чисто однозадачным процессом можно считать только что-то из численных вычислений - решение какого-то квадратного уравнения, что ли... Как только у вас любое IRQ - всё, это поехала новая, параллельная ветка... В том случае, если вы аккуратничаете, сохраняете 2-3 регистра (даже не трогая сегментных, возможно), не сохраняя контекста прерванной задачи - так это только из-за элементарной простоы действий, выполняемых в обработчике (кстати, и эта привычка элементарных действий в обработчике - это "обратным концом" привычка, выработанная неприятностями ;-)).
Активноый опрос со 100% загрузкой процессора? Хорошее решение...
TSR - это только название, и всего. Но всё происходящее происходит точно также: calback-и (по сетевым событиям, ведь вы об squid говорите, если я понял?) - прерывания по сетевым событиям, тайм-ауты - прерывания от системного таймера, а на них обработчики, обработчики, обработчики... А на них - сохранение контекста, или без - но это "если повезёт"...
Под многими - я видел, знаю... Под однозадачной дос - не видел..., но может пропустил чего. Но считать squid как образец ... "с предсказуемым поведением" в смысле realtime? Нет, право, батенька, это уж слишком. Да если он заснёт над вашим запросом на лишних 5 минут - так вы и не заметите... даже на 15 минут - тоже не успеете идти на разборки с администратором... |
||||||||
Профили участников
Послать частное письмо
Поиск публикаций участников
Посетить домашнюю страницу участника
Добавить в список приятелей
Действительный член Присоединился: 08 Сентябрь 2003 Категория: Russian Federation Online Status: Offline Публикации: 178 |
||||||||
Обычно таки разделяют hard и не hard-realtime OS. Вы этого почему-то не проводите. По факту у меня получаются весьма hard-realtime системы на не hard-realtime OS - и оно работает в промышленных условиях. Часть из приложений я описывал, и не только здесь. И почему-то никто не объявился и не сказал - у меня точно такое же, но под QNX. Даже обидно, панимаешь. |
||||||||
SY,
EK |
||||||||
Профили участников
Послать частное письмо
Поиск публикаций участников
Посетить домашнюю страницу участника
Добавить в список приятелей
Действительный член Присоединился: 08 Сентябрь 2003 Категория: Russian Federation Online Status: Offline Публикации: 178 |
||||||||
В ящике для радиоканала - наверное есть прерывания, а в остальном - можно и без них с тупым поллингом
DSP или PICу - это по барабану, у них все время 100% загрузка, кроме режимов сна
TSR - это еще и куча ограничений... А в сквиде все сетевые события проверяются в одном месте - через select или poll - и далее только обработчики и никаких таких прерываний. Цикл опроса длится где-то 100-200 мс, а все остальное сидит в буферах TCP стека...
;-) В дос оно не влезет по размеру - разве что с экстендером. А на предмет заснет-не заснет - тестируют его в хвост и гриву - не засыпает. Хотя неприятности с ним случаются при потере связи - но это уже из другой области |
||||||||
SY,
EK |
||||||||
Профили участников
Послать частное письмо
Поиск публикаций участников
Посетить домашнюю страницу участника
Добавить в список приятелей
Действительный член Присоединился: 08 Сентябрь 2003 Категория: Russian Federation Online Status: Offline Публикации: 178 |
||||||||
4 по 32. для Normal приоритетов приоритет еще может динамически меняться внутри каждого из 32 уровней
Долго думали - что вы имели ввиду ? для IRQ уровень прерывания задается его номером, в писюке их всего 16. |
||||||||
SY,
EK |
||||||||
Профили участников
Послать частное письмо
Поиск публикаций участников
Посетить домашнюю страницу участника
Добавить в список приятелей
Действительный член Присоединился: 08 Сентябрь 2003 Категория: Russian Federation Online Status: Offline Публикации: 178 |
||||||||
4 класса приоритетов по 32 уровня. NORMAL класс может иметь как динамические приоритеты, так и абсолютные (устанавливается в config.sys) все остальные - абсолютные На уровне ниток. Приоритеты наследуются нитками. |
||||||||
SY,
EK |
||||||||
Профили участников
Послать частное письмо
Поиск публикаций участников
Посетить домашнюю страницу участника
Добавить в список приятелей
Действительный член Присоединился: 08 Сентябрь 2003 Категория: Russian Federation Online Status: Offline Публикации: 178 |
||||||||
Сильно сомнительно, что можно сделать реентабельные вызовы для нереенабельных операций - скажем переключалку задач или диспетчер памяти. Микро- или не микро ядро - прямого отношения к риалтайму этого не имеет, как и то, сколько вызовов API сидит в ядре и сколько - не в ядре. Они все равно где-то есть... Что до OS2 - то часть системных вызовов реентабельны, часть - нет, но от этого никто не страдает |
||||||||
SY,
EK |
||||||||
Ответить | Страница <1 45678 36> |
Переход на форум | Права доступа на форуме Вы не можете публиковать новые темы в этом форуме Вы не можете отвечать на сообщения в этом форуме Вы не можете удалять Ваши сообщения на этом форуме Вы не можете редактировать Ваши сообщения на этом форуме Вы не можете создавать голосования на этом форуме Вы не можете выражать своё мнение в голосованиях на этом форуме |