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

Классы МПК:G06F9/48 инициирование программы; переключение программы, например, прерыванием
Автор(ы):,
Патентообладатель(и):КВЭЛКОММ ИНКОРПОРЕЙТЕД (US)
Приоритеты:
подача заявки:
2004-10-22
публикация патента:

Изобретение относится к системам для обеспечения переходов между режимами работы устройства. Техническим результатом является обеспечение перехода между привилегированным и непривилегированным режимами, что позволяет упростить планирование и снижение латентности диспетчера. Система реализует способ обеспечения переходов между привилегированным и непривилегированным режимами работы. Способ содержит этап выполнения приложения в непривилегированном режиме, этап формирования прерывания для запроса служб привилегированной функции и этап перехода в привилегированный режим для выполнения привилегированной функции, причем привилегированная функция выполняется в качестве части того же самого потока выполнения, в котором выполняют приложение. 3 н. и 19 з.п. ф-лы, 3 ил. система для обеспечения переходов между режимами работы устройства, патент № 2358309

система для обеспечения переходов между режимами работы устройства, патент № 2358309 система для обеспечения переходов между режимами работы устройства, патент № 2358309 система для обеспечения переходов между режимами работы устройства, патент № 2358309

Формула изобретения

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

выполняют приложение в непривилегированном режиме;

формируют прерывание для запроса служб привилегированной функции; и

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

2. Способ по п.1, в котором прерывание представляет собой программное прерывание.

3. Способ по п.1, дополнительно содержащий этап подтверждения того, что привилегированная функция представляет собой доверенную функцию.

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

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

6. Способ по п.1, в котором устройство представляет собой беспроводное устройство.

7. Приспособление для обеспечения переходов между режимами работы устройства, в котором режимы работы содержат привилегированный режим и непривилегированный режим, содержащее:

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

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

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

8. Приспособление по п.7, в котором прерывание представляет собой программное прерывание.

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

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

11. Приспособление по п.7, в котором устройство представляет собой беспроводное устройство.

12. Приспособление для обеспечения переходов между режимами работы устройства, причем режимы работы содержат привилегированный режим и непривилегированный режим, содержащее:

средство для выполнения приложения в непривилегированном режиме;

средство для приема прерывания, которое запрашивает службы привилегированной функции; и

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

13. Приспособление по п.12, в котором прерывание представляет собой программное прерывание.

14. Приспособление по п.12, также содержащее средство для подтверждения того, что привилегированная функция представляет собой доверенную функцию.

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

16. Приспособление по п.12, в котором устройство представляет собой беспроводное устройство.

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

команды для выполнения приложения в непривилегированном режиме;

команды для формирования прерывания для запроса служб привилегированной функции; и

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

18. Машиночитаемый носитель по п.17, в котором прерывание представляет собой программное прерывание.

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

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

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

22. Машиночитаемый носитель по п.17, в котором устройство представляет собой беспроводное устройство.

Описание изобретения к патенту

ООбласть техники, к которой относится изобретение

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

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

Усовершенствования в технологии привели к росту разнообразия устройств для домашнего, офисного и персонального использования. Например, компьютерные системы, такие как настольные компьютеры, портативные компьютеры и планшетные компьютеры, стали мощными инструментальными средствами для использования дома или в офисных средах. Персональные устройства, такие как беспроводные телефоны, «карманные» компьютеры (PDA) и пейджеры, также стали более мощными и на данный момент широко используются.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

В одном или нескольких вариантах осуществления система перехода взаимодействует с выполняющейся в устройстве средой выполнения, которая используется для упрощения работы устройства, например, посредством обеспечения обобщенных запросов для определенных ресурсов устройства. Одна такая среда выполнения представляет собой программную платформу Binary Runtime Environment for WirelessTM (BREW), разработанную фирмой QUALCOMM, Inc, San Diego, California. Нижеследующее описание представляет устройство, выполняющее указанную среду выполнения, такую как программная платформа BREW. Однако в одном или нескольких вариантах осуществления система перехода является подходящей для использования с другими типами сред выполнения для обеспечения быстрых и эффективных переходов режима работы в разных устройствах, включающих в себя операционные системы или другие программы управление или мониторинга. Например, устройства могут включать в себя, но не ограничиваться этим, настольные компьютеры, портативные компьютеры, «карманные» компьютеры и портативные устройства, такие как беспроводные телефоны, пейджеры, «карманные» компьютеры для выполнения некоторых специальных функций, устройства для работы с электронной почтой, планшетные компьютеры, или другие типы вычислительных устройств.

Фиг.1 изображает устройство 102, которое является подходящим для осуществления одного или нескольких вариантов осуществления системы перехода для обеспечения переходов между режимами работы устройства 102, как описано здесь. Устройство 102 может быть частью домашнего, офисного или персонального устройства, такого как беспроводной телефон или «карманный» компьютер для выполнения некоторых специальных функций, или любого другого типа вычислительного устройства. В процессе работы одно или несколько приложений выполняются в устройстве 102 для обеспечения информацией, функциями и/или службами устройство 102. Например, один тип приложения может быть приложением средства просмотра, которое функционирует для предоставления устройству 102 возможности отображать фильмы, новости или другие типы мультимедийного содержимого.

В одном варианте осуществления устройство 102 включает в себя среду 104 выполнения, которая выполняется в устройстве 102, например среду выполнения BREW. Среда выполнения включает в себя, по меньшей мере, два режима работы, а именно непривилегированный режим (NP) и привилегированный режим (P). Непривилегированный режим работы используется для ограничения прав доступа, выполняющихся в устройстве приложений. Например, выполняющиеся в непривилегированном режиме приложения ограничиваются выбранными областями памяти и могут быть лишены доступа к регистрам устройства или другим ресурсам. Привилегированный режим работы предоставляют выполняющимся в этом режиме приложениям возможность обращения к памяти или ресурсам устройства без ограничений.

При выполнении приложения в устройстве 102 оно выполняется в среде выполнения для обеспечения желательных функциональных возможностей. Например, приложение 106 запускается в устройстве 102 в непривилегированном режиме (NP) для обеспечения желательных функциональных возможностей. Однако приложение 106 может запрашивать функции или системные службы, которые являются доступными только в привилегированном режиме. Например, приложению 106 может потребоваться доступ к привилегированной памяти или к ресурсам аппаратных средств устройства. Для того чтобы получить эти функции или службы, описанная здесь система перехода обеспечивает механизм, который предоставляет приложению 106 возможность передачи управления (как показано на этапе 108) функции 110 привилегированного режима после надлежащего подтверждения. Функция 110 функционирует в привилегированном режиме для выполнения требуемой функции или службы. Функция 110 выполняется в той же самой задаче или потоке выполнения, что и непривилегированное приложение 106. После передачи обеспеченных в привилегированном режиме функций или служб, система перехода разрешает передачу управления (как показано на этапе 112) обратно к приложению непривилегированного режима.

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

Фиг.2 изображает функциональную блок-схему устройства 102, содержащего один вариант осуществления системы перехода. Устройство 102 содержит логику (логическую схему) 202 обработки и ресурсы 226 аппаратных средств, которые подключены к внутренней шине 204 данных. Память 206 для хранения кода и память 208 для хранения данных подключены к логике 202 обработки.

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

Ресурсы 226 устройства содержат аппаратные средства и/или программные ресурсы, которые функционируют для обеспечения интерфейсов устройства, запоминающего устройства большой емкости, пользовательского ввода/вывода и любого другого типа ресурса устройства. Например, команды могут быть загружены в устройство 102 через локальное запоминающее устройство, такое как гибкий магнитный диск, компакт-диск (CD-ROM), флэш-память, или другое локальное запоминающее устройство, которое взаимодействует с устройством 102 через ресурсы 226 устройства. В другом варианте осуществления команды могут быть загружены в устройство 102 из сетевого ресурса, такого как сетевой сервер, или любого другого типа сетевого ресурса, который также взаимодействует с устройством 102 через ресурсы 226 устройства. Как описано здесь, при выполнении команд посредством логики 202 обработки, обеспечивается один или несколько вариантов осуществления системы перехода.

В одном варианте осуществления память 206 для хранения кода содержит оперативную память (RAM), постоянную память (ROM), флэш-память, электрически стираемую программируемую память (EEROM) или любой другой подходящий тип памяти или их комбинацию. Память 206 для хранения кода разделена на привилегированную область 210 (P) и непривилегированную область 212 (NP). Привилегированная область 210 включает в себя код программы, который при выполнении имеет неограниченный доступ к памяти или другим системам устройства 102. Например, привилегированная область 210 кода содержит код операционной системы (OS), код пользовательского интерфейса (UI), код подтверждения и коды первой и второй привилегированной функции (FUNC 1) и (FUNC 2). Код, показанный в привилегированной области 210 кода, является типичным образцом для типов привилегированного кода, который может быть включен в устройство 102. Также привилегированная область 210 кода может включать в себя другие типы привилегированного кода для выполнения в устройстве 102.

Непривилегированная область 212 кода включает в себя код программы, который при выполнении ограничен в доступе только выбранными областями памяти. Например, непривилегированная область 212 кода содержит код операционной системы (OS) и код приложения (App1). В одном варианте осуществления код может быть кодом, который загружен в устройство 102, установленным при изготовлении устройства, или добавлен в устройство из локальной памяти или системы. Диспетчер 214 памяти (MMU) также подключен к памяти 206 для хранения кода. Диспетчер 214 памяти (MMU) функционирует для ограничения работы непривилегированного кода программы для того, чтобы непривилегированный код был ограничен в правах доступа выбранными областями памяти 206 для хранения кода.

