рефераты конспекты курсовые дипломные лекции шпоры

Реферат Курсовая Конспект

Драйверы устройств ввода вывода

Драйверы устройств ввода вывода - раздел Образование, Экзаменационные вопросы по курсу Операционные системы Первоначально Термин «Драйвер» Применялся В Достаточно Узком Смысле; Под Драй...

Первоначально термин «драйвер» применялся в достаточно узком смысле; под драйвером понимается программный модуль, который:

· входит в состав ядра ОС, работая в привилегированном режиме;

· непосредственно управляет внешним устройством, взаимодействуя с его контр­оллером с помощью команд ввода-вывода компьютера;

· обрабатывает прерывания от контроллера устройства;

· предоставляет прикладному программисту удобный логический интерфейс ра­боты с устройством, экранируя от него низкоуровневые детали управления уст­ройством и организации его данных;

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

 

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

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

Традиционные драйверы, которые стали называть аппаратными, низкоуровневыми, или драйверами устройств, освобождаются от высокоуровневых функций и занимают­ся только низкоуровневыми операциями. Эти низкоуровневые операции составляют фундамент, на котором можно построить тот или иной набор операций в драйверах бо­лее высоких уровней.

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

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

Высокоуровневые драйверы оформляются по тем же правилам и придерживаются тех же внутренних интерфейсов, что и аппаратные драйверы. Как правило, высокоуров­невые драйверы не вызываются по прерываниям, так как взаимодействуют с устройст­вом через посредничество аппаратных драйверов.

В модулях подсистемы ввода-вывода кроме драйверов могут присутствовать и дру­гие модули, например дисковый кэш. Достаточно специфичные функции кэша делают нецелесообразным оформление его в виде драйвера, взаимодействующего с другими модулями ОС только с помощью услуг менеджера ввода-вывода. Другим примером мо­дуля, который чаще всего не оформляется в виде драйвера, является диспетчер окон графического интерфейса. Иногда этот модуль вообще выносится из ядра ОС и реали­зуется в виде пользовательского интерфейса. Таким образом был реализован диспетчер окон в Windows NT 3.5 и 3.51, но этот микроядерный подход заметно замедляет графиче­ские операции, поэтому в Windows 4.0 диспетчер окон и высокоуровневые графические драйверы, а также графическая библиотека GDI были перенесены в пространство ядра.

Аппаратные драйверы после запуска операции ввода-вывода должны своевременно реагировать на завершение контроллером заданного действия путем взаимодействия с системой прерывания. Драйверы более высоких уровней вызываются не по прерывани­ям, а по инициативе аппаратных драйверов или драйверов вышележащего уровня. Не все процедуры аппаратного драйвера нужно вызывать по прерываниям, поэтому драй­вер обычно имеет определенную структуру, в которой выделяется секция обработки прерываний (Interrupt Service Routine, ISR), которая и вызывается от соответствующе­го устройства диспетчером прерываний.

В унификацию драйверов большой вклад внесла ОС UNIX, в которой все драйверы были разделены на два класса: блок-ориентированные (Block-oriented) и байт-ориенти­рованные (Character-oriented) драйверы. Это более общее деление, чем деление на вер­тикальные подсистемы. Например, драйверы графических устройств и сетевых уст­ройств относятся к классу байт-ориентированных.

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

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

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

В свое время ОС UNIX сделала очень важный шаг по унификации операций и структуризации программного обеспечения ввода-вывода. В ОС UNIX все устройства рассматриваются как виртуальные (специальные) файлы, что дает возможность ис­пользовать общий набор базовых операций ввода-вывода для любых устройств незави­симо от их специфики. Подобная идея реализована позже в MS DOS, где последова­тельные устройства - монитор, принтер и клавиатура считаются файлами со специаль­ными именами: con, prn, con.

Разнообразный набор драйверов для широкого круга популярных периферийных устройств - непременное условие популярности ОС у пользователей.

Для разработки драйверов производителями внешних устройств необходимо нали­чие четкого, удобного, открытого и хорошо документированного интерфейса между драйверами и другими компонентами ОС. Драйвер взаимодействует, с одной стороны, с модулями ядра ОС (модулями подсистемы ввода-вывода, модулями системных вызо­вов, модулями подсистем управления процессами и памятью), а с другой стороны -с контроллерами внешних устройств. Поэтому существует два вида интерфейсов: интерфейс «драйвер-ядро» (Driver Kernel Interface, DKI) и интерфейс «драйвер-устройство» (Driver Device Interface).

