Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Устройства ввода-вывода



Память не является единственным ресурсом, которым должна управлять операционная система. Устройства ввода-вывода также тесно взаимодействуют с операционной системой. Как видно из рис. 1.5, устройства ввода-вывода обычно состоят из двух частей: контроллера и самого устройства. Контроллер — это микросхема или набор микросхем на вставляемой в разъем плате, физически управляющая устройством. Он принимает команды операционной системы, например указание прочитать данные с устройства, и выполняет их.

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

Действия, выполняемые при запуске устройства ввода-вывода и получении прерывания (а); обработка прерывания включает в себя получение прерывания, переход к обработчику прерываний и возврат к программе пользователя (б)

Следующей частью является само устройство. Устройства имеют достаточно простые интерфейсы, во-первых, потому что их возможности весьма невелики и, во-вторых, потому что нужно привести их к единому стандарту. Единый стандарт необходим, чтобы любой IDE-контроллер диска мог управлять любым IDE-диском. Аббревиатура IDE образована от Integrated Drive Electronics (встроенный интерфейс накопителей). IDE-интерфейс является стандартным для дисков на компьютерах с процессором Pentium, а также некоторых других компьютерах. Поскольку настоящий интерфейс устройства скрыт с помощью контроллера, операционная система видит только интерфейс контроллера, который может сильно отличаться от интерфейса самого устройства.

Так как все типы контроллеров отличаются друг от друга, для управления ими требуется различное программное обеспечение. Программа, которая общается с контроллером, отдает ему команды и получает ответы, называется драйвером устройства. Каждый производитель контроллеров должен поставлять драйверы для поддерживаемых им операционных систем. Теоретически драйверы могут работать вне ядра, но такую возможность поддерживают всего несколько существующих систем, так как для этого требуется, чтобы драйвер в пространстве пользователя имел доступ к устройству неким контролируемым способом — очень редко поддерживаемое свойство. Есть три способа установки драйвера в ядро. Первый заключается в том, чтобы заново скомпоновать ядро вместе с новым драйвером и затем перезагрузить систему. Так работает множество систем UNIX. Второй: создать запись во входящем в операционную систему файле, говорящую о том, что требуется драйвер, и затем перезагрузить систему. Во время начальной загрузки операционная система сама находит нужные драйверы и загружает их. Так работает система Windows. При третьем способе операционная система может принимать новые драйверы, не прерывая работы, и оперативно устанавливать их, не нуждаясь при этом в перезагрузке. Этот способ редко используется, но сейчас он становится все более и более распространенным. Такие съемные устройства, как шины USB и IEEE 1394 (мы поговорим о них ниже), всегда нуждаются в динамически загружаемых драйверах.

Для связи с каждым контроллером существует небольшое количество регистров. Например, минимальный контроллер диска может иметь регистры для определения адреса на диске, адреса в памяти, номер сектора и направления операции (чтение или запись). Чтобы активизировать контроллер, драйвер получает команду от операционной системы, затем транслирует ее в величины, подходящие для записи в регистры устройства.

На некоторых компьютерах регистры устройств отображаются в адресное пространство операционной системы, поэтому их можно читать или записывать как обычные слова в памяти. На таких машинах не нужны специальные команды ввода-вывода, а программы пользователей можно оградить от аппаратуры, помещая эти адреса в памяти за пределами досягаемости программ (например, с помощью базового и предельного регистров). На других компьютерах регистры устройств располагаются в специальных портах ввода-вывода, и каждый регистр имеет свой адрес порта. На этих машинах в режиме работы ядра доступны команды IN и OUT, они позволяют драйверам считывать и записывать регистры. Первая схема устраняет необходимость специальных команд ввода-вывода, но использует некоторое количество адресного пространства. Вторая схема не затрагивает адресное пространство, но требует наличие специальных команд. Обе схемы широко используются.

+ вопрос №14 о способах ввода-вывода

Шины

В современной компьютерной системе существует восемь шин:

— шина кэша (между центральным процессором и кэшом второго уровня);

— локальная шина (между центральным процессором и PCI-мостом);

— шина памяти;

— PCI (Peripheral Component Interconnect — универсальная последовательная шина);

— SCSI (Small Computer System Interface — системный интерфейс малых компьютеров);

— USB (Universal Serial Bus);

— IDE (Integrated Drive Electronics);

— ISA (Industry Standard Architecture, промышленная стандартная архитектура);

— IEEE 1394 (FireWire).

