История развития хранилищ для нефти: Первые склады нефти появились в XVII веке. Они представляли собой землянные ямы-амбара глубиной 4…5 м...
Наброски и зарисовки растений, плодов, цветов: Освоить конструктивное построение структуры дерева через зарисовки отдельных деревьев, группы деревьев...
Топ:
Характеристика АТП и сварочно-жестяницкого участка: Транспорт в настоящее время является одной из важнейших отраслей народного...
Определение места расположения распределительного центра: Фирма реализует продукцию на рынках сбыта и имеет постоянных поставщиков в разных регионах. Увеличение объема продаж...
Устройство и оснащение процедурного кабинета: Решающая роль в обеспечении правильного лечения пациентов отводится процедурной медсестре...
Интересное:
Инженерная защита территорий, зданий и сооружений от опасных геологических процессов: Изучение оползневых явлений, оценка устойчивости склонов и проектирование противооползневых сооружений — актуальнейшие задачи, стоящие перед отечественными...
Влияние предпринимательской среды на эффективное функционирование предприятия: Предпринимательская среда – это совокупность внешних и внутренних факторов, оказывающих влияние на функционирование фирмы...
Что нужно делать при лейкемии: Прежде всего, необходимо выяснить, не страдаете ли вы каким-либо душевным недугом...
Дисциплины:
|
из
5.00
|
Заказать работу |
Содержание книги
Поиск на нашем сайте
|
|
|
|
Тема 17. Ввод-вывод
Принципы программного обеспечения ввода-вывода
1. Независимость от устройств. Этот принцип означает возможность написания программ, способных получать доступ к любому устройству ввода-вывода без предварительного указания конкретного устройства.
2. Единообразное именование. Имя файла или устройства должно быть просто текстовой строкой или целым числом и никоим образом не зависеть от физического устройства.
Способы осуществления ввода-вывода
Существует три различных способа осуществления операций ввода-вывода.
Программный ввод-вывод. Например, если нужно напечатать на принтере строку символов, операционная система сначала копирует данные в ядро. Затем ОС входит в цикл, в котором на каждой итерации цикла печатает на принтере один символ. После печати каждого символа процессор в цикле опрашивает готовность устройства. Такое поведение процессора называется опросом, или активным ожиданием. Программный ввод-вывод легко реализуется, но его недостаток состоит в том, что центральный процессор занимается на все время операции ввода-вывода.
Управляемый прерываниями ввод-вывод. Когда выполняется системный вызов печати строки, буфер копируется в пространство ядра и первый символ строки копируется на принтер. После этого центральный процессор вызывает планировщик, который запускает какой-либо другой процесс. Процесс, попросивший распечатать строку, оказывается заблокирован на весь период печати строки. Когда принтер напечатал символ и готов принять следующий, он инициирует прерывание. Это прерывание вызывает остановку текущего процесса и сохранение его состояния. Затем запускается процедура обработки прерывания от принтера.
Ввод-вывод с использованием прямого доступа к памяти (DMA, Direct Memory Access). Очевидный недостаток управляемого прерываниями ввода-вывода состоит в том, что прерывания происходят при печати каждого символа. Обработка прерываний занимает определенное время, поэтому такая схема не является эффективной. Решение этой проблемы заключается в использовании DMA. Контроллер DMA поставляет принтеру символы по одному, не беспокоя при этом центральный процессор. По существу, этот метод почти не отличается от программного ввода-вывода, с той лишь разницей, что всю работу вместо центрального процессора выполняет контроллер DMA. Наибольший выигрыш от использования DMA состоит в уменьшении количества прерываний с одного на печатаемый символ до одного на печатаемый буфер.
Программные уровни ввода-вывода
Программное обеспечение ввода-вывода обычно организуется в виде четырех уровней, показанных на рис. 17.1. У каждого уровня есть свои функции и строго определенный интерфейс с соседними уровнями.

Обработчики прерываний
Когда происходит прерывание, начинает работу обработчик прерываний. По окончании необходимой работы он может разблокировать драйвер, запустивший его. Ниже перечислены основные действия, выполняемые программным обеспечением после того, как произошло аппаратное прерывание.
1. Сохранить все регистры, не сохраненные аппаратурой.
2. Установить контекст для процедуры обработки прерываний. Выполнение этого действия может включать установку TLB и таблицы страниц.
3. Установить указатель стека для процедуры обработки прерываний.
4. Выдать подтверждение контроллеру прерываний. Если централизованного контроллера прерываний нет, разрешить прерывания.
5. Скопировать содержимое регистров в таблицу процессов.
6. Запустить процедуру обработки прерываний. Она извлечет информацию из регистров контроллера устройства, инициировавшего прерывание.
7. Выбрать процесс, которому передать управление.
8. Установить контекст блока управления памятью для следующего работающего процесса.
9. Загрузить регистры нового процесса.
10. Начать выполнение нового процесса.
Драйверы устройств
У каждого контроллера есть набор регистров, используемых для того, чтобы давать управляемому им устройству команды и читать состояние устройства. Команды, выдаваемые устройствам, зависят от конкретного устройства. Поэтому для управления каждым устройством ввода-вывода требуется специальная программа. Эта программа, называемая драйвером устройства, обычно пишется производителем устройства. Для каждой операционной системы требуются специальные драйверы. Каждый драйвер устройства обычно поддерживает один тип устройств или класс близких устройств.
Чтобы получить доступ к регистрам контроллера, драйвер устройства должен быть частью ядра ОС. Драйверы устройств обычно располагаются под остальной частью операционной системы.
ОС обычно классифицирует драйверы по нескольким категориям в соответствии с типами обслуживаемых ими устройств. К наиболее общим категориям относятся блочные устройства, например, диски, содержащие блоки данных, к которым возможна независимая адресация, и символьные устройства, такие как клавиатуры и принтеры, формирующие или принимающие поток символов.
В ОС определен стандартный интерфейс, поддерживаемый всеми драйверами. Эти интерфейсы включают набор процедур, которые могут вызываться из остальной операционной системы для обращения к драйверу.
У драйвера устройства есть несколько функций.
1. Обработка абстрактных запросов чтения и записи независимого от устройства программного обеспечения, расположенного над ним.
2. Проверка входных параметров.
3. Преобразование абстрактных параметров в конкретные. Например, дисковый драйвер может преобразовывать линейный номер блока в номера головки, дорожки и сектора.
4. Проверка готовности и незанятости устройства.
5. Собственно управление устройством. Выдача ему серии команд.
6. Во многих случаях драйвер устройства должен ждать, пока контроллер не выполнит для него определенную работу, поэтому он блокируется до тех пор, пока прерывание от устройства его не разблокирует. В других случаях операция завершается без задержек и драйверу не нужно блокироваться.
7. По завершении выполнения операции драйвер должен проверить, выполнилась ли операция без ошибок. Если все в порядке, драйвер передает данные независимому от устройств программному обеспечению.
|
|
|
Автоматическое растормаживание колес: Тормозные устройства колес предназначены для уменьшения длины пробега и улучшения маневрирования ВС при...
Историки об Елизавете Петровне: Елизавета попала между двумя встречными культурными течениями, воспитывалась среди новых европейских веяний и преданий...
Наброски и зарисовки растений, плодов, цветов: Освоить конструктивное построение структуры дерева через зарисовки отдельных деревьев, группы деревьев...
Опора деревянной одностоечной и способы укрепление угловых опор: Опоры ВЛ - конструкции, предназначенные для поддерживания проводов на необходимой высоте над землей, водой...
© cyberpediasu.com 2017-2026 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!