ES2886235T3 - Procedimiento y dispositivo de control de acceso a un recurso compartido entre tareas de software ejecutadas en un contexto de aplicación predeterminado - Google Patents

Procedimiento y dispositivo de control de acceso a un recurso compartido entre tareas de software ejecutadas en un contexto de aplicación predeterminado Download PDF

Info

Publication number
ES2886235T3
ES2886235T3 ES19213300T ES19213300T ES2886235T3 ES 2886235 T3 ES2886235 T3 ES 2886235T3 ES 19213300 T ES19213300 T ES 19213300T ES 19213300 T ES19213300 T ES 19213300T ES 2886235 T3 ES2886235 T3 ES 2886235T3
Authority
ES
Spain
Prior art keywords
task
resource
access
hardware resource
shared
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
ES19213300T
Other languages
English (en)
Inventor
Gaël Mace
Romain Vaslin
Sylvain Rohat
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 ES2886235T3 publication Critical patent/ES2886235T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • 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/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • 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/604Tools and structures for managing or administering access control systems
    • 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
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2141Access rights, e.g. capability lists, access control lists, access tables, access matrices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2145Inheriting rights or properties, e.g., propagation of permissions or restrictions within a hierarchy
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2147Locking files

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Automation & Control Theory (AREA)
  • Storage Device Security (AREA)
  • Stored Programmes (AREA)

Abstract

Procedimiento de control de acceso a al menos un recurso de hardware de un dispositivo electrónico de cálculo, compartido por una pluralidad de tareas de software que se ejecutarán en un contexto de aplicación predeterminado, de manera que las tareas de software están adaptadas para ser implementadas por un procesador del dispositivo electrónico de cálculo, estando el o los recursos de hardware gestionados por un sistema de explotación (8) de núcleo (10) ejecutable en modo de ejecución privilegiado, caracterizado porque es implementado por dicho núcleo (10) del sistema de explotación y porque incluye: una memorización (50) de una estructura (36) de configuración de acceso a los recursos de hardware compartidos que incluye una información (42) relativa a transferencias autorizadas que comprende, para cada recurso de hardware compartido, al menos una indicación de transferencia autorizada entre una primera tarea y una segunda tarea para un uso de dicho recurso, incluyendo el procedimiento, además, después de una ejecución de una primera tarea que usa un recurso de hardware, - una recepción (54) de una solicitud de adquisición de dicho recurso de hardware por una segunda tarea, y - una verificación de autorización de adquisición (66, 68, 74) por dicha segunda tarea, que incluye, si dicho recurso no está libre, una verificación de transferencia (74, 72, 84) del uso de dicho recurso de hardware de dicha primera tarea hacia dicha segunda tarea, efectuándose la transferencia en función de dicha información (42) relativa a las transferencias autorizadas memorizada en la estructura de configuración de acceso a los recursos de hardware compartidos.

Description

