[an error occurred while processing this directive]
|
Чем ниже квалификация программиста, тем меньший контроль и понимание поведения программы он имеет, аналогично с квалификацией схемотехника и пониманием работы железа. WD для таких ребят категорически обязателен к применению (причем и внешний не помешает), как надувной круг или надувные наплечники для обучающихся плаванию - вроде и плыть будет, и не потонет, ежели что.
По мере накопления опыта и углубления понимания сути вещей можно постепенно отказываться от перестраховки - например, убрать внешний WD и эффективно использовать внутренний АППАРАТНЫЙ, который, например, в AVRах более чем надежен. Понимание приходит постепенно, и программист начинает интуитивно защищать критические моменты - вставлять безусловные таймауты в поллинг, заполнять свободную память кода восстанавливающими инструкциями, регулярно реинициализировать периферию, жестко ограничивать пределы "дальнобойности" указателей и т.д. Но причины и характер катастрофических сбоев весьма многообразны и коварны, и WD в большинстве случаев все же может сослужить хорошую службу.
Перевод МК на все более мелкую технологию изготовления и, как неизбежное следствие, снижение напряжения питания ядра, своей периферии и внутренней памяти ведет к значительному падению его помехозащищенности - чем мельче полупроводниковые структуры, тем меньшая энергия достаточна для непреднамеренного изменения состояния ячеек памяти и регистров. Для большинства современных МК применение WD становится просто обязательным, и приемы защиты кода должны становиться более совершенными. К сожалению, последнее становится практически невозможным, т.к. для сложных МК основная масса программ пишется на ЯВУ, да еще и усугубляется повальным применением той или иной ОС.
Вряд ли найдется владелец смартфона или КПК, который никогда не сталкивался с зависанием такого устройства без всяких видимых причин, и это в тепличных карманно-настольных условиях - про неблагоприятное помеховое окружение для таких устройств даже и говорить не нужно. Примитивный WD в таких случаях весьма неоднозначен - устройство перезагрузится, но могут быть потеряны и испорчены данные и т.д. Чем сложнее и ответственнее устройство, тем тщательнее нужно подходить к использованию WD и методам повышения жизнеспособности изделия.
Итоги такие:
1. Эффективно и корректно будут работать ТОЛЬКО комбинированные методы защиты от сбоев и зависаний.
2. WD желательно применять всегда.
3. Програмно-отключаемый внутренний WD за таковой не считать, применять внешний.
4. При грамотном и высококвалифицированном подходе к программированию и схемотехнике можно свести необходимость применения WD к минимуму, но не к нулю
5. Всё ИМХО