Зависание компьютера и программ¶
Зависание — состояние вычислительной системы или отдельной программы, при котором она перестаёт реагировать на команды пользователя и внешние события, не завершая при этом свою работу штатно. В отличие от аварийного завершения (краха), при зависании процесс или устройство формально остаются активными, но перестают выполнять полезные действия: интерфейс не откликается на нажатия клавиш и движения мыши, окна не перерисовываются, задачи не продвигаются. Зависание относится к классу отказов в работе программного и аппаратного обеспечения и является одной из наиболее частых причин потери несохранённых данных.
¶Общая характеристика
С точки зрения пользователя зависание проявляется как «замороженный» экран или окно, курсор, который не двигается либо двигается, но ни на что не влияет, отсутствие реакции на горячие клавиши. С точки зрения системы различают несколько механизмов:
- Бесконечный цикл или взаимная блокировка. Программа ожидает ресурс, который никогда не освободится (например, из-за ошибки в многопоточном коде), и не может продолжить работу.
- Перегрузка. Число задач или объём данных превышают вычислительные возможности процессора, памяти или диска, и время отклика становится неприемлемо большим.
- Ожидание внешнего устройства. Система ждёт ответа от диска, сети или периферии, который не приходит.
- Аппаратный сбой. Перегрев, неисправность памяти, блока питания или накопителя приводят к остановке вычислений.
Полное зависание всей системы называют «зависанием системы» или «фризом» (от англ. freeze), зависание отдельного приложения — «зависанием программы». Кратковременную потерю отзывчивости иногда называют «подтормаживанием» или «лагами».
¶Причины
Причины зависаний делят на программные и аппаратные.
Программные причины включают ошибки в коде (необработанные исключения, утечки памяти, гонки данных), несовместимость версий библиотек и драйверов, повреждение файлов операционной системы, конфликты антивируса с другими приложениями, а также вредоносное программное обеспечение. Значительная часть зависаний связана с драйверами видеокарт и накопителей.
Аппаратные причины — перегрев процессора или видеокарты из-за запылённости и отказа вентиляторов, деградация жёсткого диска и появление «битых» секторов, неисправность модулей оперативной памяти, недостаточная мощность блока питания, плохой контакт в разъёмах. Отдельно выделяют зависания при разгоне компонентов, когда система работает на границе устойчивости.
¶Диагностика
Для выявления причин применяют встроенные и сторонние средства.
В Windows используют «Диспетчер задач» для оценки загрузки процессора, памяти и диска, «Просмотр событий» для анализа системных журналов, «Монитор ресурсов». В Linux применяют утилиты top, htop, dmesg, journalctl, а также анализ системных вызовов через strace. Для проверки оборудования служат тесты памяти (MemTest86), диагностика накопителей (SMART), мониторинг температур (HWMonitor, lm-sensors) и стресс-тесты (Prime95, FurMark).
Типичные признаки указывают на источник: зависание под нагрузкой чаще связано с перегревом или питанием, зависание при запуске конкретной программы — с её кодом или драйверами, внезапные «синие экраны» — с памятью или драйверами.
¶Способы устранения
Универсального решения не существует; действуют по источнику проблемы.
| Симптом | Вероятная причина | Действие |
|---|---|---|
| Зависание под нагрузкой | Перегрев | Чистка от пыли, замена термопасты |
| Зависание при запуске игры | Драйвер видеокарты | Обновление или откат драйвера |
| Постепенное замедление | Утечка памяти | Обновление программы, перезапуск |
| Случайные фризы | Накопитель | Проверка SMART, замена диска |
| Зависание после обновления | Конфликт ПО | Откат обновления |
К базовым мерам относят обновление драйверов и системы, проверку на вирусы, отключение автозагрузки лишних программ, увеличение объёма оперативной памяти, обеспечение достаточного охлаждения. При зависании отдельного приложения помогает принудительное завершение процесса; при зависании всей системы — перезагрузка кнопкой питания, что чревато потерей данных и повреждением файловой системы.
¶Профилактика
Снижение риска зависаний достигается регулярным обслуживанием: очисткой системы охлаждения, контролем температур, своевременным обновлением драйверов и операционной системы, использованием источников бесперебойного питания, резервным копированием важных данных. Для серверов применяют мониторинг и автоматический перезапуск служб, а также «сторожевые таймеры» (watchdog), которые перезагружают систему при потере отзывчивости.
¶Зависание в переносном смысле
Слово «зависает» употребляется и вне техники — для описания задержки, остановки в работе, в разговоре или в переносном значении «задерживаться где-либо». В молодёжном сленге «зависать» означает проводить время в каком-либо месте или за каким-либо занятием. Такое употребление не связано с техническим значением термина, хотя и происходит от него.
¶См. также
Смежные понятия — крах программы, синий экран смерти, утечка памяти, взаимная блокировка, отказоустойчивость, перезагрузка.
Источники: техническая документация Microsoft по диагностике производительности; руководства по администрированию Linux; материалы по аппаратной диагностике ПК; справочные статьи по терминологии вычислительной техники.