DESCRIPCIÓN
Procedimiento y dispositivo de control de acceso a un recurso compartido entre tareas de software ejecutadas en un contexto de aplicación predeterminado
[0001] La presente invención se refiere a un procedimiento de control de acceso a al menos un recurso compartido entre tareas de software ejecutadas en un contexto de aplicación predeterminado, y un dispositivo electrónico de cálculo para control de acceso asociado.
[0002] La invención se sitúa en el campo de la seguridad de los programas de software, y en particular la seguridad de acceso a los recursos compartidos en un sistema informático.
[0003] La invención se aplica en particular a 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 industrial, y más en general en cualquier sistema cerrado que implemente 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 electrónico de cálculo, en particular un dispositivo de a bordo, comprende recursos de hardware (del inglés «hardware») que son gestionados por un sistema de explotación 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] Toda aplicación de software (del inglés «software»), también denominada de servicio, es implementada por instrucciones de software, es decir, instrucciones de código de programa ejecutable, de manera que la ejecución mediante los recursos de hardware está soportada por el sistema de explotación. 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 electrónico de cálculo.
[0007] Cada aplicación de software está constituida en general por varias tareas de software para su ejecución, y un contexto de aplicación incluye varias aplicaciones de software, que pueden ejecutarse de forma concurrente y pretender acceder a recursos de hardware compartidos de manera concurrente.
[0008] Los recursos de hardware comprenden en particular recursos de memoria, por ejemplo, memorias de trabajo (RAM, ROM) y/o registros de periféricos. Es habitual que las tareas de software pretendan acceder de manera concurrente, en escritura y/o en lectura, a un mismo recurso de memoria. Para manejar los conflictos, el acceso al recurso compartido debe ser controlado.
[0009] De manera conocida es posible implementar un sistema de testigos, que indica si un recurso de hardware está disponible o no. En dicho sistema, cualquier tarea de software puede acceder a un recurso de hardware compartido si este ha sido antes liberado.
[0010] Para determinadas aplicaciones o en ciertos contextos de aplicación es fundamental asegurar una seguridad más elevada, por ejemplo, asegurar la secuencialidad de accesos sucesivos a un mismo recurso de hardware, mediante tareas de software ejecutadas en modo no privilegiado.
[0011] Existen procedimientos que pretenden asegurar dicha seguridad en el nivel de aplicación, es decir, en una capa de software que se implementa en «modo no privilegiado». Dichos procedimientos son complejos y la evaluación de la seguridad es también compleja.
[0012] El documento FR 2829848 se considera una técnica anterior pertinente y describe un procedimiento de gestión de acceso concurrente a un recurso compartido que permite conservar una petición de acceso a este recurso compartido y responder a la misma de forma favorable y automáticamente cuando el recurso compartido se libere.
[0013] La invención tiene por objetivo remediar los inconvenientes del estado de la técnica mejorando el control de acceso a recursos de hardware compartidos.
[0014] Para este fin, la invención se define por las reivindicaciones independientes 1 y 9 y propone, según un primer aspecto, un procedimiento de control de acceso a al menos un recurso de hardware de un dispositivo electrónico de cálculo, compartido por una pluralidad de tareas de software que se ejecutarán en un contexto de aplicación predeterminado, estando las tareas de software adaptadas para ser implementadas por un procesador del dispositivo electrónico de cálculo, de manera que el o los recursos de hardware están gestionados por un sistema de explotación de núcleo ejecutable en modo de ejecución privilegiado. El procedimiento es implementado por dicho núcleo del sistema de explotación e incluye una memorización de una estructura de configuración de acceso a los recursos de hardware compartidos que incluye una información relativa a transferencias autorizadas que comprende, para cada recurso de hardware compartido, al menos una indicación de transferencia autorizada entre una primera tarea y una segunda tarea para un uso de dicho recurso. El procedimiento incluye, además, después de una ejecución de una primera tarea que usa un recurso de hardware:
- una recepción de una solicitud de adquisición de dicho recurso de hardware por una segunda tarea, y
- una verificación de autorización de adquisición por dicha segunda tarea, que incluye, si dicho recurso no está libre, una verificación de transferencia del uso de dicho recurso de hardware de dicha primera tarea hacia dicha segunda tarea, efectuándose la transferencia en función de dicha información relativa a las transferencias autorizadas memorizada en la estructura de configuración de acceso a los recursos de hardware compartidos.
[0015] Ventajosamente, el control de acceso a al menos un recurso de hardware compartido propuesto permite garantizar una secuenciación del acceso a cada recurso compartido según reglas predeterminadas de manera estática y, por tanto, aumentar la seguridad.
[0016] Ventajosamente, el control de acceso a los recursos de hardware compartidos es efectuado por el núcleo del sistema de explotación.
[0017] El procedimiento de control de acceso según la invención puede presentar una o varias de las características indicadas más adelante, tomadas de forma independiente o en combinación, según todas las combinaciones técnicamente aceptables.
[0018] El procedimiento incluye, en caso de verificación de autorización negativa, la generación de una alarma.
[0019] Cuando la información relativa a transferencias autorizadas es una tabla de transferencias autorizadas, el procedimiento incluye además una memorización en la estructura de configuración de acceso a los recursos de hardware compartidos de una tabla de derechos de acceso a los recursos que indica, para cada tarea de la pluralidad de tareas de software, un modo de acceso autorizado para cada recurso de hardware.
[0020] La solicitud de adquisición incluye al menos un modo de acceso a dicho recurso de hardware compartido, incluyendo el procedimiento, en caso de verificación de autorización positiva, una verificación del o de los modos de acceso autorizados para dicha segunda tarea a dicho recurso de hardware, y la generación de una alarma si dicho al menos un modo de acceso a dicho recurso requerido no es un modo de acceso autorizado según dicha estructura de configuración de acceso a los recursos compartidos.
[0021] La transferencia de un recurso de dicha primera tarea hacia dicha segunda tarea incluye una memorización de un identificador de la segunda tarea como tarea de destino de transferencia y una modificación de una configuración de dicho recurso de hardware.
[0022] El procedimiento incluye una memorización de una pluralidad de estructuras de configuración de acceso a los recursos de hardware compartidos, estando cada estructura de configuración de acceso a los recursos de hardware compartidos asociada a un contexto de aplicación predeterminado.
[0023] El o los recursos de hardware son dispositivos electrónicos direccionables por el sistema de explotación de núcleo.
[0024] La estructura de configuración de acceso a los recursos de hardware compartidos define, para cada uno de dichos dispositivos electrónicos direccionables, un derecho de acceso en lectura y/o en escritura o una ausencia de derecho de acceso para cada tarea de software de la pluralidad de tareas de software.
[0025] Según otro aspecto, la invención se refiere a un dispositivo electrónico de cálculo para control de acceso a al menos un recurso de hardware, incluyendo el dispositivo al menos un recurso de hardware compartido por una pluralidad de tareas de software que se ejecutarán en un contexto de aplicación predeterminado, y un procesador adaptado para ejecutar dichas tareas, de manera que el o los recursos de hardware están gestionados por un sistema de explotación de núcleo ejecutable en modo de ejecución privilegiado. El núcleo del sistema de explotación está configurado para implementar una memorización de una estructura de configuración de acceso a los recursos de hardware compartidos que incluye una información relativa a transferencias autorizadas que comprende, para cada recurso de hardware compartido, al menos una indicación de transferencia autorizada entre una primera tarea y una segunda tarea para un uso de dicho recurso. El núcleo del sistema de explotación está configurado además para implementar, después de una ejecución de una primera tarea que usa un recurso de hardware,
- una recepción de una solicitud de adquisición de dicho recurso de hardware por una segunda tarea, y
- una verificación de autorización de adquisición por dicha segunda tarea, que incluye, si dicho recurso no está libre, una verificación de transferencia del uso de dicho recurso de hardware de dicha primera tarea hacia dicha segunda tarea, efectuándose la transferencia en función de dicha información relativa a las transferencias autorizadas memorizada en la estructura de configuración de acceso a los recursos de hardware compartidos.
[0026] Según otro aspecto la invención se refiere a un programa informático que incluye instrucciones de código que, cuando son implementadas por un núcleo de un sistema de explotación de un dispositivo electrónico programable, implementan un procedimiento de control de acceso a al menos un recurso de hardware del dispositivo electrónico de cálculo tal como se expone con brevedad anteriormente.
[0027] Otras características y ventajas de la invención se desprenderán de la descripción que se ofrece a continuación, a título indicativo y en ningún modo limitativo, en referencia a las figuras anexas, en las que:
-[Fig. 1] la figura 1 es un diagrama de bloques de los principales bloques de hardware y software de un dispositivo electrónico de cálculo que implementa la invención según una realización;
-[Fig. 2] la figura 2 es una ilustración esquemática de una estructura de configuración de acceso a los recursos de hardware compartidos;
-[Fig. 3] la figura 3 es una ilustración esquemática de los estados de los recursos de hardware compartidos en una realización de un procedimiento de control según la invención;
-[Fig. 4] la figura 4 es un organigrama de las principales etapas de un procedimiento de control de acceso a un recurso de hardware compartido según una realización;
-[Fig. 5] la figura 5 es un organigrama de las subetapas de adquisición de un recurso compartido de hardware en un procedimiento de control de acceso según una realización;
-[Fig. 6] la figura 6 es un organigrama de las subetapas de una transferencia de recurso de hardware compartido en un procedimiento de control de acceso según una realización;
-[Fig. 7] la figura 7 es un organigrama de las subetapas de una liberación de recurso compartido en un procedimiento de control de acceso según una realización.
[0028] La invención se aplica en particular en un sistema de ejecución cerrado, por ejemplo, en un dispositivo electrónico de cálculo de a bordo, y para uno o varios contextos de aplicación predefinidos. Se describirá en términos genéricos, ya que se aplica en diversos contextos de aplicación.
[0029] Se denomina contexto de aplicación a una configuración contextual del núcleo que define las características de un sistema de aplicación (una aplicación), que incluye en particular la lista de las tareas que componen este sistema, las configuraciones de memoria asociadas a cada una de las tareas, los medios de comunicaciones que unen estas tareas y los estados del sistema de aplicación en los que pueden ejecutarse y comunicarse las tareas.
[0030] De manera general se considera que se usa un mismo dispositivo electrónico de cálculo para un número cualquiera superior o igual a uno de contextos de aplicación.
[0031] Así, para cada contexto de aplicación, las tareas de software asociadas a este contexto de aplicación son conocidas y contables.
[0032] La figura 1 ilustra esquemáticamente un sistema 2 de hardware y software implementado en un dispositivo electrónico de cálculo electrónico según una realización de la invención.
[0033] El sistema 2 incluye un conjunto 4 de recursos de hardware o «hardware», en inglés, constituido en este ejemplo por varios bloques de hardware, y varios conjuntos de bloques de software 8, 9.
[0034] 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.
[0035] Los recursos de hardware 4 incluyen también recursos de hardware compartidos 32, en particular que comprenden cualquier dispositivo electrónico direccionable por el sistema de núcleo.
[0036] Los recursos de hardware compartidos incluyen memorias electrónicas direccionables 37, de tipo RAM (por «Random Access Memory»), memoria de solo lectura ROM, PROM, FLASH, NVRAM. Los recursos de hardware compartidos incluyen también registros 33,.., 35 de recursos electrónicos, por ejemplo buses de datos Ethernet, SPI («serial peripheral interface»), I2C® (inter-integrated circuit), UART («Universal Asynchronous Receiver-Transmitter»).
[0037] Los recursos de hardware 4 son controlados por un sistema de explotación 8, que incluye diversos bloques funcionales de instrucciones de código de control de «hardware», también conocidos por el nombre de controladores («drivers» en inglés), ejecutados en el modo de ejecución dicho privilegiado.
[0038] El sistema de explotación es por ejemplo un sistema de tipo Linux, o VxWorks® o QNX®, enriquecido con funcionalidades de control de acceso a los recursos de hardware compartidos según las diversas realizaciones de la invención.
[0039] 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 los controles del núcleo 10 con módulos controladores 14 a 20 adaptados para controlar directamente los recursos de hardware 14a a 20a.
[0040] 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.
[0041] 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, denominadas en lo sucesivo simplemente «tareas».
[0042] Cada tarea es implementada en forma de instrucciones de código de programa, en un lenguaje dado, compilado para poder ser ejecutado por los recursos de hardware del dispositivo electrónico de cálculo gracias a la interfaz 22.
[0043] La interfaz de alto nivel 22 y las tareas de software 26a a 26z forman parte de las aplicaciones de software 9 que son ejecutadas, en un ejemplo de realización, en modo no privilegiado.
[0044] 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.
[0045] 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, cuando deben ser ejecutadas simultáneamente.
[0046] Se entiende que, en general, el sistema de software y hardware soporta un cierto grado de paralelismo de ejecución de tareas, pero para simplificar la explicación, consideraremos en lo sucesivo el ejemplo de tareas de software concurrentes que invocan a los mismos recursos, para las cuales no se plantea la ejecución en paralelo.
[0047] 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 de planificación de tareas y de gestión de las comunicaciones entre tareas 28.
[0048] El núcleo 10 incluye también un módulo 30 de control de acceso a recursos de hardware compartidos 32, en particular que comprende cualquier dispositivo electrónico direccionable por el sistema de núcleo. El módulo 30 usa una estructura 36 de configuración de acceso a los recursos de hardware compartidos que comprende, para un contexto de aplicación dado, un conjunto de datos memorizados como se explica más adelante.
[0049] En un sistema de ejecución cerrado, por ejemplo en un dispositivo electrónico de cálculo a bordo, se predefinen uno o varios contextos de aplicación.
[0050] Para un contexto de aplicación dado, se distinguen recursos compartidos por varias tareas.
[0051] La estructura 36 de configuración de acceso a los recursos compartidos comprende, para cada recurso compartido, la estructura de configuración que memoriza los derechos de acceso de cada tarea que puede acceder al recurso compartido, así como una lista posiblemente vacía de transferencias posibles de este recurso entre las tareas a las que se puede acceder.
[0052] La estructura de configuración 36 es memorizada, por ejemplo, en uno de los bloques de memoria 32.
[0053] La estructura de configuración 36 se denomina estática, ya que se define y se memoriza previamente, en asociación con un contexto de aplicación dado, para una pluralidad de tareas identificadas y para uno o varios recursos identificados.
[0054] En una realización, hay tantas estructuras de configuración de acceso a los recursos de hardware compartidos como contextos de aplicación.
[0055] Como variante, una misma estructura de configuración de acceso a los recursos de hardware compartidos memoriza los datos relativos a varios contextos, en relación con cada uno de los contextos.
[0056] El sistema comprende también una interfaz de adaptación 34 que permite adaptar el sistema a un contexto de aplicación dado. Así, pueden implementarse varios contextos de aplicación por un mismo dispositivo. La interfaz de adaptación 34 permite acceder a la estructura de configuración 36 asociada a un contexto de aplicación elegido.
[0057] La figura 2 ilustra esquemáticamente un ejemplo de estructura de configuración asociada 36 a un contexto de aplicación predeterminado.
[0058] En este ejemplo, la estructura de configuración 36 es una descripción estática de la compartición de recursos compartidos r 1, R2 entre tres tareas de software T1, T2 y T3.
[0059] Las tareas son identificadas por un identificador, por ejemplo, un número de tarea. En el ejemplo los recursos R1, R2 son memorias electrónicas.
[0060] La estructura de configuración 36 comprende una tabla 40 que indica derechos de acceso a los recursos R1, R2, por cada una de las tareas enumeradas, según un modo de acceso autorizado: lectura (R), escritura (W), lectura-escritura (RW) o ningún acceso (casilla vacía en el ejemplo).
[0061] Así según la tabla 40, la tarea T1 está autorizada a acceder al recurso R1 en escritura y al recurso R2 en lectura-escritura; la tarea T2 está autorizada a acceder el recurso R1 en lectura, y no está autorizada a acceder al recurso R2; la tarea T3 está autorizada a acceder en lectura-escritura a cada uno de los recursos R1 y R2.
[0062] La estructura de configuración 36 incluye también una tabla 42 que indica las transferencias de recurso autorizadas entre tareas. La tabla 42 incluye, adaptada para indicar, para cada recurso de hardware compartido, al menos una indicación de transferencia autorizada entre una primera tarea (tarea de usuario) y una segunda tarea (tarea de destino) para un uso de dicho recurso.
[0063] La transferencia de un recurso de una tarea de usuario a una tarea de destino se explicará con mayor detalle más adelante.
[0064] Así, según la tabla 42,
- para el recurso R1: la tarea T1 está autorizada a transferir el recurso R1 hacia la tarea T2 y hacia la tarea T3; la tarea T2 no está autorizada a transferir el recurso R1; la tarea T3 está autorizada a transferir el recurso R1 hacia la tarea T1 y hacia la tarea T2.
- para el recurso R2, la tarea T1 está autorizada a transferir el recurso R2 a la tarea T3; la tarea T3 no está autorizada a transferir el recurso R2 a ninguna otra tarea.
[0065] Debe observarse que la tabla 42 no incluye línea «R2-T2» ya que la tarea T2 no está autorizada a acceder al recurso R2 según la tabla de autorización de acceso 40.
[0066] Como se ilustra esquemáticamente en el grafo 44 de la figura 3, cada recurso Ri compartido puede encontrarse en uno de los tres estados siguientes: libre, adquirido o transferido.
[0067] Un recurso está libre cuando ninguna tarea de software en curso de ejecución ha tanteado el acceso a este recurso o cuando ha sido liberado después de su uso.
[0068] Un recurso es adquirido por una tarea dada Tj, que usa este recurso, por ejemplo, para efectuar escrituras y/o lecturas cuando el recurso es un recurso de memoria.
[0069] Un recurso transferido es un recurso adquirido por una tarea de usuario y transferido por la tarea de usuario a una tarea de destino, como se describe con mayor detalle más adelante.
[0070] Las solicitudes que deben formular las tareas para pasar de uno a otro de estos estados están también esquematizadas en esta figura: solicitud de adquisición, solicitud de transferencia, solicitud de liberación.
[0071] Un recurso libre es adquirido por una tarea después de una solicitud de adquisición.
[0072] Un recurso transferido es adquirido, después de una solicitud de adquisición, por la tarea de destino de la transferencia.
[0073] Un recurso adquirido por una tarea de usuario Tj es liberado después de una solicitud de liberación.
[0074] Un recurso adquirido es transferido por una tarea de usuario a una tarea de destino, después de una solicitud de transferencia, por la tarea de usuario.
[0075] La figura 4 es un organigrama de las principales etapas de un procedimiento de control de acceso a los recursos compartidos según una realización de la invención.
[0076] Las etapas del procedimiento son efectuadas en el núcleo del sistema de explotación de un dispositivo electrónico de cálculo, en modo de ejecución privilegiado.
[0077] El procedimiento incluye una primera etapa previa 50 de obtención y de memorización de una estructura de configuración 36 de acceso a los recursos de hardware compartidos, denominada en lo sucesivo estructura de configuración, o varias de dichas estructuras en función de diversos contextos de aplicación.
[0078] En una realización, la estructura de configuración incluye una tabla que indica las autorizaciones de transferencias de recursos en función de las tareas que se van a ejecutar, por ejemplo, del tipo de la tabla 42 ilustrada en la figura 2 y una tabla de derechos de acceso a los recursos que indica, para cada tarea de la pluralidad de tareas de software, un modo de acceso autorizado para cada recurso de hardware, por ejemplo, del tipo de la tabla 40 ilustrada en la figura 2.
[0079] Naturalmente, el formato de los datos memorizados en la estructura de configuración puede ser diferente, por ejemplo, de las pluralidades de tablas por recursos, listas o cualquier otro formato apropiado.
[0080] A continuación, en una fase de ejecución 52, para cualquier ejecución de una tarea Tj, durante una solicitud de acceso a un recurso compartido Ri (etapa 54) el procedimiento de control de acceso implementa una adquisición del recurso Ri (etapa 56) tal como se describe a continuación en referencia a la figura 5.
[0081] Asimismo, durante una solicitud de transferencia de un recurso compartido Ri (etapa 58) el procedimiento de control de acceso implementa una transferencia de recurso Ri (etapa 60), tal como se describe a continuación en referencia a la figura 6.
[0082] Finalmente, durante una solicitud de liberación de un recurso compartido Ri (etapa 62) el procedimiento de control de acceso implementa una liberación de recurso Ri (etapa 64), tal como se describe a continuación en referencia a la figura 7.
[0083] Las etapas de adquisición 56, de transferencia 60 y de liberación 64 implementan la estructura de configuración de acceso a los recursos de hardware compartidos antes memorizada en la etapa 50.
[0084] Como se ilustra en la figura 5, en una realización, después de la solicitud de acceso al recurso Ri, por ejemplo, un recurso de memoria, por la tarea Tj, se verifica en la etapa 66 si el recurso Ri está libre.
[0085] Si el recurso Ri está libre (respuesta positiva en la etapa 66), a continuación, es verificado en la etapa 68, con ayuda de la estructura de configuración de acceso a los recursos de hardware compartidos antes memorizada, en particular por acceso a la tabla de derechos de acceso, si la tarea Tj está autorizada a acceder al recurso Ri.
[0086] En caso de ausencia de autorización se genera una alarma en la etapa 70. La alarma está por ejemplo destinada a un proceso de verificación de la seguridad de ejecución de las tareas de software, configurado para adoptar disposiciones de bloqueo o de paso en modo degradado si fuera necesario.
[0087] En caso de autorización, la etapa 68 se sigue de una etapa 72 de verificación de modo de acceso autorizado descrita a continuación.
[0088] Si el recurso Ri no está libre (respuesta negativa en la etapa 66), la etapa 66 se sigue de una etapa de verificación de transferencia 74 del recurso Ri a la tarea Tj por la tarea de usuario Tc que ha adquirido anteriormente el recurso Ri, dicho de otro modo, si la tarea Tj ha sido designada como destinataria de una transferencia del recurso Ri. Esta etapa de verificación de transferencia se describirá en detalle a continuación en referencia a la figura 6.
[0089] En caso de verificación negativa, es decir, en el caso en que la transferencia del recurso Ri a la tarea Tj no esté autorizada según la estructura de configuración de acceso, la etapa 74 se sigue de la etapa 54 previa.
[0090] En caso de verificación positiva, la etapa 74 se sigue de la etapa 72 de verificación de la autorización de acceso en función del modo de acceso al recurso Ri requerido por la tarea Tj. El modo de acceso se indica por ejemplo en la solicitud de acceso.
[0091] Cuando el recurso Ri es un recurso de memoria, el modo de acceso es un acceso en escritura o en lectura o en lectura y escritura. La autorización es verificada también en la estructura de configuración de acceso a los recursos de hardware compartidos, en particular en la tabla de derechos de acceso.
[0092] En caso de ausencia de autorización de acceso según el modo de acceso solicitado, la etapa 72 se sigue de la etapa 70 de emisión de la alarma.
[0093] En caso de autorización, la etapa 72 se sigue de una etapa 76 de modificación de la configuración memoria del recurso Ri para el acceso por la tarea Tj.
[0094] En una realización, la configuración MMU de la tarea actual Tj para la zona de memoria relativa al recurso compartido se modifica añadiendo los derechos de acceso tal como se describe en la tabla de derechos de acceso 40.
[0095] La figura 6 ilustra una realización de la transferencia de un recurso de hardware Ri de una tarea de usuario Tj a una tarea de destino Tk.
[0096] Durante una primera etapa 80 se verifica si el recurso Ri es adquirido efectivamente por la tarea de usuario Tj.
[0097] Si tal es el caso, la etapa 80 de verificación se sigue de una etapa 82 de control del derecho de transferencia del recurso de hardware Ri de la tarea actual Tj hacia la tarea de destino Tk. La etapa 82 de control implementa la estructura de configuración de acceso a los recursos de hardware compartidos memorizada previamente, y en particular las informaciones de autorizaciones de transferencias de recursos en función de las tareas que se van a ejecutar. Por ejemplo, la tabla 42 ilustrada en la figura 2 contiene estas informaciones, y durante la etapa 82, las informaciones son verificadas a partir de esta tabla.
[0098] La etapa 82 se sigue de una verificación de autorización de transferencia 84.
[0099] En caso de ausencia de autorización de transferencia, una etapa de emisión de la alarma 86, análoga a la etapa 70 descrita previamente en referencia a la figura 5.
[0100] En caso de autorización, la etapa 84 se sigue de una etapa 88 de memorización de la transferencia a la tarea de destino Tk, en asociación con el identificador de la tarea de destino. Finalmente se implementa una etapa 90 de modificación de la configuración de memoria de la tarea de usuario actual Tj. Por ejemplo, en una realización detallada, la etapa 90 comprende la modificación de la configuración MMU de la tarea actual Tj para la zona de memoria relativa al recurso compartido suprimiendo todos los derechos de acceso (lectura y escritura), y después la memorización de un indicador asociado al recurso Ri que precisa su transferencia en curso hacia la tarea Tk.
[0101] La transferencia estará completa cuando la tarea de destino Tk realice una solicitud de adquisición (etapa 56 descrita anteriormente en referencia a la figura 4). Cuando se implementa el procedimiento de adquisición descrito en una realización en referencia a la figura 5 para una tarea Tk de destino de una transferencia, el control de la etapa 74 es positivo.
[0102] La figura 7 ilustra una realización de la liberación de un recurso de hardware Ri después de una solicitud de liberación 62 por una tarea Tj.
[0103] En la etapa 92 se verifica si el recurso compartido Ri está bien adquirido por la tarea Tj. En caso de verificación negativa, se implementa una etapa de emisión de la alarma 94, análoga a la etapa 70 descrita previamente en referencia a la figura 5. Como variante, en caso de verificación negativa, no se efectúa ninguna acción.
[0104] En caso de verificación positiva en la etapa 92, la etapa 92 se sigue de una etapa 96 de modificación de la configuración de memoria. En una realización detallada, la etapa 96 comprende la modificación de la configuración MMU de la tarea actual Tj para la zona de memoria relativa al recurso compartido suprimiendo todos los derechos de acceso (lectura y escritura).

