Технический форум

Технический форум (http://www.tehnari.ru/)
-   Компьютерное железо (http://www.tehnari.ru/f15/)
-   -   Выключение компьютера при установке игр/объемных файлов. Появление BSOD. (http://www.tehnari.ru/f15/t19600/)

Hottabych 08.01.2009 00:47

Блин, спутал с B8 с 8B... Только там по-моему про 2000 написано

knife 08.01.2009 00:53

не ребята с оперой все нормально менял местами и по одной ставил,разгоном не балывался
ATTEMPTED_SWITCH_FROM_DPC (b8) действие ожидания, подключает процесс, или продукта попытались из программы DPC.

Это - незаконное действие и дорожка кипы проведет к обиженной кодовой и оригинальной программе DPC.

knife 08.01.2009 00:54

перевод тупой но все же! что такое DPC?

Артём 08.01.2009 01:03

Глянь в диспетчере - может этот DPC (Deferred Procedure Calls) и вешает систему? Сам процесс в таск-менеджере винды будет скрытым, но процессор грузит процентов на 15-20.

Артём 08.01.2009 01:04

Прерывания DPC или диспетчеризации.

Когда дальнейшее выполнение потока невозможно, например из-за его завершения или перехода в ждущее состояние, ядро напрямую обращается к диспетчеру, чтобы вызвать немедленное переключение контекста. Однако иногда ядро обнаруживает, что перераспределение процессорного времени (rescheduling) должно произойти при
выполнении глубоко вложенных команд. В этой ситуации идеальный выход — запросить диспетчеризацию, но саму операцию отложить до выполнения ядром текущих действий. Такую задержку удобно организовать с помощью программного прерывания DPC (deferred procedure call).
При необходимости синхронизации доступа к разделяемым структурам ядра последнее всегда повышает IRQL процессора до уровня «DPC/dispatch» или выше. При этом дополнительные программные прерывания и диспетчеризация потоков запрещаются. Обнаружив необходимость в диспетчеризации, ядро генерирует прерывание уровня «DPC/dispatch». Но поскольку IRQL уже находится на этом уровне или выше, процессор откладывает обработку этого прерывания. Когда ядро завершает свои операции, оно определяет, что должно последовать снижение IRQL ниже уровня «DPC/dispatch», и проверяет, не ожидают ли выполнения отложенные прерывания диспетчеризации. Если да, IRQL понижается до уровня «DPC/dispatch», и эти отложенные прерывания обрабатываются. Активизация диспетчера потоков через программное прерывание — способ отложить диспетчеризацию до подходящего момента. Однако Windows 2000 использует программные прерывания для отложенного выполнения и других операций.
При этом IRQL ядро обрабатывает не только диспетчеризацию потоков, но и DPC. DPC — это функция, выполняющая системную задачу, менее критич-
ную по времени в сравнении с текущей. Эти функции называются отложенными (deferred), так как не требуют немедленного выполнения.
DPC позволяют операционной системе генерировать прерывания и выполнять системные функции в режиме ядра.
Ядро использует DPC для обработки прерываний по таймеру (и освобождения потоков, ждущих на таймерах), а также для перераспределения процессорного времени по истечении кванта времени, отведенного текущему потоку.
Драйверы устройств используют DPC для выполнения запросов ввода-вывода. Для своевременного обслуживания аппаратных прерываний Windows 2000 — во взаимодействии с драйверами устройств — пытается удерживать текущий IRQL ниже IRQL устройств. Один из способов достижения этой цели заключается в следующем. ISR должна выполнять минимум действий по обслуживанию своего устройства, сохранять переменные данные о состоянии прерывания и откладывать передачу данных или выполнение других не столь критичных по времени операций, как
DPC, до снижения IRQL к уровню «DPC/dispatch» (подробнее о DPC и системе ввода-вывода см. главу 9).
DPC представляется DPC-объектом, управляющим объектом ядра, невидимым программам пользовательского режима, но видимым драйверам и системному коду. Наиболее важной частью информации DPC-объекта является адрес системной функции, которую ядро должно вызвать для обработки прерывания DPC. DPC-процедуры, ожидающие выполнения, хранятся в управляемых ядром очередях (по одной на каждый процессор). Эти очереди называются очередями DPC. Запрашивая DPC, системный код вызывает ядро для инициализации DPC-объекта и помещает его в очередь DPC.
По умолчанию ядро помещает DPC-объекты в конец очереди DPC процессора, на котором был запрошен DPC (как правило, это процессор, на котором выполняется ISR). Однако драйвер устройства может изменить это, указав приоритет DPC (низкий, средний или высокий; по умолчанию — средний) или направив DPC конкретному процессору. DPC, направленный конкретному процессору, называется целевым DPC (targeted DPC). Если у DPC низкий или средний приоритет, ядро помещает DPC-объект в конец очереди, а если у DPC высокий приоритет, то — в начало.
Когда IRQL процессора вот-вот понизится с уровня «DPC/dispatch» или более высокого до уровня «АРС» или «passive», ядро переходит к обработке всех DPC. Windows 2000 оставляет IRQL на уровне «DPC/dispatch» и извлекает все DPC-объекты из очереди данного процессора (т. е. ядро опустошает очередь), поочередно вызывая каждую DPC-функцию. Ядро разрешает уменьшить IRQL ниже уровня «DPC/dispatch» для продолжения выполнения обычных потоков только после опустошения очереди.
Приоритеты DPC могут влиять на поведение системы и иным способом. Обычно ядро начинает опустошение очереди DPC с прерывания уровня «DPC/ dispatch». Такое прерывание генерируется ядром, только если DPC направлен на процессор, на котором выполняется ISR, и DPC имеет средний или высокий приоритет. Если у DPC низкий
приоритет, ядро генерирует прерывание, только если число незавершенных запросов DPC превышает пороговое значение или если число DPC, запрошенных на процессоре за установленный период, невелико. Если DPC направлен другому процессору (не тому, на котором выполняется ISR) и его приоритет высокий, ядро немедленно посылает ему диспетчерское IPI, сигнализируя целевому процессору о необходимости опустошения его очереди DPC. Если приоритет DPC средний или низкий, для появления прерывания
«DPC/dispatch» число DPC в очереди целевого процессора должно превышать пороговое значение. Системный поток простоя также опустошает очередь DPC процессора, на котором он выполняется. Хотя уровни приоритета и направление DPC являются довольно гибкими средствами, у драйверах устройств редко возникает необходимость в изменении заданного по умолчанию поведения своих DPC-объектов.
Поскольку потоки пользовательского режима выполняются при низком IRQL, вероятность того, что DPC прервет выполнение обычного пользовательского потока, довольно велика. DPC-процедуры выполняются независимо от того, какой поток работает в настоящий момент. Это означает, что выполняемая DPC-процедура не в состоянии предугадать текущий размер спроецированного адресного пространства процесса. DPC-процедуры могут вызывать функции ядра, но не могут обращаться к системным сервисам, генерировать ошибки страницы, создавать или ждать объекты диспетчера. Однако они способны получать доступ к неподкачиваемым областям системной памяти, поскольку системное адресное пространство всегда спроецировано независимо от того, что представляет собой текущий процесс.
DPC используются не только драйверами, но и ядром. Ядро чаще всего применяет DPC для обработки ситуации, когда истекает выделенный квант времени. При каждом такте системного таймера генерируется прерывание с IRQL-уровнем «clock». Обработчик прерываний таймера (выполняемый при IRQL, равном «clock») обновляет системное время и уменьшает значение счетчика, отслеживающего время выполнения текущего потока. Когда значение счетчика обнуляется, квант времени, отведенный потоку, заканчивается, и ядру может понадобиться перераспределить процессорное время — эта задача имеет более низкий приоритет и должна выполняться при IRQL, равном «DPC/dis-patch». Обработчик прерываний таймера ставит DPC в очередь, чтобы инициировать диспетчеризацию потоков, после чего завершает свою работу и понижает IRQL процессора. Поскольку приоритет прерываний DPC ниже, чем аппаратных, перед генерацией прерывания DPC сначала обрабатываются все аппаратные прерывания, возникающие до завершения обработки прерывания таймера.

knife 08.01.2009 01:06

на сколько я понял из этого перевода что копируется сразу много дорожек у меня после копирывания cd mp3 и перезагрузки в папке первые 50 треков и с 200 по140
то есть получается что диск как то странно копируется с начала и одновременно с конца или я чтото не понимаю

Артём 08.01.2009 01:09

:D :D Одна версия другой лучше... Мы так скоро стопиццот страниц на форуме набъем... Так воть, трабла в кривых драйверах/драйвере. Начни с замены на звуковуху, потом на видео.

knife 08.01.2009 01:10

талмут прочитал но мало понял потом перечитаю.делать то что надо?

knife 08.01.2009 01:14

а при чем тут звуковуха? тут ведь с передачей файлов проблема значит на жесткий дрова нужны?

Артём 08.01.2009 01:15

Цитата:

... трабла в кривых драйверах/драйвере. Начни с замены на звуковуху, потом на видео.
Цитата:

Сообщение от knife (Сообщение 162670)
... тут ведь с передачей файлов проблема значит на жесткий дрова нужны?

возможно что и так.. Пробуй все варианты.


Часовой пояс GMT +4, время: 08:44.

Powered by vBulletin® Version 4.5.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.