Были основными шинами ISA и ее приемник PCI. Шина ISA работает на частоте 8,33 МГц и может передавать два байта за такт с максимальной скоростью 16,67 Мбайт/с.Шина PCI работает на частоте 66 МГц и может передавать восемь байта за такт с максимальной скоростью 528 Мбайт/с. Шина памяти работает на частоте 100 МГц. Шина USB была придумана для того, чтобы присоединить к компьютеру все медленные устройства ввода-вывода. Она использует маленький четырехпроводной разъем, причем два провода поставляют электропитание к USB-устройствам. USB — это централизованная шина, по которой главное устройство каждую миллисекунду опрашивает устройства ввода-вывода, чтобы узнать, есть ли у них данные. Она может управлять загрузкой данных со скоростью 1,5 Мбайт/с. Все USB-устройства используют один драйвер, избавляя нас тем самым от необходимости перезагрузки новых драйверов для каждого

нового USB-устройства. Шина SCSI — это высокоскоростная производительная шина, применяемая для быстрых дисков, сканеров и других устройств, нуждающихся в значительной пропускной способности. Ее производительность достигает 160 Мбайт/с. Шина SCSI используется в системах

Macintosh с момента их появления, кроме того, она популярна в UNIXсистемах. Шину IEEE 1394 иногда называют FireWire. Строго говоря FireWire — это название, данное компанией Apple собственной реализации шины IEEE 1394. Как и USB, IEEE 1394 является битпоследовательной шиной, но она использует пакетную передачу данных со скоростью, достигающей 50 Мбайт/с. Это ее свойство позволяет подключать к компьютеру портативные цифровые видеокамеры и тому подобные устройства. В отличие от USB шина IEEE 1394 не имеет центрального контроллера. Шины SCSI и IEEE 1394 конкурируют с разработанной более быстрой версией шины USB. Операционная система должна распознавать аппаратные составляющие и уметь их настраивать. Это требование привело компании Intel и Microsoft к разработке системы персонального компьютера, называемой plag and play („включи и работай\). В основе этой системы лежала концепция, близкая к той, что была впервые реализована компанией Apple Macintosh. До появления plag and play каждая плата ввода-вывода имела фиксированные адреса регистров ввода-вывода и уровень запроса прерывания. Все было хорошо до тех пор, пока пользователь не покупал устройства с одинаковым уровнем запроса на прерывания. В этом случае они конфликтовали и не могли работать. Возможным решением было встроить набор DIP-выключателей или джамперов в каждую плату и объяснить пользователю необходимость настройки каждой платы таким образом, чтобы адреса портов и номера прерываний различных устройств не конфликтовали друг с другом.

Стандарт plag and play позволяет системе автоматически собирать информацию об устройствах ввода-вывода, централизованно назначать уровни прерывания и адреса ввода-вывода, а затем сообщать каждой плате эту информацию. На каждой материнской плате находится программа называемая системой BIOS (Basic Input Output System — базовая система ввода-вывода). BIOS содержит программы ввода-вывода низкого уровня, включая процедуры для чтения с клавиатуры, вывода информации на экран, ввода-вывода данных с диска и т.д. В настоящее время эти функции хранятся во флэш-ОЗУ, которая в обычных условиях является неизменяемой, но, если в BIOS нашлись какие-либо ошибки, ее может изменить операционная система. При начальной загрузке компьютера стартует система BIOS. Сначала она проверяет количество установленной в системе оперативной памяти, подключены ли клавиатура и другие основные устройства и корректно ли они отзываются. BIOS начинает проверку с шин ISA и PCI, чтобы определить все устройства, присоединенные к ним. Некоторые из этих устройств являются традиционными, их также называют унаследованными, т.е. созданными до изобретения plag and play. Они имеют фиксированные уровни прерывания и адрес порта ввода-вывода. Эти устройства регистрируются и устройства plag and play. Если присутствующие устройства отличаются от тех, что были во время последней загрузки, конфигурируются новые устройства. Затем BIOS определяет устройство, с которого будет происходить загрузка, по очереди пробуя каждое из списка, хранящегося в CMOS-памяти. Пользователь может изменить этот список, войдя в конфигурационную программу BIOS сразу после загрузки. Обычно сначала делается попытка загрузиться с гибкого диска. Если это не удается, пробуется компакт-диск. Если в компьютере отсутствует гибкий диск и компакт-диска, система загружается с жесткого диска. С загрузочного устройства считывается в память и выполняется первый сектор. В этом секторе находится программа, обычно проверяющая таблицу разделов в конце загрузочного сектора, чтобы определить, который из разделов является активным. Затем из того же раздела читается вторичный загрузчик. Он считывает из активного раздела операционную систему и запускает ее. После этого операционная система опрашивает BIOS, чтобы получить информацию о конфигурации компьютера. Для каждого устройства она проверяет наличие драйвера. Если драйвер отсутствует, операционная система просит пользоваться вставить гибкий диск или компакт-диск, содержащий драйвер (эти диски поставляются производителем устройства). Если же все драйверы на месте, операционная система загружает их в ядро. Затем она инициализирует таблицы драйверов, создает все необходимые фоновые процессы и запускает программу ввода пароля или графический интерфейс на каждом терминале.





Дата публикования: 2015-01-26; Прочитано: 938 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.006 с)...