Способ селективной загрузки набора модулей, электронное устройство и носитель данных

Иллюстрации

Показать все

Изобретение относится к системам селективной загрузки набора модулей. Технический результат заключается в повышении эффективности использования памяти. Такой результат достигается тем, что принимают данные, указывающие фактический набор объектов, которые требуется обработать с использованием первого модуля, причем фактический набор объектов представляет собой строгое подмножество возможного набора объектов; проводят анализ элементов фактического набора объектов; идентифицируют требуемый набор модулей, фактически необходимых первому модулю для обработки фактического набора объектов, на основании результатов анализа, причем требуемый набор модулей представляет собой строгое подмножество набора модулей, и загружают из первой памяти во вторую память только элементы набора модулей, которые являются также элементами требуемого набора модулей. 3 н. и 27 з.п. ф-лы, 4 ил.

Реферат

Перекрестные ссылки

Отсутствуют.

Область техники

Настоящая технология относится к системам и способам селективной загрузки набора модулей, номинально требуемого для первого модуля.

Уровень техники

Современные вычислительные устройства, в общем, содержат более одного типа памяти. Средства памяти можно примерно разделить на два типа: (1) память с малым временем задержки выполнения операций, такая как оперативное запоминающее устройство (ОЗУ), при использовании которой программные команды могут непосредственно и эффективно выполняться процессором; и (2) память с большим временем задержки выполнения операций, такая как жесткий диск (ЖД), при использовании которой программные команды не могут эффективно выполняться процессором, но в которой они могут храниться и из которой могут быть загружены в память с малым временем задержки для последующего эффективного выполнения.

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

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

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

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

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

Известны различные методы реализации промежуточного варианта между полностью статической и полностью динамической загрузкой, в соответствии с которыми модули обычно сохраняются в памяти с большим временем задержки, а затем «предварительно загружаются» в память с малым временем задержки в соответствии с предполагаемой потребностью выполнения функций программными командами. Например, способ предварительной динамической загрузки модулей описан в международной публикации №WO 2009/083732 А1 под названием «Предварительная загрузка библиотек динамической компоновки» (далее «публикация Роу»). Как указано в этой публикации, компьютерная программа может иметь «гибкую зависимость» от одной или большего числа библиотек динамической компоновки (DLL), заключающуюся в том, что компьютерной программе только в некоторых случаях требуется осуществить выполнение программных команд, содержащихся в библиотеках DLL. Такая гибкая зависимость отличается от «жесткой» зависимости компьютерной программы от указанных модулей, которая предполагает, что модули требуются для каждого экземпляра программы, независимо от конкретных условий, возникших во время выполнения. В публикации Роу описан способ динамической загрузки одного или большего числа модулей, соответствующий гибкой зависимости, полученной на основе выявленного возникновения конкретных «событий», которые, предположительно, указывают на потребность в конкретных функциях, реализуемых указанными модулями. В публикации описаны различные типы событий, в том числе события, связанные с приемопередатчиком (например, прием данных с использованием сети), события, связанные с интерфейсом пользователя (например, щелчок мышью), и события, связанные со временем (например, наступление субботнего вечера).

В общем, способ и система предварительной загрузки ресурсов, когда они требуются для компьютерной программы, описаны в заявке на патент США №US 2003/0220984 A1 под названием «Способ и система предварительной загрузки ресурсов» (далее «заявка Джонса»). Предварительная загрузка ресурсов выполняется на основании указания состояния программы, называемого «практическим указанием», которое подается на модель прогнозирования, используемую для прогнозирования требуемых ресурсов на основании информации состояния программы. Термин «ресурсы» в широком смысле определяется в заявке Джонса как «любые данные, которые приложение использует в процессе выполнения», а представленные примеры охватывают файл или часть файла, такую как библиотека динамической компоновки, исполняемый файл или компонент программы.

Раскрытие изобретения

Известные системы и способы условной загрузки модулей, такие как системы и способы, описанные в публикации Роу и заявке Джонса, функционируют на основе анализа информации состояния, такой как «события» в публикации Роу или «практические указания» в заявке Джонса.

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

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

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