В одном варианте осуществления память 208 для хранения данных содержит привилегированную область 216 и непривилегированную область 218. Привилегированная область 226 содержит области данных, к которым можно получить доступ только посредством привилегированного кода программы. Например, привилегированная область 216 данных содержит данные используемые посредством кода операционной системы (OS), пользовательского интерфейса (UI), подтверждения, FUNC 1 и FUNC 2. Непривилегированная область 218 данных включает в себя области данных, к которым можно получить доступ посредством непривилегированного кода программы. Например, непривилегированная область 218 данных содержит данные, используемые посредством непривилегированного кода операционной системы (OS) и программы App1. К памяти 208 для хранения данных также подключен диспетчер 220 памяти (MMU). Диспетчер 220 памяти (MMU) функционирует для ограничения доступа к непривилегированным и привилегированным областям данных. Например, непривилегированное приложение ограничено в доступе для доступных данных в привилегированной области 216 данных или данных, принадлежащих другим непривилегированным приложениям в непривилегированной области 218 данных.

Логика 202 обработки также содержит логику 222 режима и логику 224 прерывания. Логика 222 режима содержит центральный процессор (CPU), процессор, логику, регистры устройства, программное обеспечение или любую комбинацию аппаратных средств и программного обеспечения, которая функционирует для предоставления возможности изменения режима между режимами работы устройства 102. Например, в одном варианте осуществления логика 222 режима содержит регистр, биты которого устанавливают режим работы. Например, для переключения из привилегированного режима в непривилегированный режим устанавливаются выбранные биты в регистре, что приводит к восстановлению непривилегированного стека и выполнению программы, продолжающемуся в непривилегированном режиме.

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

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

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

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

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

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

В течение выполнения потока 302 выполняется непривилегированное приложение 304. Приложение 304 может представлять собой приложение средства просмотра, которое предоставляет устройству возможность отображения разного мультимедийного содержимого пользователю устройства. В процессе выполнения приложения 304 возникают запросы служб привилегированной функции. На этапе 306 приложение получает индекс, который связан с привилегированной функцией. На этапе 308 приложение 304 формирует прерывание, которое функционирует для запроса режима работы устройства для перехода в привилегированный режим 310 для того, чтобы привилегированная функция могла быть выполнена.

Прерывание 308 может быть программным прерыванием или любым другим типом прерывания, которое может быть сформировано посредством приложения 304. Прерывание включает в себя индекс, который идентифицирует привилегированную функцию, которая будет выполняться. Например, прерывание может быть обработано посредством изображенной на Фиг.2 логики 234 прерывания.

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

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

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

После определения привилегированной функции она вызывается на этапе 322. Например, привилегированная функция может функционировать для открытия конкретного системного файла, который содержит данные для использования непривилегированным приложением 304. В одном варианте осуществления дополнительные параметры передают привилегированной функции из приложения 304. Например, параметры могут дополнительно указать или определить тип службы, запрашиваемой непривилегированным приложением 304. Например, в одном варианте осуществления параметры передают через регистры устройства в виде: [подсистема] [способ], где «подсистема» указывает на ресурс, а «способ» указывает на то, какая функция должна быть выполнена.

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

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

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

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

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

Класс G06F9/48 инициирование программы; переключение программы, например, прерыванием

управление скоростью, с которой обрабатываются запросы на прерывание, формируемые адаптерами -  патент 2526287 (20.08.2014)
способ выполнения изменения программы в режиме онлайн в системе автоматизации -  патент 2432604 (27.10.2011)
системы и способы двухрежимной виртуализации устройства реальных и идеализированных аппаратных устройств -  патент 2406113 (10.12.2010)
интегрирование высоконадежных функций в приложение посредством разложения приложения -  патент 2367006 (10.09.2009)
устройство и способ для выполнения данных -  патент 2364919 (20.08.2009)
система для вызова привилегированной функции в устройстве -  патент 2342695 (27.12.2008)
способ переключения контекста вычислительного процесса при прерывании программы или переходе к подпрограмме -  патент 2340933 (10.12.2008)
способ переключения контекста задач и процедур в процессоре -  патент 2320002 (20.03.2008)
устройство переключения программ -  патент 2316044 (27.01.2008)
система и способ для защиты от недоверенного кода режима управления с системой с помощью переадресации прерывания режима управления системой и создания контейнера виртуальной машины -  патент 2313126 (20.12.2007)
Наверх