Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Режимы управления вводом-выводом.
Управление вводом/выводом осуществляется операционной системой, точнее компонентом, который называют подсистема ввода/вывода - диспетчером или супервизором ввода/вывода. Этот компонент выполняет следующие задачи: 1. Получает запросы на ввод/вывод прикладных задач и программных модулей самой системы. Проверяет их корректность и выдает соответствующее диагностическое сообщение. 2. Определяет очередность предоставления устройств ввода/вывода задачам затребовавшим их. 3. Инициирует ввод/вывод (передает управление соответствующим драйверам) и в случае выполнения ввода/вывода с использованием прерывания передает управление диспетчеру задач. Чтобы он передал его первой задаче, стоящей в очереди на выполнение. 4. Идентифицирует сигналы прерывания от устройств ввода/вывода и передает управление соответствующей программе обработки прерывания. 5. Передает сообщения об ошибках, случившихся в процессе ввода/вывода. 6. Посылает сообщение о завершении операции ввода /вывода, запросившему эту операцию процессу и снимает его с состояния ожидания ввода/вывода, Если процесс ждал завершение операции. Существует 2 основных режима ввода/вывода 1. режим обмена опросом готовности устройства ввода/вывода 2. режим обмена с прерыванием Для организации ввода/вывода по 1 варианту процессор посылает устройству управления команду для устройства ввода/вывода выполнить некоторое действие. Устройство управления выполнит команду преобразования, её сигналы управления, которое оно передает устройству ввода/вывода. Поскольку быстродействие устройства ввода/вывода меньше на несколько порядков устройства быстродействия процессора, то драйвер управляющий обилием данных с внешних устройств вынужден в цикле опрашивать готовность устройств. При этом нерационально используется время процессора. Выгоднее после команды ввода/вывода перейти на выполнение другой команды, а появление сигнала готовности трактовать как запрос на прерывание. Драйверы работающие в режиме прерывания представляют собой сложный комплекс программных модулей и имеют несколько секций: · секция запуска · секция продолжения · секция завершения Секция запуска запускается для включения устройств ввода/вывода либо для инициализации очередной операции ввода/вывода. Секция продолжения осуществляет основную работу по передаче данных Секция завершения выключает устройства ввода/вывода либо просто завершает операцию. Управление операциями ввода/вывода в режиме прерывания требует более сложных программ чем те, что работают в режиме опроса готовности. Так, в операционных системах Windows 95, 98 и Windows NT драйвер печати через параллельный код работает не в режиме прерывания, а в режиме опроса готовности, что приводит к 100% загрузке процессора на все время печати. Для организации и выполнения многие параллельно выполняющиеся задачи устройств ввода/вывода вводится понятие виртуального устройства, повышающего эффективность вычислительных систем. Примером служит spooling, то есть имитация работы с устройством в режиме on-line.Главная задача spoolingа – создать единицу параллельно выполняемого устройства ввода/вывода с последовательным доступом. Например, каждому вычислительному процессу предоставляется не реальный, а виртуальный прибор и поток выводимых символов, сначала направляемых в специальный файл на магнитном диске. Он называется spool- файл, затем по окончании виртуальной печати содержимое spool – файла выводится на принтер. Системный процесс который управляет spool – файлом называется spooler, spool-reader, spool-writer.
|