Управление вводом выводом в операционных системах кратко

Обновлено: 04.07.2024

Несколько методов управления вводом / выводом в операционной системе

каталог

I. Введение

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

С развитием компьютерных технологий постоянно совершенствуются методы управления вводом / выводом. Существует три принципа выбора и измерения методов управления вводом / выводом:

(1) Скорость передачи данных достаточно высока, чтобы удовлетворить потребности пользователей без потери данных;

(2) Системные издержки малы, а требуемая программа управления обработкой мала

(3) Возможность в полной мере использовать аппаратные ресурсы, чтобы устройства ввода-вывода были максимально загружены, при этом минимизируя время ожидания ЦП.

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

Во-вторых, метод управления вводом / выводом

1. Прямой метод управления программой

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


Блок-схема режима прямого управления программой

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

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

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

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

2.Прерывное управление

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


Блок-схема режима с прерыванием

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

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

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

Метод прямого управления доступом к памяти также называется методом прямого доступа к памяти. Чтобы еще больше сократить вмешательство ЦП в операции ввода-вывода и предотвратить потерю данных, вызванную слишком поздним выполнением ЦП из-за слишком большого количества параллельных работающих устройств или несоответствия скорости, был введен метод управления DMA.Под управлением контроллера DMA кража или незаконное присвоение управления шиной используется для открытия прямого канала обмена данными между устройством и основной памятью для обмена данными в пакетном режиме без вмешательства ЦП.

Особенности метода DMA:

Unit Основной единицей передачи данных является блок данных.

② Переданные данные напрямую отправляются с устройства в основную память или выводятся напрямую из основной памяти на устройство.

Intervention Вмешательство ЦП требуется только в начале и в конце одного или нескольких блоков данных, и весь блок данных передается под контроль контроллера.

По сравнению с методом управления, управляемым прерываниями, метод DMA уменьшает вмешательство ЦП в операции ввода-вывода и дополнительно улучшает параллельную работу ЦП и устройств ввода-вывода.

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

Канал, процессор, который не зависит от процессора и отвечает за управление входом и выходом. Он управляет устройством для непосредственного обмена данными с памятью. Имеет свои собственные инструкции канала. Эти инструкции запускаются ЦПУ и посылают сигнал прерывания в ЦПУ в конце операции.

Режим прямого управления программами и режим управления программами прерываний подходят для передачи данных низкоскоростных устройств, в то время как режим DMA подходит для передачи данных высокоскоростных устройств, но контроллер DMA может управлять только небольшим количеством подобных устройств, что далеко от удовлетворения больших компьютерных систем. Она нуждается. Как правило,Большой компьютер должен подключать большое количество высокоскоростных и низкоскоростных устройств, и метод управления каналом может удовлетворить это требование. (Основное различие между DMA и методами управления каналами - может ли оно удовлетворить потребности больших компьютерных систем, которые могут обрабатывать как высокоскоростные, так и низкоскоростные устройства)

Способ управления каналом реализует параллельную работу CPU, каналов и устройств ввода / вывода, тем самым более эффективно улучшая использование ресурсов всей системы. Например, когда ЦПУ хочет выполнить группу связанных операций чтения (или записи), ему нужно только выдать инструкцию ввода-вывода для канала ввода-вывода, указывающую первый адрес программы канала, которая должна быть выполнена, и устройство ввода-вывода, к которому необходимо получить доступ. После получения инструкции канал может выполнить задачу ввода-вывода, указанную ЦПУ, выполнив программу канала. Видимый,Каналы только выдают запросы прерывания ввода-вывода к ЦПУ в начале и в конце операций ввода-выводаПо сравнению с предыдущим методом управления уровень вмешательства ЦП еще более снижен.

В-третьих, справка

Аннотация: Устройства ввода-вывода. Назначение, задачи и технологии подсистемы ввода-вывода. Согласование скоростей обмена и кэширования данных. Разделение устройств и данных между процессами. Обеспечение логического интерфейса между устройствами и системой. Поддержка широкого спектра драйверов. Динамическая загрузка и выгрузка драйверов. Поддержка синхронных и асинхронных операций ввода-вывода. Многослойная (иерархическая) модель подсистемы ввода-вывода. Драйверы. Файловые системы. Основные понятия. Архитектура файловой системы. Организация файлов и доступ к ним. Каталоговые системы. Физическая организация файловой системы. Физическая организация и адресация файла. Физическая организация FAT-системы. Файловые операции. Контроль доступа к файлам.

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