Claims (10)

REIVINDICACIONES
1. Procedimiento de control de acceso a al menos un recurso de hardware de un dispositivo electrónico de cálculo, compartido por una pluralidad de tareas de software que se ejecutarán en un contexto de aplicación predeterminado, de manera que las tareas de software están adaptadas para ser implementadas por un procesador del dispositivo electrónico de cálculo, estando el o los recursos de hardware gestionados por un sistema de explotación (8) de núcleo (10) ejecutable en modo de ejecución privilegiado,
caracterizado porque es implementado por dicho núcleo (10) del sistema de explotación y porque incluye:
una memorización (50) de una estructura (36) de configuración de acceso a los recursos de hardware compartidos que incluye una información (42) relativa a transferencias autorizadas que comprende, para cada recurso de hardware compartido, al menos una indicación de transferencia autorizada entre una primera tarea y una segunda tarea para un uso de dicho recurso,
incluyendo el procedimiento, además, después de una ejecución de una primera tarea que usa un recurso de hardware,
- una recepción (54) de una solicitud de adquisición de dicho recurso de hardware por una segunda tarea, y - una verificación de autorización de adquisición (66, 68, 74) por dicha segunda tarea, que incluye, si dicho recurso no está libre, una verificación de transferencia (74, 72, 84) del uso de dicho recurso de hardware de dicha primera tarea hacia dicha segunda tarea, efectuándose la transferencia en función de dicha información (42) relativa a las transferencias autorizadas memorizada en la estructura de configuración de acceso a los recursos de hardware compartidos.
2. Procedimiento según la reivindicación 1, que incluye, en caso de verificación de autorización negativa, la generación de una alarma (70, 86).
3. Procedimiento según cualquiera de las reivindicaciones 1 o 2, en el que dicha información (42) relativa a transferencias autorizadas es una tabla de transferencias autorizadas, incluyendo el procedimiento además una memorización en la estructura (36) de configuración de acceso a los recursos de hardware compartidos de una tabla de derechos de acceso (40) a los recursos que indica, para cada tarea de la pluralidad de tareas de software, un modo de acceso autorizado para cada recurso de hardware.
4. Procedimiento según la reivindicación 3, en el que dicha solicitud de adquisición incluye al menos un modo de acceso a dicho recurso de hardware compartido, incluyendo el procedimiento, en caso de verificación de autorización (68) positiva, una verificación (72) del o de los modos de acceso autorizados para dicha segunda tarea a dicho recurso de hardware, y la generación de una alarma (70) si dicho al menos un modo de acceso a dicho recurso requerido no es un modo de acceso autorizado según dicha estructura (36) de configuración de acceso a los recursos compartidos.
5. Procedimiento según cualquiera de las reivindicaciones 1 a 4, en el que la transferencia de un recurso de dicha primera tarea hacia dicha segunda tarea incluye una memorización (88) de un identificador de la segunda tarea como tarea de destino de transferencia y una modificación (90) de una configuración de dicho recurso de hardware.
6. Procedimiento según cualquiera de las reivindicaciones 1 a 5, que incluye una memorización de una pluralidad de estructuras de configuración de acceso a los recursos de hardware compartidos, estando cada estructura de configuración de acceso a los recursos de hardware compartidos asociada a un contexto de aplicación predeterminado.
7. Procedimiento según la reivindicación 6, en el que el o los recursos de hardware son dispositivos electrónicos direccionables (33, 35, 37) por el sistema de explotación de núcleo.
8. Procedimiento según la reivindicación 7, en el que dicha estructura (36) de configuración de acceso a los recursos de hardware compartidos define, para cada uno de dichos dispositivos electrónicos direccionables, un derecho de acceso en lectura y/o en escritura o una ausencia de derecho de acceso para cada tarea de software de la pluralidad de tareas de software.
9. Dispositivo electrónico de cálculo para control de acceso a un recurso compartido, incluyendo el dispositivo al menos un recurso de hardware compartido por una pluralidad de tareas de software que se ejecutarán en un contexto de aplicación predeterminado, incluyendo el dispositivo además un procesador adaptado para implementar dichas tareas de software, estando el o los recursos de hardware gestionados por un sistema de explotación (8) de núcleo (10) ejecutable en modo de ejecución privilegiado, caracterizado porque dicho núcleo (10) del sistema de explotación está configurado para implementar:
una memorización de una estructura (36) de configuración de acceso a los recursos de hardware compartidos que incluye una información relativa a transferencias autorizadas que comprende, para cada recurso de hardware compartido, al menos una indicación (42) de transferencia autorizada entre una primera tarea y una segunda tarea para un uso de dicho recurso, y configurado además para implementar, después de una ejecución de una primera tarea que usa un recurso de hardware:
- una recepción de una solicitud de adquisición de dicho recurso de hardware por una segunda tarea, y
- una verificación de autorización de adquisición por dicha segunda tarea, que incluye, si dicho recurso no está libre, una verificación de transferencia del uso de dicho recurso de hardware de dicha primera tarea hacia dicha segunda tarea, efectuándose la transferencia en función de dicha información (42) relativa a las transferencias autorizadas memorizada en la estructura (36) de configuración de acceso a los recursos de hardware compartidos.
10. Dispositivo electrónico de cálculo para control de acceso a un recurso compartido según la reivindicación 9, en el que la estructura (36) de configuración de acceso a los recursos de hardware compartidos incluye una tabla (42) de transferencias autorizadas, e incluye además una tabla (40) de derechos de acceso a los recursos que indica, para cada tarea de la pluralidad de tareas de software, un modo de acceso autorizado para cada recurso de hardware.
ES19213300T 2018-12-05 2019-12-03 Procedimiento y dispositivo de control de acceso a un recurso compartido entre tareas de software ejecutadas en un contexto de aplicación predeterminado Active ES2886235T3 (es)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR1872348A FR3089656B1 (fr) 2018-12-05 2018-12-05 Procédé et dispositif de contrôle d'accès à une ressource partagée entre tâches logicielles exécutées dans un contexte applicatif prédéterminé

