Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Вопрос № 11. Физические и логические методы доступа к периферийным устройствам. Драйверы

Периферийным устройством называется любое устройство, соединенное с ЭВМ, в том числе устройство ввода-вывода и вспомогательное ЗУ.

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

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

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

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

Что именно должны делать устройства, приняв информацию через свой порт, и каким именно образом они должны поставлять информацию для чтения из порта, определяется электронными схемами устройств, получившими название контроллеров. Контроллер может непосредственно управлять отдельным устройством (например, контроллер диска), а может управлять несколькими устройствами, связываясь с их контроллерами посредством специальных шин ввода-вывода (шина IDE, шина SCSI и т. д.).

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

- Устройства ввода-вывода подключаются к системе через порты.

- Могут существовать два адресных пространства: пространство памяти и пространство ввода-вывода.

- Порты, как правило, отображаются в адресное пространство ввода-вывода и иногда – непосредственно в адресное пространство памяти.

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

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

Существуют три способа осуществления ввода-вывода:

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

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

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

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

Рассмотрим работу схемы прямого доступа к памяти. Устройство DMA способно дублировать некоторые функции процессора, в частности получать от процессора возможность передачи данных по системной шине между устройством ввода-вывода и памятью. Обычно DMA использует системную шину в том случае, когда процессор ее не использует. Этот способ наиболее распространен и именуется захватом цикла, т.к. модуль на машинный цикл занимает системную шину. Когда какому-либо процессу необходимо произвести считывание или запись блока данных, процессор передает схеме прямого доступа к памяти (DMA) запрос на связь, затем следующую информацию:

- какая операция должна выполниться (запись или чтение);

- адрес устройства ввода/вывода;

- начальный адрес считываемой/записываемой области памяти (хранится в адресном регистре модуля DMA);

- какое количество слов необходимо прочесть или записать (хранится в регистре счетчика DMA).

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

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

3) программируемый ввод-вывод. Процессор посылает некоторые команды контроллеру ввода-вывода, после которых он ожидает завершения операции ввода-вывода;

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

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

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

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

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

В области технического обеспечения удалось выделить несколько основных принципов взаимодействия внешних устройств с вычислительной системой, т. е. создать единый интерфейс для их подключения, возложив все специфические действия на контроллеры самих устройств. Мы можем затем специфицировать интерфейсы между ядром операционной системы, осуществляющим некоторую общую политику ввода-вывода, и программными частями, непосредственно управляющими устройствами, для каждого из таких типов. Более того, разработчики операционных систем получают возможность освободиться от написания и тестирования этих специфических программных частей, получивших название драйверов, передав эту деятельность производителям самих внешних устройств. Фактически мы приходим к использованию принципа уровневого или слоеного построения системы управления вводом-выводом для операционной системы (см. Рис Структура системы ввода-вывода).

Два нижних уровня этой слоеной системы составляет hardware: сами устройства, непосредственно выполняющие операции, и их контроллеры, служащие для организации совместной работы устройств и остальной вычислительной системы. Следующий уровень составляют драйверы устройств ввода-вывода, скрывающие от разработчиков операционных систем особенности функционирования конкретных приборов и обеспечивающие четко определенный интерфейс между hardware и вышележащим уровнем – уровнем базовой подсистемы ввода-вывода, которая, в свою очередь, предоставляет механизм взаимодействия между драйверами и программной частью вычислительной системы в целом.

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

Драйвер устройства – это специальная программа, которая управляет обменом с периферийным устройством.

Для связи с периферийными устройствами МП имеет группу регистров, которые называются портами ввода-вывода. Таких портов (регистров) может быть 65536. Каждый порт связывается с заранее определенным регистром периферийного устройства. Таким образом, посылая в порт информацию, процессор передает ее в регистр нужного устройства. Читая, получает информацию из регистра ВУ. Контроллеры ВУ сами являются примитивными процессорами, процессор ПЭВМ может посылать им через порты управляющие команды:

IN – послать в аккумулятор AL из порта (in al, # порта)

OUT – переслать из регистра аккумулятора AL в порт (out # порта, al)

Эти команды привилегированные, использование их в пользовательской программе невозможно.

Состав драйвера: Разделы драйвера должны состоять из одного сегмента (данных, стека и т.д.). Драйвер должен быть программой с расширением.com.

Драйвер состоит из 3-х обязательных частей: (1)заголовка; (2)стратегии доступа; (3)обработчика прерываний.

Заголовок драйвера необходим системе:

- для того чтобы идентифицировать его как программу;

- сообщить системе адреса остальных своих частей;

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

Заголовок драйвера имеет стандартный размер 18 байт (в MS-DOS).

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

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

 
 
Драйвер: заголовок   стратегия   обработчик

 

 


Вектор прерывания: адрес программы, обрабатывающей прерывания
Программа обработчик прерываний
Основная программа
int

               
 
     
 
 
   

 

 


<== предыдущая лекция | следующая лекция ==>
Метод Гаусса-Зейделя | Закономерности размещения производительных сил
Поделиться с друзьями:


Дата добавления: 2014-01-20; Просмотров: 812; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.023 сек.