Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОС / Тема_4.ppt
Скачиваний:
252
Добавлен:
11.04.2015
Размер:
5.04 Mб
Скачать

Работа1 DMA-контроллера

DMA-контроллер4 начинает перенос данных, посылая дисковому контроллеру по шине запрос

чтения (шаг 2). Адрес памяти уже находится на

2

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

Запись в память2 является еще одним стандартным циклом шины (шаг 3). Когда запись закончена, контроллер диска посылает сигнал подтверждения контролеру2DMA (шаг 4).

Затем

контролер

DMA

увеличивает

 

3

и уменьшает значение

используемый адрес памяти1

счетчика байтов.

 

 

Операционные системы

31

Работа1 DMA-контроллера

После этого шаги4 2, 3 и 4 повторяются, пока значение счетчика не станет равным нулю. По завершении цикла копирования 2контроллер DMA инициирует прерывание процессора, сообщая ему о завершении операции ввода-вывода.

Особенность работы шины в этом процессе обмена данными. Шина2 может работать в двух

режимах: пословном и поблочном. В первом случае

2

контроллер DMA выставляет запрос на перенос

одного слова и получает его. Если процессору также

3

он работает с кэш-

нужна эта шина (в основном1

памятью), ему приходится подождать.

Операционные системы

32

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

Ц и к л к о м а н д ы

Цикл

Цикл

Цикл

Цикл

Цикл

Цикл

процессора

процессора

процессора

процессора

процессора

процессора

Выборка

Декодиро-

Выборка

Выполнение

Сохранение

Прерывание

вание

команды

операнда

команды

результата

процесса

команды

 

 

 

 

 

Точки

Точка

прерывания DMA

прерывания

Операционные системы

33

Работа1 DMA-контроллера

Приостановка процессора4 происходит только при необходимости использования шины. После

этого устройство DMA выполняет передачу слова и

2

возвращает управление процессору.

Однако это не является прерыванием: процессор не сохраняет 2контекст с переходом к выполнению другого задания. Он просто делает

паузу на время одного цикла шины.

2

3

1

Операционные системы

34

Работа1 DMA-контроллера

В блочном режиме4 работы контроллер DMA занимает шину на серию пересылок (пакет). Этот

режим более эффективен, однако при переносе

2

большого блока центральный процессор и другие

устройства могут быть заблокированы на

существенный промежуток времени.

2

При большом количестве устройств ввода-

вывода от подсистемы 2ввода-вывода требуется спланировать в реальном масштабе времени (в

котором работают внешние устройства) запуск и

3

количества разных

приостановку большего1

драйверов.

 

Операционные системы

35

Работа1 DMA-контроллера

С другой4 стороны, необходимо

минимизировать

загрузку процессора задачами

ввода-вывода.

 

2

 

 

 

 

Решение этих задач достигается на основе

многоуровневой

приоритетной

схемы

обслуживания

прерываний.

Для

обеспечения

 

2

 

 

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

распределяются

по нескольким приоритетным

 

2

 

 

уровням в соответствии с требованиями по времени

реакции и временем использования процессора.

 

3

схемы задействуется

Для реализации приоритетной1

общий диспетчер прерываний ОС.

 

Операционные системы

36

Устройства ввода

4.2.3. Согласование скоростей обмена и кэширование

 

данных

 

Пользовательский процесс

Ввод

T

M

C

 

Без

 

 

 

буферизации

 

Пользовательский процесс

Ввод

 

 

 

 

 

 

 

 

 

 

Одинарная

Перемещение

 

буферизация

 

 

Пользовательский процесс

Ввод

 

 

 

 

 

 

 

 

 

 

Двойная

Перемещение

 

буферизация

 

Пользовательский процесс

Ввод

 

 

 

 

 

 

 

 

 

 

Циклическая

 

 

Перемещение

 

 

 

 

 

 

 

 

 

 

 

 

 

 

буферизация

 

 

Операционные системы

37

4.2.3. Согласование скоростей обмена и кэширование

данных

При обмене данными всегда возникает задача

T C

согласования скоростей работы устройств. Решение этой задачи достигается буферизацией данных.

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

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

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

Операционные системы

38

4.2.3. Согласование скоростей обмена и кэширование данных

Другим

решением

проблемы

является

 

T

 

C

использование большой буферной памяти в

контроллерах

внешних

устройств

(пример

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

символьные.

Первые сохраняют информацию блоками фиксированного размера и передают ее поблочно (диски, ленты).

Операционные системы

39

4.2.3. Согласование скоростей обмена и кэширование данных

Вторые выполняют

передачу

в виде

T

байтов

C

неструктурированных потоков

(терминалы,

принтеры, манипулятор мыши, сканеры и др.). Простейший тип поддержки со стороны ОС -

одинарный буфер.

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

Сначала осуществляется передача входных данных в системный буфер.

Операционные системы

40

Соседние файлы в папке ОС