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

Введение в логические принципы организации ввода-вывода

СИСТЕМА УПРАВЛЕНИЯ ВВОДОМ-ВЫВОДОМ. ЛОГИЧЕСКИЕ ПРИНЦИПЫ ОРГАНИЗАЦИИ ВВОДА-ВЫВОДА

Контрольные вопросы

1) Назовите основные физические принципы построения системы ввода-вывода

2) Перечислите, что входит в функции базовой подсистемы ввода-вывода

3) Назовите, какие шины выделяют в современных компьютерах

4) Перечислите действия, выполняемые для передачи информации из процессора в память

5) Перечислите действия, выполняемые для передачи информации из процессора в память

6) Назовите наиболее важные особенности ввода-вывода

7) Какие внутренние регистры имеет контролер

8) Перечислите действия, выполняемые процессором и контроллером в случае команды вывода данных на внешнее устройство

9) Опишите SVC- прерывания

10) Опишите внешние прерывания

11) Опишите внутренние прерывания (исключительные ситуации)

12) Опишите программные прерывания

13) Опишите прямой доступ в память

 


На лекции рассматриваются следующие вопросы:

1) Введение в логические принципы организации ввода-вывода

2) Структура системы ввода-вывода

3) Систематизация внешних устройств и интерфейс между базовой подсистемой ввода-вывода и драйверами

4) Функции базовой подсистемы ввода-вывода (блокирующиеся, не блокирующиеся и асинхронные системные вызовы; буферизация и кэширование; spooling и захват устройств; обработка прерываний и ошибок; планирование запросов)

5) Алгоритмы планирования запросов к жесткому диску (строение жесткого диска и параметры планирования; алгоритмы FCFS, SSTF; SCAN, C-SCAN, LOOK, C-LOOK)

 

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

 

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

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

2) Некоторые устройства могут быть использованы параллельно несколькими процессами (являются разделяемыми), в то время как другие требуют монопольного захвата процессом.

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

4) Часть устройств умеет передавать данные только по одному байту последовательно (символьные устройства), а часть устройств умеет передавать блок байт как единое целое (блочные устройства).

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

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

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

Выделим следующие уровни системы ввода-вывода:

1) Устройства, непосредственно выполняющие операции,

2) Контроллеры устройств, служащие для организации совместной работы устройств и остальной КС.

3) Драйвера устройств ввода-вывода, скрывающие от разработчиков операционных систем особенности функционирования конкретных приборов и обеспечивающие четко определенный интерфейс между hardware и базовой подсистемой ввода-вывода

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

Уровень 1)-2) составляет hardware.

Рисунок 13.1 - Структура системы ввода-вывода