Что значит не отвечает программа

Как Windows узнает, что программа не отвечает? Постоянно опрашивает все запущенные приложения?

изменён Sathyajith Bhat 53k
задан ArunPrasanth 922

5 ответов 5

Приложение получает события из очереди, предоставленной Windows.

Если приложение не опрашивает очередь событий некоторое время (5 секунд), например, при выполнении длинных вычислений, то Windows предполагает, что приложение зависло, и предупреждает пользователя.

Чтобы избежать этого, приложения должны передавать дорогостоящие вычисления рабочим потокам или разделять обработку и обеспечивать регулярный опрос очереди.

изменён JakeGould 32k
ответ дан ratchet freak 3k

Как Windows узнает, что программа не отвечает?

Без исходного кода для Windows мы не можем быть уверены, что он делает внутри.

Существует функция Windows SDK IsHungAppWindow которую можно использовать.

Считается, что приложение не отвечает, если оно не ожидает ввода, не находится в процессе запуска и не вызвало PeekMessage в течение внутреннего периода ожидания 5 секунд.

Системный UI остановлено или не отвечает: что делать?

Если окно верхнего уровня перестает отвечать на сообщения более чем на несколько секунд, система считает, что окно не отвечает. В этом случае система скрывает окно и заменяет его призрачным окном, имеющим тот же Z-порядок, местоположение, размер и визуальные атрибуты. Это позволяет пользователю перемещать его, изменять его размер или даже закрывать приложение. Однако это единственные доступные действия, потому что приложение на самом деле не отвечает.

Постоянно опрашивает все запущенные приложения?

Нет. Приложения не опрашиваются, но получают время процессора.

В Windows есть система планирования, которая дает процессору время для потоков приложений.

изменён DavidPostill 106k
ответ дан DavidPostill 106k

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

Например, в Windows нет способа узнать, выполняет ли какое-либо приложение, работающее с числами, без пользовательского интерфейса, запускаемого из командной строки, или, возможно, застрявший в бесконечном цикле.

Интерактивные графические приложения в Windows получают события, непрерывно опрашивая очередь сообщений. Windows заполняет эту очередь сообщений событиями клавиатуры, мыши, таймера и т.д. Если приложению не удается опросить очередь сообщений в течение некоторого времени (5 секунд — это время ожидания, указанное в документации по функции IsHungAppWindow ()), Windows считает приложение «зависшим», что можно указать, изменив заголовок окна (добавив текст). (Не отвечает) «или эквивалентный текст в локализованных версиях) и выделение содержимого окна, если пользователь пытается взаимодействовать с окном.

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

Зависла программа. Что делать

ответ дан Viktor Toth 867

Windows — операционная система, она контролирует все запущенные программы.

Windows связывается с оконными приложениями, используя события. Каждая программа имеет поток, который постоянно прослушивает входящие события и обрабатывает их. Например, когда вы нажимаете кнопку или значок области уведомлений, Windows генерирует событие и передает его в соответствующий процесс. Затем процесс может решить, как с этим справиться.

изменён Community 1
ответ дан gronostaj 28k

Ответ на ваш вопрос — да / нет.

В то время как операционная система Windows может опрашивать и обрабатывать приложения с событиями в очереди сообщений Windows, программы абсолютно не обязаны связываться с WinAPI или обрабатывать / отвечать на очередь Windows. Даже ответ на сообщение в очереди не говорит Windows, была ли программа «заблокирована» или нет. Это показатель, но это все, что есть. Реальный ответ немного сложнее.

Настоящий ответ

Люди обдумывают фактический ответ здесь. Определение того, «не отвечает» ли программа, является вариантом « проблемы остановки », которая формально неразрешима в компьютерной науке.

Читайте также:
Партнерская программа по прокату автомобилей

Краткое объяснение состоит в том, что процессор не может выступать в роли третьей стороны, наблюдающей за собой, чтобы определить, застряла ли подпрограмма в бесконечном цикле, ничего не делая против увеличения счетчика, который завершится на некотором фиксированном нормальном числе. Оба из них можно считать плотно замкнутыми петлями. Один останавливается, другой никогда не закончится. Даже вы, как человек, не знаете, отвечает ли программа на самом деле или нет, особенно если она находится в плотно замкнутом цикле — вы знаете только, если считаете, что она должна (отвечать).

С точки зрения Windows, оба этих цикла «не отвечают». Вот почему Windows дает вам выбор ждать или прекратить, потому что он не может сказать.

Таким образом, следствие является «почему окна знают , что процесс отвечает?«Ответ довольно умный. Когда процесс компилируется в многопоточной и многопроцессорной ОС, иногда даже в сильно замкнутых циклах, компилятор может добавить команду yield() , которая предоставляет удобное уведомление процессору о том, что он может переключиться на другие запущенные процессы , Это «отдает» процессор и «переключение контекста» (как его называют) бывает , что позволяет ОС (Windows включен) , чтобы ответить на другие события в стеке, некоторые из которых включают в себя отслеживание , что процесс ответил.

