Главная » Проблемы с Windows и их решение

Ошибка памяти в Windows: современные методы войны с ними

Обычно мы имеем свойство не рассматривать и не публиковать информацию с русскоязычных блогов Microsoft, но этот раз будет исключением, в силу того что Петр Диденко, веб-евангиелист Microsoft, поделился на своем ресурсе о примечательной не заметной для обывательского глаза функции Windows 7, обеспечивающая стабильность в работе данной системы. Именно наличие и знание о существовании этих небольших полезных функций позволяет работать с данной системой комфортно и без ошибок.

В данный раз будет раскрыт очередной замечательный трикс для Windows 7, это фича находится настолько далеко от обычных взглядов пользователей, что становится понятна невозможность рядового юзера, стать счастливым так быстро и просто. Скажем так, это замечательная особенность – одна из частей новой системы для осуществления надежной и стабильной работы Windows 7.

Эта примечательная функция носит название FTH, или Fault Tolerant Heap, и к нашему сожалению очень поверхностно описана в базе знаний MSDN, несмотря на свою очевидную полезность. Так как не ясно в чем смысл такой секретности данной функции, придется быть предельно осторожными в ее рассмотрении.

Новшества Windows 7: современные методы борьбы с ошибками памяти

Одним словом, если вы хотя бы мало-мальски знакомы с языками программирования, вам известен такой термин как «heap» это пространство в памяти, использующаяся той структурой данных, за счет которой осуществляется динамическая область памяти программы. Чтобы получить понимание о принципах работы «heap» достаточно воспользоваться какой-либо поисковой системой.

«Heap» – достаточно проблемная часть, так как ее неправильное функционирование а вследствие этого неправильная работа с памятью, чаще всего приводит к таким проблемам как неправильное высвобождение памяти при завершении или начале работы приложения, переполнение буфера при чтении/записи, выдача неверного адреса памяти после высвобождения нужного пространства и многое другое. В конечном итоге можно объяснить это короче, не используя стоь сложные термины: программы в основном отказываются работать именно из-за неправильной их работы с памятью. Большая часть этих проблем связана именно с плохо обеспеченной работой с «heap».

Изучив статистику ошибок в результате использования операционной системы Vista, программисты Microsoft решили реализовать новую подсистему, использующеюся в настольных версиях Windows 7, при помощи которой осуществляется автоматическое определение приложений, которые отказываются работать из-за неполадок в «heap», и предотвращать ошибки посредством использования автоматизированных методов и приемов во избежание неприятностей связанных с «heap». В результате действия этих приемов и методик программы не прекращают свою работу выдавая ошибку, или как минимум делают это реже. FTH распознает и предупреждает огромное количество неполадок в работе «heap».

Подробная информация об ошибках группируется и поддается анализу, происходит это посредством WER, которая связывается с головной базой знаний (не секрет что FTH реализуется во взаимодействии с Dr. Watson), которая получает подробные отчеты, и дополнительная служебная информация по диагностике проблемного элемента, что особенно важно, не содержащая каких-либо персональных данных о владельце.

FTH – логически дополненное расширение WDI (Windows Diagnostics Instrumentation), и является очень эффективным инструментом выполняющим присмотр за оригинальным NT heap, и изменяющим и дополняющим часть запросов. Основным принципом в его работе является минимальное вмешательство в производительность системы в целом.

FTH автоматизировано приводится в работу системой для определенных приложений, которые имею потенциальную возможность «упасть», и которым нужна помощь со стороны FTH, в решении текущих проблем. Система проводит анализ во время сбоев, и принимает обоснованные решения для их избегания. Система автоматически включает и выключает FTH, по мере необходимости.

FTH работает только когда ее помощь обоснованна, и если программа все таки падает, она уже не вмешивается и допускает ее стабильность на усмотрение пользователя.

Это конечно же не лекарство от всех болезней, которое будет работать незаметно, исправляя все ошибки. FTH не имеет API, и позволяет только включать или выключать себя. Не обладает FTH и пользовательским интерфейсом, он просто существует

При возникновении ошибок у приложения Windows автоматически рассмотрит имеет ли это какую-либо связь с «heap», и сделает вывод использовать ли в данном случае FTH, или все же – нет. FTH может дать два результата: первое, — программа или совсем перестанет ломаться или станет делать это реже; второе – проинформирует о данной ситуации центральную базу данных об ошибках, вследствие чего разработчик их исправит. Но в любом случае польза – налицо.

Эта фишка одна из тех о которых пользователей наверняка не знает, хотя она и очень важна. Так что в следующий раз спрашивая мысленно у Гейтса, — «За что я плачу», вспоминайте о множестве подобных невидимых нюансов.

И информация для размышления: большая часть проблем с памятью возникает именно в использовании сторонних приложений.

Добавить комментарий

Ваш комментарий появится после модерации.