-Поиск по дневнику

Поиск сообщений в AliFerster

 -Музыка


Мысль 0x0268. Монитор ресурсов (цитата с аськи)

Четверг, 09 Декабря 2010 г. 13:09 + в цитатник
ваа((
монитор ресурсов страдает склерозом!
я давно уже хотел иметь возможность приостанавливать/возобновлять процессы
особенно, если они в простое хавают 50 - 100% проца, а закрывать нежелательно
но, как показал однажды случай с отчимовой игрушкой, использовать для этого ArtMoney (в нём есть Пауза/Пуск) нежелательно - я его игрушку приостановил, а возобновиться она не смогла - и отчим заново проходил около 3 часов игры (там была такая жесть - несколько часов нужно было играть без сохранений)
а вот вчера решил заюзать Монитор ресурсов в Win7 - в нём можно приостановить/возобновить процесс
проверил пару раз - вроде всё ок
приостановил, лёг спать
ща встаю - а монитор ресурсов забыл, что я приостановил тот процесс, и предлагает его снова приостановить
я пару раз снова дал паузу/пуск - не работает, потому что первая блокировка не снята
потом этот монитор ресурсов внезапно вспомнил, что я уже приостанавливал процесс
стал я его возобновлять
у меня винда примерно на минуту упала, экран то гас, то загорался, NumLock и другие клавишы - НЕ работали
а потом развисла, всё норм, процесс живёт

Чего я особенно боялся в ту минуту - возникновения BSOD: IRQL_NOT_LESS_OR_EQUAL.
Метки:  

Optical_Race   обратиться по имени Понедельник, 15 Августа 2011 г. 02:04 (ссылка)
Пользуйся SysInternals Process Explorer.

А при чем тут IRQL_NOT_LESS_OR_EQUAL? Этот крах наступает обычно из-за глючных драйверов, а если у тебя таковых нет - то и сбоя системы возникнуть не должно.
Ответить С цитатой В цитатник
Перейти к дневнику

Понедельник, 15 Августа 2011 г. 11:28ссылка
Optical_Race, я полагаю, этот сбой может произойти при попытке возобновить процесс, чей рабочий набор выгружен в файл подкачки. Если у диспетчера потоков "проскользнёт" ошибка страницы. А симптомы (гашение экрана, отказ клавиатуры) явно намекали на то, что выполнить запрошенную операцию системе далось непросто.
Optical_Race   обратиться по имени Понедельник, 15 Августа 2011 г. 18:39 (ссылка)
Ситуации вроде той, что ты описал, не должны происходить при нормальной работе в любых обстоятельствах. Синий экран - это следствие либо ошибки в ядре Windows, либо ошибки в драйверах, антивирусе, либо отказа оборудования.

Я изучал исходники ReactOS (операционная система с открытым кодом, стремящаяся повторить архитектуру винды), в том числе - код, отвечающий за остановку потоков. Знаешь, как останавливается поток или процесс?

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

Остановка потока происходит путем вызова Kernel-mode APC. Это похоже на аппаратное прерывание. Поток приостанавливает исполнение кода, заложенного в него программистом, и исполняет некую процедуру, а потом возвращается к исполнению основного кода. Так вот, а процедура эта, в случае остановки потока, содержит вызов функции ожидания события (события возобновления потока). Так вот все нехитро все сделано.

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

Добавить комментарий:
Текст комментария: смайлики

Проверка орфографии: (найти ошибки)

Прикрепить картинку:

 Переводить URL в ссылку
 Подписаться на комментарии
 Подписать картинку