1. Ну ваще-то, программа не должна падать по определению. Если падает - то надо переписывать, пока не достигнет нужной устойчивости. Это как организм - пытается жить до последнего, даже при тяжелых повреждениях. Винда - прямая противоположность: чуть чо не так - лапки кверху.
Когда я говорил о выборе ОС то забыл одну очень интересную вещь - драйверы Реального Времени встраиваемые в стандартные ОС. Из которых я встречал, самая серьезная - SP RTE , входящая в состав среды CoDeSys. Этот драйвер пролазит до самого железа, колет кирпич на две части, и делит его с Виндой. После этого комп часть времени работает на Винду, а часть на ПЛК. Соотношение частей можно устанавливать с шагом 0,1 мкс. У системы SP RTE есть свой развитый планировщик задач, удобно строится в CoDeSys. О серьезности софта говорит тот факт, что когда мы подвешивали Винду - ПЛК-часть продолжала работать как ни в чем не бывало !
Вот отличный пример компромисса ! Каждая часть занимается своим делом : Винда - для раскрасок, расписных интерфейсов (уж это-то она могет !), РТ-часть - для классического ПЛК, без всяких декораций и с присущей ему надежностью.
Интересно, что обе части могут находиться как на одной машине, так и на разных, обмен данными - по любому современному интерфейсу. Второй вариант намного лучше, потому-что процессорный модуль можно подобрать наиболее оптимально: под Винду с графикой - свой, а под ПЛК - другой, которому даже графическая карта не нужна. Все вместе получается дешевле чем одна общая машина.
С уважением, SAN
Первоначально опубликовано sanwork
О серьезности софта говорит тот факт, что когда мы подвешивали Винду - ПЛК-часть продолжала работать как ни в чем не бывало !
С уважением, SAN
Если Вам удастся привести убедительный пример, когда при зависании Windows (или чего другого) отваливался "нижний уровень" в какой-нибудь системе - будет для всех без исключения крайне интересно и поучительно.
Немного уточню. Винда очень болезненно переносит дисковые операции, особенно с CD/DVD приводами. Это сложилось исторически, и чо-та так и не смогли поправить. Эти типы зависаний довольно глубоко уходят корнями в ядро. SPRTE проверялась при вот этих глюках, что весьма убедительно.
С уважением, SAN
Первоначально опубликовано sanwork
Немного уточню. Винда очень болезненно переносит дисковые операции, особенно с CD/DVD приводами. Это сложилось исторически, и чо-та так и не смогли поправить. Эти типы зависаний довольно глубоко уходят корнями в ядро. SPRTE проверялась при вот этих глюках, что весьма убедительно.
С уважением, SAN
Опишите условия проверки если не трудно. При дисковых операциях подвисает Shell причем если этот Shell эксплорер, что кстати вовсе не обязательно. Процессы не завязанные на неуспешную дисковую операцию протекают в штатном режиме. Попробуйте контролировать работу испытуемого хоста по удаленке, оснастки производительности в этом помогут.
Свои пять копеек внесу.
Еще DOS при выполнении файловых операций отключала все прерывания на 10 мс (примерно) при обращении к сектору. Как результат, отставание часов машины при большом объеме файловых операций и сбои в работе последовательного обмена в момент файловых операций , когда буферизация не спасает (а буфер в 14 байт, вообще говоря, далеко не всегда спасает). Это собственно все видели. Скорее всего, этот же механизм перенесен и в винду - винчестеры- то что при DOS, что при винде одинаково с компом общаются. Может его чуть подправили, но скорее всего нет, если было бы можно - сделали еще бы в DOSе. Так что, чудеса при файловых операциях во многом отсюда произрастают. Скорострельность машины выручает, но до тех пор, пока работа не связана с прерываниями.
Видел такую штуку: при неуспешной файловой операции убивался Diskonchip. Причем происходило это настолько достоверно и регулярно, что от него пришлось просто отказаться в компьюторе и уйти на Diskonmodul, там то уж такого не было.
При экспериментах ни один чайник не пострадал
-----------
Плохому системному интегратору всегда OPC сервер мешает.
______________
Пишу на C++ за еду
Гадать назачем
Берите "Внутренне устройство Windows..." от Русиновича и Соломона, там все подробно расписано. Windows действительно маскирует все ниже лежащие по приоритету прерывания и операции на момент обработки текущего прерывания. Но приоритет прерывания занимаемого часами один из самых высоких, во всяком случае файловые операции он прерывает. В основе любой платформы лежит простая концепция, принцип. Он как Конституция прост и он же закладывает базовые достоинства и недостатки любой платформы. Так сказать клей для религиозных войн. Если вы хотите понять суть недостатков платформы эта книга вам поможет. Поможет понять также и неоспоримые достоинства коих данная платформа вовсе не лишена как многие полагают. Вопрос применяемости той или иной концепции постороения платформы ИМХО должен рассматриваться этом разрезе, а не сравнением с продуктами дефекации
Файловые операции прерывают операции с часами. Если написано наоборот - врут, мин херц! Вернее так: если идет обращение в файлу - запрещаются все прерывания. Поэтому каков бы приоритет ни был - прерывание будет пропущено. То что я видел в DOSе - именно пропущено (утеряно). Уже не помню, но когда смотрел как контроллер прерывания работает, то всплыло то, что чтобы было не совсем плохо (вернее плохо, но по очереди) приоритеты прерываний после каждого прерывания вращаются. Мои попытки жестко назначить приоритеты (хотел чтобы порты все же не теряли символы при обмене) не увенчались успехом, падала система.
При экспериментах ни один чайник не пострадал
-----------
Плохому системному интегратору всегда OPC сервер мешает.
______________
Пишу на C++ за еду
эээ... вы сказали что этот механизм был перенесен в Windows, я вам сказал, что это не так. Но как говорил Морфеус я могу только показать вам дверь, войти в нее вам нужно самому
Эээ. Вы прочитали в книжке. Но, когда вам придеся поправлять обмен или добиваться нормальной работы часов в компе или контроллере, в котором стоит винда, вспомните не соломона, а то что я написал:)
Кстати, писатели на чистую воду выводятся очень просто. Запускается компьютор на 3 часа без задач. Просто работает. Смотрим его часы по внешним эталонным. Через три часа опять смотрим. Второй подход. Все три часа должна крутиться задача которая пишет в файл без перерыва. Вы получите отставание во втором случае примерно в 5-6 секунд. Я уже насмотрелся на это, но вы можете посмотреть.
При экспериментах ни один чайник не пострадал
-----------
Плохому системному интегратору всегда OPC сервер мешает.
______________
Пишу на C++ за еду
Ни разу не видел ничего подобного на своем файловом сервере, 2000 Windows Advansed Server SP 4 синхронизируюсь переодически (раз в неделю) с пулом NTP серверов со стратумом 2 компенсирую отставание порядка 12-15 секунд стабильно. Нагрузка имеет рваный неравномерный характер. По поводу пренебрежения к теории могу сказать, что мифы рожденные невежеством порождают неверные выводы от объема практики не зависящие. DIXI
Вы не можете публиковать новые темы в этом форуме Вы не можете отвечать на сообщения в этом форуме Вы не можете удалять Ваши сообщения на этом форуме Вы не можете редактировать Ваши сообщения на этом форуме Вы не можете создавать голосования на этом форуме Вы не можете выражать своё мнение в голосованиях на этом форуме