ES2933498T3 - Procedimiento y sistema de control de planificación de tareas de software - Google Patents

Procedimiento y sistema de control de planificación de tareas de software Download PDF

Info

Publication number
ES2933498T3
ES2933498T3 ES18213869T ES18213869T ES2933498T3 ES 2933498 T3 ES2933498 T3 ES 2933498T3 ES 18213869 T ES18213869 T ES 18213869T ES 18213869 T ES18213869 T ES 18213869T ES 2933498 T3 ES2933498 T3 ES 2933498T3
Authority
ES
Spain
Prior art keywords
task
tasks
eligible
software
authorized
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
ES18213869T
Other languages
English (en)
Inventor
Gaël Mace
Antoine Maussion
Romain Vaslin
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Thales SA
Original Assignee
Thales SA
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Thales SA filed Critical Thales SA
Application granted granted Critical
Publication of ES2933498T3 publication Critical patent/ES2933498T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/629Protecting access to data via a platform, e.g. using keys or access control rules to features or functions of an application

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)

Abstract

La invención se refiere a un método y un sistema para controlar la programación de tareas de software a ejecutar en un contexto de aplicación predeterminado, estando adaptadas las tareas de software (26a,...,26z) para ser implementadas por un dispositivo informático en entornos no privilegiados. modo de ejecución, comprendiendo el dispositivo informático recursos de hardware (14a-20a) gestionados por un sistema operativo (8) con un kernel (10) ejecutable en modo de ejecución privilegiado. Este método, ejecutado por dicho kernel, realiza una programación de tareas de software a ejecutar según una estructura de configuración previamente almacenada (36) definiendo, para dicho contexto de aplicación dado, al menos un nivel de prioridad asociado a cada tarea de software de dicho contexto. aplicación, así como, (Traducción automática con Google Translate, sin valor legal)

Description