Publications (1)

Publication Number Publication Date
ES2886235T3 true ES2886235T3 (es) 2021-12-16

Family

ID=66530151

Family Applications (1)

Application Number Title Priority Date Filing Date
ES19213300T Active ES2886235T3 (es) 2018-12-05 2019-12-03 Procedimiento y dispositivo de control de acceso a un recurso compartido entre tareas de software ejecutadas en un contexto de aplicación predeterminado

Country Status (3)

Country Link
EP (1) EP3663953B1 (es)
ES (1) ES2886235T3 (es)
FR (1) FR3089656B1 (es)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113010457A (zh) * 2021-03-24 2021-06-22 北京百度网讯科技有限公司 资源管理方法、装置及移动终端
CN114035771A (zh) * 2021-11-17 2022-02-11 河南许继仪表有限公司 一种基于自平衡技术的物联管理终端资源共享系统及方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2829847A1 (fr) * 2001-09-20 2003-03-21 Cp8 Procede de controle d'acces a des ressources partagees dans un systeme embarque et systeme embarque pour la mise en oeuvre d'un tel procede
FR2829848A1 (fr) * 2001-09-20 2003-03-21 Cp8 Procede de gestion d'acces a des ressources partagees dans un systeme embarque et systeme embarque pour la mise en oeuvre d'un tel procede
US7844973B1 (en) * 2004-12-09 2010-11-30 Oracle America, Inc. Methods and apparatus providing non-blocking access to a resource

