Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
All os.doc
Скачиваний:
28
Добавлен:
06.12.2018
Размер:
2.84 Mб
Скачать

Программное управление внешними устройствами

Цели, которые стоят перед программным обеспечением:

1. унификация программных интерфейсов доступа к внешним устройствам (унификация именования, абстрагирование от свойств

конкретных устройств);

2. обеспечение конкретной модели синхронизации при выполнении обмена (синхронный, асинхронный обмен);

3. обработка возникающих ошибок (индикация ошибки, локализация ошибки, попытка исправления ситуации);

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

4. буферизация обмена – в системе очень многоуровневая, применяется на всех этапах:

- развитые канала ввода-вывода могут иметь встроенный КЭШ, который управляется внутри этих каналов. Эта функция

остается на уровне ОС, этот КЭШ ОС полностью программноориентирован.

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

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

Билет 53. Управление внешними устройствами. Буферизация обмена. Планирование дисковых обменов, основные алгоритмы.

Буферизация обмена

T – время обмена;

С – время выполнения программы между обменами

t – общее время выполнения программы

Схемы буферизации ввода-вывода

а) Без буферизации

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

б) Одинарная буферизация

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

в) Двойная буферизация

Модель использования двойной буферизации следующая: в один буфер помещаются данные по обмену, в другой ОС готовит данные за предыдущий обмен.

г) Циклическая буферизация

Какую схему выбрать зависит от интенсивности буферизации и особенности действий

Планирование дисковых обменов

Возможна ситуация, когда поток заказов на обмен > пропускной способности системы в некоторые моменты.

Тогда есть несколько вариантов действий:

1.Принимаем решения о порядке обработки запросов

2. начинаем учитывать приоритеты

3. осуществляем случайный выбор.

Проблема: Обмены могут быть зависимы друг от друга. В таком случае некоторые варианты не подходят.

Пусть наш диск может сразу переходить i-ой дорожки на j-ую без начального позиционирования.

Рассмотрим модельную ситуацию:

головка HDD позиционирована на дорожке 15

Очередь запросов к дорожкам: 4, 40, 11, 35, 7, 14

Варианты решения

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

2.

Общее время выполнения – 135ед.

Среднее время выполнения – 21.5 ед.

3.SSTF

Приоритет имеет обмен, для которого потребуется наименьшее время. «Жадный» алгоритм на каждом шаге пытается получить максимальный эффект. Общая нагрузка на систему с точки зрения обмена сокращается в 3 раза. Возможно «залипание» головки в том случае, если обмен идет интенсивно с одними и теми же дорожками. Некоторые процессы будут отделены.

4.LIFO

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

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

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

Для " набора запросов

перемещений £ 2 х число дорожек

Выходим на минимальную (максимальную дорожку, а затем движемся в одну сторону). Пройдем не более двух маршрутов.

N-step-SCAN

Разделение очереди на подочереди длины £ N запросов каждая (из соображений FIFO). Последовательная обработка очередей. Обрабатываемая очередь не обновляется. Обновление очередей, отличных от обрабатываемой.

Этот алгоритм срывает головку с залипания.

Распространенный пример: 2 очереди, одна обрабатывается, другая собирает вновь поступающие запросы.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]