Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ответы_отредактированные.docx
Скачиваний:
30
Добавлен:
21.09.2019
Размер:
3.19 Mб
Скачать
  1. Организация управления вводом/выводом в операционных системах

Одной из главных функций ОС является управление всеми устройствами ввода-вывода компьютера.

ОС должна передавать устройствам команды, перехватывать прерывания и обрабатывать ошибки; она также должна обеспечивать интерфейс между устройствами и остальной частью системы.

В настоящее время существуют сотни различных устройств ввода вывода совместимых с ЭВМ.

Все эти устройства могут быть разбиты на 2 больших класса:

-- блочные (блок-ориентированные)устройства ввода вывода.

-- символьные (байт-ориентированные) устройства ввода вывода.

Блочные устройства позволяют в произвольном порядке читать либо записывать любой блок информации хранящийся на устройстве. Например: жесткий диск, дискета CD-диски, flesh-память.

Символьные устройства позволяют лишь последовательно читать или записывать последовательность символов. Например: клавиатура, мышь, модем, сетевая карта, принтер, сканер.

Классическая схема ЭВМ Фон Неймана представляет следующую организацию ЭВМ.

Дляуправлением устройством ввода вывода уметь вызывать машинными командами управляющими данным устройством.

Программное обеспечение ввода-вывода можно разделить на четыре слоя:

  • Обработка прерываний,

  • Драйверы устройств,

  • Независимый от устройств слой операционной системы,

  • Пользовательский слой программного обеспечения.

Драйверы устройств

Весь зависимый от устройства код помещается в драйвер устройства. Каждый драйвер управляет устройствами одного типа или, может быть, одного класса.

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

Независимый от устройств слой операционной системы

Большая часть программного обеспечения ввода-вывода является независимой от устройств. Точная граница между драйверами и независимыми от устройств программами определяется системой, так как некоторые функции, которые могли бы быть реализованы независимым способом, в действительности выполнены в виде драйверов для повышения эффективности или по другим причинам.

Типичными функциями для независимого от устройств слоя являются: обеспечениеобщего интерфейса к драйверам устройств, именование устройств, защита устройств, обеспечение независимого размера блока, буферизация, распределение памяти на блок-ориентированных устройствах, распределение и освобождение выделенных устройств, уведомление об ошибках.

Пользовательский слой программного обеспечения

Хотя большая часть программного обеспечения ввода-вывода находится внутри ОС, некоторая его часть содержится в библиотеках, связываемых с пользовательскими программами. Системные вызовы, включающие вызовы ввода-вывода, обычно делаются библиотечными процедурами.

  1. Автоконфигурация устройств на шине pci

PCI (англ. Peripheral component interconnect)— шина ввода/вывода для подключения периферийных устройств к материнской плате компьютера.

PCI-устройства с точки зрения пользователя самонастраиваемы (Plug and Play). После старта компьютера системное программное обеспечение обследует конфигурационное пространство PCI( PCI configuration space) каждого устройства, подключённого к шине, и распределяет ресурсы.

PCI configuration space — конфигурационное адресное пространство PCI.

Одним из главных усовершенствований шины PCI по сравнению с другими архитектурами ввода-вывода стал её конфигурационный механизм. В дополнение к типичным адресным пространствам памяти и ввода-вывода в PCI вводится конфигурационное адресное пространство. Оно состоит из 256 байт, которые можно адресовать, зная номер шины PCI, номер устройства и номер функции в устройстве. Первые 64 байта из 256 стандартизированы, а остальные регистры могут быть использованы по усмотрению изготовителя устройства.

Каждое устройство может затребовать до шести диапазонов в адресном пространстве памяти PCI или в адресном пространстве ввода-вывода PCI.

Настройка прерываний осуществляется также системным программным обеспечением. Запрос на прерывание на шине PCI передаётся с помощью изменения уровня сигнала на одной из линий IRQ, поэтому имеется возможность работы нескольких устройств с одной линией запроса прерывания; обычно системное ПО пытается выделить каждому устройству отдельное прерывание для увеличения производительности.