Внешние устройства, выполняющие операции ввода-вывода, можно разделить на три группы:

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

По другому признаку устройства ввода-вывода можно разделить на блочные и символьные [10]. Блочными являются устройства, хранящие информацию в виде блоков фиксированного размера, причем у каждого блока есть адрес и каждый блок может быть прочитан независимо от остальных блоков. Символьные устройства принимают или передают поток символов без какой-либо блочной структуры (принтеры, сетевые карты, мыши и т.д.).

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

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

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

Устройства ввода-вывода, как правило, состоят из электромеханической и электронной части. Обычно их выполняют в форме отдельных модулей – собственно устройство и контроллер ( адаптер ). В ПК контроллер принимает форму платы, вставляемой в слот расширения. Плата имеет разъем , к которому подключается кабель , ведущий к самому устройству. Многие контроллеры способны управлять двумя, четырьмя и даже более идентичными устройствами. Интерфейс между контроллером и устройством является официальным стандартом ( ANSI , IEEE или ISO ) или фактическим стандартом, и различные компании могут выпускать отдельно котроллеры и устройства, удовлетворяющие данному интерфейсу. Так, многие компании производят диски, соответствующие интерфейсу IDE или SCSI , а наборы схем системной логики материнских плат реализуют IDE и SCSI -контроллеры.

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

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

7.2. Назначение, задачи и технологии подсистемы ввода-вывода

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

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

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

На подсистему ввода-вывода возлагаются следующие функции [5, 17]:

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

Эволюция ввода-вывода может быть представлена следующими этапами [17].

  1. Процессор непосредственно управляет периферийным устройством.
  2. Устройство управляется контроллером. Процессор использует программируемый ввод-вывод без прерываний (переход к абстракции интерфейса ввода-вывода).
  3. Использование контроллера прерываний. Ввод-вывод, управляемый прерываниями.
  4. Использование модуля (канала) прямого доступа к памяти. Перемещение данных в память (из нее) без применения процессора.
  5. Использование отдельного специализированного процессора ввода-вывода, управляемого центральным процессором.
  6. Использование отдельного компьютера для управления устройствами ввода-вывода при минимальном вмешательстве центрального процессора.

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

Для персональных компьютеров операции ввода-вывода могут выполняться тремя способами.

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

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

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

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

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

Перед выполнением операции обмена ЦП программирует DMA - контроллер , устанавливая его регистры (шаг 1 на рис. 7.1). Затем ЦП дает команду дисковому контролеру прочитать внести данные во внутренний буфер и проверить контрольную сумму. После этого процессор продолжает свою работу. Когда данные получены и проверены контроллером диска, DMA может начинать работу.

DMA - контроллер начинает перенос данных, посылая дисковому контроллеру по шине запрос чтения (шаг 2). Адрес памяти уже находится на адресной шине, так что контроллер знает, куда пересылать следующее слово из своего буфера. Запись в память является еще одним стандартным циклом шины (шаг 3). Когда запись закончена, контроллер диска посылает сигнал подтверждения контролеру DMA (шаг 4). Затем контроллер DMA увеличивает используемый адрес памяти и уменьшает значение счетчика байтов. После этого шаги 2, 3 и 4 повторяются, пока значение счетчика не станет равным нулю. По завершению цикла копирования контроллер DMA инициирует прерывание процессора, сообщая ему о завершении операции ввода-вывода.

Работа DMA

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

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

Точки прерывания DMA

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

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

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

Свидетельство и скидка на обучение каждому участнику

Зарегистрироваться 15–17 марта 2022 г.

Режимы управления вводом-выводом

Существует 2 основных режима ввода-вывода

1. режим обмена опросом готовности устройства ввода-вывода

2. режим обмена с прерыванием