** Это не означает, что процесс ответа будет прекращен. ** Процесс внутри бесконечного цикла может дать процессор, позволяющий Windows обрабатывать другие события.

В некоторых программах Windows программа обрабатывает сигналы ОС Windows, которые могут сообщить ОС, что она «отвечает», но ни одна программа не обязана это делать. Вы можете написать довольно простую загрузку процессора, программы без прерывания даже на языках более высокого уровня в Windows, таких как perl, php, python и Windows, которые могут не обнаружить, что он не завершает работу и не отвечает. В этот момент Windows зависит от эвристики — загрузки процессора, памяти, сколько прерываний обработал процессор, пока программа работала, чтобы «угадать». Опять же, в этот момент Windows должна попросить вас прекратить работу, потому что она действительно не знает, должна ли она.

Смотрите также ответ Виктора (правильный). Не обращайте внимания на комментарии о том, не «не отвечает» не то же самое, что бесконечный цикл. Существуют всевозможные сообщения, прерывания, циклы, которые приложение может обрабатывать или не обрабатывать, не сообщая об очереди сообщений Windows. Обработка очереди сообщений — это только один из многих видов событий, на которые ОС ведет счетчики, пытаясь угадать , завис ли процесс.

Источник: poweruser.guru

Что значит «процесс не отвечает»?

PSK Group

Многие пользователи компьютеров сталкиваются с проблемой «процесс не отвечает», когда программа перестает реагировать на команды пользователя и висит на экране. В такой ситуации могут возникать разные проблемы — от потери несохраненной информации до полной блокировки системы и необходимости перезагрузки компьютера.

В данной статье мы рассмотрим, что значит «процесс не отвечает» и как можно попробовать решить эту проблему. Мы рассмотрим возможные причины появления этой ошибки и дадим рекомендации по устранению проблемы, чтобы ваш компьютер работал стабильно и без сбоев.

Что такое «процесс не отвечает»?

«Процесс не отвечает» — это сообщение, которое появляется на экране компьютера, когда программа прекращает свою работу и перестает реагировать на команды пользователя.

Такое сообщение может вызывать различные проблемы, например, невозможность сохранения данных, потеря информации, а также сбой в работе операционной системы.

Причины появления сообщения «процесс не отвечает» могут быть различными: неправильная работа программы, отсутствие необходимых ресурсов, несовместимость программного обеспечения и т.д.

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

  • Некоторые полезные советы:
  • Периодически проверяйте свои программы на наличие обновлений;
  • Используйте лицензионное программное обеспечение;
  • Не устанавливайте программы из ненадежных источников.

Причины возникновения проблемы «процесс не отвечает»

Проблема «процесс не отвечает» может возникнуть по нескольким причинам. Одна из главных — это слишком большая нагрузка на процессор. Если приложение потребляет слишком много ресурсов, то операционная система может не успеть обработать все запросы и процесс перестанет отвечать на команды пользователя.

! Идеальное преступление: что это значит?

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

Читайте также:
Как поменять программу для просмотра изображений по умолчанию

Также, проблема «процесс не отвечает» может возникнуть из-за неполадок в самом приложении. Некорректно написанный код, неправильная работа с памятью, некорректное завершение процесса — все это может привести к тому, что процесс перестанет отвечать на команды.

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

Как определить «процесс не отвечает»?

Когда вы запускаете приложение на компьютере, оно начинает выполнять свою работу. Обычно процесс работает так, как задумал разработчик. Но иногда приложение может «зависнуть», не реагируя на команды пользователя. В таком случае операционная система сообщает о том, что «процесс не отвечает».

Чтобы определить, что процесс не отвечает, нужно обратить внимание на следующие признаки:

  • Мышь и клавиатура не реагируют на действия пользователя.
  • Курсор мыши не двигается.
  • Нет отклика на команды, нажатия клавиш на клавиатуре.
  • Приложение не переключается в фоновый режим.

Если вы заметили, что приложение не отвечает, попробуйте нажать клавишу Ctrl+Alt+Delete. Если у вас находится компьютер с Windows, то откроется окно диспетчера задач, где вы можете завершить процесс или перезапустить приложение. Если вы используете компьютер с MacOS, то нужно зажать клавиши Command+Option+Escape, чтобы открыть окно «Зависшие приложения». В этом окне можно выбрать приложение и попробовать завершить его работу.

Как устранить проблему «Процесс не отвечает»?

1. Закройте окно программы, вызывающей проблему:

  • Щелкните правой кнопкой мыши по панели задач Windows и выберите «Диспетчер задач».
  • Найдите неотвечающее приложение в списке и нажмите на кнопку «Завершить задачу».

! Что такое иную информацию?

2. Перезагрузите компьютер:

  • Нажмите на кнопку «Пуск» в левом нижнем углу экрана.
  • Выберите «Выключить компьютер».
  • Нажмите на кнопку «Перезагрузить».