Интерфейс «драйвер-ядро» должен быть стандартизован в любом случае. Подсис­тема ввода-вывода может поддерживать несколько различных интерфейсов DKI/DDI, предоставляя специфический интерфейс для устройств определенного класса. К наибо­лее общим классам относятся блочные устройства, например диски и символьные устройства, такие как клавиатура и принтеры. Может существовать класс сетевых адапте­ров и др. В большинстве современных ОС определен стандартный интерфейс, который должен поддерживать все блочные драйверы, и второй стандартный интерфейс, поддер­живаемый всеми символьными адаптерами. Эти интерфейсы включают наборы проце­дур, которые могут вызываться остальной операционной системой для обращения к драйверу. К этим процедурам относятся, например, процедуры чтения блока или записи символьной строки.

Кроме того, подсистема ввода-вывода поддерживает большое количество систем­ных функций, которые драйвер может вызывать для выполнения некоторых типовых действий. Например, это операции обмена с регистрами контроллера, ведения буферов промежуточного хранения данных ввода-вывода, взаимодействия с DMA-контролле­ром и контроллером прерываний и др.

У драйверов устройств есть множество функций, перечисленных ниже :

· Обработка запросов записи-чтения от программного обеспечения управления устройствами. Постановка запросов в очередь.

· Проверка входных параметров запросов и обработка ошибок.

· Инициализация устройства и проверка статуса устройства.

· Управление энергопотреблением устройства.

· Регистрация событий в устройстве.

· Выдача команд устройству и ожидание их выполнения возможно в блокированном состоянии до поступления прерывания от устройства.

· Проверка правильности завершения операции.

· Передача запрошенных данных и статуса завершенной операции.

· Обработка нового запроса при незавершенном предыдущем запросе (для реентера­бельных драйверов).

 

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

Многие драйверы обладают сходной общей структурой. Типичный драйвер начина­ет работу с проверки входных параметров. Если они не удовлетворяют определенным критериям, драйвер возвращает ошибку. В противном случае драйвер преобразует абст­рактные термины в конкретные. Например дисковый драйвер преобразует линейный номер кластера в номер головки, дорожки и сектора.

Затем драйвер может проверить, не используется ли это устройство в данный мо­мент. Если устройство занято, запрос может быть поставлен в очередь. Если устройство свободно, проверяется статус устройства, чтобы понять, может ли запрос быть обслу­жен прямо сейчас. Может оказаться необходимым включить устройство или запустить двигатель, прежде чем начнется перенос данных. Как только устройство включено и го­тово, может начинаться собственно управление устройством.

Управление устройством подразумевает выдачу ему серии команд. Именно в драйвер определяется последовательность команд в зависимости от того, что должно быть сдела­но. Определившись с командами, драйвер начинает записывать их в регистры контролле­ра устройства. После записи каждой команды в контроллер может быть нужно прове­рить, принял ли контроллер команду и готов ли принять следующую. Такая последова­тельность действий продолжается до тех пор, пока контроллеру не будут переданы все команды. Некоторые контроллеры способны принимать связные списки команд, нахо­дящихся в памяти. Они сами считывают и выполняют их без дальнейшей помощи ОС.

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

Для поддержки процесса разработки драйверов операционной системы выпускает­ся так называемый пакет DDK (Driver Development Kit), представляющий собой набор инструментальных средств-библиотек, компиляторов и отладчиков.

Динамическая загрузка и выгрузка драйверов

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

Альтернативой динамической загрузке драйверов при изменении текущей конфигу­рации внешних устройств компьютера является повторная компиляция кода ядра с тре­буемым набором драйверов, что создает между всеми компонентами ядра статические связи вместо динамических. Например, таким образом решалась данная проблема в ранних версиях ОС UNIX. При статических вызовах между ядром и драйверами струк­туры ОС упрощается, но этот подход требует наличие исходных кодов модулей ОС, до­ступность которых скорее является исключением (для некоммерческих версий UNIX). Кроме того, в этом варианте работающую версию ОС надо остановить и заменить но­вой, что не всегда допустимо в некоторых применениях.

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

