Concurrencia, Semáforos y Pthreads en Sistemas de Tiempo Real: Conceptos y Aplicaciones

Clasificado en Informática

Escrito el en español con un tamaño de 5,47 KB

Concurrencia, Semáforos y Pthreads en Sistemas de Tiempo Real

Concurrencia

La concurrencia se refiere a la ejecución simultánea de múltiples instancias de un programa, también conocidos como procesos concurrentes o procesos paralelos. En sistemas UNIX, cada proceso tiene un identificador único llamado PID. Los procesos hijos normalmente terminan antes que sus padres y no comparten memoria entre sí.

Problemas de la concurrencia:

  • Exclusión mutua: Se refiere a la necesidad de garantizar que solo un proceso acceda a un recurso compartido a la vez. La sección de código que accede al recurso compartido se denomina sección crítica.

Requisitos de la exclusión mutua:

  • Seguridad:
    • Garantizar la exclusión mutua.
    • Evitar el interbloqueo (deadlock).
    • Permitir la sincronización entre procesos.
  • Viveza:
    • Evitar el interbloqueo activo (livelock).
    • Evitar la inanición (starvation).

Semáforos

Los semáforos son un mecanismo de sincronización que utiliza operaciones indivisibles para controlar el acceso a recursos compartidos.

Pthreads

Pthreads (POSIX Threads) es una API estándar para la creación y gestión de hilos en sistemas UNIX. Un hilo es una secuencia de ejecución independiente dentro de un proceso. Los hilos son entidades ligeras que comparten el mismo espacio de memoria, incluyendo variables globales y memoria dinámica asignada con malloc.

La concurrencia en Pthreads se gestiona mediante:

  • Mutex: Garantizan la exclusión mutua.
  • Variables de condición: Permiten una sincronización más avanzada que los semáforos, separando la exclusión mutua del sincronismo.

Sistemas de Tiempo Real (STR)

Un Sistema de Tiempo Real (STR) es un sistema informático que debe responder a estímulos de entrada dentro de un período de tiempo especificado y finito.

Tipos de STR:

  • STR Blando: Si no se cumple el plazo, se produce una degradación del rendimiento. Ejemplo: Un mando a distancia.
  • STR Duro: Si no se cumple el plazo, puede ocurrir una catástrofe. Ejemplo: El sistema ABS de un vehículo.

Características de los STR:

  • Necesitan mantenimiento constante.
  • Manipulan números reales.
  • Deben ser extremadamente seguros y fiables.
  • Interactúan con interfaces de hardware.

Medidas y Control del Tiempo en STR

En los STR, es crucial medir el tiempo con precisión (en segundos) y controlar la duración de las acciones. Las tareas se clasifican en periódicas y esporádicas.

Elementos para la gestión del tiempo:

  • Relojes:
    • Hardware:
      • Reloj interno: Generador de pulsos (ticks) y contador.
      • Sistema de referencia externo: Señales UTC.
    • Temporizadores: Para medir intervalos de tiempo.
  • Retardos.
  • Planificadores.

Tipos de tiempo:

  • Tiempo monótono: Siempre creciente y no desborda.
  • Tiempo no monótono: El contador puede desbordar, crecer y decrecer.

Reloj POSIX

El reloj POSIX proporciona una idea del tiempo consumido por una tarea. Se inicia cuando la CPU arranca y se detiene cuando se apaga.

Tareas Periódicas y Retardos

Los retardos se pueden implementar mediante bucles de comprobación (espera ocupada), pero esto consume ciclos de CPU. Se pueden producir:

  • Deriva local: Imprecisiones al calcular el retraso.
  • Deriva acumulada: Imprecisiones al producirse el retraso.

Activación por temporizadores: Los temporizadores avisan cuando ha transcurrido un tiempo determinado, ya sea una sola vez o periódicamente.

Tiempos límite: Una tarea puede quedar suspendida a la espera de un evento. Para evitar que quede suspendida indefinidamente, se puede aplicar un tiempo máximo de espera.

Planificación en STR

La planificación se encarga de organizar los recursos de la CPU para garantizar los requisitos temporales. Consta de:

  • Algoritmo de planificación: Determina el orden de ejecución de las tareas.
  • Método de análisis del comportamiento temporal: Estima la duración de cada tarea en el peor caso.

Algoritmos de planificación:

  • Planificación cíclica: Se define un período base (PB).
  • Planificación basada en prioridades:
    • Estáticas: Como RMS (Rate Monotonic Scheduling), que es la más utilizada.
    • Dinámicas: Como la proximidad al plazo de respuesta, que tiene el inconveniente de la sobrecarga y problemas al introducir procesos sin tiempo límite.

Entradas relacionadas: