Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
operatsionnye_sistemy (1).docx
Скачиваний:
31
Добавлен:
02.04.2015
Размер:
229.45 Кб
Скачать

31 Программный ввод-вывод

Главным аспектом программного ввода-вывода на примере печати (сетевой принтер) состоит в том, что после печати каждого символа процессор в цикле опрашивает готовность устройства. Такое поведение процессора называется опросом или ожиданием готовности (активным ожиданием). Программный ввод-вывод легко реализуется, но его существенный недостаток состоит в том, что ЦП занят все время, пока осуществляется ввод-вывод..

31 Управляемый прерываниями ввод-вывод. Использование дма

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

Решение этой проблемы в использовании ДМА. Идея состоит в том, чтобы позволить котроллеру ДМА поставлять принтеру символы по одному, не беспокоя при этом ЦП. По существу этот метод почти не отличается от программного ввода-вывода, с той лишь разницей, что всю работу вместо ЦП выполняет контроллер ДМА. Наибольший выигрыш от использования ДМА, состоит в уменьшении кол-ва прерываний с одного на 1 печатный символ до одного на 1 буфер.

Если символов много, а прерывание обрабатывается медленно, то этот выигрыш весьма существенен.

32 Программные уровни ввода-вывода

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

1. Программное обеспечение ввода- вывода уровня пользователя.

2. Устройство-независимое программное обеспечение ОС.

3. Драйверы устройства.

4. Обработчики прерываний.

5. Аппаратура.

В большинстве операционных систем определен стандартный интерфейс, который должен поддерживать все блочные драйверы и второй стандартный интерфейс, который должен поддерживать все символьные драйверы.

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

К этим процедурам относятся чтение блока, запись символьной строки и др.

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

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