Архитектура современных операционных систем

154 Возможность мультипроцессорной обработки означает, что различные процедуры драйвера могут одновременно выполняться на различных процессо- рах, поэтому перед обращением к глобальным данным драйвера или регистрам устройства процедуры должны использовать spin-блокировки. Особенно это касается изменения этих данных, да и при чтении тоже важно. Вторая особенность заставляет предусматривать следующее: 1. Каждый драйвер должен иметь процедуру восстановления после отка- за питания. Эту процедуру ядро будет вызывать всякий раз при вос- становлении питания, чтобы процедура привела в рабочее состояние, связанное с драйвером устройство. 2. Драйвер должен обеспечить выполнение критических операций рабо- ты с регистрами устройства без их прерывания, поэтому драйверы пе- ред записью данных на устройство обычно выполняют следующие действия:  проверяют, не произошел ли уже отказ питания;  увеличивает текущий IRQL процессора до уровня прерывания питания;  осуществляет запись данных на устройство;  понижает текущий уровень IRQL до предыдущего уровня. Такими действиями драйвер гарантирует, что критическая операция записи не будет прервана, если будет отключено питание. КОНТРОЛЬНЫЕ ВОПРОСЫ 1. Состав подсистемы ввода-вывода 2. Функции диспетчера ввода-вывода 3. IRP 4. Объект драйвер 5. Объект устройство 6. Драйвер устройства

RkJQdWJsaXNoZXIy MTY0OTYy