Для организации ввода-вывода по 1 варианту процессор посылает устройству управления команду для устройства ввода-вывода выполнить некоторое действие. Устройство управления выполнит команду преобразования, её сигналы управления, которое оно передает устройству ввода-вывода. Поскольку быстродействие устройства ввода-вывода меньше на несколько порядков устройства быстродействия процессора, то драйвер управляющий обилием данных с внешних устройств вынужден в цикле опрашивать готовность устройств. При этом нерационально используется время процессора. Выгоднее после команды ввода-вывода перейти на выполнение другой команды, а появление сигнала готовности трактовать как запрос на прерывание. Драйверы работающие в режиме прерывания представляют собой сложный комплекс программных модулей и имеют несколько секций:
· секция запуска
· секция продолжения
· секция завершения

Секция запуска запускается для включения устройств ввода-вывода либо для инициализации очередной операции ввода-вывода .

Секция продолжения осуществляет основную работу по передаче данных

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

Управление операциями ввода-вывода в режиме прерывания требует более сложных программ чем те, что работают в режиме опроса готовности.

Так, в операционных системах Windows 95,98 и Windows NT драйвер печати через параллельный код работает не в режиме прерывания, а в режиме опроса готовности, что приводит к 100% загрузке процессора на все время печати. Для организации и выполнения многие параллельно выполняющиеся задачи устройств ввода-вывода вводится понятие виртуального устройства, повышающего эффективность вычислительных систем. Примером служит spooling, то есть имитация работы с устройством в режиме on-line. Главная задача spoolingа — создать единицу параллельно выполняемого устройства ввода-вывода с последовательным доступом.

Организация параллельной работы устройств и процессора

Каждому устройству ввода-вывода соответствует специальное устройство управления – контроллер. Контроллер работает параллельно с процессором и взаимодействует с прикладными программами через посредство особой программы ОС – драйвера.

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

Кэширование данных

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

При больших объемах ввода — вывода, памяти может не хватать и в таких случаях под буфер используется дисковый файл: спул-файл

Другим решением является оснащение контроллера буферной памятью, соизмеримой с ОЗУ

Буферизация решает и другую задачу — сократить количество реальных обращений к устройствам за счет кэширования (дисковый кэш)

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

Устройства ввода — вывода могут предоставляться процессам в монопольное или совместное использование.

Устройства типа диск позволяют разграничить доступ с точностью до отдельных порций данных, со своими правами

Другие устройства, например терминал, используется только в монопольном режиме

Принтер не выделяется в монопольное использование, но разграничивает порции выдач разных процессов

Удобный логический интерфейс

Практически все современные ОС поддерживают в качестве основного логического интерфейса файловую модель устройств ввода-вывода, когда любое устройство – последовательность байтов, с которыми можно работать с помощью системных вызовов типа Read, Write

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

Простое включение новых драйверов

Достоинством любой современной ОС является разнообразие набора драйверов для наиболее популярных устройств и поддержка нескольких файловых систем

Удобный интерфейс между драйверами и другими компонентами ОС, необходим для того, чтобы драйверы писали не только разработчики ОС, но и производители устройств

Существуют два типа интерфейсов:

  • “драйвер-ядро” (Driver Kernel Interface, DKI) для взаимодействия с ядром ОС и
  • интерфейс “драйвер-устройство” (Driver Device Interface, DDI) для взаимодействия с контроллером

Для поддержки разработки драйверов обычно выпускается пакет DDK (Driver Development Kit)

Поддержка нескольких файловых систем

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

Популярные системы мигрируют из одной ОС в другую (например FAT мигрировала из MS DOS в OS/2, MS Windows, Unix)

Обычно в ОС имеется слой программного обеспечения, отвечающий за простоту подключения новой файловой системы. Например, слой VFS (Virtual File System) в версиях Unix.

Поддержка синхронных и асинхронных операций ввода-вывода.

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

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

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

Внутренние же вызовы ядра обычно выполняются асинхронно, для свободы дальнейшего поведения ОС

Многослойная модель подсистемы В-В

Многослойная модель подсистемы ввода-вывода

Менеджер ввода-вывода.

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

Читайте также: