Cтраница 1
Новые устройства ввода-вывода и обслуживающие их программы могут быть разработаны и внесены в систему без ее остановки. Устройства могут появляться и исчезать. [1]
![]() |
Центральный концентратор шины USB передает кадры каждую миллисекунду. [2] |
Когда подсоединяется новое устройство ввода-вывода, центральный хаб ( концентратор) распознает это и прерывает работу операционной системы. Затем операционная система запрашивает новое устройство, что оно собой представляет и какая пропускная способность шины для него требуется. Если операционная система решает, что для этого устройства пропускной способности достаточно, она приписывает ему уникальный адрес ( 1 - 127) и загружает этот адрес и другую информацию в регистры конфигурации внутри устройства. Таким образом, новые устройства могут подсоединяться на лету, при этом пользователю не нужно устанавливать новые платы ISA или PCI. Неинициализированные платы начинаются с адреса 0, поэтому к ним можно обращаться. [3]
Пользователи не должны открывать компьютер, чтобы установить новые устройства ввода-вывода. [4]
Главная задача заключается в конверсии программ при переходе на новую машину, новые устройства ввода-вывода и при введении новых ограничений эффективности. В идеальном случае их надо бы полностью переписать, чтобы максимизировать эффективность, но обычно это неосуществимо при существующих ограничениях на длительность переходного периода. Если программы написаны на языке высокого уровня, применяемом и в новой системе, их можно заново откомпилировать и внеся небольшие изменения, успешно использовать. Они, возможно, не будут так эффективны на новой системе, но обычно это-допустимо в продолжение разумного переходного периода. [5]
Следует сказать несколько слов об отладочных версиях. Когда на персональный компьютер устанавливается новое устройство ввода-вывода, то требуется установка драйвера, поставляемого производителем устройства, чтобы оно могло работать. Предположим, что карта IEEE 1394 установлена на компьютере и вроде бы нормально работает. Спустя две недели система внезапно рушится. [6]
Вопрос выбора между статическим или динамическим выделением памяти возникает и при проектировании структур ядра. Значительно проще, если ядро построено, как единая двоичная программа, загружаемая в память для работы. Следствием такого подхода, однако, является то, что для установки каждого нового устройства ввода-вывода необходима перекомпоновка ядра вместе с драйвером нового устройства. Подобным образом работали ранние версии операционной системы UNIX, что всех устраивало, так как новые устройства ввода-вывода добавлялись к мини-компьютерам довольно редко. Сегодня большинство операционных систем позволяют динамически добавлять программы в ядро, со всеми дополнительными сложностями, которые такой подход влечет за собой. [7]
![]() |
Примеры 32-битных транзакций в шине PCI. Во время первых трех циклов. [8] |
Шина PCI очень хорошо подходит для подсоединения высокоскоростных периферических устройств, но использовать интерфейс PCI для низкоскоростных устройств ввода-вывода ( например, мыши и клавиатуры) было бы слишком дорого. Изначально каждое стандартное устройство ввода-вывода подсоединялось к компьютеру особым образом, при этом для добавления новых устройств использовались свободные слоты ISA и PCI. К сожалению, такая схема имеет некоторые недостатки. Например, каждое новое устройство ввода-вывода часто снабжено собственной платой ISA или PCI. Пользователь при этом должен сам установить переключатели и перемычки на плате и увериться, что установленные параметры не конфликтуют с другими платами. Затем пользователь должен открыть системный блок, аккуратно вставить плату, закрыть системный блок, а затем включить компьютер. Для многих этот процесс очень сложен и часто приводит к ошибкам. [9]
Вопрос выбора между статическим или динамическим выделением памяти возникает и при проектировании структур ядра. Значительно проще, если ядро построено, как единая двоичная программа, загружаемая в память для работы. Следствием такого подхода, однако, является то, что для установки каждого нового устройства ввода-вывода необходима перекомпоновка ядра вместе с драйвером нового устройства. Подобным образом работали ранние версии операционной системы UNIX, что всех устраивало, так как новые устройства ввода-вывода добавлялись к мини-компьютерам довольно редко. Сегодня большинство операционных систем позволяют динамически добавлять программы в ядро, со всеми дополнительными сложностями, которые такой подход влечет за собой. [10]
Вопрос выбора между статическим или динамическим выделением памяти возникает и при проектировании структур ядра. Значительно проще, если ядро построено, как единая двоичная программа, загружаемая в память для работы. Следствием такого подхода, однако, является то, что для установки каждого нового устройства ввода-вывода необходима перекомпоновка ядра вместе с драйвером нового устройства. Подобным образом работали ранние версии операционной системы UNIX, что всех устраивало, так как новые устройства ввода-вывода добавлялись к мини-компьютерам довольно редко. Сегодня большинство операционных систем позволяют динамически добавлять программы в ядро, со всеми дополнительными сложностями, которые такой подход влечет за собой. [11]