• No se han encontrado resultados

Interacción entre Procesos en Sistemas de Tiempo Real

N/A
N/A
Protected

Academic year: 2021

Share "Interacción entre Procesos en Sistemas de Tiempo Real"

Copied!
28
0
0

Texto completo

(1)

Interacción entre

Procesos en Sistemas

de Tiempo Real

Introducción.

El fenómeno de la Inversión de Prioridad

Secciones Críticas no Expropiables

Protocolo de Herencia de Prioridad

Protocolo de Techo de Prioridad

Objetivos

Conocer el problema de la inversión de prioridad y por qué los mecanismos de sincronización tradicionales no son adecuados para sistemas de tiempo real. Conocer los protocolos de sincronización de tiempo real y el análisis temporal de los mismos. Comparar los diferentes protocolos de sincronización.

Bibliografía:

Real-Time

Systems

and

Programming

Languages. A. Burns y A. Wellings, Addison

(2)

Introducción – Factibilidad de Planificación

Dado un conjunto de tareas {τ1, τ2, .. τi} con períodos

T1, T2, … Ti y tiempos de cómputo C1, C2, … Ci que

se panifican usando las prioridades estáticas 1, 2, ... i (a menor valor numérico, mayor prioridad) es posible determinar la factibilidad de planificación de la tarea τi

mediante:

Enfoque basado en los puntos de planificación:

            i j j k k j T lT lT C n i i 1 R l) (k, 1 1 , 1 ,

min

i Donde Ri = { (k, l) k = 1,..., i; l = 1,...,Ti/Tk } Enfoque basado en el tiempo de respuesta:

j i j j i i i T C R C R

         1 1

Siempre que el tiempo de respuesta de la tarea i sea menor a igual a su plazo (Ri Di).

Ambas pruebas de factibilidad ofrecen condiciones

(3)

Introducción – Tareas Independientes

Todas las ecuaciones anteriores suponen que al ser activada una tarea una tarea de mayor prioridad, expropia por la fuerza la ejecución de la tarea de menor prioridad.

1

2

3

Las tareas finalizan en orden de prioridad

En el tiempo de finalización de una tarea

sólo interfieren aquellas de mayor prioridad

En la práctica esto sucede sólo en el caso de que no haya interacción entre las tareas.

(4)

Introducción – Interacción entre procesos

En la mayoría de los sistemas de interés práctico las tareas interacciones mediante:

o Datos Comunes (protegidos) o Encuentros o Mensajes.

En todos estos casos, es posible que una tarea tenga que esperar un suceso de otra de menos prioridad. Ejemplo utilizando semáforos de Dijkstra:

1

2 P(S1) S1 cerrado Prioridad(

1

) > Prioridad(

2

) P(S1) V(S1) V(S1)

El uso de semáforos consigue el comportamiento lógico correcto (exclusión mutua) pero provoca que

se viole la suposición de que una tarea no puede ser demorada por una de menor prioridad.

Esta situación se denomina bloqueo, y produce una

(5)

Análisis de Factibilidad considerando Bloqueo

El tiempo de bloqueo Bi de la tarea τi es el tiempo por el cual la ejecución de una tarea de menor prioridad puede demorar la ejecución de la tarea Bi. Es posible extender las ecuaciones de factibilidad:

Enfoque basado en los puntos de planificación:

 

       i k i i i k k i T B T C n i i 1 1 1 2 , 1 , Donde Ri = { (k, l) k = 1,..., i; l = 1,...,Ti/Tk } Enfoque basado en el tiempo de respuesta:

j i j j i i i i C T R B C R

          1 1

Siempre que el tiempo de respuesta de la tarea i sea menor a igual a su plazo (Ri Di).

¿Cómo encontrar el tiempo de bloqueo?

La dificultad fundamental está dada porque el tiempo de bloqueo puede ser no acotado.

(6)

Inversión de Prioridad no Acotada

Ejemplo del problema de inversión de prioridades:

1

2 P(S1) S1 cerrado P(

1

) > P(

2

) > P(

3

) P(S1) V(S1) V(S1)

3

El tiempo de respuesta de τ1 es más largo que el de τ2 a pesar de que a τ1 se le asignó mayor prioridad por su urgencia para que terminara antes de τ2

El tiempo de bloqueo de τ1 debido τ3 es inevitable y necesario para la integridad de la sección crítica.

El tiempo de bloqueo de τ1 debido a τ2 es improductivo y afecta o imposibilita garantizar la factibilidad de planificación del sistema.

(7)

Inversión de Prioridad en Marte

La inversión de prioridad no acotada fue la causante del famoso fallo de la sonda Pathfinder de la NASA.

Los síntomas son que las tareas se ejecutan a tiempo y satisfacen sus plazos pero ocasionalmente una u otra tarea incumple su plazo.

La inversión de prioridad no se puede eliminar completamente, pero es posible limitar su duración.

En los STR, los bloqueos tienen que ser acotados y medibles, no son adecuados los semáforos regulares.

(8)

Secciones Críticas No Expropiables

Una solución al problema de inversión de prioridades no acotada son las secciones críticas no expropiables:

1

2 S1 cerrado P(

1

) > P(

2

) > P(

3

)

3 P(S1) V(S1) P(S1) V(S1)

Nunca habrá inversión de prioridad no acotada

Una tarea sólo puede ser bloqueada si se pone lista mientras una de baja prioridad accede a un recurso. Al terminar dicha sección crítica, todos los recursos

están libres por lo que no se puede ejecutar otra tarea de prioridad intermedia.

(9)

Valoración de Sección Crítica No Expropiable

Ventajas:

Una tarea sólo puede ser bloqueada una vez.

El tiempo de bloqueo máximo será igual al tiempo de ejecución máximo de las secciones críticas de todas las tareas de mayor prioridad.

Como nunca se puede expropiar a una tarea mientras accede a un recurso nunca ocurrirá bloqueo

mutuo.

Tiene una implementación sencilla. Basta con la inhabilitación/habilitación de las interrupciones o de la expropiación.

Dificultades:

Todas las tareas pueden ser bloqueadas por todas las demás de menor prioridad que requieren algún recurso incluso aunque no exista conflicto de recursos entre ellas.

Debido a su baja sobrecarga es adecuado cuando todas las secciones críticas son cortas y cuando la mayoría de las tareas entran en conflictos por recursos.

(10)

Protocolo de Herencia de Prioridad

Una forma de reducir la duración de los bloqueos es variar dinámicamente la prioridad de las tareas.

Cuando una tarea está bloqueando a otra más prioritaria, hereda la prioridad de ésta

La prioridad dinámica de una tarea es el máximo de o Su prioridad básica

o Las prioridades de todas las tareas bloqueadas por ella

La herencia de prioridad es transitiva.

1

2 P(S1) S1 cerrado P(

1

) > P(

2

) > P(

3

) P(S1) V(S1) V(S1)

3

Bloqueo por empuje ("push-through") Bloqueo directo

(11)

Bloqueos con Herencia de Prioridades

Una tarea de mayor prioridad puede experimentar dos tipos de bloqueos:

o Bloqueo directo: ocurre cuando una tarea de mayor prioridad intenta adquirir un recurso (semáforo) ya retenido por una de menor prioridad.

Necesario para asegurar la

consistencia de los recursos

compartidos.

o Bloqueo a través de empuje (“Push through

blocking”): ocurre cuando una tarea de prioridad

media es bloqueada por una de baja prioridad que ha heredado una mayor prioridad desde otra a la que está bloqueando directamente. Este tipo de bloqueo se produce incluso aunque ambas tareas no compartan ningún recurso (semáforo).

Necesario para evitar inversión de

prioridades no acotada.

El uso de la herencia de prioridad en la sonda Pathfinder de Marte permitió resolver con éxito los problemas y que se comportase de forma adecuada.

(12)

Herencia con Secciones Críticas Anidadas

No siempre una tarea que sale de una sección crítica regresa a la prioridad que tenía antes de entrar a ella:

S

1

cerrado

P(

1

) > P(

2

) > P(

3

)

1

2

3

P(S

1

) P(S

2

)

P(S

2

)

P(S

1

)

V(S

2

)

V(S

1

)

V(S

2

)

S

2

cerrado

La situación se produce sólo cuando una tarea utiliza secciones críticas anidadas.

(13)

Bloqueo Encadenado y Herencia Transitiva

El protocolo de herencia de prioridad puede presentar

bloqueo acumulativo o bloqueo encadenado

(“chained blocked”) que consiste en la formación de cadenas de bloqueo (que pueden ser arbitrariamente grandes) en que las tareas se pueden bloquear durante un tiempo más prolongado que una sección crítica.

Para manejar esta situación es necesario soportar herencia de prioridades transitiva:

P(S1) P(S2) P(S2) P(S1) V(S1) V(S1) V(S2) V(S2) S1 cerrado P(

1

) > P(

2

) > P(

3

)

1

2

3 S2 cerrado

(14)

Bloqueo Múltiple

Otra situación es la posibilidad de bloqueo múltiple que se produce si una tarea de alta prioridad posee varias secciones críticas en su camino de ejecución. En este caso puede bloquearse en cada una de ellas.

Ejemplo de escenario del peor caso: donde una tarea se puede bloquear una vez por cada semáforo que accede:

1

2

3 P(S1) P(S1) P(S2) V() P(S2) P(S3) P(S3) V(S1) V(S2) V(S3)

4

En el ejemplo la tarea τ1 accede a 3 secciones críticas y

(15)

Cómputo del Tiempo de Bloqueo

Con la herencia de prioridad, una tarea se puede bloquear a lo sumo:

o Una vez por cada sección crítica

o Una vez por cada tarea de prioridad inferior

Si una tarea posee m secciones críticas y hay n tareas de menor prioridad, el número de veces que una

tarea se puede bloquear es min(m, n)

Una forma fácil (aunque no óptima) de calcular el tiempo de bloqueo en el peor caso Bi es:

 K k i usage k i CS k B 1 ) ( ) , ( Donde usage es 0 ó 1:

usage(k, i) = 1 Si el recurso k lo utiliza al menos

una tarea con prioridad menor que i y al menos una tarea con prioridad mayor o igual que i.

usage(k, i) = 0 En caso contario.

CS(k) es el costo computacional de la k-ésima sección

crítica.

Este algoritmo da una cota superior pesimista. Un algoritmo exacto es mucho más complejo.

(16)

Bloqueo Mutuo con Herencia de Prioridades

El protocolo de herencia de prioridad no impide el bloqueo mutuo:

Bloqueo mutuo (“deadlock”): situación en la que

varias tareas caen en un estado de “bloqueo circular”, en donde, por ejemplo la tarea τ1 está bloqueada por la tarea τ2, la cual a su vez está bloqueada por la tarea t1:

Se activa 2 P(S2) P(S1) P(S1) t0 t1 t2 t4 P(S2)

2

1

Se activa 1 S2 cerrado S1 cerrado Prioridad(

1

) > Prioridad(

2

)

1

2

S

1

S

2

Bloqueo Mutuo Situación de espera circular t3

(17)

Diagrama de Progreso con Bloqueo Mutuo

Una forma de comprender el bloqueo mutuo es mediante un diagrama de progreso como el mostrado:

P(S2) P(S1) V(S1) V(S2) Progreso de

2 Progreso de

1 Regiones Prohibidas debido a conflictos de recursos

Punto de Bloqueo Mutuo

Termina

1

t

0

t

1

t

2

t

3 P(S1) P(S2) V(S2) V(S1) Termina

2 Prioridad(

1

) > Prioridad(

2

)

2

hereda prioridad de

1

t

4

El bloqueo mutuo arroja tiempos de bloqueo infinitos ¡Esto echa por tierra el análisis temporal del sistema!

(18)

Valoración de la Herencia de Prioridad

Ventajas:

Una tarea de mayor prioridad sólo puede ser bloqueada por una de menor prioridad si se encuentra dentro de una sección crítica.

Una tarea menos prioritaria puede bloquear a otra más prioritaria a lo más durante una sola sección crítica.

La sección crítica más larga determina el tiempo máximo que una tarea puede bloquear a otra de mayor prioridad.

El tiempo que una tarea puede estar bloqueada está dado por ...

Dificultades:

Tiempo de bloqueo excesivo:

o Presencia de bloqueo acumulativo o

bloqueo encadenado (“chained blocked”).

No evita el bloqueo mutuo:

o El bloqueo mutuo no es provocado por el protocolo de herencia de prioridad en si; sino producto de un uso incorrecto de los semáforos.

(19)

Protocolos de Techo de Prioridad

El techo de prioridad de un recurso es la máxima prioridad de las tareas que lo usan

El protocolo de techo de prioridad consiste en:

La prioridad dinámica de una tarea es el máximo de su prioridad base y las de las tareas que la bloquean. A una tarea se le concede un recurso sólo si su

prioridad dinámica es mayor que el techo de todos los recursos en uso por otras tareas.

S1 cerrado P(

1) > P(

2) > P(

3) S2 cerrado Int. Int. I Int. Interferencia

1

2

3 P(S1) V(S1) Bloqueo por empuje (herencia) Bloqueo directo P(S2) V(S2) P(S1) V(S1) P(S2) V(S2) Bloqueo de techo

(20)

Comportamiento no ávido

Una diferencia importante entre el protocolo de herencia de prioridad y el protocolo de techo de prioridad es que:

o En el protocolo de herencia de prioridad a una tarea se le concede el cierre sobre un semáforo siempre que el mismo esté libre.

o En el protocolo de techo de prioridad, a una tarea se le puede negar el cierre sobre un semáforo incluso cuando el mismo se encuentre abierto (el recurso solicitado esté libre) en ese instante.

Con el protocolo de techo de prioridad, el bloqueo surge por tres causas: bloqueo directo y bloqueo de

empuje (“push-through”) o de herencia (igual que con

el protocolo básico de herencia de prioridad) y una nueva forma denominada bloqueo de techo:

o Bloqueo de Techo: cuando a una tarea se le niega el cierre sobre un semáforo (acceso al recurso9 libre debido a que ya existe otra que retiene otro semáforo con un techo de prioridad de igual o más prioridad que la tarea que lo está solicitando.

Necesario para la evitación del bloqueo

(21)

Evitación del Bloqueo Mutuo

Secuencia de ejecución con bloqueo mutuo potencial bajo el protocolo de techo de prioridad

Ahora a τ

1 no se le concedió el cierre sobre S1

sino que se suspendió (bloqueo de techo). Esto

impide el potencial bloqueo mutuo entre τ

1 y τ

2.

Se activa 2 P(S2) P(S1) P(S1) V(S1) V(S2) t0 t1 t2 t3 Se bloquea P(S2) V(S2) V(S1)2hereda la prioridad de 12regresa a su prioridad asignada

2

1

Se activa 1 de lo contrario 1 y 2 caerían en bloqueo mutuo. S2 cerrado S1 cerrado Prioridad(

1

) > Prioridad(

2

)

(22)

Diagrama de Progreso con Techo de Prioridad

A continuación se muestra el diagrama de progreso del ejemplo con el potencial bloqueo mutuo en presencia del Protocolo de Techo de Prioridad.

P(S2) P(S1) V(S1) V(S2) Progreso de

2 Progreso de

1 Regiones Prohibidas debido a conflictos de recursos

Punto de Bloqueo Mutuo

Termina

1

t

0

t

1

t

2

t

3 P(S1) P(S2) V(S2) V(S1) Termina

2 Prioridad(

1

) > Prioridad(

2

)

2

hereda prioridad de

1

2

regresa a su prioridad

Cuando, en el instante t2, τ2 solicita S1 éste no se le concede (a pesar de estar disponible) evitando con ello la entrada a la región insegura.

(23)

Cómputo del tiempo de Bloqueo

El efecto del protocolo es asegurar que un segundo recurso pueda cerrarse sólo si no existe proceso de mayor prioridad que use ambos recursos.

Como consecuencia se evita el bloqueo encadenado y la duración máxima del bloqueo está determinada ahora por el tiempo de ejecución de la sección crítica más larga de todos los procesos de más baja prioridad:

) ( ) , (

max

1 k CS i k usage B K k i  

Propiedades

Cuando se usa en un sistema monoprocesador:

Cada tarea se puede bloquear a lo sumo una vez en cada ciclo.

Se evita el bloqueo mutuo.

Se evita el bloqueo encadenado.

Se consigue la exclusión mutua sin mecanismos de protección adicionales.

(24)

Protocolo de Techo de Prioridad Inmediato

Una tarea que accede a un recurso hereda inmediatamente el techo de prioridad del recurso

o La prioridad dinámica de una tarea es el máximo de su prioridad básica y los techos de prioridad de los recursos que usa.

1

2

S

1

cerrado

P(

1

) > P(

2

) > P(

3

)

3

P(S

1

) V(S

1

)

P(S

1

) V(S

1

)

Bloqueo

(25)

Techo de Prioridad Inmediato

La diferencia con el Protocolo de Techo de Prioridad ordinario está dada porque:

o El protocolo de techo de prioridad sólo eleva las prioridades de las tareas cuando una tarea bloquea realmente a otra de mayor prioridad e incluso entonces la prioridad no necesariamente se eleva hasta la prioridad del techo.

o El protocolo de techo de prioridad inmediato eleva la prioridad de una tarea al nivel del techo de prioridad del semáforo tan pronto como ésta cierra dicho semáforo. La tarea continúa ejecutándose con dicha prioridad mientras tanto retenga el semáforo.

Una consecuencia de esta regla de modificación de la prioridad es que una tarea experimentará un

bloqueo solamente al comienzo de su ejecución.

o Una vez que una tarea comienza realmente su ejecución, estarán libres todos los semáforos que solicita; si no fuese el caso, entonces algunas tareas pueden tener igual o mayor prioridad por tanto se hubiese pospuesto la ejecución de la tarea.

(26)

Cómputo del tiempo de Bloqueo

El protocolo de techo de prioridad posee un comportamiento en el peor caso idéntico al protocolo de techo de prioridad y por tanto se aplica el mismo tiempo de bloqueo.

Una tarea experimenta bloqueo a lo sumo una vez. El tiempo de bloqueo de la tarea τi es el mayor tiempo en

que cualquier otra tarea de menor prioridad permanece en posesión de un semáforo con una prioridad de techo mayor o igual a la prioridad de la tarea τi:

) ( ) , (

max

1 k CS i k usage B K k i  

Propiedades

Las propiedades son las mismas que las del protocolo de techo de prioridad, y además:

Si una tarea se bloquea, lo hace al principio del ciclo.

Es más fácil de implantar que el protocolo de techo de prioridad básico.

(27)

Evitación del Bloqueo Mutuo

Secuencia de ejecución con bloqueo mutuo potencial bajo el protocolo de techo de prioridad inmediato:

Se activa 2 P(S2) P(S1) P(S1) V(S1) t0 t1 t2 t3 Se bloquea P(S2) V(S2) V(S1)2hereda la prioridad del techo (la de 1)

2regresa a su prioridad asignada

2

1

Se activa 1 S2 cerrado S1 cerrado Prioridad(

1

) > Prioridad(

2

) V(S2)

Como una tarea se bloquea sólo al inicio (cuando no posee ningún recurso) no se cumple una condición necesaria para la existencia del bloqueo mutuo.

(28)

Diagrama de Progreso con Techo de Prioridad

A continuación el diagrama de progreso del ejemplo con bloqueo potencial en presencia del protocolo de Techo de Prioridad Inmediato:

P(S2) P(S1) V(S1) V(S2) Progreso de

2 Progreso de

1 Regiones Prohibidas debido a conflictos de recursos

Punto de Bloqueo Mutuo

Termina

1

t

0

t

1

t

2

t

3 P(S1) P(S2) V(S2) V(S1) Termina

2 Prioridad(

1

) > Prioridad(

2

)

2

hereda prioridad de

1

Se activa

1

1

regresa a su prioridad

Referencias

Documento similar

La determinación molecular es esencial para continuar optimizando el abordaje del cáncer de pulmón, por lo que es necesaria su inclusión en la cartera de servicios del Sistema

La campaña ha consistido en la revisión del etiquetado e instrucciones de uso de todos los ter- mómetros digitales comunicados, así como de la documentación técnica adicional de

Después de una descripción muy rápida de la optimización así como los problemas en los sistemas de fabricación, se presenta la integración de dos herramientas existentes

Habiendo organizado un movimiento revolucionario en Valencia a principios de 1929 y persistido en las reuniones conspirativo-constitucionalistas desde entonces —cierto que a aquellas

o Si dispone en su establecimiento de alguna silla de ruedas Jazz S50 o 708D cuyo nº de serie figura en el anexo 1 de esta nota informativa, consulte la nota de aviso de la

Ciaurriz quien, durante su primer arlo de estancia en Loyola 40 , catalogó sus fondos siguiendo la división previa a la que nos hemos referido; y si esta labor fue de

Las manifestaciones musicales y su organización institucional a lo largo de los siglos XVI al XVIII son aspectos poco conocidos de la cultura alicantina. Analizar el alcance y

اهعضوو يداصتق�لا اهطاشنو ةينارمعلا اهتمهاسم :رئازجلاب ةيسلدنأ�لا ةيلاجلا« ،ينوديعس نيدلا رصان 10 ، ، 2 ط ،رئازجلاب يسلدنأ�لا دوجولاو يربي�لا ريثأاتلا