Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Konspekt1.doc
Скачиваний:
86
Добавлен:
21.11.2018
Размер:
3.2 Mб
Скачать

Распределение системных ресурсов

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

Для адресов памяти и портов ввода-вывода бесконфликтность означает, что диапазоны соответствующих адресов всех имеющихся устройств не должны пе­рекрываться. Это в первую очередь касается адресов, по которым выполняется чтение.

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

Конфликт по адресам для записи часто сознательно используют для одновременной передачи инфор­мации в несколько устройств (например, в PnP ISA,). Информация при этом не искажается. Однако незапланированные конфликты по записи могут приводить к неожиданным побочным эффектам в работе устройств, не ожидаю­щих данной записи.

Для самого главного ведущего устройства — центрального процессора — безразлично, к какой из шин подключено устройство: он задает только адрес и тип операции. Операции записи могут выполняться широкове­щательно — распространяться по всем шинам. Операции чтения маршрутизи­руются — фактически, чтение по конкретному адресу памяти или порта обычно выполняется только с одной из шин. В иерархии шин PCI мосты выполняют маршрутизацию для всех транзакций.

Для линий запросов прерываний бесконфликтность трактуется несколько слож­нее. В классической системе ISA одну линию запроса может использовать толь­ко одно устройство, все остальные варианты —. конфликтные. В системах РпР ISA (имеющих PnP BIOS, более гибко программируемый контроллер прерыва­ний и устройства ISA PnP) при корректных настройках устройства РпР аппаратно могут использовать разделяемые (общие для нескольких устройств) линии прерываний. На обычные карты (устройства) ISA эта возможность, как правило, не распространяется. Однако и для устройств РпР возможны кон­фликты программ, работающих с этими устройствами, если в них не заложена возможность разделяемое™ прерываний.

В системах с PCI разделяемость пре­рываний аппаратно предусмотрена, но опять-таки возможны программные кон­фликты (и некорректно спроектированные карты). В комбинированных систе­мах ISA/PCI доступные линии запросов прерываний делятся между устарев­шими (legacy) устройствами ISA и устройствами PnP ISA и PCI, во второй группе разделяемые прерывания, в принципе, допустимы (но при «правиль­ном» ПО).

Для каналов DMA (контроллеров 8237А) бесконфликтным, как правило, явля­ется лишь монопольное использование канала одним устройством (хотя быва­ют редкие исключения). На устаревших устройствах каналы выбираются двумя джамперами — один для линии DRQx, другой для DACKx#. Естественно, они должны устанавливаться согласованно, на один и тот же номер канала.

Периферийные устройства могут быть встроены в системную плату, а также ус­танавливаться в слоты шин расширения. Системные ресурсы должны распреде­ляться между всеми этими устройствами. В распределении всегда имеются от­носительно неизменная часть (устройства системной платы, установленные ее изготовителем) и переменная часть, определяемая составом карт, установлен­ных пользователем. Настройкой CMOS Setup могут быть заданы ресурсы уст­ройств системной платы, а часть из них может быть даже отключена, если вме­сто них используются адаптеры, установленные в слоты расширения. Правда, бывают случаи, когда штатное отключение (настройкой CMOS Setup),не помо­гает: отключают обычно неисправную периферию, но «сгореть» она может и вместе со своим «выключателем». В этом случае приходится неисправную периферийную микросхему отключать физически (отпаивать; для микросхем CMOS по крайней мере отпаять вывод питания +5 В).

Ресурсы устанавливаемых карт задаются либо вручную, либо автоматически, в зависимости от возможностей шин, карт расширения и BIOS. Цель полной автоматизации — достичь идеала PnP (Plug-and-Play — «вставляй и играй»), когда от пользователя требуется лишь механически установить новое устройст­во, а дальше все распределения и установки драйверов выполняются без его участия. Однако у скептиков есть и другая расшифровка акронима PnP — Plug-and-Pray («включай и... молись»), имеющая под собой вполне реальную основу.

Наиболее распространенными для подключения карт расширения PC являют­ся шины ISA и PCI. В шину PCI изначально были заложены возможности авто­матического конфигурирования устройств, и она поддерживает механизм PnP в полном объеме. Шина ISA не имела механизмов автоматического конфигурирования и распределения ресурсов, так что все заботы по конфигу­рированию устанавливаемых адаптеров и разрешению конфликтов ложились на пользователя. Задача конфигурирования осложнялась и из-за отсутствия об­щих средств автоматической передачи установленных параметров прикладно­му и системному программному обеспечению. После конфигурирования адап­теров, выполняемого обычно переключением джамперов (хорошо, если имелась документация с их описанием), установленные параметры заносились в ка­кие-либо конфигурационные файлы, специфичные для каждого программного' продукта. Для смены конфигурации (а такая необходимость обычно возникает только в процессе использования устройств или при добавлении новых) всю кропотливую работу по конфигурированию приходилось проводить повторно. При этом, естественно, возможны ошибки. Неподготовленному пользовате­лю эта работа может показаться непосильной, и он зовет на помощь профес­сионала.

Некоторое облегчение конфигурирования принесло применение в адаптерах энергонезависимой памяти (NVRAM или ее разновидности — EEPROM), хра­нящей параметры, в том числе параметры использования системных ресурсов. Конфигурирование этих адаптеров выполняется программно специальной ути­литой, а не с помощью джамперов. Отсюда и два их названия: Software Con­figured (программно конфигурируемые) или Jumperless (свободные от джампе­ров).

Помимо «явно полезных» устройств конфигурированию подлежат и мосты PCI, соединяющие все шины современных ПК. При конфигурировании мостов им указывается распределение системных ресурсов по шинам, которые они свя­зывают. Таким образом задаются пути транслирования управляющих сигналов по шинам с соответствующим управлением буферами данных. Конфигурирова­ние мостов, как правило, происходит незаметно для пользователя, хотя некото­рыми параметрами (выделением определенных ресурсов) можно управлять с помощью CMOS Setup.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]