3. Обновите драйверы:

  • Найдите название вашего компьютера в меню «Пуск» и щелкните правой кнопкой мыши.
  • Выберите «Управление устройствами».
  • Найдите устройство, вызывающее проблему, и нажмите на кнопку «Обновить драйвер».

4. Выполните диагностику системы:

Windows 10: Нажмите на кнопку «Пуск» и выберите «Параметры».
Windows 8: Нажмите на клавишу Win+X и выберите «Панель управления».
Windows 7: Выберите «Панель управления» из меню «Пуск».

5. Установите обновления:

  • Найдите кнопку «Пуск» в левом нижнем углу экрана и щелкните на ней.
  • Выберите «Настройки».
  • Нажмите на кнопку «Обновление и безопасность».
  • Выберите «Получить обновления».

Если ни один из этих способов не помог, обратитесь к специалисту.

Профилактика «процесса не отвечает»

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

Вот несколько простых рекомендаций:

  • Избегайте одновременного запуска нескольких программ. Это может повлечь за собой их перегрузку и замедление работы, в результате чего они могут перестать реагировать когда-либо.
  • Регулярно чистите компьютер от мусорных файлов и кэшей. Они занимают много места на жестком диске и отнимают ресурсы процессора и оперативной памяти, что может спровоцировать сбой в работе программы.
  • Обновляйте драйвера всех устройств с определенной периодичностью. Устаревшие или несовместимые драйвера могут быть причиной сбоя.
  • Устанавливайте антивирусное программное обеспечение и регулярно производите его проверку. Вирусы, трояны и другие вредоносные программы могут искажать работу программ, в результате чего они могут перестать отвечать.

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

! Что означают номера 302

Вопрос-ответ

Что такое «процесс не отвечает»?

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

Как исправить ошибку «процесс не отвечает»?

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

Какие программы чаще всего вызывают ошибку «процесс не отвечает»?

Это может быть любая программа, но чаще всего эта ошибка возникает при использовании ресурсоемких программ, таких как программы для обработки видео, графики, игры и т.д. Также это может происходить при использовании программ, которые работают с большими объемами данных.

Как узнать причину ошибки «процесс не отвечает»?

Существует несколько способов выявления причины ошибки. Во-первых, можно посмотреть в диспетчере задач, сколько оперативной памяти использует программа в момент ошибки. Также можно обратить внимание на то, что делали на компьютере до возникновения ошибки. Если ошибка возникает при запуске определенной программы, то можно попробовать переустановить ее или обратиться за помощью к разработчикам.

Что делать, если ошибка «процесс не отвечает» возникает постоянно?

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

Источник: psk-group.su

Читайте также:
Программы для бухгалтеров самые актуальные

Особенности работы с не отвечающими системе приложениями

Если во время работы какая-то программа перестает реагировать на нажатие клавиш или при перемещении мыши по столу ее указатель не перемещается по экрану, значит, программа перестала реагировать на запросы системы или, как говорят, “зависла”. Для работы с программами в состав Windows ХР входит программа Диспетчер задач (Task Manager).

Проще всего запустить эту служебную программу, нажав одновременно на клавиатуре клавиши. В случае, если зависание системы не критическое, то появится рабочее окно диспетчера задач. Его появление говорит о том, что зависла не вся система, а какая-либо из программ, работающих под ее управлением.

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

Причин зависания программы может быть очень много. Например, программе не хватает памяти, или осталось мало места на диске, а программе оно понадобилось. Возможен также конфликт оборудования вашего компьютера. Если раньше все работало нормально, а теперь программа зависает, постарайтесь вспомнить, что вы делали с компьютером в последнее время.

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

Прежде, чем искать причину зависания, необходимо завершить работу зависшей программы. Для этого используется программа Диспетчер задач (Task manager), в рабочем окне которой имеется несколько вкладок, содержащих списки выполняющихся задач, процессов, индикатор загрузки системы и некоторую другую информацию (Рис. 14.3).

Рис 14.3. Окно диспетчера задач

На первой вкладке расположен список запущенных программ. Каждый элемент списка обозначает отдельную программу. Кроме названия программы отображается ее состояние. Наличие в этом списке слова Не отвечает (No response) говорит о том, что, скорее всего данная программа зависла. Хотя справедливости ради следует отметить, что программа может зависнуть и без появления этой надписи.

Если в списке есть зависшие задачи, чтобы их завершить, необходимо выбрать задачу, выделив соответствующий элемент списка. Затем необходимо щелкнуть на выделенном элементе правой кнопкой мыши. Появится вспомогательное меню, в котором следует выбрать команду завершения задачи. Задача будет завершена и ее имя исчезнет из списка задач.

Также можно воспользоваться кнопкой Снять задачу (End Task) в окне диспетчера задач. Появится диалог, требующий подтверждения необходимости завершения программы.

Если вы уверены, что данная программа зависла окончательно и вам не удастся восстановить ее работу, нажмите кнопку Завершить сейчас (End Now). Диалог будет закрыт, а работа не отвечающей программы будет принудительно завершена.

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

Источник: www.taurion.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru