Применение правил замены в алгоритмах поиска драйвера устройства

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

Рубрика Программирование, компьютеры и кибернетика
Вид статья
Язык русский
Дата добавления 10.03.2018
Размер файла 238,2 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

Размещено на http://www.allbest.ru/

Современная Гуманитарная Академия

Применение правил замены в алгоритмах поиска драйвера устройства

аспирант, ведущий программист

Ильин Игорь Андреевич

кандидат технических наук, доцент

Белянина Наталья Васильевна.

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

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

В данной статье описан третий механизм обработки результирующей выборки - механизм правил замены.

На примере алгоритма автоматического поиска драйверов устройств показаны преимущества использования правил замены, а также предложены варианты реализации на основе искусственного языка с конструкциями if-else и подмножества структурированного языка разметки XML.

Механизмы поиска. Рассмотрим механизм поиска драйверов.

Каждый драйвер характерезуется информацией по устройствам, для которых драйвер создан. Информация об устройстве представлена в виде строки, разбитой на блоки. Формат этой строки определен стандартом Plug and Play, разработанным группой компаний в главе с Intel в 1992 году [2].

Общий механизм поиска драйвера выглядит следующим образом:

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

2. На вход функции поиска подается PNP-строка устройства, для которого необходимо найти драйвер.

3. На выходе возвращается выборка (набор) идентификаторов драйверов в БД, попавших под критерии поиска.

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

1. PNP-строка - строковое описание устройства, поддерживаемое драйвером [3]. Пример - PCI\VEN_1002&DEV_7145&REV_00, где PCI - это перечислитель устройства, VEN_1002 - префик производителя устройства и идентификатор производителя устройства, DEV - префик устройства и его идентификатор, REV - префик версии устройства и его идентификатор. Также в строке могут встречаться CC - префик класса и подкласса устройства, SUBSYS - префикс подсистемы и поставщика подсистемы устройства.

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

3. Дата драйвера - аналогично версии драйвера, дата также производит отсечение однотипных драйверов, возвращая драйвер с самой последней датой.

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

5. Аппаратная платформа - для разных аппаратных платформ существуют разные драйвера. Драйвер для платформы X86 не подойдет для платформы X64 и наоборот.

Исходя из описанной выше структуры базы драйверов, приведем правила поиска драйвера для устройства:

1. Поиск драйвера осуществляется на основе гибкого сопоставления PNP-строки устройства с PNP-строкой драйвера. Под гибким сопоставлением понимается итеративное отсечение блоков PNP-строки с последующим сравнением со строкой драйвера.

2. Выбираются драйвера только для указанной аппаратной платформы

3. Выбираются драйвера только для указанной программной платформы

4. Выбираются драйвера с максимальной версией

5. Выбираются драйвера с максимальной датой.

Гибкий поиск драйвера - это механизм, предложенный компанией Microsoft в 1995 году. Что понимается под этим поиском?

Как уже было описано выше, каждая PNP-строка разделена на блоки - блок производителя микросхемы (VEN), блок устройства (DEV), блок производителя платы (SUBSYS), блок класса устройства (CC), блок версии устройства (REV). Драйвера часто описываются не полной PNP-строкой, а лишь ее частью. Например, VEN_1002&CC_0300. Что означает, что данный драйвер подоходит для всех устройство производителя 1002 с классом 0300.

При сопоставлении мы можем говорить о, так называемых, шаблонах сопоставления, или в терминологии Microsoft, совместимых идентификаторах (Compatible Ids) [5]:

o Шаблон полного совпадения PCI\VEN_%&DEV_%&SUBSYS%&CC_%&REV_%

o Шаблон без версии - PCI\VEN_%&DEV_%&SUBSYS%&CC_%

o Шаблон без подсистемы и версии - PCI\VEN_%&DEV_%& CC_%

o Шаблон без подсистемы, класса и версии - PCI\VEN_%&DEV_%

o Шаблоны по производителю: VEN_%&CC_%; VEN_%

Становится очевидно, что для одного устройства могут быть найдены несколько драйверов.

Как раз на этом этапе применяется механизм ранжирования, где шаблону полного совпадения присваиваетя наивысший ранг, т.к. драйвера, найденные по этому шаблону, наиболее близко подоходят к устройству. Далее, в порядке убывания шаблонов, каждому из них присваивается ранг на порядок ниже предыдущего ранга. Т.е. для шаблона без версии ранг будет присвоен 1, т.к. шаблону полного совпадения присваивается ранг 0.

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

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