DESCRIPCIÓN
Procedimiento y sistema de control de planificación de tareas de software
[0001] La presente invención se refiere a un procedimiento de control de planificación de tareas de software para ejecutar en un contexto de aplicación predeterminado, y un sistema asociado.
[0002] La invención se sitúa en el campo de la seguridad de los programas de software, y en particular de los servicios de seguridad realizados mediante software.
[0003] La invención se aplica en particular para la seguridad de las aplicaciones de software ejecutadas en dispositivos de a bordo sensibles, ya se trate de dispositivos de comunicación, por ejemplo, una radio de software, o de dispositivos de control o de mando.
[0004] La invención se aplica también en el campo del control y el mando industrial, y más en general en cualquier sistema cerrado que implementa programas de software predeterminados, en un contexto de aplicación predeterminado, para los cuales es necesario un nivel elevado de seguridad de ejecución.
[0005] De manera conocida, un dispositivo de cálculo, en particular un dispositivo de a bordo, comprende recursos de hardware (término tomado del inglés) que son gestionados por un sistema operativo que comprende un núcleo ejecutable en modo privilegiado. Se entiende por «modo privilegiado» el anillo de protección de la arquitectura de un procesador, tal como se define en la enciclopedia en línea Wikipedia, a partir del cual está autorizada la configuración de los accesos a los recursos de hardware.
[0006] Cualquier aplicación de software (término tomado del inglés), también denominada servicio, es implementada por instrucciones de software, es decir, instrucciones de código de programa ejecutable, estando la ejecución por los recursos de hardware soportada por el sistema operativo. Las aplicaciones de software son ejecutadas en «modo no privilegiado», es decir, en un anillo de protección en el que no están autorizadas a modificar la configuración de los accesos a los recursos de hardware del dispositivo de cálculo.
[0007] Cada aplicación de software está constituida, en general, por varias tareas para efectuar, y un contexto de aplicación incluye varias aplicaciones de software, que pueden ejecutarse de forma concurrente.
[0008] El documento US2012304183A1 describe una asignación dinámica de tareas en un sistema de varios núcleos, para evitar el caso de accesos concurrentes a un mismo recurso compartido.
[0009] En un entorno de ejecución cerrado, para un contexto de aplicación dado, se propone un número contable de servicios, y en consecuencia un número contable de tareas de software.
[0010] En dicha situación, en particular cuando algunas tareas de software, por ejemplo, tareas de software relativas a la autenticación o al tratamiento de datos confidenciales, se efectúan de manera concurrente o sucesiva, es necesario controlar y asegurar la planificación de las tareas.
[0011] Por ejemplo, puede plantearse añadir una aplicación de software específica relacionada con dicho control, pero un control en las aplicaciones de software es complejo y poco seguro, ya que las aplicaciones de software que se ejecutan en modo no privilegiado representan un volumen de instrucciones de software para validar demasiado importante para ser aprehendido con vistas a alcanzar un alto nivel de confianza.
[0012] Por tanto, existe la necesidad de mejorar la seguridad de planificación y de ejecución de tareas de software en un contexto de aplicación dado.
[0013] Para este fin, la invención propone, según un primer aspecto, un procedimiento de control de planificación de tareas de software para ejecutar según la reivindicación 1.
[0014] Ventajosamente, el control de planificación es implementado por el núcleo del sistema operativo, y por tanto se ejecuta en un perímetro de instrucciones de software reducido y en modo privilegiado, en función de una estructura de configuración previamente memorizada. Así, la seguridad de planificación y de ejecución de las tareas de software aumenta.
[0015] El procedimiento de control según la invención puede presentar una o varias de las características de las reivindicaciones dependientes 2 a 6, tomadas independientemente o en combinación, según todas las combinaciones técnicamente aceptables.
[0016] La invención se refiere también, según otro aspecto, a un sistema de control de planificación de tareas de software para ejecutar según la reivindicación 7.
[0017] Según una realización, la estructura de configuración se registra antes de la ejecución de una cualquiera de dichas tareas de software, en una parte de memoria protegida y no accesible.
[0018] Según una realización, el sistema incluye una pluralidad de estructuras de configuración memorizadas, correspondiendo cada estructura de configuración a un contexto de aplicación.
[0019] Otras características y ventajas de la invención se desprenderán de la descripción que se ofrece a continuación, a modo indicativo y de ninguna forma limitativo, en referencia a las figuras anexas, entre las cuales: - la figura 1 es un diagrama de bloques de los principales bloques de hardware y programas de software de un dispositivo de cálculo que implementa la invención según una realización;
- la figura 2 ilustra esquemáticamente aplicaciones de software que comprenden varias tareas de software;
- la figura 3 ilustra esquemáticamente un encadenamiento cronológico de las tareas y un nivel de prioridad asociado; - la figura 4 es un organigrama de las principales etapas de un procedimiento de planificación de tareas según una realización;
- la figura 5 representa esquemáticamente un ejemplo de estructura de configuración memorizada en una realización de la invención;
- la figura 6 representa un ejemplo de matriz de control de las tareas de software en función de los estados según una realización;
- la figura 7 es un ejemplo de grafo de transición de estados según una realización;
- la figura 8 es un ejemplo de matriz que representa un grafo de transición de estados;
- la figura 9 es un organigrama de las principales subetapas de la ejecución de una tarea actual en una realización de comunicación entre tareas.
[0020] La figura 1 ilustra esquemáticamente un sistema 2 de hardware y software implementado en un dispositivo de cálculo según una realización de la invención.
[0021] El sistema 2 incluye un conjunto 4 de recursos de hardware, termino tomado del inglés, constituido en este ejemplo por varios bloques de hardware y varios conjuntos de bloques de software 8, 9.
[0022] Los recursos de hardware comprenden un procesador de cálculo CPU (por «Central Processing Unit» en inglés) 14a, un administrador de memoria virtual 16a denominado MMU por «Memory Management Unit» en inglés, un módulo de gestión de interrupciones 18a y, un generador de reloj 20a usado en particular para la detección de bloqueo del sistema.
[0023] Los recursos de hardware 4 son controlados por un sistema operativo 8, que incluye diversos bloques funcionales de instrucciones de código de control de «hardware», también conocidos por los nombres de controladores («drivers» en inglés), ejecutados en el modo de ejecución denominado privilegiado.
[0024] El sistema operativo es, por ejemplo, un sistema de tipo Linux, o VxWorks® o QNX®, enriquecido por funcionalidades de control de planificación de las tareas de software según las diversas realizaciones de la invención.
[0025] Este sistema 8 incluye un núcleo o tronco común 10, que incluye una interfaz 12 de bajo nivel, también denominada interfaz HAL por «Hardware Abstract Layer» que permite interconectar las órdenes del núcleo 10 con módulos controladores 14 a 20 adaptados para controlar directamente los recursos de hardware 14a a 20a.
[0026] Estos módulos controladores adaptados para controlar directamente los recursos de hardware comprenden un controlador 14 del procesador de cálculo, un controlador 16 de administrador de memoria virtual, un módulo 18 de gestión de interrupciones y, opcionalmente, un módulo de verificación 20 también conocido por el nombre de «Watchdog» en inglés.
[0027] El núcleo 10 incluye también una interfaz 22 de alto nivel, adaptada para soportar la ejecución de aplicaciones de software 24. La o las aplicaciones de software incluyen una pluralidad de tareas de software 26a a 26z. Cada tarea se implementa en forma de instrucciones de código de programa, en un lenguaje dado, compilado para ser ejecutable por los recursos de hardware del dispositivo de cálculo gracias a la interfaz 22.
[0028] La interfaz de alto nivel 22 y las tareas de software 24 forman parte de las aplicaciones de software 9 que son ejecutadas en modo no privilegiado.
[0029] La ejecución de una tarea de software implementa, de manera conocida, cálculos efectuados por el procesador 14a, datos y parámetros memorizados usando, por ejemplo, el módulo administrador de memoria virtual 16a.
[0030] El núcleo 10 está configurado para gestionar la planificación de ejecución de las tareas de software, en particular cuando varias tareas de software son concurrentes, es decir, deben ser ejecutadas simultáneamente.
[0031] Se entiende que, en general, el sistema de software y hardware soporta un cierto nivel de paralelismo de ejecución de tareas, pero para simplificar la explicación, los autores de la invención consideran en lo sucesivo el ejemplo de tareas de software concurrentes que invoca los mismos recursos, para los cuales no se contempla la ejecución en paralelo.
[0032] Para la gestión de la planificación y de la ejecución de las tareas de software, el núcleo 10 incluye un módulo planificador 28, un módulo de gestión de las comunicaciones entre tareas 30 y un módulo 32 de control del estado global.
[0033] El módulo 32 usa una estructura de configuración 36 que comprende, para un contexto de aplicación dado, un conjunto de datos memorizados como se explica a continuación.
[0034] Un contexto de aplicación es un conjunto contable de aplicaciones de software para ejecutar, de manera que cada aplicación de software implementa una o varias tareas de software.
[0035] En un sistema de ejecución cerrado, por ejemplo, en un dispositivo de cálculo de a bordo, están predefinidos uno o varios contextos de aplicación.
[0036] Así, para cada contexto de aplicación, las tareas de software asociadas a este contexto de aplicación son conocidas y contables.
[0037] Un contexto de aplicación (o una aplicación) puede definirse en forma de autómata, de parámetros que permiten caracterizar cada estado de este autómata, de modo que se definen transiciones entre los estados del autómata, que se puede representar por un grafo de estados.
[0038] Para un contexto de aplicación dado, un estado global está definido por un conjunto de tareas autorizadas y de parámetros asociados.
[0039] Para un contexto de aplicación dado, se distinguen varios estados globales, de manera que un grafo de estados que permite mostrar las transiciones autorizadas entre estados globales. En lo que sigue de la descripción, los términos «estado global» y «estado» se usan indistintamente.
[0040] Las tareas autorizadas varían de un estado del grafo a otro. El paso de un estado a otro se lleva a cabo a partir de la solicitud de una tarea autorizada a modificar el estado actual.
[0041] Por ejemplo, en una realización, un primer estado global corresponde al conjunto de los servicios autorizados en modo autenticado, y por tanto después de una autenticación conseguida del usuario del sistema, y un segundo estado global corresponde al conjunto de los servicios autorizados en modo no autenticado, que es un modo por defecto.
[0042] El número total de estados globales posibles del sistema de software está predeterminado.
[0043] Una estructura de configuración de las tareas y los estados globales es memorizada como se explica en detalle a continuación.
[0044] La estructura de configuración memoriza las tareas de software de las aplicaciones de software y los estados globales de un contexto de aplicación dado.
[0045] Para cada tarea, la estructura de configuración memoriza en particular un nivel de prioridad asociado a la tarea. Para cada estado, la estructura de configuración memoriza en particular la lista de tareas autorizadas en este estado.
[0046] El sistema comprende también una interfaz de adaptación 34 que permite adaptar el sistema a un contexto de aplicación dado. Así, es posible implementar varios contextos de aplicación mediante un mismo dispositivo.
[0047] La interfaz de adaptación 34 permite acceder al conjunto 36 de las estructuras de configuración asociadas a un contexto de aplicación elegido.
[0048] A modo de ejemplo ilustrativo, la figura 2 ilustra esquemáticamente dos aplicaciones de software, denotadas respectivamente por A1 y A2 y que pertenecen a un mismo contexto de aplicación.
[0049] Cada una de las aplicaciones de software A1 y A2 comprende el encadenamiento temporal de dos tareas de software, respectivamente las tareas Ti y T2 para Ai y las tareas T3 y T4 para A2.
[0050] Como se explica anteriormente, cada tarea de software Tk tiene un nivel de prioridad Priok, que es un número entero comprendido entre 1 y N. Cuanto más elevado es el nivel de prioridad, más prioritaria es una tarea de software.
[0051] En este ejemplo, las tareas Ti y T2 tienen un mismo nivel de prioridad p inferior al nivel de prioridad q de las tareas T3 y T4, como se ilustra esquemáticamente en la figura 3. Por ejemplo, la aplicación A2 es un servicio de seguridad, por ejemplo, una autenticación de usuario, mientras que la aplicación Ai es una aplicación de funcionamiento de rutina.
[0052] En un ejemplo de escenario, ilustrado esquemáticamente en la figura 3, dos sucesos, denotados por «Suceso A» y «Suceso B», ocurren sucesivamente en el tiempo. Un suceso puede ser de hardware o de software, y la aparición de un suceso induce la implementación de una o varias tareas. Por ejemplo, en el campo de aplicación de la radio de software, un suceso es, por ejemplo, una conexión de usuario o una solicitud de transmisión.
[0053] En el ejemplo ilustrado en la figura 3, el sistema 2 funciona en un modo colaborativo en el que la aparición de un suceso que induce la ejecución de una tarea más prioritaria que una tarea en curso de ejecución no interrumpe inmediatamente la ejecución de la tarea en curso.
[0054] El suceso «Suceso A» está asociado al punto de entrada de la tarea Ti, siendo esta tarea de software ejecutada a partir del instante temporal ti que corresponde a la aparición de el suceso «Suceso A». El suceso «Suceso B» se produce entre los instantes ti y t2, de manera que el instante temporal t2 corresponde a un punto de colaboración entre tareas, es decir, un punto en el que la tarea Ti esté terminada o pueda suspenderse, en modo colaborativo, y los recursos se asignan a una tarea más prioritaria. El suceso «Suceso B» induce una llamada a la aplicación A2, que es prioritaria con respecto a Ai, de manera que las dos tareas de software T3, T4 tienen un nivel de prioridad superior al nivel de prioridad de las tareas Ti y T2 de la aplicación Ai.
[0055] La tarea T3 se ejecuta a partir del instante temporal t2, y la tarea T4 a partir del instante temporal t3, lo que cierra la ejecución de la aplicación A2, y después la segunda tarea T2 es ejecutada entre los instantes temporales t4 y t5, lo que cierra la ejecución de la aplicación Ai.
[0056] La figura 4 es un organigrama de las principales etapas de un procedimiento de control de planificación según una realización de la invención.
[0057] Las etapas del procedimiento se efectúan en el sistema operativo de un dispositivo de cálculo electrónico, en modo de ejecución privilegiado.
[0058] El procedimiento comprende una primera etapa 50, que es una etapa previa a la implementación de aplicaciones de software en un contexto de aplicación dado.
[0059] La etapa previa 50 es una etapa de obtención y de memorización de una o varias estructuras de configuración para cada contexto de aplicación contemplado. Durante esta etapa de inicialización, para un contexto de aplicación dado, la lista de tareas elegibles puede inicializarse a partir de un conjunto de tareas consideradas válidas desde el arranque del sistema.
[0060] La figura 5 ilustra esquemáticamente un ejemplo de estructura de configuración i00 para un contexto de aplicación dado.
[0061] La estructura i00 comprende varios conjuntos de datos.
[0062] Un conjunto de datos i i0 memoriza las tareas de software identificadas, por ejemplo, por un identificador único de tarea denotado por Ti ...Tl en el conjunto ii0.
[0063] Por ejemplo, el conjunto de datos se memoriza en forma de tabla. Los identificadores de tarea se memorizan en una primera columna i i 2 de la tabla i i0. Por ejemplo, cada tarea es identificada por un número de tarea.
[0064] Cada tarea Ti tiene un nivel de prioridad Prioi asociado, entre un número N máximo de niveles de prioridad, memorizado en una columna i i4 de la tabla i i0. El nivel de prioridad de una tarea sigue siendo el mismo para cualquier estado global distinguido en el contexto de aplicación.
[0065] Además, cada tarea Ti tiene un punto de entrada PTi asociado, memorizado en una columna i i6 de la tabla i i0 , y opcionalmente una lista SUi de al menos un suceso que desencadena la ejecución de la tarea en una columna i i8 de la tabla i i0.
[0066] Además, para cada tarea Ti se memoriza, en una columna 120 correspondiente de la tabla 110, una estructura de comunicación utilizada para comunicar hasta la tarea Ti.
[0067] Finalmente, para cada tarea se memorizan los derechos de comunicación de la tarea Ti hacia una o varias tareas de destino T-Desti en una columna 122 de la tabla 110. Por ejemplo, las tareas de destino son identificadas por los identificadores únicos de tarea mencionados anteriormente.
[0068] Si una tarea T1 dada no tiene lista de sucesos SUi asociada, se volverá elegible y, por tanto, ejecutable, como se explica a continuación, si es designada como tarea de destino por otra tarea.
[0069] Naturalmente, la memorización en forma de tabla es proporcionada únicamente a modo de ejemplo y puede contemplarse cualquier variante, dentro del alcance del experto en la materia, de memorización según una o varias estructuras distintas.
[0070] La estructura de configuración comprende una matriz de control de las tareas en función de los estados 140, que indica las tareas autorizadas en cada estado entre todas las tareas del contexto de aplicación, y un grafo 142, correspondiendo cada nodo del grafo a un estado global, y cuyas uniones indican las transiciones autorizadas entre estados.
[0071] La figura 6 ilustra un ejemplo de matriz 140, en un contexto de aplicación de 14 estados y n tareas, en forma de tabla, de manera que las líneas indican los índices de tarea y las columnas, los índices de estado. Las equis indican que una tarea dada está autorizada en el estado dado, por ejemplo, la tarea T1 está autorizada en los estados de índices 1, 4, 7, 9 y 13, y la tarea T4 está autorizada en todos los estados.
[0072] Debe observarse que, en los ejemplos de las figuras 6, 7 y 8, en aras de la simplificación, solo se refieren los índices asociados a los estados.
[0073] La figura 7 ilustra esquemáticamente un grafo 142 de transición entre estados, y la figura 8 ilustra esquemáticamente una matriz 143 correspondiente al grafo 142. Las equis ilustradas en la figura 8 indican para cada estado cuáles pueden ser sus sucesores. Por ejemplo, la primera línea de la matriz 143 indica que los sucesores del estado de índice 1 pueden ser respectivamente el estado de índice 2 y el estado de índice 13.
[0074] En una realización, el grafo de transición entre estados se memoriza en la forma de una matriz 143.
[0075] En una realización, la estructura de configuración identifica y memoriza (bloque 144) una única tarea que asegura el control de las condiciones de cambio de transición y que está autorizada para solicitar al sistema que pase de un estado actual a un estado siguiente.
[0076] Según una alternativa, varias tareas están autorizadas para efectuar un cambio entre un estado actual y un estado siguiente, y estas tareas son memorizadas. Este modo alternativo es bastante más complejo, ya que la ausencia de concurrencia entre las tareas autorizadas a modificar el estado global debe ser verificada.
[0077] En una realización, la estructura de configuración identifica y memoriza una función 146 de tratamiento de anomalías que define el punto de entrada de las alarmas y los errores.
[0078] Preferentemente, la o las estructuras de configuración registradas son estáticas, y por tanto no modificables, y se memorizan en un espacio de memoria protegido y accesible únicamente en modo de ejecución privilegiado por medio del módulo de control de acceso a la memoria (MMU).
[0079] Ventajosamente, se garantiza así la seguridad de ejecución de las tareas.
[0080] De nuevo en la figura 4, durante una etapa 52 de recepción de al menos un suceso para tratar se identifica un suceso de hardware o de software.
[0081] El o cada suceso para tratar induce una llamada a la ejecución de una o varias tareas según los datos 118 memorizados. Estas tareas se convierten en tareas elegibles si son autorizadas en el estado actual del sistema según los datos 140, durante la etapa 54.
[0082] Una tarea se convierte en elegible después de un suceso para tratar o si es invocada para que sea ejecutada por una tarea que a su vez se convierte en elegible.
[0083] Una lista de tareas elegibles se mantiene al día y es memorizada por el procedimiento en la etapa 54. En la inicialización, la lista de tareas elegibles está vacía, y es actualizada después de cada recepción de un suceso para tratar.
[0084] Durante la etapa 54, la lista de tareas elegibles es actualizada en función del o de los sucesos para tratar, de manera que las tareas elegibles son seleccionadas entre el conjunto de tareas predefinidas asociadas al contexto de aplicación. Por ejemplo, los identificadores de las tareas elegibles se inscriben en la lista de tareas elegibles, si no figuran ya en esta lista.
[0085] Cada tarea elegible tiene un nivel de prioridad asociado, que se extrae de la estructura de configuración 100 asociada al contexto de software actual.
[0086] La etapa 54 de actualización de la lista de tareas elegibles se sigue de una etapa 56 de selección de la tarea elegible más prioritaria y autorizada en el estado actual según la estructura de configuración registrada previamente.
[0087] Según una variante o como complemento, si no se identifica ningún suceso para tratar en la etapa 52, la etapa 54 no se efectúa. La selección de la tarea elegible más prioritaria (etapa 56) autorizada en el estado actual se efectúa según la estructura de configuración registrada previamente.
[0088] A modo de ejemplo, algunas tareas elegibles son autorizadas en un estado operativo, pero no son autorizadas en estado de mantenimiento del sistema. En estado de mantenimiento, solo la autenticación del operador de mantenimiento permite desbloquear el sistema.
[0089] Si varias tareas elegibles tienen la misma prioridad, son tratadas preferentemente en el orden cronológico en el que han sido inscritas en la lista de tareas elegibles, según el principio FIFO (de «First-In-First-Out» en inglés). Naturalmente, puede aplicarse cualquier otro tipo de planificación.
[0090] Las etapas de la figura 4 son implementadas por el módulo planificador 28 en modo de ejecución privilegiado.
[0091] A continuación, en la etapa de verificación 58 se verifica si se ha seleccionado una tarea elegible.
[0092] En caso de respuesta negativa, el sistema 2 pasa a modo de espera en la etapa 60.
[0093] En caso de respuesta positiva en la etapa 58, el punto de entrada de la tarea elegible seleccionada es invocado en la etapa 62, y la tarea elegible seleccionada, denominada entonces tarea actual Tc, se ejecuta hasta un punto de colaboración (etapa 64). A continuación se detallará la comunicación de la tarea actual Tc con una tarea T-Desti en referencia a la figura 9.
[0094] Cuando la tarea actual Tc alcanza un punto de colaboración, la etapa 64 se sigue de la etapa 66 en la que se verifica si la tarea actual Tc debe permanecer entre las tareas elegibles, y se actualiza la lista de tareas elegibles.
[0095] Durante la ejecución de la tarea actual Tc, también se verifica si esta tarea está autorizada a solicitar un cambio de estado global, si se cumplen las condiciones de transición del estado actual hacia un nuevo estado, y se efectúa una solicitud al módulo 32 de que cambie el valor de identificador del estado actual.
[0096] A la etapa 66 le siguen la etapa 52 y siguientes descritas anteriormente.
[0097] La figura 9 es un organigrama de las subetapas de la etapa 64 de ejecución de una tarea elegible seleccionada en una realización de comunicación entre tareas.
[0098] Las etapas del procedimiento se efectúan en el sistema operativo de un dispositivo de cálculo electrónico, en modo de ejecución privilegiado.
[0099] La tarea elegible en curso de ejecución se denominada aquí tarea actual (Tc).
[0100] Durante una primera etapa 70, cuando la tarea actual Tc solicita una comunicación con una tarea de destino T-Desti, por medio, por ejemplo, de un mensaje o una señal, en la etapa 72 se verifica si la comunicación solicitada tiene autorización con esta tarea de destino T-Desti. La verificación se lleva a cabo con referencia a las informaciones memorizadas en los datos 122 de la estructura de configuración memorizada.
[0101] En caso de verificación negativa se constata una anomalía, y la etapa 72 se sigue de la etapa 74 en la que se invoca la función de tratamiento de anomalías 146 registrada previamente en la estructura de configuración.
[0102] Preferentemente, la función de tratamiento de anomalía genera una alarma en función de un tipo de anomalía constatada.
[0103] Opcionalmente se genera un informe relativo al tipo de anomalía constatado.
[0104] En el caso en el que el error rencontrado no se haya previsto o cuando no se ha registrado previamente ninguna función de tratamiento de anomalías 146, se efectúa un bloqueo de ejecución del sistema, de manera que garantice la seguridad.
[0105] En caso de verificación positiva en la etapa 72, esta etapa se sigue de una etapa 76 de control de la validez de las estructuras de comunicación 120 de la estructura de configuración registrada previamente.
[0106] En particular, la coherencia y la validez de las estructuras de comunicación de la tarea de destino T-Desti son validadas con respecto a su capacidad en términos de tamaño para recibir el mensaje emitido o con respecto a su activación previa para permitir la notificación de una señal.
[0107] En caso de validación negativa en la etapa 76, esta etapa se sigue de la etapa de tratamiento de anomalía descrita anteriormente.
[0108] En caso de validación positiva, la etapa 76 se sigue de una etapa 78 de transferencia de los datos para comunicar de la tarea actual hacia la tarea de destino.
[0109] A continuación, la lista de tareas elegibles es actualizada en la etapa 80 con la tarea de destino T-Desti, que es añadida a esta lista de tareas elegibles si no se encuentra ya en ella.
[0110] El procedimiento de la invención se ha descrito aquí en una realización particular simplificada. En la práctica, el número de aplicaciones de software, de tareas y de estados para un contexto de aplicación dado es variable y, por tanto, el sistema es adaptativo.
[0111] En la práctica pueden contemplarse variantes como:
- la integración del control de la autorización de la tarea de destino con respecto al estado actual durante la comunicación entre tareas;
- la integración del control de la planificación en un dispositivo de cálculo que comprende varias unidades de tratamientos (un sistema multiprocesador o de varios núcleos) con varias tareas actuales simultáneamente.
[0112] Ventajosamente, la planificación y la ejecución de las tareas de software están controladas, de manera segura siempre que:
- la estructura de configuración se registra en una parte de memoria protegida y no accesible en modo no privilegiado, y por tanto protegida del pirateo a partir de las tareas de aplicación;
- la planificación de las tareas está sujeta a un control de estado global cuya modificación está controlada a su vez por el núcleo del sistema operativo;
- la comunicación entre las tareas también está controlada por el núcleo del sistema operativo.
[0113] Las etapas del procedimiento se efectúan en el sistema operativo de un dispositivo de cálculo electrónico, en modo de ejecución privilegiado.
[0114] La tarea elegible en curso de ejecución se denominada aquí tarea actual (Tc).
[0115] Durante una primera etapa 70, cuando la tarea actual Tc solicita una comunicación con una tarea de destino T-Desti, por medio, por ejemplo, de un mensaje o una señal, en la etapa 72 se verifica si la comunicación solicitada tiene autorización con esta tarea de destino T-Desti. La verificación se lleva a cabo con referencia a las informaciones memorizadas en los datos 122 de la estructura de configuración memorizada.
[0116] En caso de verificación negativa se constata una anomalía, y la etapa 72 se sigue de la etapa 74 en la que se invoca la función de tratamiento de anomalías 146 registrada previamente en la estructura de configuración.
[0117] Preferentemente, la función de tratamiento de anomalía genera una alarma en función de un tipo de anomalía constatada.
[0118] Opcionalmente se genera un informe relativo al tipo de anomalía constatado.
[0119] En el caso en el que el error rencontrado no se haya previsto o cuando no se ha registrado previamente ninguna función de tratamiento de anomalías 146, se efectúa un bloqueo de ejecución del sistema, de manera que garantice la seguridad.
[0120] En caso de verificación positiva en la etapa 72, esta etapa se sigue de una etapa 76 de control de la validez de las estructuras de comunicación 120 de la estructura de configuración registrada previamente.
[0121] En particular, la coherencia y la validez de las estructuras de comunicación de la tarea de destino T-Desti son validadas con respecto a su capacidad en términos de tamaño para recibir el mensaje emitido o con respecto a su activación previa para permitir la notificación de una señal.
[0122] En caso de validación negativa en la etapa 76, esta etapa se sigue de la etapa de tratamiento de anomalía descrita anteriormente.
[0123] En caso de validación positiva, la etapa 76 se sigue de una etapa 78 de transferencia de los datos para comunicar de la tarea actual hacia la tarea de destino.
[0124] A continuación, la lista de tareas elegibles es actualizada en la etapa 80 con la tarea de destino T-Desti, que es añadida a esta lista de tareas elegibles si no se encuentra ya en ella.
[0125] El procedimiento de la invención se ha descrito aquí en una realización particular simplificada. En la práctica, el número de aplicaciones de software, de tareas y de estados para un contexto de aplicación dado es variable y, por tanto, el sistema es adaptativo.
[0126] En la práctica pueden contemplarse variantes como:
- la integración del control de la autorización de la tarea de destino con respecto al estado actual durante la comunicación entre tareas;
- la integración del control de la planificación en un dispositivo de cálculo que comprende varias unidades de tratamientos (un sistema multiprocesador o de varios núcleos) con varias tareas actuales simultáneamente.
[0127] Ventajosamente, la planificación y la ejecución de las tareas de software están controladas, de manera segura siempre que:
- la estructura de configuración se registra en una parte de memoria protegida y no accesible en modo no privilegiado, y por tanto protegida del pirateo a partir de las tareas de aplicación;
- la planificación de las tareas está sujeta a un control de estado global cuya modificación está controlada a su vez por el núcleo del sistema operativo;
- la comunicación entre las tareas también está controlada por el núcleo del sistema operativo.

