Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


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

Обслуживание ввода-вывода

Организация побайтного ввода-вывода

Последовательность операций, выполняемых каналом ввода-вывода

Канальная программа

Вовлечение ос в управление вводом-выводом

Рабочая область канала ввода-вывода

Очередь запросов на ввод-вывод

Алгоритм обработки прерываний по вводу-выводу

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

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

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

Задачи ОС по управлению файлами и устройствами

 

Подсистема ввода-вывода (Input-Output Subsystem) мультипрограммной ОС при обмене данными с внешними устройствами компьютера должна решать ряд общих задач, из которых наиболее важными являются следующие:

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

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

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

2. Согласование скоростей обмена и кэширование данных;

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

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

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

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

4. Обеспечение удобного логического интерфейса между устройствами и остальной частью системы;

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

 

5. Поддержка широкого спектра драйверов с возможностью простого включения в систему нового драйвера;

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

Поэтому существуют два типа интерфейсов: интерфейс «драйвер-ядро» (Driver Kernel Interface, DKI) и интерфейс «драйвер-устройство» {Driver Device Interface, DDF). Интерфейс «драйвер-ядро» должен быть стандартизован в любом случае, а интерфейс «драйвер-устройство» имеет смысл стандартизировать тогда, когда подсистема ввода-вывода не разрешает драйверу непосредственно взаимодействовать с аппаратурой контроллера, а выполняет эти операции самостоятельно.

6. Динамическая загрузка и выгрузка драйверов;

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

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

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

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

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

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

 

 

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

 

Разл. типы К. в.- в., как правило, объединяются и выполняются в виде автономного устройства либо входят в состав центр, процессора, в последнем случае центр, процессор дополнительно выполняет ф-ции К. в.- в.В качестве элементной базы для реализации К. в.-в. используются логические элементы (ТТЛ, ТТЛШ, ЭСЛ) в виде цифровых интегральных схем, ИС запоминающих устройств, электронные компоненты интерфейса ввода - вывода. Для обеспечения высокой пропускной способности при передаче данных применяются быстродействующие ИС.



<== предыдущая лекция | следующая лекция ==>
Типы, формы и виды инфляции | Мгновенным центром скоростей (МЦС) является точка на плоскости, абсолютная скорость которой в данный момент равна нулю
Поделиться с друзьями:


Дата добавления: 2015-10-21; Мы поможем в написании ваших работ!; просмотров: 4143 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Неосмысленная жизнь не стоит того, чтобы жить. © Сократ
==> читать все изречения...

2289 - | 1994 -


© 2015-2024 lektsii.org - Контакты - Последнее добавление

Ген: 0.008 с.