Структура ввода–вывода
В состав компьютера общего назначения входят центральный процессор и множество контроллеров, которые соединены общей шиной. Контроллеры периферийного оборудования специализированы по типу оборудования и обычно один контроллер управляет устройством одного типа. Однако иногда конструируются универсальные контроллеры, предназначенные для работы с несколькими разнотипными устройствами. Например, контроллер SCSI (Small Computer System Interface) позволяет подключать до семи различных устройств. Каждый контроллер снабжен памятью, включающей буферное запоминающее устройство, регистр команды, регистр состояния. Контроллер должен обладать способностью перемещать данные между периферийным устройством, которым он управляет, и локальной буферной памятью. Обычно в операционной системе имеется соответствующий драйвер (driver) для каждого контроллера. Драйвер умеет напрямую работать с устройством и предоставляет унифицированный интерфейс для остальной части операционной системы.
Данные, выводимые на носитель информации или вводимые с носителя информации, предварительно накапливаются в буфере. Размер буфера различен для разных устройств и определяется спецификой устройства. Контроллер выполняет приказы (команды) центрального процессора, поступающие в регистр команд. Например, получив команду прочитать данные с носителя, контроллер вырабатывает последовательность управляющих сигналов, в результате чего поверхность носителя перемещается, информация считывается, преобразуется и записывается в буфер.
Рисунок 1.10 – Два метода взаимодействия центрального процессора и контроллера: (а) – синхронный, (b) –асинхронный
Существует два метода взаимодействия центрального процессора и контроллера: синхронный и асинхронный (рис. 1.10). При синхронном методе процесс, запрашивающий операцию ввода–вывода, после прерывания ожидает завершения операции контроллером. При асинхронном методе – после передачи в контроллер команды ввода–вывода, центральный процессор и контроллер работают раздельно.
При синхронном методе ожидание процессором завершения операции ввода–вывода означает, что он работает «вхолостую». Наиболее простой способ заставить процессор работать «вхолостую» заключается в организации «вечного» цикла. Этот цикл продолжается до тех пор пока не получено прерывание. Некоторые компьютеры включают в свою систему команд специальную команду wait, переводящую процессор в «холостой» режим работы. Главное преимущество синхронного метода состоит в легкости определения контроллера, требующего прерывания.
Асинхронный метод предполагает одновременную работу процессора и одного или нескольких контроллеров, что повышает эффективность использования оборудования, однако усложняет механизм прерываний. При асинхронном методе, например, возможна ситуация, когда несколько различных процессов требуют операции ввода–вывода с одним и тем же устройством.
Do'stlaringiz bilan baham: |