Исключаеются драйвера, неподходящие под аппаратную и программную платформы.

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

Далее исключаются драйвера, чьи даты не совпадают с датой драйвера из выборки с максимальной датой.

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

Если после прохождения всех этапов поиска в результирующей выборке остается несколько результатов, то выбирается первый из набора.

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

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

Другой вариант - это проблемы с, так называемыми, многокомпонентыми устройствами, которым необходим драйвер шины и драйвер устройства.

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

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

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

Приведем возможные варианты:

? Для одного, либо нескольких устройств заменить драйвер А на драйвер Б. При этом драйвер А должен входить в результирующую выборку, а драйвер Б может быть пустым (т.е. правило замены вырождается в правило исключения).

? Для одного, либо нескольких устройств добавить драйвер А для драйвера Б. При этом драйвер А должен входить в результирующую выборку, а драйвер Б не может быть пустым.

Реализация правил может быть различной.

Вариант с конструкциями вида if-for-use показан на рисунке 1.

Опишем работу правил на примере первой конструкции.

Если имеются четрые устройства

PCI\VEN_8086&DEV_2570&SUBSYS_25708086&CC_0600,

PCI\VEN_8086&DEV_2571&CC_0604,

PCI\VEN_8086&DEV_244E&CC_0604,

PCI\VEN_8086&DEV_24D0&CC_0601,

то драйвер PCI\VEN_8086&DEV_24D5&SUBSYS_E0028086&CC_0401 из результирующей выборки заменить на драйвер из каталога AUDIO\Adi\SoundMAX.

Это правило решает указанную выше проблему найденных в процессе происка драйверов, приводящих к сбою в системе при попытке их установки.

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

Рис. 1.

Другой подход к реализации языка правил - это использование расширенного языка разметки XML [6].

Основными преимуществами реализации правил на языке XML являются следующие:

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

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

? Большинство современных СУБД имеют встроенные механизмы работы с XML-подобными структурами.

? Интепретаторы XML-данных работают во много раз быстрее интерпретаторов строковых данных.

? Язык XML по своей структуре предполагает расширение. Соответственно правила можно бесконечно много расширять, добавляя новый функционал.

Приведем пример, описанного выше правила, только с использованием XML (рисунок 2).

Рис. 2.

Символы-разделители PNP-блоков (&) заменены на вертикальную черту (|), т.к. символ & является зарезервированным в стандарте языка XML.

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

Однако эти нововведения не коснулись алгоритмов поиска драйверов. Использующиеся сейчас алгоритмы (в частности алгоритмы, реализованные в PNP Manager операционной системы Windows) в момент времени работают лишь с одним устройством и не учитывают специфики работы этого устройства вместе с другими устройствами системной платы.

Плавила замены позволяют избежать этих недостатков, заменяя, исключая, либо добавляя драйвера.

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

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

Литература

1. Nong Ye, “The hand book of Data mining”, Mahwah, New Jersey, 2003.

2. http://en.wikipedia.org/wiki/Plug-And-Play

3. http://en.wikipedia.org/wiki/Peripheral_Component_Interconnect

4. http://en.wikipedia.org/wiki/PCI_Configuration_Space

5. http://msdn2.microsoft.com/en-us/library/ms791082.aspx

6. http:// http://www.w3.org/XML/.

Размещено на Allbest.ru

...