– Конец работы –

Эта тема принадлежит разделу:

Экзаменационные вопросы по курсу Операционные системы

Общая характеристика понятий сложность система модель... Существующие предметные области и явления сложны В силу этого реальный наблюдатель может видеть только отдельные...

Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ: Драйверы устройств ввода вывода

Что будем делать с полученным материалом:

Если этот материал оказался полезным ля Вас, Вы можете сохранить его на свою страничку в социальных сетях:

Все темы данного раздела:

Исследование объекта как системы, признаки сложности системы
Объектом познания является часть реального мира, которая выделяется и воспринимается как единое целое в течение длительного времени. Объект может быть материальным или абстрактным, естеств

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

Архитектура процессора с точки зрения программиста
Для программиста любой процессор состоит из набора регистров памяти различного назначения, которые определенным образом связаны между собой и обрабатываются в соответствии с некоторой системой прав

Основные этапы эволюции вычислительных систем
Существуют различные классификации ВС. Наиболее часто они классифицируются по элементной базе. В соответствии с этой классификацией в эволюции ВС выделяются 4 этапа: 1. Первый период (1945

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

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

Возможности развития ОС, требования к ОС, средства аппаратной поддержки ОС
Необходимость развития обусловлена следующими причинами: ¾ обновление и возникновение новых видов аппаратного обеспечения ¾ появление новых сервисов (для удовлетворе

Основные принципы разработки архитектуры ОС
Архитектура – это базовая организация системы, воплощенная в ее компонентах, их отношениях между собой и с окружением, а также принципы, определяющие проектирование и развитие системы [IEE[1471] .

Монолитная архитектура ОС
В монолитной архитектуре ОС уже присутствует некая структурированность, которая определяется набором процедур. Здесь каждая процедура имеет хорошо определенный интерфейс и может вызвать лю

Многоуровневая архитектура ОС
Многоуровневая архитектура появилась в ответ на ограничения монолитной архитектуры в плане расширяемости, переносимости и совместимости. Основная ее идея состоит в следующем: 1. П

Понятие процесса, состояния процесса, модель процесса
Процесс является фундаментальным понятием, отражающим функционирование ОС. По своей сути это динамический объект, над которым ОС выполняет определенные действия. Рассмотрим модели процессо

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

Критерии планирования и требования к алгоритмам
Понятно, что могут существовать различные алгоритмы планирования. И хотелось бы, чтобы они были универсальны, но реально этого не происходит. Чаще всего тот или иной алгоритм подходит к определенно

Параметры планирования
При планирование ОС опирается на два класса параметров объекта. Первый класс отражает статистические параметры, второй – динамические. Статистические параметры не изменяются в ходе функционирования

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

Алгоритм планирования процессов First-Come, First-Served (FCFS)
Реально существует множество разнообразных алгоритмов планирования. Каждый из них эффективен для определенного класса задач. Существуют алгоритмы, которые можно применять на различных уров

Алгоритм планирования процессов Round Robin (RR)
Отмеченные недостатки устраняются в следующем алгоритме: Round Robin (RR). В целом он похож на предыдущий алгоритм, но дополнительно вводится механизм вытесняющего планирования.

Алгоритм планирования процессов Shortest-Job-First (невытесняющий)
При рассмотрении алгоритмов FCFS и RR мы видели, насколько существенным для них является порядок расположения процессов в очереди процессов, готовых к исполнению. Если короткие задачи расположены в

Алгоритм планирования процессов Shortest-Job-First (вытесняющий)
При вытесняющем SJF-планировании учитывается появление новых процессов в очереди готовых к исполнению (из числа вновь родившихся или разблокированных) во время работы выбранного процесса.

Многоуровневые очереди в планировании процессов (без обратной связи и с обратной связью)
(Multilevel Queue) Для систем, в которых процессы могут быть легко рассортированы по

Потоки. Мультипрограммирование на уровне потоков
Чтобы поддерживать мультипрограммирование (многозадачность), ОС должна определить и оформить для себя те внутренние единицы работы, между которыми будет разделяться процессор и другие ресурсы компь

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

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

Организация физической памяти компьютера
Со времен создания ЭВМ фон Неймана основная память в компьютерной системе организована как линейное (одномерное) адресное пространство, состоящее из последова­тельности слов, а позже байтов. Аналог

Функции ОС по управлению памятью
Под памятью (memory) в данном случае подразумевается оперативная (основная) память компьютера. В однопрограммных операционных системах основная память раз­деляется на две части. Одна часть - для оп

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

Методы структуризации виртуального адресного пространства
Большинство систем виртуальной памяти используют технику, называемую страничной организацией памяти. Любой процесс, реализуемый в компьютере, может обратиться к множеству адресов в памяти. Адреса м

Страничная организация виртуальной памяти
При страничной организации виртуальное адресное пространство каждого про­цесса делится на части одинакового, фиксированного для данной системы размера, на­зываемые виртуальными страницами (Virtual

Сегментация виртуальной памяти
При страничной организации виртуальное адресное пространство делится на равные части механически без учета смыслового значения данных. Для многих задач наличие двух и более отдельных виртуальных ад

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

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

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

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

Логическая организация файлов
Логический ввод-вывод предоставляет приложениям и пользователям доступ к записям. Метод доступа Наиболее близкий пользователю уровень файловой системы. Он обеспечивает стандартный

Каталоговые системы
Связующим звеном между системой управления файлами и набором файлов слу­жит файловый каталог. Простейшая форма системы каталогов состоит в том, что имеет­ся один каталог, в котором содержатся все ф

Физическая организация файловой системы
Информационная структура магнитных дисков Представление пользователей о файловой системе как об иерархически организо­ванном множестве информационных блоков имеет мало общего с порядком хр

S – номер сектора
На каждой стороне каждой пластины размечены тонкие концентрические кольца ­дорожки (tracks), на которых хранятся данные. Нумерация дорожек начинается с 0 от внешнего края к

Физическая организация и адресация файла
Физическая организация выделяет способ размещения файлов на диске и учет соответствия блоков диска файлам. Основными критериями эффективности физиче­ской организации файлов являются:

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

Основные этапы развития операционных систем корпорации Microsoft.
Операционные системы корпорации Microsoft для настольных и переносныхкомпьютеров можно разделить на три семейства: MS DOS, Consumer Windows (Windows95/98/Me) и Professional (Windows NT/2000/2003/.

Общая характеристика структуры ОС Windows 2000,основные изменения в ней по сравнению с ОС Windows NT.
Операционная система 2000 состоит из двух основных частей: самой операционной системы, работающей в режиме ядра, и подсистем окружения, работающих в режиме пользователя. Ядро является

Основные функции, выполняемые уровнем HAL ОС Windows 2000.
Над уровнем HAL располагается уровень, содержащий ядро ОС, а также драйверы устройств. Существуют четыре вида драйверов: (1) аппаратных средств, (2) файловой­системы, (3) фильтров и (4) сетевых уст

Общая характеристика исполняющей подсистемы ОС Windows 2000.
Над ядром и драйверами устройств располагается исполняющая система. Она написана на языке С, не зависит от архитектуры машины и может быть перенесена на новые машины относительно просто. Исп

Основные особенности файловой системы NTFS 5 по сравнению с предыдущими файловыми системами Microsoft.
Файловая система NTFS была полностью разработана заново и достаточно сложна. Каждый том NTFS (т. е. дисковый раздел) содержит файлы, каталоги, битовые массивы и другие структуры данных. Каждый том

Средства достижения безопасности в ОС Windows 2000
ОС Windows NT была разработана так, чтобы соответствовать уровню С2 требований безопасности Министерства обороны США (DoD 5200.28 - STD) [37]. Этот стандарт требует наличия у операционных систем оп

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

Набор API для Win 32.
Этот набор интерфейсов прикладного программирования позволяет выполнять шифрование файлов, дешифрование и восстановление зашифрованных файлов, а также их импорт и экспорт (без предварительного деши

Хотите получать на электронную почту самые свежие новости?
Education Insider Sample
Подпишитесь на Нашу рассылку
Наша политика приватности обеспечивает 100% безопасность и анонимность Ваших E-Mail
Реклама
Соответствующий теме материал
  • Похожее
  • Популярное
  • Облако тегов
  • Здесь
  • Временно
  • Пусто
Теги