(b) проведения анализа элементов фактического набора объектов; (с) идентификации требуемого набора модулей, фактически необходимого первому модулю для обработки фактического набора объектов, наосновании результатов анализа, причем требуемый набор модулей представляет собой строгое подмножество набора модулей; и

(d) загрузки из первой памяти во вторую память только элементов набора модулей, которые являются также элементами требуемого набора модулей.

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

(a) приема данных, указывающих фактический набор объектов, которые требуется обработать с использованием первого модуля, причем фактический набор объектов представляет собой строгое подмножество возможного набора объектов;

(b) проведения анализа элементов фактического набора объектов;

(c) идентификации требуемого набора модулей, фактически необходимого первому модулю для обработки фактического набора объектов, на основании результатов анализа, причем требуемый набор модулей представляет собой строгое подмножество набора модулей; и

(d) загрузки из первой памяти во вторую память только элементов набора модулей, которые являются также элементами требуемого набора модулей.

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

(a) приема данных, указывающих фактический набор объектов, которые требуется обработать с использованием первого модуля, причем фактический набор объектов представляет собой строгое подмножество возможного набора объектов;

(b) проведения анализа элементов фактического набора объектов;

(c) идентификации требуемого набора модулей, фактически необходимого первому модулю для обработки фактического набора объектов, на основании результатов анализа, причем требуемый набор модулей представляет собой строгое подмножество набора модулей; и

(d) загрузки из первой памяти во вторую память только элементов набора модулей, которые являются также элементами требуемого набора модулей.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Краткое описание чертежей

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

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

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

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

Фиг. 4 иллюстрирует структурную схему способа, реализованного компьютерной системой, представленной на фиг. 1, в соответствии с примером осуществления настоящей технологии, не ограничивающим объем технологии.

Осуществление изобретения

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

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

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

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

Функции различных элементов, указанных на фигурах, в том числе функциональных элементов, обозначенных термином «процессор», могут быть осуществлены посредством использования специализированного аппаратного обеспечения, предоставляющего возможность выполнения соответствующего программного обеспечения. При использовании процессора соответствующие функции могут быть реализованы одним выделенным процессором, одним коллективно используемым процессором или множеством отдельных процессоров, часть которых может быть компонентами коллективного использования. Кроме того, применение терминов «процессор» или «контроллер» не касается исключительно аппаратного обеспечения, предоставляющего возможность выполнения программного обеспечения, а может подразумевать, среди прочего, аппаратное обеспечение процессора цифровых сигналов (DSP), сетевой процессор, специализированную интегральную схему (ASIC) программируемую матрицу логических элементов (FPGA), постоянное запоминающее устройство (ПЗУ) для хранения программного обеспечения, оперативное запоминающее устройство (ОЗУ) и энергонезависимую память. Может также использоваться другое стандартное и (или) специализированное аппаратное обеспечение. Программные модули или просто модули, которые представляют собой программное обеспечение, могут быть указаны в настоящем документе в виде любой комбинации элементов структурной схемы или других элементов, соответствующих этапам процесса и (или) текстовому описанию. Эти модули могут быть реализованы на основе аппаратного обеспечения, которое явно указано или использование которого подразумевается.

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

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

Фиг. 1 иллюстрирует пример осуществления предложенной технологии в виде компьютерной системы 100, содержащей различные компоненты аппаратного обеспечения: один или большее число одноядерных или многоядерных процессоров, совместно представленных процессором 110, твердотельный накопитель 120 и оперативное запоминающее устройство 130. Обмен данными между различными компонентами компьютерной системы 100 обеспечивается одной или большим числом внутренних и (или) внешних шин 140 (например, шина PCI, универсальная последовательная шина, шина «FireWire» согласно стандарту IEEE 1394, шина SCSI, шина Serial ATA и т.д.), которые связаны с компонентами системы электронными средствами.