Claims (9)

REIVINDICACIONES
1. Procedimiento de control de planificación de tareas de software para ejecutar en un contexto de aplicación predeterminado, estando las tareas de software (26a,..., 26z) adaptadas a ser implementadas por un dispositivo de cálculo en modo de ejecución no privilegiado, de manera que el dispositivo de cálculo incluye recursos de hardware (14a-20a) gestionados por un sistema operativo (8) con núcleo (10) ejecutable en modo de ejecución privilegiado, siendo el procedimiento implementado por dicho núcleo (10) del sistema operativo y efectuando una planificación de tareas de software para ejecutar usando una estructura de configuración (36, 100) previamente memorizada (50), de manera que dicha estructura de configuración incluye, para dicho contexto de aplicación dado, al menos un nivel de prioridad (114) asociado a cada tarea de software de dicho contexto de aplicación, caracterizado porque dicha estructura de configuración incluye además para cada tarea de software de dicho contexto de aplicación, una información (122) relativa a las comunicaciones autorizadas de dicha tarea hacia una o varias tareas de software de destino, y para dicho contexto de aplicación dado, un conjunto de estados globales, con, para cada estado global, una indicación (140) de tareas autorizadas en dicho estado y una indicación (142, 143) de transiciones autorizadas entre estados globales, incluyendo el procedimiento las etapas de:
- recepción (52) de al menos un suceso para tratar,
- identificación (54) de al menos una tarea de software elegible, que se ejecutará después de dicho al menos un suceso para tratar, siendo una tarea elegible una tarea autorizada en un estado global actual según dicha indicación (140) de tareas autorizadas,
- planificación (54) de las tareas elegibles en función del nivel de prioridad asociado a cada tarea elegible, y - selección (56) de la tarea elegible enumerada en una lista de tareas elegibles, con la prioridad más elevada y autorizada en el estado global actual.
2. Procedimiento de control según la reivindicación 1 en el que dicha estructura de configuración se registra antes de la ejecución de una cualquiera de dichas tareas de software, de manera que dicho registro es no modificable.
3. Procedimiento de control según cualquiera de las reivindicaciones 1 o 2, que incluye las etapas de: para una tarea elegible seleccionada, verificación (72) de autorización de comunicación previamente memorizada para dicha tarea elegible seleccionada, y
en ausencia de autorización, ejecución (74) de una función de tratamiento de anomalías registrada previamente en dicha estructura de configuración y/o un bloqueo de la ejecución de dicha tarea elegible seleccionada, y en caso de verificación (72) de autorización positiva, validación (76) por verificación de la estructura de configuración memorizada, de una tarea de destino seleccionada, y comunicación (78) de datos hacia la tarea de destino.
4. Procedimiento según cualquiera de las reivindicaciones 1 a 3, en el que dicha estructura de configuración comprende también, para al menos una parte de las tareas, una lista (SUi) de al menos un suceso que desencadena dicha tarea, y en el que la identificación (54) de al menos una tarea de software elegible usa dicha estructura de configuración.
5. Procedimiento según cualquiera de las reivindicaciones 1 a 4, en el que, en la etapa de planificación de las tareas elegibles, cuando varias tareas tienen un mismo nivel de prioridad, se planifican según un orden cronológico de ejecución.
6. Procedimiento de control según cualquiera de las reivindicaciones 1 a 5, que comprende, después de la ejecución de una tarea elegible seleccionada, una actualización (80) de la lista de tareas elegibles.
7. Sistema de control de planificación de tareas de software para ejecutar en un contexto de aplicación predeterminado, que incluye un dispositivo de cálculo, estando las tareas de software adaptadas a ser implementadas por dicho dispositivo de cálculo en modo de ejecución no privilegiado,
de manera que el dispositivo de cálculo incluye recursos de hardware (14a-20a) gestionados por un sistema operativo (8) con núcleo (10) ejecutable en modo de ejecución privilegiado, estando el núcleo (10) del sistema operativo (8) configurado para efectuar una planificación de tareas de software para ejecutar usando una estructura de configuración (36, 100) previamente memorizada por dicho dispositivo de cálculo y que incluye, para dicho contexto de aplicación dado, al menos un nivel de prioridad (114) asociado a cada tarea de software de dicho contexto de aplicación,
estando el sistema caracterizado porque la estructura de configuración incluye además, para cada tarea de software de dicho contexto de aplicación, una información (120) relativa a las comunicaciones autorizadas de dicha tarea hacia una o varias tareas de software de destino, y
para dicho contexto de aplicación dado, un conjunto de estados globales, con, para cada estado global, una indicación (140) de tareas autorizadas en dicho estado y una indicación (142, 143) de transiciones autorizadas entre estados globales,
estando el núcleo (10) del sistema operativo (8) configurado para efectuar:
- una recepción de al menos un suceso para tratar,
- una identificación de al menos una tarea de software elegible, que se ejecutará después de dicho al menos un suceso para tratar, siendo una tarea elegible una tarea autorizada en un estado global actual del sistema según dicha indicación (140) de tareas autorizadas,
- una planificación de las tareas elegibles en función del nivel de prioridad asociado a cada tarea elegible, y - una selección de la tarea elegible enumerada en una lista de tareas elegibles, con la prioridad más elevada y autorizada en el estado global actual.
8. Sistema de control según la reivindicación 7, en el que dicha estructura de configuración se registra antes de la ejecución de una cualquiera de dichas tareas de software, en una parte de memoria protegida y no accesible.
9. Sistema de control según cualquiera de las reivindicaciones 7 o 8, que incluye una pluralidad de estructuras de configuración memorizadas, correspondiendo cada estructura de configuración a un contexto de aplicación.
ES18213869T 2017-12-20 2018-12-19 Procedimiento y sistema de control de planificación de tareas de software Active ES2933498T3 (es)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR1701331A FR3075412B1 (fr) 2017-12-20 2017-12-20 Procede et systeme de controle d'ordonnancement de taches logicielles

