Будь умным!


У вас вопросы?
У нас ответы:) SamZan.net

ТЕМА- Обслуживание вводавывода

Работа добавлена на сайт samzan.net:

Поможем написать учебную работу

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

Предоплата всего

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 9.11.2024

Лекция 9

ТЕМА:   Обслуживание ввода-вывода.  

Цель: Познакомиться с организацией работы устройств ввода-вывода информации.

План изложения материала

  1. Введение.
  2. Физическая организация устройств ввода-вывода.
  3.  Организация программного обеспечения ввода-вывода.
  4.  Методы выполнения операций ввода-вывола.

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

Физическая организация устройств ввода-вывода

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

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

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

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

Рис. 1. Соединение процессора, памяти, контроллеров и устройств ввода/вывода

 У больших машин, мэйнфреймов, применяется другая модель с несколькими шинами, которыми заведуют  специализированные компьютеры ввода/вывода, называемые каналами ввода/вывода. Такая организация позволяет уменьшить нагрузку на основной процессор.

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

ОС выполняет ввод-вывод, записывая команды в регистры контроллера. Например, контроллер гибкого диска IBM PC принимает 15 команд, таких как READ, WRITE, SEEK, FORMAT и т.д. Когда команда принята, процессор оставляет контроллер и занимается другой работой. При завершении команды контроллер организует прерывание для того, чтобы передать управление процессором операционной системе, которая должна проверить результаты операции. Процессор получает результаты и статус устройства, читая информацию из регистров контроллера.

Структура системы ввода/вывода, содержит 4 уровня.

Организация программного обеспечения ввода-вывода

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

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

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

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

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

Для решения поставленных проблем целесообразно разделить программное обеспечение ввода-вывода на четыре слоя:

  1.  Обработка прерываний,
  2.  Драйверы устройств,
  3.  Независимый от устройств слой операционной системы,
  4.  Пользовательский слой программного обеспечения.

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

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

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

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

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

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

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

Типичными функциями для независимого от устройств слоя являются:

  1.  обеспечение общего интерфейса к драйверам устройств,
  2.  именование устройств,
  3.  защита устройств,
  4.  обеспечение независимого размера блока,
  5.  буферизация,
  6.  распределение памяти на блок-ориентированных устройствах,
  7.  распределение и освобождение выделенных устройств,
  8.  уведомление об ошибках.

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

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

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

Рис. 2. Уровни и основные функции системы ввода/вывода

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

Когда диск завершает операцию, аппаратура инициирует прерывание. Обработчик прерываний запускается с целью определить, что случилось, то есть какое устройство требует внимания. Затем он извлекает статус устройства и активизирует «спящий» процесс, чтобы завершить запрос ввода/вывода и предоставить пользовательскому процессу возможность продолжения работы.

Методы выполнения операций ввода- вывода

Возможны 3 метода выполнения операций ввода-вывода:

- программируемый ввод-вывод;

- ввод-вывод с использованием прерываний;

- прямой доступ к памяти.

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

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

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

Для перемещения больших объемов данных используется более эффективный метод – прямой доступ к памяти. Когда процессору нужно прочитать или записать блок данных, он генерирует команду для модуля DMA (прямой доступ к памяти direct memory access), посылая ему следующую информацию:

  1. указание, требуется ли выполнить чтение или запись;
  2. адрес устройства ввода-вывода;
  3. начальный адрес блока памяти, использующегося для чтения или записи;
  4. количество слов, которые должны быть прочитаны или записаны.

Данный метод наиболее эффективен при передаче большого количества информации.

Контрольные вопросы и задания

  1. Составить схему, отображающую структуру системы ввода-вывода.
  2. Какие методы для выполнения операций ввода-вывода существуют?
  3. На какие уровни разделяют программное обеспечение ввода-вывода?
  4. Если необходимо передать большое количество информации, то какой из методов выполнения операций ввода-вывода целесообразно выбрать и почему?

Литература:

  1. А. В. Гордеев Операционные системы 2-е издание, 2004г.
  2. Сетевые операционные системы/ В. Г. Олифер, Н.Л. Олифер. – СПб.:Питер, 2002-544.: ил.
  3. Таненбаум Э. «Современные операционные системы», М: «Питер», 2007 год.
  4. Щетка В.М. «Администрирование ОС Windows-2003» М: «Питер», 2006 год, с. 540
  5. Уилльям Бозуэлл «Внутренний мир Windows Server 2003, SP1 и R2», электронная версия.
  6. «Внутреннее устройство Microsoft Windows: Windows Server 2003, Windows XP и Windows 2000», 4-е издание, М.Руссинович, Д.Соломон, СПб.:Питер, 2005, электронная версия.
  7. «Linux глазами хакера», Михаил Фленов, СПб.:БХВ-Петербург, 2005. – 544 с.:ил., электронная версия.




1. юношеский центр муниципального образования Кольский район Мурманской области Методическое по
2. не важно как их называют эти лунатики являются величайшей угрозой для человечества за исключением самого
3. vi Inforedesign TUW Первая история ' о соединении точек
4. Во славу защитников Отечества Общие положения Организаторами фестиваля патриотической песни Во сл
5. то представит себя в виде раскидистого куста ктото ~ в виде зверька возможно в виде живительного ручейка ил.
6. жизни не жалко за этоЧутьчуть покурить и до рассвета будем летать чтобы снова отдать2000 баксов за сигарету и.
7. Задание 1 Российская Федерация Россия есть демократическое федеративное правовое государство- Выбери
8. 3 класифікація програмного забезпечення 23 наявності якісної документації ; умові і складності проц
9. Машинный агрегат
10. Айсберг 2.1 Организационноэкономическая характеристика ООО Айсберг 2.
11. Lectures on morl philosophy nd government s well s to llusions in The Theory of Morl Sentiments 1759 to work he hoped to write on ldquo;the generl principles of lw nd government nd of the differe
12. Курсовая работа- Формування облікової політики підприємства
13. по теме 03 Рассудочная деятельность Деятельность направленная
14. Статья 1. Цели Закона 1
15.  Брокеры 2
16. тема состоит из- начальной школы 6 лет средней школы 3 года старшей школы 3 года Начальная и средняя шко
17. Реферат- Основные принципы планирования и подготовки выездной налоговой проверки
18. отчет по лабораторной работе 11 Экспериментальное определение отношения изобарной
19. Принципы и задачи стратегического планирования в Чайковском муниципальном районе
20. а 6.76.1а 2 Баулин Станислав 5