Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ОС / 2. ОС - Управление устройствами

.pdf
Скачиваний:
57
Добавлен:
01.06.2015
Размер:
393.99 Кб
Скачать

11

Архитектура подсистемы ввода/вывода

Два способа адресации регистров ПУ:

Отображение регистров на память. При этом определенная часть адресного пространства описывает не память, а регистры устройств.

Адресация регистров через порты ввода/вывода. Для портов отводится отдельное адресное пространство и специальные команды. То есть, в этом случае "адрес 100" и "порт 100" – разные вещи.

Первый способ удобнее для программирования, второй легче реализуется

с точки зрения аппаратуры.

Операционные системы. Управление устройствами

12

Архитектура подсистемы ввода/вывода

Магистральная архитектура:

Процессор, память и все ПУ единообразно подключаются к общей шине.

Это удобно для программирования и для подключения новых устройств.

Радиальная архитектура:

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

С точки зрения программиста:

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

для каждого устройства.

Операционные системы. Управление устройствами

13

Архитектура подсистемы ввода/вывода

Магистральная и радиальная архитект

 

 

 

 

ОЗУ

ЦП

 

ОЗУ

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

т р а л ь

ЦП

С и с т е м н а я м а г и с

 

 

 

ПУ 1

ПУ 2

ПУ 3

ПУ 1

ПУ 2

ПУ 3

 

 

 

а) Магистральная архитектура

б)

Радиальная архитекту

Операционные системы. Управление устройствами

14

Архитектура подсистемы ввода/вывода

Прямой доступ к памяти (DMA):

Обмен данными между памятью и дисками идет под управлением контроллера DMA, минуя регистры процессора.

Процессор только инициирует операцию и потом получает сигнал (прерывание) о завершении выполнения.

Операционные системы. Управление устройствами

15

Архитектура подсистемы ввода/вывода

Процессорный ввод/вывод (PIO):

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

Это в несколько раз медленнее, чем DMA.

Операционные системы. Управление устройствами

16

Способы организации ввода/вывода

Описание задачи:

Программа должна выдать N байт данных из массива A[1..N] на символьное устройство X.

Архитектура устройства представлена регистром данных X.DATA и флагом готовности

X.READY.

Если X.READY =True, то запись байта в регистр X.DATA приводит к выдаче этого байта на устройство. В противном случае (X.READY = False) байт теряется.

Операционные системы. Управление устройствами

17

Способы организации ввода/вывода

а) Ввод/вывод без проверки готовности i := 1;

while i <= N do begin

X.DATA := A[i];

i := i + 1;

end;

Это сработает правильно только в том случае, если устройство "всегда готово", т.е. скорость приема данных устройством превышает скорость их передачи процессором.

Пример такого устройства – монитор.

Операционные системы. Управление устройствами

18

Способы организации ввода/вывода

б) Ввод/вывод по опросу готовности i := 1;

while i <= N do begin while not X.READY do

;

X.DATA := a[i]; i := i + 1;

end;

Добавлен цикл опроса готовности устройства.

Это всегда сработает корректно, но процессорное время тратится непроизводительно.

Приемлемо только для однозадачных систем.

Операционные системы. Управление устройствами

19

Способы организации ввода/вывода

в) Ввод/вывод по прерываниям

i:= 1;

while i <= N do begin X_INT: if not X.READY

return; X.DATA := a[i]; i := i + 1;

end;

Вместо цикл опроса – однократная проверка готовности устройства.

Если не готово, то управление возвращается ОС, которая может использовать процессор для других задач.

Когда от устройства придет прерывание, ОС передаст управление по метке X_INT для продолжения вывода.

Операционные системы. Управление устройствами

20

Способы организации ввода/вывода

Выводы:

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

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

Операционные системы. Управление устройствами