Publications (1)

Publication Number Publication Date
ES2933498T3 true ES2933498T3 (es) 2023-02-09

Family

ID=61873353

Family Applications (1)

Application Number Title Priority Date Filing Date
ES18213869T Active ES2933498T3 (es) 2017-12-20 2018-12-19 Procedimiento y sistema de control de planificación de tareas de software

Country Status (4)

Country Link
EP (1) EP3502949B1 (es)
ES (1) ES2933498T3 (es)
FR (1) FR3075412B1 (es)
PL (1) PL3502949T3 (es)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR3129496B1 (fr) * 2021-11-25 2024-06-21 St Microelectronics Grenoble 2 Procédé de gestion d’événements et circuit intégré correspondant.

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8185899B2 (en) * 2007-03-07 2012-05-22 International Business Machines Corporation Prediction based priority scheduling
WO2011104823A1 (ja) * 2010-02-23 2011-09-01 富士通株式会社 マルチコアプロセッサシステム、スレッド制御方法、およびスレッド制御プログラム

Also Published As

Publication number Publication date
FR3075412A1 (fr) 2019-06-21
FR3075412B1 (fr) 2020-01-10
PL3502949T3 (pl) 2023-01-23
EP3502949B1 (fr) 2022-09-21
EP3502949A1 (fr) 2019-06-26

