Область техники, к которой относится изобретение
Настоящее изобретение относится в целом к эффективной работе устройства и более конкретно к системе для динамической регистрации обработчиков прерываний привилегированного режима в устройстве.
Описание предшествующего уровня техники
Усовершенствования в технологии привели к росту разнообразия устройств для домашнего, офисного и персонального использования. Например, компьютерные системы, такие как настольные компьютеры, портативные компьютеры и планшетные компьютеры, стали мощными инструментальными средствами для использования дома или в офисных средах. Персональные устройства, такие как беспроводные телефоны, «карманные» компьютеры (PDA) и устройства страничной памяти, также стали более мощными и на данный момент широко используются.
В настоящее время многие устройства содержат сложные аппаратные средства и программное обеспечение, которые выполняют операционные системы, такие как UNIX, LINUX или подобные операционные системы. В целом, эти операционные системы обеспечивают множество режимов работы. Например, большинство систем обеспечивают привилегированный и непривилегированный режимы работы. Программам, выполняющимся в привилегированном режиме работы, предоставлена возможность обращения к запоминающему устройству и системным ресурсам без ограничений. Программы, выполняющиеся в непривилегированном режиме, ограничены в доступе к определенным областям запоминающего устройства и/или системам устройства. Эта конфигурация обеспечивает уровень защиты для важной области запоминающего устройства или функций устройства. Например, посредством выполнения сторонних приложений в непривилегированном режиме важные области запоминающего устройства и функции устройства могут быть защищены от несанкционированного доступа. Кроме того, такая структура позволяет системе локализовать ошибки в течение выполнения.
Со временем эти системы стали более сложными для удовлетворения увеличивающихся потребностей устройств и пользователей устройства. Например, для обеспечения разнообразия системных служб используются функциональные модули или функции. В связи с тем, что устройства стали более сложными и оснащенными широкими возможностями, количество и сложность связанных с этими возможностями функций также увеличились.
К сожалению, типичные системы имеют некоторые ограничения относительно поддержки функциональных модулей. Например, типичные системы могут иметь ограниченное количество обработчиков прерываний, используемых для получения доступа к функциям. Например, система может иметь ограниченное количество прерываний, которые могут быть использованы для получения доступа к функциям. Кроме того, определения (системных) прерываний компилируются в выполняемый в устройстве двоичный код, что приводит к неизбежному ограничению в гибкости системы.
Поэтому существует потребность в системе, которая обеспечивает способ динамической регистрации обработчиков прерываний в привилегированные функции. Система должна предоставлять функциям возможность регистрации в течение инициализации системы, таким образом обеспечивая гибкость и избегая потенциальных проблем контроля версий, неизбежных в типичных системах, которые компилируют определения прерываний в выполняемое. Также система должна предоставлять неограниченному количеству функций возможность регистрации, таким образом преодолевая ограничения, связанные с типичными системами, которые связывают постоянное количество доступных прерываний с функциями.
Краткое описание изобретения
В одном или нескольких вариантах осуществления система, содержащая способы и/или устройство, функционирует для обеспечения динамической регистрации обработчиков прерываний привилегированного режима в устройстве. В одном варианте осуществления различные программные модули устанавливают обработчики прерываний в течение инициализации системы. При установке каждому функциональному модулю назначается идентификатор, и модуль сохраняет этот идентификатор в переменной, которая может быть считана непривилегированными приложениями. При вызове из выполняющегося в непривилегированном режиме приложения модуль отыскивает собственный идентификатор обработчика прерываний из переменной для выполнения обработчика прерываний. Это исключает присущие в типичных системах потенциальные проблемы контроля версий, которые связывают функции с постоянным количеством прерываний, которые компилируются в выполняемый двоичный код.
В одном варианте осуществления способ обеспечивает динамическую регистрацию функции в устройстве, которое включает в себя, по меньшей мере, два режима работы, содержащие привилегированный режим и непривилегированный режим. Способ содержит этап идентификации доступного сегмента в структуре данных, которая отображает идентификаторы для функций, и этап сохранения указателя, связанного с функцией в сегменте. Способ также содержит этап поиска связанного с сегментом идентификатора и этап формирования доступного для непривилегированных приложений идентификатора.
В другом варианте осуществления устройство обеспечивает динамическую регистрацию функции в устройстве, которое включает в себя, по меньшей мере, два режима работы, содержащие привилегированный режим и непривилегированный режим. Устройство содержит логическую схему для идентификации доступного сегмента в структуре данных, которая отображает идентификаторы для функций, и логическую схему для сохранения указателя, связанного с функцией в сегменте. Устройство также содержит логическую схему для поиска связанного с сегментом идентификатора и логическую схему для формирования доступного для непривилегированных приложений идентификатора.
В другом варианте осуществления устройство обеспечивает динамическую регистрацию функции в устройстве, которое включает в себя, по меньшей мере, два режима работы, содержащие привилегированный режим и непривилегированный режим. Устройство содержит средство для идентификации доступного сегмента в структуре данных, которая отображает идентификаторы для функций, и средство для сохранения указателя, связанного с функцией в сегменте. Устройство также содержит средство для поиска связанного с сегментом идентификатора и средство для формирования доступного для непривилегированных приложений идентификатора.
В другом варианте осуществления обеспечивается машиночитаемый носитель, содержащий команды, при выполнении которых посредством процессора в устройстве, функционирует для динамической регистрации функции в устройстве. Устройство включает в себя, по меньшей мере, два режима работы, содержащие привилегированный режим и непривилегированный режим. Машиночитаемый носитель содержит команды для идентификации доступного сегмента в структуре данных, которая отображает идентификаторы для функций, и команды для сохранения указателя, связанного с функцией в сегменте. Машиночитаемый носитель также содержит команды для поиска связанного с сегментом идентификатора и команды для формирования доступного для непривилегированных приложений идентификатора.
Другие аспекты, преимущества и особенности настоящего изобретения станут очевидными после обзора сформулированного ниже краткого описания чертежей, подробного описания изобретения и формулы изобретения.
Краткое описание чертежей
Предшествующие аспекты и сопутствующие преимущества описанных здесь вариантов осуществления станут более очевидными в отношении следующего подробного описания, взятого совместно с сопроводительными чертежами, на которых изображено следующее:
Фиг.1 изображает один вариант осуществления системы динамической регистрации, которая функционирует для обеспечения динамической регистрации обработчиков прерываний привилегированного режима в устройстве;
Фиг.2 изображает блок-схему устройства, содержащего один вариант осуществления системы динамической регистрации; и
Фиг.3 изображает схему последовательности операций, которая иллюстрирует процесс работы одного варианта осуществления системы динамической регистрации, для использования в устройстве.
Подробное описание изобретения
Следующее подробное описание представляет систему динамической регистрации, которая функционирует для обеспечения динамической регистрации обработчиков прерываний привилегированного режима в устройстве. Например, система функционирует для предоставления обработчикам прерывания функции возможности регистрации в течение процесса инициализации устройства или в любое другое время перед вызовом функции. В одном варианте осуществления процесс регистрации формирует идентификатор функции, который сохраняется в статической переменной, которая может быть считана и привилегированным и непривилегированным приложениями. Посредством получения идентификатора привилегированное или непривилегированное приложение может получить доступ к обеспеченным посредством функции службам. В связи с тем, что каждая зарегистрированная функция получает доступ через собственный интерфейс, система преодолевает проблемы, связанные с соотнесением функций к постоянному количеству прерываний, как в типичных системах.
В одном или нескольких вариантах осуществления система регистрации взаимодействует с выполняющейся в устройстве средой выполнения (или операционной системой), которая используется для упрощения работы устройства, например, посредством обеспечения обобщенных вызовов определенных ресурсов устройства. Одной такой средой выполнения является программная платформа Binary Runtime Environment for Wireless TM (BREWTM), разработанная фирмой QUALCOMM, Inc, San Diego, California. Следующее описание представляет устройство, выполняющее среду выполнения, такую как платформа программного обеспечения BREW. Однако в одном или нескольких вариантах осуществления система регистрации является подходящей для использования с другими типами сред выполнения для обеспечения быстрой и эффективной регистрации обработчиков прерываний привилегированной функции в ряде устройств, включая формирование систем или других программ управления или мониторинга. Например, устройства могут включать в себя, но не ограничиваться этим, настольные компьютеры, портативные компьютеры, карманные компьютеры и портативные устройства, такие как беспроводные телефоны, пейджеры, персональные цифровые ассистенты (PDA), устройства для работы с электронной почтой, планшетные компьютеры или другой тип вычислительных устройств.
Фиг.1 изображает один вариант осуществления системы 100 динамической регистрации, которая функционирует для обеспечения динамической регистрации обработчиков прерываний привилегированного режима в устройстве 102. Система 100 может быть частью домашнего компьютера, офисного компьютера или персонального устройства, такого как беспроводной телефон или персональный цифровой ассистент (PDA), или любым другим типом вычислительного устройства.
В одном варианте осуществления устройство 102 включает в себя среду 104 выполнения (то есть BREW), которая обеспечивает, по меньшей мере, два режима работы, а именно: непривилегированный режим (NP) и привилегированный режим (P). Непривилегированный режим работы используется для ограничения доступа выполняющихся в устройстве приложений и обеспечения обнаружения ошибок. Например, выполняющиеся в непривилегированном режиме приложения ограничены выбранными областями запоминающего устройства и могут быть лишены доступа к регистрам устройства или другим ресурсам. Привилегированный режим работы предоставляет выполняющимся в этом режиме приложениям возможность обращения к запоминающему устройству или к ресурсам устройства без ограничений.
В процессе инициализации системы функция 106 динамически регистрируется для предоставления выполняющемуся в устройстве приложению возможности получить обслуживание от функции 106. Связанный с функцией обработчик 108 функций функционирует для поиска доступного сегмента 110 в структуре 112 данных обработчика. Обработчик 108 сохраняет указатель функции, который указывает на функцию 106 в доступном сегменте 110. Сегмент 110 имеет соотнесенный идентификатор (или индекс), который находится посредством обработчика 108 и сохраняется в запоминающем устройстве или другой области, которая является доступной непривилегированному приложению. Например, в одном варианте осуществления идентификатор сохраняется в доступной статической переменной 114 непривилегированного режима. Статическая переменная 114 может быть считана непривилегированным приложением 116. Таким образом, функция 106 регистрируется для использования выполняющимся в устройстве приложением. Такой же процесс используется для регистрации одной или любого количества функций. Каждая функция использует доступный сегмент в структуре 112 данных обработчика и сохраняет ее соотнесенный идентификатор в, например, статической переменной, которая может быть считана непривилегированными приложениями.
В процессе работы устройства приложение 116 выполняется в устройстве 102 для обеспечения информацией, функциями и/или услугами устройства 102. Например, один тип приложения может быть приложением средства просмотра, которое функционирует в устройстве 102 для отображения фильмов, новостей или других типов мультимедийного содержимого.
При выполнении приложения 116 на устройстве 102 оно выполняется в среде выполнения для обеспечения желательных функциональных возможностей. Если приложению 116 требуется обратиться к функции 106 для получения обслуживания, то приложение 114 отыскивает идентификатор из статической переменной 114 и использует его для обращения к функции 106.
Фиг.2 изображает функциональную схему устройства 102, содержащего один вариант осуществления системы динамической регистрации. Устройство 102 содержит логическую схему 202 обработки и ресурсы 206 устройства, которые подключены к внутренней шине 204 данных. Ресурсы 206 устройства содержат аппаратные средства, программное обеспечение, запоминающее устройство, логическую схему и/или другие ресурсы, которые предоставляют устройству возможность взаимодействия с различными внутренними и внешними ресурсами, устройствами или системами. Запоминающее устройство 208 кода и запоминающее устройство 210 данных также подключены к логической схеме 202 обработки.
В одном или нескольких вариантах осуществления логическая схема 202 обработки содержит центральный процессор (CPU), процессор, логическую матрицу, логическую схему аппаратных средств, элементы запоминающего устройства, виртуальную машину, программное обеспечение, интерфейсы ввода/вывода и/или любую комбинацию аппаратных средств и программного обеспечения. Таким образом, логическая схема 202 обработки в целом содержит логическую схему для выполнения машиночитаемых команд. Например, команды могут быть загружены в устройство 102 с машиночитаемого носителя, такого как дискета, диск CD-ROM, флэш-память, или других машиночитаемых носителей, которые взаимодействуют с устройством 102 через ресурсы 206 устройства. В другом варианте осуществления команды могут быть загружены в устройство 102 из сетевых ресурсов, таких как сетевой сервер, или любого другого типа сетевых ресурсов, который взаимодействует с устройством 102 через ресурсы 206 устройства. При выполнении команд посредством логической схемы 202 обработки обеспечивается один или несколько вариантов осуществления системы динамической регистрации, как описано здесь.
В одном варианте осуществления запоминающее устройство 208 кода содержит оперативное запоминающее устройство (RAM), постоянное запоминающее устройство (ROM), флэш-память, электрически стираемое программируемое запоминающее устройство (EEROM) или любой другой подходящий тип запоминающего устройства, или их комбинацию. Запоминающее устройство 208 кода разделено на привилегированную область 212 (P) и непривилегированную область 214 (NP) вследствие работы диспетчера 216 памяти. Диспетчер 216 памяти (MMU) функционирует для ограничения работы непривилегированного кода программы так, чтобы непривилегированный код имел ограниченные права доступа к выбранным областям запоминающего устройства 208 (для хранения) кода.
Привилегированная область 212 включает в себя код программы, который при выполнении имеет неограниченный доступ к запоминающему устройству или к другим системам устройства 102. Например, привилегированная область 212 кода содержит код операционной системы (OS), код пользовательского интерфейса (UI), обработчик 108 функции и код 110 привилегированной функции. Код, показанный в привилегированной области 212 кода, является типичным образцом типов привилегированного кода, который может быть включен в устройство 102. Также привилегированная область 212 кода может включать в себя другие типы привилегированного кода для выполнения в устройстве 102.
Непривилегированная область 214 кода включает в себя код программы, который при выполнении ограничен в доступе только выбранными областями запоминающего устройства. Например, непривилегированная область 214 кода содержит код операционной системы (OS) и код 116 приложения (App-NP).
В одном варианте осуществления запоминающее устройство 210 данных содержит привилегированную область 216 и непривилегированную область 218. Привилегированная область 226 содержит области данных, к которым можно получить доступ только посредством привилегированного кода программы. Например, привилегированная область 216 данных содержит данные, используемые данными операционной системы (OS), пользовательского интерфейса (UI) и функции, используемыми функцией 106. Область 216 данных также содержит структуру 112 данных обработчика.
Непривилегированная область 218 данных включает в себя области данных, к которым можно получить доступ посредством непривилегированного кода программы. Например, непривилегированная область 218 данных содержит данные, используемые непривилегированным кодом операционной системы (OS) и кодом 116 приложения App-NP. Область 218 данных также содержит статическую переменную 114, которая содержит связанный с функцией 106 идентификатор. Диспетчер 220 памяти (MMU) функционирует для ограничения доступа к непривилегированным и привилегированным областям данных. Например, непривилегированное приложение ограничено в доступе для данных в привилегированной области 216 данных, или данных, принадлежащих другим непривилегированным приложениям в непривилегированной области 218 данных.
Должно быть отмечено, что конфигурация устройства 102 является лишь одной подходящей для осуществления описанной системы регистрации конфигурацией. Также возможно реализовать один или несколько вариантов осуществления системы регистрации с использованием других конфигураций устройства, функциональных элементов или конфигураций элемента в объеме настоящего изобретения.
В процессе работы устройства 102 система динамической регистрации регистрирует одну или несколько функций в течение процесса инициализации. Например, в одном варианте осуществления, в течение процесса инициализации, функции регистрируются одна за другой до тех пор, пока все функции не будут зарегистрированы. Доступный сегмент в структуре 112 определяется для каждой функции, и идентификатор для каждого соответствующего сегмента делается доступным так, чтобы его было возможно считать посредством непривилегированного приложения.
В одном варианте осуществления описанная система регистрации содержит команды программы, сохраненные на машиночитаемом носителе, которые при выполнении логической схемой 202 обработки обеспечивает описанные здесь функции. В одном или нескольких вариантах осуществления машиночитаемый носитель содержит дискету, компакт-диск, карту памяти, устройство флэш-памяти, оперативное запоминающее устройство (RAM), постоянное запоминающее устройство (ROM) или любой другой тип запоминающего устройства.
Фиг.3 изображает схему 300 последовательности операций, которая иллюстрирует процесс работы одного варианта осуществления системы регистрации для использования в устройстве, например в устройстве 102. Для ясности схема 300 будет описана со ссылкой на изображенное на фиг.2 устройство 102. Предполагается, что устройство выполняет среду выполнения BREW, и что логическая схема 202 обработки выполняет команды программы, сохраненные в запоминающем устройстве 208 кода, для выполнения описанных ниже функций.
В блоке 302 процесс регистрации начинается с поиска доступного сегмента в структуре данных обработчика. Например, логическая схема 202 обработки выполняет команды программы для поиска доступного сегмента в структуре 112 данных. В одном варианте осуществления структура 112 данных представляет собой таблицу, а каждый элемент в таблице представляет собой сегмент. Каждый сегмент может хранить указатель адреса для функции, а также каждый сегмент имеет соотнесенный идентификатор, такой как индекс таблицы.
В блоке 304, после нахождения доступного сегмента, регистрируемый указатель для функции сохраняется в сегменте. Например, указатель адреса для функции Func 106 сохраняется в доступном сегменте 110.
В блоке 306 идентификатор сегмента становится доступным для считывания непривилегированным приложениям. Например, идентификатор сегмента сохраняется в статической переменной, которая может быть считана непривилегированными приложениями. Например, переменная может быть размещена в области данных, где привилегии «чтение/запись» предоставляются привилегированным приложениям, а привилегии «только для чтения» предоставляются непривилегированным приложениям.
В блоке 308 идентификатор используется для получения доступа к привилегированной функции для выполнения обслуживания привилегированных и непривилегированных приложений. Для подробного описания использования идентификатора для получения доступа к привилегированной функции читателю предоставляется ссылка на заявку на патент США «System for providing transitions between operating modes of a device» № дела поверенного 030620, которая включена здесь в качестве ссылки.
Должно быть отмечено, что схема 300 программы иллюстрирует только один вариант осуществления и что могут быть сделаны изменения, добавления или перестановки элементов программы, не отклоняясь от объема изобретения.
Соответственно в то время как один или несколько вариантов осуществления способов и устройства для системы динамической регистрации были иллюстрированы и описаны здесь, следует понимать, что могут быть сделаны разные изменения в вариантах осуществления, не отступая от их сущности или основных характеристик. Поэтому раскрытия и описания предназначены в данном документе для иллюстрации, но не ограничения, объема изобретения, который сформулирован в нижеследующей формуле изобретения.
Изобретение относится к эффективной работе устройств и, в частности, к динамической регистрации обработчиков прерываний привилегированного режима в устройстве. Изобретение предоставляет неограниченному количеству привилегированных функций возможность регистрации для использования выполняющимся в устройстве приложением. Раскрыт способ динамической регистрации функции для использования выполняющимся в устройстве приложением, причем устройство включает в себя, по меньшей мере, два режима работы, содержащие привилегированный режим и непривилегированный режим. Способ содержит этап идентификации доступного сегмента в структуре данных, которая устанавливает соответствие между идентификаторами сегментов структуры данных и функциями и этап сохранения связанного с функцией указателя в сегменте. Способ также содержит этап поиска связанного с сегментом идентификатора и этап обеспечения доступности идентификатора для непривилегированных приложений. Приложение, которому требуется обращение к функции для получения обслуживания, отыскивает идентификатор и использует его для обращения к функции. 2 н. и 10 з.п. ф-лы, 3 ил.
идентифицируют доступный сегмент в структуре данных, которая устанавливает соответствие между идентификаторами сегментов структуры данных и функциями;
сохраняют связанный с функцией указатель в сегменте;
отыскивают связанный с сегментом идентификатор; и
обеспечивают доступность идентификатора для непривилегированных
приложений;
причем приложение, которому требуется обращение к функции для получения обслуживания, отыскивает идентификатор и использует его для обращения к функции.
команды для идентификации доступного сегмента в структуре данных, которая устанавливает соответствие между идентификаторами и функциями;
команды для сохранения связанного с функцией указателя в сегменте;
команды для поиска связанного с сегментом идентификатора; и
команды для обеспечения доступности идентификатора для непривилегированных приложений;
причем приложение, которому требуется обращение к функции для получения обслуживания, отыскивает идентификатор и использует его для обращения к функции.
US 6349355 В1, 19.02.2002 | |||
МИКРОПРОЦЕССОР ВВОДА-ВЫВОДА ИНФОРМАЦИИ | 1992 |
|
RU2042182C1 |
US 6594671 B1, 05.07.2003 | |||
US 6247064 B1, 12.06.2001 | |||
US 5950221 А, 07.09.1999. |
Авторы
Даты
2008-10-20—Публикация
2004-10-28—Подача