Почему же прерываний недостаточно, если плат расширения обычно подключено не более трех-четырех?
Дело в том, что некоторые прерывания уже закреплены за системными устройствами, поэтому свободных остается совсем немного. Кроме того, существуют устройства, которые норовят занять более одного прерывания (если в плате совмещены несколько различных устройств). Хорошо еще, что современные устройства для шины PCI, как правило, «знают» о проблемах с недостатком прерываний, и часто вполне могут уживаться на одном прерывании вдвоем или даже втроем. Впрочем, несложно догадаться, что стабильность и скорость работы системы от этого снижается.
Рассмотрим кратко, каким образом используются прерывания и какие из них можно выделить для плат расширения.
Прерывание 0 – наиболее приоритетное, жестко закреплено за системным таймером. Оно не может быть использовано каким-либо другим устройством.
Прерывание 1 – жестко закреплено за контроллером клавиатуры. Таким образом, сигналы от клавиатуры по умолчанию являются наиболее приоритетными пользовательскими сигналами. Первое прерывание не может быть назначено какому-либо другому устройству.
Прерывание 2 – имеет техническое значение. С его помощью изначальное количество прерываний путем некоторых системных манипуляций в свое время было увеличено с 8 до 16. Таким образом, это прерывание также не может быть использовано каким-либо устройством.
Прерывание 3 – обычно используется вторым последовательным портом компьютера. Если это так, то оно не может быть назначено другим устройствам. Однако если данный порт не нужен, то его можно отключить, и тем самым прерывание 3 освободится для использования другими устройствами.
Прерывание 4 – аналогично использованию прерывания № 3 только для первого последовательного порта.
Прерывание 5 – изначально является свободным и может назначаться различным устройствам по усмотрению пользователя (или операционной системы, если в ней предусмотрена автоматическая настройка).
Прерывание 6 – жестко закреплено за контроллером привода гибких дисков. Оно не может использоваться какими-либо другими устройствами (за исключением случая, когда привод гибких дисков в системе отсутствует и BIOS может сообщить операционной системе об этом).
Прерывание 7 – обычно используется параллельным портом компьютера. Однако если данный порт не нужен, то его можно отключить, а прерывание 7 назначить другим устройствам.
Прерывание 8 – жестко закреплено за часами реального времени и не может быть использовано другими устройствами.
Прерывание 9 – изначально является свободным и может использоваться платами расширения по усмотрению пользователя или операционной системы. Однако довольно часто данное прерывание использует система расширенного управления питанием или контроллер USB-порта, так что претендентов на него вполне достаточно.
Прерывание 10 – является изначально свободным и может использоваться платами расширения по усмотрению пользователя или операционной системы.
Прерывание 11 – также является изначально свободным и может использоваться платами расширения по усмотрению пользователя или операционной системы. Однако обычно оно закрепляется за видеоадаптером, если, конечно, для него вообще выделено отдельное прерывание.
Прерывание 12 – жестко закреплено за мышью, подключаемой к порту PS/2. Поскольку большинство современных компьютеров оснащены именно такой мышью, прерывание 12 оказывается занятым. Если PS/2-мышь в системе отсутствует, то прерывание можно освободить и назначить другим устройствам.
Прерывание 13 – жестко закреплено за встроенным или внешним математическим сопроцессором. Даже если такой отсутствует (например, используется система на базе процессора 80 386SX при отсутствующем сопроцессоре 80 387), прерывание 13 остается занятым, и другие устройства не могут его использовать.
Прерывание 14 – жестко закреплено за первым каналом контроллера IDE. Обычно IDE-контроллер в системе используется, поэтому о назначении прерывания 14 платам расширения можно забыть.