Спонсор: Microsoft
Санкт-Петербургский государственный университет
Опубликован: 13.11.2010 | Доступ: свободный | Студентов: 6726 / 1527 | Оценка: 4.64 / 4.23 | Длительность: 45:08:00
ISBN: 978-5-9963-0495-0
Лекция 21:

Системы ввода-вывода

< Лекция 20 || Лекция 21: 12345 || Лекция 22 >

Ключевые термины

PCI (Peripheral Computer Interface) – системная шина, используемая в персональных компьютерах, к которой подключены процессор, память и внешние устройства.

SCSI ID – номер SCSI-устройства в цепочке SCSI-устройств (от 0 до 9), устанавливаемый непосредственно на корпусе устройства специальным переключателем.

Буферизация запись данных в память в процессе передачи между устройствами.

Буферизация вывода (spooling) – задержка вывода на устройство, с целью поддержания целостности информации, выводимой одним и тем же процессом.

Ввод-вывод с прямым доступом к памяти (Direct Memory Access – DMA) - эффективная схема организации ввода-вывода, основанная на использовании фрагмента основной памяти в качестве буфера устройства для выполнения ввода-вывода.

Вектор прерываний – резидентный массив, содержащий адреса обработчиков прерываний в операционной системе.

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

Контроллер (host adapter) – специализированный микропроцессор для управления внешним устройством и портом.

Маскируемый (maskable) сигнал о прерывании – сигнал о прерывании, заблокированный с целью игнорирования или задержки прерывания.

Обработчик прерывания модуль ядра ОС, осуществляющий обработку прерывания с заданным номером.

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

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

Резервирование устройства – обеспечение операционной системой монопольного доступа пользовательских процессов к устройству ввода-вывода.

Сетевое соединение (network connection) – высокоуровневая концепция, абстракция сетевого устройства, поддерживаемая операционной системой для пользователя.

Цепочка (гирлянда) SCSI-устройств – физически соединенные друг с другом SCSI-устройства, подключенные к одному SCSI-порту и имеющие разные номера SCSI ID.

Цикл busy-wait – взаимодействие процессора с внешним устройством, при котором, если устройство занято, процесс ждет его освобождения.

Шина (bus) - цепочка устройств прямого доступа в компьютерной системе, через которую передается информация от одних устройств к другим.

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

Краткие итоги

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

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

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

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

Для оптимизации ввода-вывода используется прямой доступ к памяти (DMA) – метод организации ввода-вывода, при котором в качестве буфера устройства используется фрагмент основной памяти. Данный метод основан на использовании специальных DMA-контроллеров. DMA позволяет разгрузить процессор, освободив его от работы по пересылки данных для ввода-вывода.

В операционной системе API для ввода-вывода имеет иерархическую структуру. Системные вызовы – верхний уровень – инкапсулируют поведение устройств ввода-вывода. Более низкий уровень – драйверы устройств – скрывают различия между контроллерами устройств от ядра ОС.

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

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

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

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

Основные действия ОС по управлению вводом-выводом: планирование работы устройств ввода-вывода; буферизация устройств; кэширование устройств; буферизация вывода (spooling); резервирование устройств и контроль отсутствия тупиков.

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

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

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

Набор для практики

Вопросы

  1. Какие виды устройств ввода-вывода используются в компьютерных системах?
  2. Что такое порт?
  3. Что такое виртуальный порт?
  4. Что такое системная шина?
  5. Что такое контроллер?
  6. Что такое опрос устройств?
  7. Каковы возможные состояния устройства?
  8. Каким образом генерируется прерывание об окончании ввода-вывода?
  9. Что такое маскируемый сигнал о прерывании и какова цель маскирования?
  10. Что такое DMA и какова его цель?
  11. На какие виды делятся устройства по специфике обрабатываемой информации?
  12. На какие виды делятся устройства с точки зрения организации методов доступа?
  13. Приведите примеры блочных устройств.
  14. Приведите примеры символьных устройств.
  15. Каковы особенности сетевых устройств?
  16. Для чего используются часы и таймеры?
  17. Какие два метода организации ввода-вывода используются в системах, с точки зрения синхронизации процесса и инициируемого им ввода-вывода?
  18. Какие основные функции выполняет ОС для организации ввода-вывода?
  19. Что такое буферизация устройств?
  20. Что такое кэширование устройств?
  21. Что такое планирование устройств?
  22. Что такое резервирование устройств?
  23. Что такое spooling?
  24. Как обрабатывается запрос процесса на ввод-вывод?
  25. Какие факторы влияют на производительность ввода-вывода?

Упражнения

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

Темы для курсовых работ, рефератов, эссе

  1. Обзор видов внешних устройств в современных компьютерах (реферат).
  2. Обзор видов прерываний и методов их обработки в современных компьютерах (реферат).
  3. Метод DMA и DMA-контроллеры (реферат).
  4. Обзор архитектур реализаций ввода-вывода в операционных системах (реферат),
  5. Обзор сетевых устройств в компьютерных системах (реферат).
  6. Реализация модели взаимодействия процессора, драйвера устройства, контроллера устройства при обработке запроса на ввод-вывод (курсовая работа).
  7. Реализация модели части операционной системы и аппаратуры, выполняющей обработку ввода-вывода на одном внешнем устройстве (системные вызовы, драйвер устройства, контроллер устройства) (курсовая работа)..
  8. Реализация синхронным и асинхронным методом копирования содержимого одного файла в другой и сравнительный анализ производительности (курсовая работа).
< Лекция 20 || Лекция 21: 12345 || Лекция 22 >
Гульжан Мурсакимова
Гульжан Мурсакимова
Василий Четвертаков
Василий Четвертаков