Also Published As

Publication number Publication date
EP3663953A1 (fr) 2020-06-10
FR3089656A1 (fr) 2020-06-12
EP3663953B1 (fr) 2021-06-02
FR3089656B1 (fr) 2020-11-27

Similar Documents

Publication Publication Date Title
US9389793B2 (en) Trusted execution and access protection for embedded memory
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
US20120036299A1 (en) Secure Information Processing
US9690719B2 (en) Mechanism for managing access to at least one shared integrated peripheral of a processing unit and a method of operating thereof
US9781120B2 (en) System on chip and method therefor
Wang Real-time embedded systems
Wang et al. Rt-tee: Real-time system availability for cyber-physical systems using arm trustzone
US20100268905A1 (en) Memory mapping system, request controller, multi-processing arrangement, central interrupt request controller, apparatus, method for controlling memory access and computer program product
TW201821998A (zh) 記憶體保護邏輯
Mallachiev et al. Design and architecture of real-time operating system
US20150082082A1 (en) Information processing device, information processing method, and storage medium storing program for executing information processing method
JP6326047B2 (ja) 集積回路型無線
BR112016002997B1 (pt) Aparelho para processamento de informação, e, método implementado por máquina
JP2010009454A (ja) 情報処理装置
ES2933498T3 (es) Procedimiento y sistema de control de planificación de tareas de software
US20210182401A1 (en) System platform initializer for mixed-critical systems
US11307904B2 (en) Configurable peripherals
Ward Sharing non-processor resources in multiprocessor real-time systems
US20160267030A1 (en) Integrated-circuit radio
Balbastre et al. Integrated dynamic priority scheduler for rtlinux
US10922149B2 (en) System comprising a plurality of virtualization systems
US11347863B2 (en) Computer apparatus and authority management method based on trust chain
Potratz A practical comparison between Java and Ada in implementing a real-time embedded system
JP2023152485A (ja) 処理装置
Zhang Design and Implementation of Multi-core Support for an Embedded Real-time Operating System for Space Applications