Аппаратное обеспечение ввода-вывода в операционной системе

Опубликовано: 23 Февраля, 2023

Аппаратное обеспечение ввода-вывода — это набор специализированных аппаратных устройств, которые помогают операционной системе получать доступ к дисководам, принтерам и другим периферийным устройствам. Эти устройства находятся внутри материнской платы и подключаются к процессору с помощью шины. У них часто есть специализированные контроллеры, которые позволяют им быстро реагировать на запросы программного обеспечения, работающего поверх них, или даже напрямую реагировать на команды из прикладной программы. В этом посте подробно обсуждаются основы аппаратного обеспечения ввода-вывода, такие как гирляндная цепь, контроллер шины расширения, ввод-вывод с отображением памяти, прямой доступ к памяти (DMA).

Гирляндная цепочка, шина расширения, контроллер и хост-адаптер используются для доступа к оборудованию ввода-вывода.

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

Контроллер управляет всеми входящими данными из связанного с ним порта и отправляет исходящие команды со своего связанного порта; это похоже на интерфейс между прикладной программой и аппаратными компонентами, такими как дисководы или сетевые адаптеры.

Хост-адаптер — это мост между системной шиной и шиной расширения. Он позволяет одновременно подключать несколько плат расширения и предоставляет дополнительные интерфейсы для этих карт, такие как DMA или MMIO. Контроллер управляет всеми входящими данными из связанного с ним порта и отправляет исходящие команды со своего связанного порта; это похоже на интерфейс между прикладной программой и аппаратными компонентами, такими как дисководы или сетевые адаптеры.

1. Опрос

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

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

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

2. Прерывания

ЦП прерывается несколькими различными устройствами, такими как аппаратное обеспечение ввода-вывода и периферийные устройства. Эти прерывания используются устройством ввода-вывода для уведомления ЦП, когда ему требуется внимание. Процессор может быть прерван несколькими различными устройствами в любой момент времени, но только одно прерывание будет доставлено ему в любой момент времени. Это может произойти из-за аппаратной или программной ошибки, возникшей на шине ввода-вывода, например, если дисковод вышел из строя, все другие передачи данных будут приостановлены до тех пор, пока он не будет устранен; или, возможно, другое устройство хочет получить доступ к памяти (или наоборот). В любом случае ваша прикладная программа не может быть написана специально для этой конкретной машины!

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

Операционная система отвечает за планирование времени ЦП среди нескольких программ. Это делается с помощью программы, называемой обработчиком прерываний или подпрограммой обслуживания прерываний (ISR). ISR — это просто фрагмент кода, который запускается при возникновении прерывания и обычно заканчивается возвратом управления исходной программе.

Важно отметить, что работа операционной системы никогда не прерывается ISR.

3. Прямой доступ к памяти:

DMA — это способ перемещения данных между ЦП и устройствами ввода-вывода. Когда пользователь хочет получить доступ к памяти с устройства ввода-вывода (например, дисковода), он должен сначала сообщить операционной системе, что он собирается выполнить операцию. Это делается путем прикрепления специальной команды, называемой подпрограммой обработки запроса на прерывание (IRQ), для каждого устройства, которому требуется доступ. Затем процедура обработки прерываний сообщает пользовательской программе, когда она должна быть готова к выполнению другой задачи — обычно с помощью прерываний, генерируемых аппаратными компонентами, такими как джойстики или сетевые карты, — и может даже сообщать другим процессам, работающим на других ЦП, не только о том, что происходит в данный момент, но и также, когда что-то произошло раньше, поэтому они также могут принять соответствующие меры!

Первым шагом в использовании прерываний является настройка контроллера прерываний. Делается это вызовом службы BIOS INT 10h с несколькими параметрами, включая количество доступных линий IRQ (16 — обычное значение), максимальное количество устройств, которые можно подключить к каждой линии и так далее.

Следующим шагом является назначение обработчика INT 10h для каждого устройства, которому требуется доступ. Это делается путем вызова службы BIOS INT 15h с несколькими параметрами, включая количество доступных линий IRQ (16 — обычное значение), максимальное количество устройств, которые можно подключить к каждой линии и т.д.

Обзор оборудования ввода-вывода:

Аппаратное обеспечение ввода-вывода — это набор устройств, которые используются для облегчения взаимодействия ЦП и других процессоров вашего компьютера с внешним миром. Эти устройства могут включать в себя:

Карты периферийного контроллера (также называемые адаптерами ввода-вывода) подключаются к шине расширения (иногда называемой PCI или ISA) и управляют передачей данных между различными частями компьютерной системы.

Линии запроса прерывания (IRQ) и последовательные порты, которые позволяют нескольким периферийным устройствам, таким как клавиатуры, мыши и принтеры, взаимодействовать друг с другом, не имея собственного выделенного канала в памяти.

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

Вывод:

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