В соответствии с примерами осуществления предложенной технологии твердотельный накопитель 120 содержит первый модуль 122, набор модулей 124, номинально требуемый первому модулю 122 для обработки возможного набора объектов (пример которого представлен на фиг. 2), и программные команды 126, выполняемые процессором 110 для селективной загрузки элементов набора модулей 124 на основе анализа выполнения фактического набора объектов (пример которого представлен на фиг. 2), подлежащих обработке первым модулем 122. Следует учитывать, что, хотя первый модуль 122 и программные команды 126 представлены на фиг. 1 как отдельные компоненты, в других примерах осуществления настоящей технологии первый модуль 122 может содержать программные команды 126. Кроме того, в некоторых примерах осуществления настоящей технологии первый модуль 122 может храниться совместно с набором модулей 124 и (или) входить в состав данного набора модулей 124.

На фиг. 2 указан возможный набор объектов 200 и фактический набор объектов 210 в соответствии с примером осуществления предлагаемой технологии. В представленном примере осуществления возможный набор объектов 200 представляет собой набор файлов 201 - 208. Файлы, входящие в состав набора файлов 201 - 208, представляют собой файлы следующих типов или форматов: текстовый (ТХТ), изображение в формате JPEG (JPG), изображение в формате PNG (PNG) и звуковой формата WAV (WAV). Фактический набор объектов 210 представляет собой строгое подмножество набора файлов 201 - 208, включающее только файл 201 (FILE1.TXT) и файл 204 (FILE4.JPG). Таким образом, из фактического набора объектов 210 исключены все объекты возможного набора объектов 200, имеющие формат файлов PNG и WAV (то есть, из фактического набора объектов 210 исключены элементы набора файлов, указанные позициями 206, 207 и 208).

Очевидно, что в других примерах осуществления технологии могут использоваться форматы файлов, отличающиеся от форматов, указанных на фиг. 2. Кроме того, формат файлов не обязательно требуется указывать трехбуквенным расширением имени файла. В некоторых примерах осуществления технологии формат файла может быть указан явным тегом, содержащимся в файле. В некоторых примерах осуществления технологии формат файла может не быть явно указан и определяется только посредством контроля и анализа содержимого файла. Далее, следует учитывать, что как возможный набор объектов 200, так и фактический набор объектов 210 не ограничиваются числом объектов, указанным на фиг.2.

На фиг. 3 указан набор модулей 300 и требуемый набор модулей 310, используемый в примере осуществления предложенной технологии. Например, набор модулей 300 может содержать модули, которые номинально требуются для обработки возможного набора объектов 200, указанного на фиг.2, а требуемый набор модулей 310 может содержать модули, фактически необходимые для обработки фактического набора объектов 210, указанного на фиг. 2. Другими словами, требуемый набор модулей 310 представляет собой подмножество набора модулей 300, причем требуемый набор модулей 310 является фактически необходимым для обработки фактического набора объектов 210, который является подмножеством возможного набора объектов 200.

Как казано на фигуре, набор модулей 300 содержит модуль 301 синтаксического анализа текста, предназначенный для обработки текстовых файлов (например, файлов 201, 202, 203), модуль 302 отображения данных изображения, предназначенный для отображения на дисплее (не показан) изображений, содержащихся в файлах изображений (например, файлах 204, 205, 206), модуль 303 декодирования файлов формата JPEG, предназначенный для декодирования файлов изображений, кодированных в соответствии со стандартом «Объединенной группы экспертов в области фотографии» (например, файлов 204, 205), модуль 304 файлов формата PNG, предназначенный для анализа файлов в формате переносимой сетевой графики, таких как файл 206 и извлечения содержащихся в них изображений, и модуль 305 аудиофайлов ЛИКМ, предназначенный для обработки звуковых данных, модулированных с использованием линейной импульсно-кодовой модуляции (ЛИКМ), которые содержатся в файлах формата WAV (например, файлах 207, 208).

На фиг. 4 указана структурная схема примера реализации способа в соответствии с предложенной технологией. Более конкретно, на фиг.4 представлен реализованный на компьютере способ 400 селективной загрузки набора модулей, номинально требуемых первому модулю 122 для обработки возможного набора объектов 210. Способ 400 может быть реализован, например, в компьютерной системе 100, указанной на фиг. 1, посредством выполнения процессором 110 программных команд 126 с целью селективной загрузки элементов набора модулей 124, номинально требуемых первому модулю 122. Программные команды 126