Подобные документы

  • Теоретические сведения об алгоритмах поиска подстроки в строке. Глобализация информации в сети Internet. Интеллектуальный поиск. Алгоритм последовательного (прямого) поиска, Рабина и их применение. Анализ алгоритмов. Реализация программного кода.

    курсовая работа [230,8 K], добавлен 12.02.2009

  • Диагностика многофункциональных устройств (МФУ), описание их устройства, назначение составных частей и принцип работы. Анализ моделей МФУ. Подключение МФУ и установка драйвера. Основные неисправности сканера, принтера. Алгоритм поиска неисправностей.

    курсовая работа [1,7 M], добавлен 26.03.2012

  • Структура окна Word. Методы представления и работа с несколькими документами. Ввод и редактирование текста. Средства поиска и замены. Отмена действия ошибочных команд. Изменение внешнего вида текста. Установка отступов и интервалов. Работа со списками.

    реферат [33,8 K], добавлен 03.02.2013

  • Обзор алгоритмов распознания объектов на двумерных изображениях. Выбор языка программирования. Обнаружение устойчивых признаков изображения. Исследование алгоритмов поиска объектов на плоскости. Модификация алгоритма поиска максимума дискретной функции.

    дипломная работа [1,0 M], добавлен 16.06.2013

  • Поиск как основа функционирования СОЗ. Стратегии; эвристического поиска и управления выводом. Циклическая работа интерпретатора. Вывод на знаниях в продукционных системах. Методы поиска в глубину и ширину. Формализация задач в пространстве состояний.

    презентация [741,2 K], добавлен 14.08.2013

  • Основные критерии и требования к средствам поиска по ресурсу. Технологии создания инструментов поиска. Способы поиска по ресурсу. Принцип действия поиска по ключевым словам и при помощи поисковых систем. Разработка ресурса "Поиск по ресурсу" в виде блога.

    курсовая работа [983,7 K], добавлен 01.02.2015

  • Функциональная схема объекта заданной структуры. Выбор алгоритма диагностирования. Построение принципиальной схемы дешифратора технического объекта. Выбор элементной базы и построение принципиальной схемы устройства автоматического поиска неисправностей.

    контрольная работа [196,9 K], добавлен 28.01.2017

  • Повышение быстродействия операционной системы. Разработка драйверов для средств хранения данных, управление работой устройства командами PnP. Создание, настройка параметров и установка классового драйвера виртуального диска, его структура и свойства.

    курсовая работа [163,2 K], добавлен 18.06.2009

  • Основные типы электронных путеводителей, предназначение их мультимедийной разновидности. Применение электронного путеводителя для ГОУ ВПО "МГТУ им. Г.И. Носова". Выбор алгоритма поиска оптимального маршрута. Функциональные схемы работы программы.

    дипломная работа [3,7 M], добавлен 13.04.2014

  • Особенности и преимущества языка C#. Алгоритмы поиска маршрутов в графе. Разработка вычислительной системы транспортной логистики на языке C#. Выбор среды разработки, визуализация транспортной сети. Задание условий поиска и пример работы алгоритма.

    дипломная работа [457,1 K], добавлен 24.06.2015

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

    курсовая работа [684,8 K], добавлен 05.04.2015

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

    методичка [36,4 K], добавлен 02.12.2009

  • PHP (Personal Home Page) - язык создания сценариев, история его развития и основные преимущества. Серверные и клиентские технологии. Разработка PHP-скрипта системы поиска по сайту с панелью администрирования. Блок-схемы файлов, руководство пользователя.

    курсовая работа [2,4 M], добавлен 27.04.2011

  • Простота поиска информации в системе "Google.ru", его технологии и функции. История термина и его применение. Выбор условий поиска, автоматическое исключение общих слов. Калькулятор и конвертирование валют. Похожие страницы и проверка правописания.

    реферат [19,2 K], добавлен 21.02.2011

  • Характеристика и назначение справочной правовой системы "Гарант", ее применение в современных организациях. Принципы действия и оценка возможностей базового поиска системы, работа со списками документов. Основные преимущества правовой поддержки онлайн.

    реферат [2,5 M], добавлен 21.04.2010

  • Средства поиска информации в сети Интернет. Основные требования и методика поиска информации. Структура и характеристика поисковых сервисов. Глобальные поисковые машины WWW (World Wide Web). Планирование поиска и сбора информации в сети Интернет.

    реферат [32,2 K], добавлен 02.11.2010

  • Разработка алгоритма реализации на ЭВМ процесса поиска кратчайшего пути в графе методом Дейкстры. Программная реализация алгоритма поиска кратчайшего пути между двумя любыми вершинами графа. Проверка работоспособности программы на тестовых примерах.

    реферат [929,8 K], добавлен 23.09.2013

  • Теоретические сведения. Основные понятия. Строка, её длина, подстрока. Понятие о сложности алгоритма. Алгоритмы основанные на методе последовательного поиска. Алгоритмы Рабина, Кнута - Морриса - Пратта, Бойера – Мура.

    курсовая работа [138,3 K], добавлен 13.06.2007

  • Основные требования к разрабатываемым программам и исходным текстовым файлам. Характеристика шифров замены. Укрупненные структурные схемы и коды программ шифрования и дешифрования, скриншоты их выполнения. Пример зашифрованного текста и его дешифрования.

    курсовая работа [556,8 K], добавлен 14.01.2013

  • Принцип работы и программная реализация однозвучного, одноалфавитного и полиграммного шифра. Шифрование по методу подстановки, замены и кодового слова. Безопасность шифровки простой замены. Частотные характеристики текстовых сообщений и дешифрация.

    контрольная работа [1,1 M], добавлен 02.02.2012

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.