Similar Documents

Publication Publication Date Title
US9348645B2 (en) Method and apparatus for inter process priority donation
Wang et al. Rt-tee: Real-time system availability for cyber-physical systems using arm trustzone
ES2612180T3 (es) Tolerancia a fallos para operaciones complejas de computación distribuida
US9424103B2 (en) Adaptive lock for a computing system having multiple runtime environments and multiple processing units
CN110073646A (zh) 安全IoT设备更新
US10430577B2 (en) Method and apparatus for inter process privilige transfer
US11115348B2 (en) Virtual resource allocation for processing an event queue
KR20140031947A (ko) 가상 분할 모니터링을 위한 시스템 및 방법
ES2928482T3 (es) Procedimiento y sistema de ejecución segura de máquinas virtuales por un conjunto de dispositivos programables interconectados
US10579413B2 (en) Efficient task scheduling using a locking mechanism
KR102485288B1 (ko) 차량용 제어기 및 그것의 운영체제 스케쥴링 방법
US10229077B2 (en) Method for data transfer between real-time tasks using a DMA memory controller
US8769546B2 (en) Busy-wait time for threads
Brandenburg A synchronous IPC protocol for predictable access to shared resources in mixed-criticality systems
US10031786B2 (en) Lockless multithreaded completion queue access
ES2933498T3 (es) Procedimiento y sistema de control de planificación de tareas de software
Åsberg et al. Resource sharing using the rollback mechanism in hierarchically scheduled real-time open systems
Lyons et al. Mixed-criticality support in a high-assurance, general-purpose microkernel
Van Bulck et al. Towards availability and real-time guarantees for protected module architectures
ES2886235T3 (es) Procedimiento y dispositivo de control de acceso a un recurso compartido entre tareas de software ejecutadas en un contexto de aplicación predeterminado
US10691487B2 (en) Abstraction of spin-locks to support high performance computing
Guan et al. Resource sharing protocols for real-time task graph systems
US11061730B2 (en) Efficient scheduling for hyper-threaded CPUs using memory monitoring
Nobakht et al. Programming with actors in Java 8
US11216372B2 (en) Execution manager for binary objects operating across private address spaces