MXPA06004736A - Sistema para invocar una funcion privilegiada en un dispositivo - Google Patents
Sistema para invocar una funcion privilegiada en un dispositivoInfo
- Publication number
- MXPA06004736A MXPA06004736A MXPA/A/2006/004736A MXPA06004736A MXPA06004736A MX PA06004736 A MXPA06004736 A MX PA06004736A MX PA06004736 A MXPA06004736 A MX PA06004736A MX PA06004736 A MXPA06004736 A MX PA06004736A
- Authority
- MX
- Mexico
- Prior art keywords
- function
- application
- privileged
- mode
- invoke
- Prior art date
Links
- 238000000034 method Methods 0.000 claims abstract description 22
- 230000006870 function Effects 0.000 description 137
- 238000012545 processing Methods 0.000 description 17
- 238000010586 diagram Methods 0.000 description 6
- 230000007704 transition Effects 0.000 description 5
- 238000010200 validation analysis Methods 0.000 description 5
- 230000008569 process Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000007792 addition Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Abstract
Sistema para invocar una función privilegiada en un dispositivo. El sistema incluye un método que permite a una aplicación invocar una función en un dispositivo, en donde el dispositivo incluye por lo menos dos modos operativos que comprende un modo privilegiado y un modo no-privilegiado, la función se ejecuta en el modo privilegiado. El método incluye recibir una solicitud de la aplicación para invocar la función y determinar el modo operativo de la aplicación. El método también incluye invocar la función utilizando una interrupción, si la aplicación se estáejecutando en el modo no-privilegiado, donde la función se ejecuta dentro de la misma tarea que la aplicación. El método también incluye invocar la función directamente, si la aplicación se estáejecutando en el modo privilegiado.
Description
SISTEMA PARA INVOCAR UNA FUNCIÓN PRIVILEGIADA EN UN DISPOSITIVO
Campo de la Invención La presente invención se refiere generalmente a la operación eficiente de un dispositivo, y más particularmente, a un sistema para invocar una función privilegiada en un dispositivo.
Antecedentes de la Invención Avances en la tecnología han resultado en el desarrollo de una variedad de dispositivos para el hogar, oficina, y uso personal. Por ejemplo, sistemas computarizados, tales como escritorios, agendas y computadoras de tableta se han vuelto herramientas poderosas para su uso en hogar o en ambientes de oficina. Los dispositivos personales, tales como teléfonos inalámbricos, asistentes digitales personales (los PDA) , y dispositivos de búsqueda también se han vuelto más poderoso y ahora se utilizan ampliamente. Muchos dispositivos ahora comprenden hardware y software complejos que ejecutan sistemas operativos tales como UNIX, LINUX o sistemas operativos similares. Generalmente, estos sistemas operativos proporcionan múltiples modos de operación. Por ejemplo, la mayoría de los sistemas proporcionan modos privilegiados y no privilegiados de operación. Los programas que se ejecutan en el modo privilegiado de operación se les permiten acceder a los recursos de la memoria y sistema sin limitación. Los programas que se ejecutan en el modo no privilegiado se les impiden tener acceso a ciertas regiones de la memoria y/o sistemas de dispositivo. Esta configuración proporciona un nivel de protección a funciones importantes de la memoria o el dispositivo. Por ejemplo, al ejecutar las aplicaciones de terceros en el modo no privilegiado, regiones de la memoria importantes y funciones del dispositivo pueden protegerse del acceso no autorizado. También, tal disposición permite al sistema aislar fallos durante la ejecución. Sin embargo, en algunas situaciones, es deseable permitir que funciones del modo privilegiado se invoquen desde aplicaciones que se ejecutan en modo privilegiado o no privilegiado. Por ejemplo, es deseable que una aplicación del modo privilegiado tenga acceso a las funciones de modo privilegiado, pero también es deseable que una aplicación que se ejecuta en el modo no privilegiado tenga acceso a las mismas funciones privilegiadas. Por ejemplo, puede ser deseable permitir a una aplicación tener acceso a un archivo de sistema seleccionado, o hardware del dispositivo, tal como un módem del dispositivo. Desafortunadamente, sistemas convencionales utilizan una trampa para suspender la ejecución de la aplicación no privilegiada mientras una tarea "núcleo" de modo privilegiado separada realiza la operación solicitada. Como un resultado, la nueva de tarea de modo privilegiado resulta en complejidad y sobrecarga de programación adicional . También pueden existir retardos del sistema adicionales en la forma de latencia del distribuidor. Además, la nueva tarea puede ejecutarse en una prioridad diferente que la aplicación no privilegiada de la cual se invocó, complicando con esto adicionalmente la programación y operación del sistema. Por lo tanto, lo que se necesita es un sistema que proporcione una forma para una aplicación, que se ejecuta en el modo privilegiado o no privilegiado, para invocar una función privilegiada para ejecutarse dentro de la misma tarea como la aplicación, proporcionando con esto acceso a conexiones de modo privilegiado parpara aplicaciones que se ejecutan bajo cualquier modo.
SUMARIO DE LA INVENCIÓN En una o más modalidades, un sistema que comprende métodos y/o aparatos que operan para proporcionar acceso a conexiones de modo privilegiado de aplicaciones que se ejecutan en cualquier modo privilegiado o no privilegiado. Por ejemplo, en una modalidad, el sistema proporciona un manipulador de función que permite a una aplicación que se ejecuta en un modo no privilegiado para ejecutar funciones del modo privilegiado dentro de la misma tarea (o unidad de ejecución) , evitando con esto la creación de tareas, latencia de programación y del distribuidor. El manipulador de función también se puede acceder para aplicaciones privilegiadas para permitir que esas aplicaciones ejecuten funciones privilegiadas. De este modo, el sistema se mapea bien en el software existente ya que el acceso a las funciones del modo privilegiado pueden lograrse sin cambiar el modelo del software existente. En una o más modalidades, el manipulador de función opera para determinar si una aplicación solicitante se está ejecutando en el modo privilegiado o no privilegiado. Si la aplicación solicitante se está ejecutando en el modo privilegiado, el manipulador de función solicita la función privilegiada directamente. Si la aplicación solicitante se está ejecutando en el modo no privilegiado, el manipulador de función genera una interrupción que se procesa por, por ejemplo, un sistema de transición que permite a la función privilegiada llamarse dentro de la misma tarea como la aplicación no privilegiada solicitante. De este modo, el manipulador de función opera para proporcionar conexiones de función privilegiada para aplicaciones privilegiadas y no privilegiadas. En una modalidad, la aplicación solicitante pasa un identificador de función al manipulador de función. El identificador de; función identifica las funciones que están disponibles para su ejecución. En una modalidad, el manipulador de función determina la función del identificador y llama la función directamente. En otra modalidad, el manipulador de función genera una interrupción y pasa el identificador al sistema de transición, el cual utiliza el identificador para llamar la función solicitada después de la validación apropiada. La interrupción puede ser una interrupción basada en software, hardware o excepción. En una modalidad, se proporciona un método que permite a una aplicación invocar una función en un dispositivo, donde el dispositivo incluye por lo menos dos modos de operación que comprenden un modo privilegiado y un modo no privilegiado, y la función se ejecuta en el modo privilegiado. El método comprende recibir una solicitud de la aplicación para invocar la función y determinar el modo de operación de la aplicación. El método también comprende invocar la función utilizando una interrupción, si la aplicación se está ejecutando en el modo no privilegiado, donde la función se ejecuta dentro de la misma tarea como la aplicación. El método también comprende invocar la función directamente, si la aplicación se está ejecutando en el modo privilegiado. En otra modalidad, se proporciona el aparato que permite a una aplicación invocar una función en un dispositivo, donde el dispositivo incluye por lo menos dos modos operativos que comprenden un modo privilegiado y un modo no privilegiado, y la función se ejecuta en el modo privilegiado. El aparato comprende lógica que recibe una solicitud de la aplicación para invocar la función. El aparato también comprende lógica que determina el modo de operación de la aplicación. El aparato también comprende lógica para invocar la función utilizando una interrupción, si la aplicación se está ejecutando en el modo no privilegiado, donde la función se ejecuta dentro de la misma tarea como la aplicación. El aparato también comprende lógica para invocar la función directamente, si la aplicación se está ejecutando en el modo privilegiado. En otra modalidad, se proporciona el aparato que permite una aplicación para invocar una función en un dispositivo, en donde el dispositivo incluye por menos dos modos operativos que comprenden un modo privilegiado y un modo no privilegiado, y la función se ejecuta en el modo privilegiado. El aparato comprende los medios por recibir una solicitud de la aplicación para invocar la función y medios para determinar el modo operativo de la aplicación. El aparato también comprende medios para invocar la función utilizando una interrupción, si la aplicación se está ejecutando en el modo no privilegiado, donde la función se ejecuta dentro de la misma tarea como la aplicación. El aparato también comprende medios para invocar la función directamente, si la aplicación se está ejecutando en el modo privilegiado. En otra modalidad, se proporciona un medio que se puede leer por computadora que comprende instrucciones, que cuando se ejecutan por un procesador en un dispositivo, operan para permitir a una aplicación invocar una función en un dispositivo, en donde el dispositivo incluye por lo menos dos modos operativos que comprenden un modo privilegiado y un modo no privilegiado, y la función se ejecuta en el modo privilegiado. El medio que se puede leer por computadora comprende instrucciones para recibir una solicitud de la aplicación para invocar la función e instrucciones para determinar el modo operativo de la aplicación. El medio que se puede leer por computadora también comprende instrucciones para invocar la función que utiliza una interrupción, si la aplicación se está ejecutando en el modo no privilegiado, donde la función se ejecuta dentro de la misma tarea como la aplicación. El medio que se puede leer por computadora también comprende instrucciones para invocar la función directamente, si la aplicación se está ejecutando en el modo privilegiado. Otros aspectos, ventajas y características de la presente invención se volverán aparentes después de la revisión de lo establecido más abajo en la Breve
Descripción de los Dibujos, Descripción Detallada de la
Invención, y las Reivindicaciones.
BREVE DESCRIPCIÓN DE LOS DIBUJOS Los aspectos anteriores y las ventajas entendidas de las modalidades descritas en la presente se volverán más fácilmente aparentes por referencia a la siguiente descripción detallada cuando se tomen junto con los dibujos anexos donde : la FIGURA 1 muestra una modalidad de un sistema de manipulador de función que proporciona conexiones de función privilegiada parpara aplicaciones privilegiadas y no privilegiadas que se ejecutan en un dispositivo 102; la FIGURA 2 muestra un diagrama de bloque detallado de un dispositivo que comprende una modalidad de un sistema de manipulador de función; y la FIGURA 3 muestra un diagrama de flujo que ilustra la operación de una modalidad de un sistema manipulador de función para su uso en un dispositivo.
DESCRIPCIÓN DETALLADA DE LA INVENCIÓN La descripción detallada siguiente describe un sistema de manipulador de función que proporciona conexiones de función privilegiada para aplicaciones privilegiadas y no privilegiadas. Por ejemplo, el sistema opera para recibir llamadas de función de aplicaciones privilegiadas y no privilegiadas, después de que el modo operativo de la aplicación solicitante se determina, y una transición rápida y eficiente se proporciona para la función privilegiada. La función se ejecuta dentro de la misma unidad de ejecución que la aplicación solicitante. De este modo, el manipulador de función proporciona conexiones de función privilegiada para aplicaciones privilegiadas y no privilegiadas, que entonces son capaces de llamar funciones privilegiadas sin que se genere una nueva tarea, evitando con esto la sobrecarga de nueva creación de tareas, la latencia de programación y del distribuidor. En una o más modalidades, el sistema de manipulador de función interactúa con un ambiente de tiempo de ejecución (o sistema operativo) que ejecuta en el dispositivo que se utiliza para simplificar la operación del dispositivo, tal como al proporcionar llamadas generalizadas para recursos específicos del dispositivo. Un ambiente de tiempo de ejecución es el Ambiente de Tiempo de Ejecución Binario para la plataforma del software Wireless™ (BREW™) desarrollada por el QUALCOMM, Inc., de San Diego, California. La siguiente descripción describe un dispositivo que se ejecuta en un ambiente de tiempo de ejecución, tal como la plataforma de software BREW. Sin embargo, en una o más modalidades, el sistema de registro es adecuado para su uso con otros tipos de ambientes tiempos de ejecución para proporcionar registro rápido y eficiente de las conexiones de función privilegiada en una variedad de dispositivos, que incluyen sistemas de generación u otros programas de control o monitoreo. Por ejemplo, los dispositivos pueden incluir, pero no se limitan a computadoras de escritorio, computadoras tipo agenda, computadoras de bolsillo y dispositivos portátiles, tales como teléfonos inalámbricos, buscadores, los PDA, dispositivos de correo electrónico, computadoras de tableta, u otro tipo de dispositivos de cómputo. La FIGURA 1 muestra una modalidad de un sistema 100 manipulador de función que proporciona conexiones de función privilegiada para aplicaciones privilegiadas y no privilegiadas que se ejecutan en un dispositivo 102. El sistema 100 puede ser parte de una computadora doméstica, computadora de oficina o dispositivo personal, tal como un teléfono inalámbrico o PDA, o cualquier otro tipo de dispositivo de cómputo. Durante la operación, una o más aplicaciones se ejecutan en el dispositivo 102 y operan para proporcionar información, funciones y/o servicios al dispositivo 102. Por ejemplo, un tipo de aplicación puede ser una aplicación de visualización que opera para permitir al dispositivo 102 desplegar películas, noticias u otros tipos de contenido de multimedia. En una modalidad, el dispositivo 102 incluye un ambiente 104 de tiempo de ejecución (es decir, BREW) que proporciona por lo menos dos modos de operación; particularmente un modo no privilegiado (NP) y un modo privilegiado (P) . El modo no privilegiado de operación se utiliza para restringir el acceso a las aplicaciones que se ejecutan en el dispositivo y para proporcionar detección de falla. Por ejemplo, para aplicaciones que se ejecutan en el modo no privilegiado se restringen a regiones de memoria seleccionadas y puede negarse el acceso a los registros de dispositivo u otros recursos. El modo privilegiado de operación permite aplicaciones que se ejecutan bajo este modo para tener acceso a la memoria o recursos del dispositivo sin limitación. Cuando una aplicación se ejecuta en el dispositivo 102, se ejecuta bajo el ambiente de tiempo de ejecución para proporcionar la funcionalidad deseada. Por ejemplo, la aplicación 106 se ejecuta en el dispositivo 102 bajo el modo no privilegiado (NP) y la aplicación 108 se ejecuta en el dispositivo 102 en el modo privilegiado (P) .
Cualquiera de estas aplicaciones puede requerir funciones o servicios del sistema que están disponible a través de una función 110 privilegiada. Por ejemplo, las aplicaciones pueden necesitar tener acceso a la memoria privilegiada o los recursos de hardware de dispositivo. Para obtener estas funciones o servicios, el sistema 100 manipulador de función proporciona un mecanismo que permite cualquier aplicación (106,108) para llamar la función privilegiada a través de un manipulador 112 de función. Cuando se llama a través del manipulador 112 de función, la función 110 se ejecuta dentro de la misma unidad de ejecución como la aplicación solicitante. Después de que la función 110 realiza el servicio solicitado, el control de programa regresa a la aplicación solicitante. Como un resultado, el sistema 100 manipulador de función proporciona un mecanismo rápido y eficiente para permitir aplicaciones privilegiadas y no privilegiadas para realizar funciones privilegiadas sin la necesidad para una nueva tarea para crearse y programarse para su ejecución por el ambiente de tiempo de ejecución, eliminando con eso la complejidad del programador y la latencia del distribuidor asociada. La FIGURA 2 muestra un diagrama de bloque detallado del dispositivo 102 que comprende una modalidad de un sistema de manipulador de función. El dispositivo 102 comprende lógica 202 de procesamiento y recursos 206 del dispositivo que se acoplan a un bus 204 de datos interno. Los recursos 206 del dispositivo comprenden el hardware, software, memoria, lógica u otros recursos que permiten al dispositivo interconectarse a los recursos internos y externos, dispositivos o sistemas. También acopladas a la lógica 202 de procesamiento se encuentra la memoria 208 de codificación y la memoria 210 de datos. En una o más modalidades, la lógica 202 de procesamiento comprende una CPU, procesador, disposición de compuerta, lógica de hardware, elementos de memoria, máquina virtual, software, interfaz E/S y/o, cualquier combinación de hardware y software. De este modo, la lógica 202 de procesamiento generalmente comprende lógica para ejecutar instrucciones que se puedan leer por máquina. Por ejemplo, las instrucciones pueden cargarse en dispositivos 102 desde un medio que se puede leer por computadora, tal como un disco flexible, CDROM, memoria flash, u otro medio que se puede leer por computadora que se interconecta al dispositivo 102 mediante los recursos 206 del dispositivo. En otra modalidad, las instrucciones pueden descargarse en el dispositivo 102 desde un recurso de red, como un servidor de red o cualquier otro tipo de recurso de red que se interconecte al dispositivo 102 mediante los recursos 206 del dispositivo. Las instrucciones, cuando se ejecutan por la lógica 202 del procesamiento, proporcionan una o más modalidades de un sistema manipulador de función como se describe en la presente . En una modalidad, la memoria 208 de codificación comprende RAM, ROM, FLASH, EEROM o cualquier otro tipo adecuado de memoria, o una combinación de las mismas. La memoria 206 de codificación se divide en una región 212 privilegiada (P) y una región 214 no-privilegiada (NP) a través de la operación de una unidad 216 de administración de memoria. La MMU 216 opera para restringir la operación del código de programación no-privilegiado de manera que el código no-privilegiado tenga derechos de acceso limitados a las regiones seleccionadas de la memoria 208 de codificación. La región 212 privilegiada incluye el código de programación que cuando se ejecuta tiene acceso no restringido a la memoria u otros sistemas del dispositivo 102. Por ejemplo, la región 212 de código privilegiado comprende el código del sistema operativo (OS) , el código de la interfaz de usuario (Ul) el código, de validación, el código 108 de aplicación (App-P) y el código de función privilegiada FUNC 110. El código mostrado en la región 212 de código privilegiado es representativo de los tipos de código privilegiados que pueden ser incluidos en el dispositivo 102. También es posible que la región 212 de código privilegiado incluya otros tipos de código privilegiado para su ejecución en el dispositivo 102. La región 214 de código no privilegiado incluye código de programación que cuando se ejecuta se restringe el acceso sólo a las regiones de memoria seleccionadas . Por ejemplo, la región 214 de código no-privilegiado comprende código de OS y código 106 de aplicación (App-NP) , y el manipulador 106 de función. En una o más modalidades, el FH 106 puede descargarse al dispositivo 102 de una red o sistema, instalados en la fabricación del dispositivo, o agregar al dispositivo desde un medio que se puede leer por computadora . En una modalidad, la memoria 210 comprende una región 216 privilegiada y una región 218 no-privilegiada. La región 226 privilegiada comprende regiones de datos que pueden accederse sólo por el código de programación privilegiado. Por ejemplo, la región 216 de datos privilegiados comprende datos utilizados por el código de OS, Ul, validación, App-P y FUNC. La región 218 de datos no-privilegiados incluye regiones de datos que pueden accederse por el código de programaciones no-privilegiados. Por ejemplo, la región 218 de datos no-privilegiados comprende datos utilizados por el código de programa no-privilegiado OS, App-NP y FH. También acoplada a la memoria 210 de datos está una dirección de memoria de unidad de memoria (MMU) . La MMU 220 opera para restringir el acceso a las regiones de datos no-privilegiadas y privilegiadas . Por ejemplo, una aplicación no-privilegiada se restringe de tener acceso a los datos en la región 216 de datos privilegiada, o los datos que pertenecen a otras aplicaciones no-privilegiadas en la región 218 de datos no-privilegiada . La lógica 202 de procesamiento también comprende lógica 222 del modo y lógica 224 de interrupción. La lógica 222 del modo comprende una CPU, procesador, lógica, registro de dispositivo, software, o cualquier combinación de hardware y software que opera para permitir un cambio del modo entre los modos operativo del dispositivo 102. Por ejemplo, en una modalidad, de lógica 222 de modo comprende un registro cuyos bits establecen el modo de operación. Por ejemplo, para cambiar del modo privilegiado al modo no-privilegiado, bits seleccionados en el registro se establecen, lo cual resulta en una pila no-privilegiada que establece la ejecución del programa que continúa en el modo no-privilegiado. La lógica 224 de interrupción comprende una CPU, procesador, lógica, software o cualquier combinación de hardware y software que opera para permitir que una interrupción reciba y procese por la lógica 202 de procesamiento. Por ejemplo, la lógica 224 de interrupción puede recibir una interrupción del software que se genera por el código de programación ejecutado por la lógica 202 de procesamiento. En una modalidad, el sistema manipulador de función utiliza la interrupción del software para permitir que el código del programa no-privilegiado ejecute una función privilegiada dentro de la misma tarea y prioridad. En una modalidad, la lógica 224 de interrupción procesa interacciones de software, interrupciones de hardware, excepciones de programa o cualquier otro tipo de interrupción como parte de la operación del sistema manipulador de función. Se debe de observar que la configuración del dispositivo 102 es sólo una configuración adecuada para implementar el sistema manipulador de función descrito. También es posible implementar una o más modalidades del sistema manipulador de función utilizando otras configuraciones del dispositivo, elementos funcionales o configuraciones de los elementos dentro del alcance de la presente invención. Durante la operación del dispositivo 102, la lógica 202 de procesamiento ejecuta el código de aplicación no-privilegiada (es decir, App-NP) y/o código de aplicación privilegiada (App-P) . Cuando cualquier aplicación requiere los servicios de una función privilegiada, tal como Func 110, la aplicación respectiva llama al código 112 de FH con un identificador que identifica la función deseada (es decir, Func) el código 112 de FH es el código no-privilegiado, y de esta forma puede llamarse en las aplicaciones privilegiadas como privilegiadas. El código de FH determina el modo de operación de la aplicación solicitante, y basándose en el modo determinado, ejecuta procedimientos seleccionados para llamar la función privilegiada Func "para proporcionar los servicios solicitados sin crear una nueva tarea. Lo siguiente es un resumen de los procedimientos utilizados por el FH 112 para responder a una solicitud para los servicios de una función privilegiada. 1. Recibir una solicitud de una aplicación para ejecutar una función asociada con un identificador que se pasa con la solicitud. 2. Determinar el modo de operación de la aplicación solicitante. 3. Si la aplicación solicitante se está ejecutando en el modo y operación privilegiada, entonces: a. Buscar la función privilegiada solicitada basándose en el identificador. b. Llamar la función privilegiada. c. Regresar a la aplicación privilegiada solicitante. 4. Si la aplicación solicitante que se está ejecutando en el modo de operación no-privilegiado, entonces : a . Generar una interrupción del software y pasar el identificador. b. Hacer transición a un manipulador de interrupción de modo privilegiado. c. Buscar la función privilegiada solicitada basándose en el identificador. d. Llamar la función privilegiada. e. Después de que se ejecute la función privilegiada, reestablecer los registros no-privilegiados f. Devolver a la aplicación no-privilegiada solicitante. En una modalidad, el sistema manipulador de funciones descrito comprende instrucciones de programación almacenadas en un medio que se puede leer por computadora, en el cual cuando se ejecuta por la lógica 202 de procesamiento, proporciona las funciones descritas en la presente. En una o más modalidades, los medios que se puede leer por computadora comprenden un disco flexible, CD, tarjeta de memoria, dispositivo de memoria FLASH, RAM, ROM, o cualquier otro tipo de dispositivo de memoria. La FIGURA 3 muestra un diagrama 300 de flujo que ilustra la operación de una modalidad de un sistema manipulador de funciones para su uso en un dispositivo, por ejemplo el dispositivo 102. Para claridad, el diagrama 300 de flujo se describirá con referencia al dispositivo mostrado en la FIGURA 2. Se asumirá que el dispositivo está ejecutando una ambiente de tiempo de ejecución BREW que opera para crear una unidad de ejecución 302. La unidad 302 de ejecución representa la ejecución de las aplicaciones privilegiadas o no-privilegiadas en el dispositivo. Un programado del sistema (no mostrado) opera para programar la ejecución de aplicaciones para formar la unidad de ejecución 302. Típicamente, el programador opera para programar la ejecución basada en la prioridad, pero puede operar para programar la ejecución basándose en otros criterios. Sin embargo, el sistema manipulador de funciones descrito en la presente proporciona a un manipulador de funciones que opera dentro de la misma unidad de ejecución como una aplicación solicitante, evitando con esto crear tareas nuevas, complejidad asociada del programador y posible latencia del distribuidor. La unidad de ejecución 302 representa la ejecución de cualquier aplicación privilegiada (App-P) o aplicación no-privilegiada (App-NP) . La aplicación ejecutante puede ser una aplicación de visualización que permite al dispositivo desplegar diversos contenidos de multimedia a un usuario del dispositivo. Cuando se ejecuta la aplicación, un requerimiento por los servicios de una función privilegiada (Func) ocurre. Para obtener los servicios de la función privilegiada, la aplicación llama al FH 304 y pasa un identificador que identifica la función privilegiada Func . Se asumirá que funciones privilegiadas disponibles en el sistema tienen un identificador asociado que puede descubrirse por la aplicación ejecutante. En una o más modalidades, las siguientes funciones se realizan por la lógica 202 de procesamiento que ejecuta instrucciones de programación almacenada en la memoria 208 de codificación, la cual también puede procesar datos en la memoria 210 de datos . En el bloque 306, el FH 304 obtiene el identificador que identifica la función privilegiada Func. Por ejemplo, el identificador puede pasarse al FH en un registro asociado con la lógica 202 de procesamiento u otra ubicación de memoria en la memoria 210 de datos. En el bloque 308, se realiza una prueba para determinar si la aplicación solicitante se está ejecutando en el modo privilegiado o no-privilegiado. Por ejemplo, la lógica del procesamiento determina el modo del proceso actual de la aplicación al evaluar los registros del estado del procesador. Si la aplicación solicitante se está ejecutando en el modo no-privilegiado, el método procede al bloque 310. Si la aplicación solicitante se está ejecutando en el modo privilegiado, el método procede al bloque 312.
En el bloque 312, se ha determinado que la aplicación se está ejecutando en el modo privilegiado. El código 304 de FH busca la función privilegiada solicitada (es decir, Func) basándose en el identificador recibido. Por ejemplo, la lógica 202 de procesamiento utiliza el identificador para tener acceso a una estructura de datos que mapea funciones disponibles e identificadores para determinar la función que se solicita por la aplicación solicitante. La estructura de datos puede almacenarse en la memoria 210 de datos. En el bloque 314, la función privilegiada Func se llama para realizar el servicio solicitado. Por ejemplo, la función privilegiada puede tener acceso a un archivo de sistema o a un recurso de hardware. En una modalidad, la lógica del procesamiento ejecuta instrucciones de programación para llamar la función privilegiada Func. Con la ejecución, la función Func también puede realizar varios parámetros, aprobaciones y validaciones para verificar que la aplicación solicitante ha pasado los parámetros legales y válidos. Una vez que se ha completado la ejecución de la función Func, el flujo de programa regresa a la unidad de ejecución 302. Por lo tanto, si una aplicación privilegiada llama la función Func a través del FH 304, el FH 304 opera para determinar la función solicitada, basándose en el identificador, y llama a esa función para realizar el servicio solicitado. Si una aplicación no-privilegiada llama la función Func a través del FH 304, el FH 304 opera como sigue para proporcionar el servicio solicitado. En el bloque 310, el FH 304 genera una interrupción que opera para solicitar que el modo de operación del dispositivo haga transición al modo 316 privilegiado de manera que la función privilegiada Func pueda ejecutarse. La interrupción puede ser una interrupción del software o cualquier otro tipo de interrupción que pueda generarse por el FH 304. La interrupción incluye el identificador pasado de la aplicación solicitante. Por ejemplo, la interrupción puede generarse y/o procesarse por la lógica 224 de interrupción mostrada en FIGURA 2. Después de que se genera la interrupción, la ejecución de programación fluye hacia el código 316 de programación del modo privilegiado donde la función privilegiada Func se llamada dentro de la misma tarea que la aplicación solicitante. Una breve descripción de la operación del código 316 de programación se proporciona en lo siguiente. Sin embargo, para una descripción más detallada de la operación de código 316 de programación, el lector se remite a la solicitud de Patente Norteamericana "SISTEMA PARA PROPORCIONAR TRANSICIONES ENTRE MODOS OPERATIVO DE UN DISPOSITIVO" que tiene el Expediente del Apoderado No. 030620 el cual se incorpora en la presente para referencia. Después de que ocurre un cambio a una pila de modo privilegiado y la validación del identificador de función pasada, la ejecución de programación fluye al bloque 318. En el bloque 318, la función privilegiada deseada se determinada basándose en el identificador pasado. Por ejemplo, una estructura de datos almacenada en la memoria 210 de datos se busca por la lógica 202 del procesamiento basándose en el identificador para identificar la función deseada Func. En el bloque 320, una vez que se determina la función privilegiada Func, se llama. Por ejemplo, en una modalidad, la lógica 202 de procesamiento ejecuta instrucciones almacenadas en la memoria 208 de codificación para llamar a la función Func . La función privilegiada puede operar para abrir un archivo del sistema particular que contiene datos para su uso por la aplicación no-privilegiada solicitante. En una modalidad, parámetros adicionales se pasan a la función privilegiada desde la aplicación. Por ejemplo, los parámetros pueden indicar además o definir el tipo de servicio que se solicita por la aplicación no-privilegiada. La función privilegiada opera para validar estos parámetros para verificar que la ejecución de la función privilegiada no exceda los privilegios concedidos a la aplicación. Por ejemplo, la función opera para validar los parámetros de manera que la ejecución de la función no excederá las restricciones de memoria puestas en la aplicación. En el bloque 322, después de que se realiza la función Func, los registros del modo no-privilegiados se restauran, incluyendo la pila del modo no-privilegiado. La ejecución del programa regresa a la unidad 302 de aplicación no-privilegiada como se muestra en la trayectoria 324. Se debe observar que el diagrama 300 de flujo de programación ilustra sólo una modalidad y que cambios, adiciones o disposiciones de los elementos de programación pueden hacerse sin desviarse del alcance de la invención. Por consiguiente, mientras una o más modalidades y métodos y aparatos para un sistema manipulador de función se han ilustrado y descrito en la presente, se apreciará que varios cambios pueden hacerse a las modalidades sin apartarse de su espíritu o características esenciales. Por lo tanto, las descripciones y narraciones en la presente se pretenden para ser ilustrativas, pero no limitantes, del alcance de la invención, la cual se establece en las siguientes reivindicaciones.
Claims (18)
- NOVEDAD DE LA INVENCIÓN Habiendo descrito la presente invención se considera como novedad y por lo tanto se reclama como propiedad lo descrito en las siguientes reivindicaciones .
- REIVINDICACIONES 1. Un método para permitir a una aplicación invocar una función en un dispositivo, donde el dispositivo incluye por lo menos dos modos operativos que comprenden un modo privilegiado y un modo no-privilegiado y la función se ejecuta en el modo privilegiado, el método caracterizado porque comprende : recibir una solicitud de la aplicación para invocar la función; determinar el modo de operación de la aplicación; invocar la función utilizando una interrupción, si la aplicación se está ejecutando en el modo no-privilegiado, donde la función se ejecuta dentro de la misma tarea que la aplicación; y invocar la función directamente, si la aplicación se está ejecutando en el modo privilegiado. 2. El método de conformidad con la reivindicación 1, caracterizado porque la interrupción es una interrupción del software .
- 3. El método de conformidad con la reivindicación 1, caracterizado además porque comprende determinar la función basándose en un identificador que se pasa con la solicitud.
- 4. El método de conformidad con la reivindicación 1, caracterizado además porque comprende regresar a la aplicación cuando la ejecución de la función este completa.
- 5. El método de conformidad con la reivindicación 1, caracterizado porque el dispositivo es un dispositivo inalámbrico.
- 6. Aparato para permitir que una aplicación invoque una función en un dispositivo, en donde el dispositivo incluye por lo menos dos modos operativos que comprenden un modo privilegiado y un modo no-privilegiado y la función se ejecuta en el modo privilegiado, el aparato está caracterizado porque comprende: lógica que recibe una solicitud de la aplicación para invocar la función; lógica que determina el modo operativo de la aplicación; lógica para invocar la función utilizando una interrupción, si la aplicación se está ejecutando en el modo no-privilegiado, donde la función se ejecuta dentro de la misma tarea que la aplicación; y lógica para invocar la función directamente, si la aplicación se está ejecutando en el modo privilegiado.
- 7. El aparato de conformidad con la reivindicación 6, caracterizado porque la interrupción es una interrupción del software.
- 8. El aparato de conformidad con la reivindicación 6, caracterizado además porque comprende un identificador asociado con la solicitud que identifica la función.
- 9. El aparato de conformidad con la reivindicación 6, caracterizado porque el dispositivo es un dispositivo inalámbrico.
- 10. Aparato para permitir que una aplicación invoque una función en un dispositivo, en donde el dispositivo incluye por lo menos dos modos operativos que comprenden un modo privilegiado y un modo no-privilegiado, y la función se ejecuta en el modo privilegiado, el aparato está caracterizado porque comprende: medios para recibir una solicitud de la aplicación para invocar la función; medios para determinar el modo de operación de la aplicación; medios para invocar la función utilizando una interrupción, si la aplicación está ejecutando en el modo no-privilegiado, donde la función se ejecuta dentro de la misma tarea que la aplicación; y medios para invocar la función directamente, si la aplicación se está ejecutando en el modo privilegiado.
- 11. El aparato de conformidad con la reivindicación 10, caracterizado porque la interrupción es una interrupción del software.
- 12. El aparato de conformidad con la reivindicación 10, caracterizado además porque comprende medios de identificador para identificar la función.
- 13. El aparato de conformidad con la reivindicación 10, caracterizado porque el dispositivo es un dispositivo inalámbrico.
- 14. Un medio que se puede leer por computadora que comprende instrucciones, que cuando se ejecuta por un procesador en un dispositivo, opera para permitir que una aplicación invoque una función en un dispositivo, donde el dispositivo incluye por lo menos dos modos operativos que comprenden un modo privilegiado y un modo no-privilegiado y la función se ejecuta en el modo privilegiado, el medio que se puede leer por computadora caracterizado porque comprende : instrucciones para recibir una solicitud de la aplicación para invocar la función; instrucciones para determinar el modo de operación de la aplicación; instrucciones para invocar la función utilizando una interrupción, si la aplicación se está ejecutando en el modo no-privilegiado, donde la función se ejecuta dentro de la misma tarea que la aplicación; y instrucciones para invocar la función directamente, si la aplicación se está ejecutando en el modo privilegiado.
- 15. El medio que se puede leer por computadora de conformidad con la reivindicación 1, caracterizado porque la interrupción es una interrupción del software.
- 16. El medio que se puede leer por computadora de conformidad con la reivindicación 1, caracterizado además porque comprende instrucciones para determinar la función basándose en un identificador que se pasa con la solicitud.
- 17. El medio que se puede leer por computadora de conformidad con la reivindicación 1, caracterizado además porque comprende instrucciones para regresar la aplicación cuando la ejecución de la función este completa.
- 18. El medio que se puede leer por computadora de conformidad con la reivindicación 1, caracterizado porque el dispositivo es un dispositivo inalámbrico.
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US10697355 | 2003-10-29 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| MXPA06004736A true MXPA06004736A (es) | 2006-10-17 |
Family
ID=
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP5006366B2 (ja) | デバイスの動作モード間の移行を提供するシステム | |
| KR100832274B1 (ko) | 디바이스에서 특권함수를 호출하는 시스템 | |
| EP1690180B1 (en) | System for dynamic registration of privileged mode hooks in a device | |
| US7496958B2 (en) | System for selectively enabling operating modes of a device | |
| MXPA06004736A (es) | Sistema para invocar una funcion privilegiada en un dispositivo | |
| MXPA06004670A (es) | Sistema para proveer transiciones entre los modos de operacion de un dispositivo | |
| HK1097622A (en) | System for providing transitions between operating modes of a device | |
| MXPA06004681A (es) | Sistema para el registro dinamico de enganches en modo privilegiado en un dispositivo.?? | |
| MXPA06004662A (es) | Sistema para habilitar selectivamente modos de operacion de un dispositivo | |
| HK1099865A (en) | System for invoking a privileged function in a device |