Sincronizaci - PowerPoint PPT Presentation

About This Presentation
Title:

Sincronizaci

Description:

... Herramienta de sincronizaci n Sem foro S variable entera S. solo puede ser accesada mediante dos ... en P0 Deadlock dos o mas procesos est n ... – PowerPoint PPT presentation

Number of Views:35
Avg rating:3.0/5.0
Slides: 20
Provided by: PedroM159
Category:

less

Transcript and Presenter's Notes

Title: Sincronizaci


1
Sincronización de Procesos
  • Dr. Pedro Mejía Álvarez
  • CINVESTAV-IPN, Seccion de Computacion

2
Contenido
  • Conceptos básicos
  • El problema de la región crítica
  • Hardware de sincronización
  • Semáforos
  • Problemas clásicos de sincronización
  • Regiones críticas.
  • Monitores
  • Transacciones atómicas.

3
Conceptos Básicos
  • El acceso concurrente a datos compartidos puede
    llevar a inconsistencias en los datos.
  • El mantenimiento de la consistencia en los datos
    requiere mecanismos para asegurar la ejecución
    ordenada de procesos cooperativos.
  • Los mecanismos de consistencia deben permitir la
    aplicación correcta de los algoritmos de
    planificación sin perjudicar a la predecibilidad.

4
Ejemplo Proceso productor-consumidor
  • Datos compartidos.
  • type item ...
  • var buffer array 0..n-1 of
    item
  • in, out 0..n-1
  • counter0..n
  • in0 out 0 counter 0
  • Proceso productor. Proceso
    Consumidor.
  • repeat
    repeat
  • produce un dato en nextp
    while counter 0 do
    no-op
  • while counter n do no-op
    nextcbufferout
  • bufferin nextp
    outout1 mod n
  • in in1 mod n
    countercounter-1
  • counter counter 1
    consume the item in
    nextc
  • until false
    until false
  • Las operaciones counter counter 1 y
    counter counter - 1, deben ser atómicas.

5
El problema de la región crítica
  • n procesos compiten para utilizar algún dato
    compartido.
  • Cada proceso tiene un segmento de código, llamado
    región crítica, en el cual son accesados los
    datos compartidos
  • Problema - asegurar que cuando un proceso esta
    ejecutando en su región crítica, ningún otro
    proceso puede entrar en su región crítica.
  • Estructura del proceso Pi
  • repeat
  • sección de entrada
  • sección crítica
  • sección de salida
  • until false

6
El problema de la región crítica
  • La solución al problema de la región
    crítica debe satisfacer tres requisitos
  • Exclusión mutua. Si el proceso Pi esta ejecutando
    en su región crítica, ningún otro proceso puede
    estar ejecutándose en su región crítica.
  • Progreso. Si en un momento dado no existe ningún
    proceso y se le concede la región a un proceso,
    la decisión de concederle la región a otro
    proceso que la solicite no puede posponerse
    indefinidamente
  • Espera acotada. Debe existir una cota en el
    número de veces que otros procesos se les permite
    entrar en su región crítica, después de que un
    proceso ha hecho una petición para entrar y antes
    de que le sea concedida.

7
Algoritmo 1
  • Variables compartidas
  • var turn (0,1)
  • inicialmente turn 0
  • si turn i entonces Pi puede entrar en su
    región crítica.
  • Proceso Pi
  • repeat
  • while turn ? i do no-op
  • región crítica
  • turnj
  • últimas instrucciones
  • until false
  • satisface exclusión mutua pero no progreso.

8
Algoritmo 2
  • Variables compartidas
  • var turn (0,1) flag array0..1 of
    boolean
  • inicialmente turn 0, y flag0, flag1
    false
  • si turn 1 entonces Pi puede entrar en su
    región crítica.
  • Proceso Pi
  • repeat
  • flagitrue turnj
  • while (flagj and turn j) do no-op
  • región crítica
  • flagiflase
  • últimas instrucciones
  • until false
  • satisface los tres requisitos.

9
Hardware de sincronización
  • Prueba y modifica el contenido de un word
    automáticamente
  • function test-and-set (var targetboolean)boolean
  • begin
  • test-and-settarget
  • targettrue
  • end
  • Algoritmo de exclusión mutua
  • Variables compartidas var lockboolean
    lockfalse
  • Proceso Pi
  • repeat
  • while test-and-set(lock) do no-op
  • región crítica
  • lockfalse
  • últimas instrucciones
  • until false

10
Semáforo Herramienta de sincronización
  • Semáforo S
  • variable entera S.
  • solo puede ser accesada mediante dos operaciones
    atómicas
  • wait(S) S S-1
  • if S lt 0 then block(S)
  • signal(S) S S1
  • if S ? 0 then wakeup(S)
  • block(S) - provoca la suspensión de el proceso
    que la invoca.
  • wakeup(S) - provoca que un proceso bloqueado siga
    con su ejecución.

11
Ejemplo de sección crítica con semáforos
  • Variables compartidas var mutex semaforo
    mutex 1
  • Proceso Pi
  • repeat
  • wait(mutex)
  • sección crítica
  • signal(mutex)
  • sección siguiente
  • until false

12
Ejemplo de semáforo para sincronización
  • El semaforo flag se inicializa a 0
  • P0 P1
  • ............ ..........
  • A wait(flag)
  • signal(flag) B
  • Ejecuta B en P1 solo después de que A se ejecuta
    en P0

13
Deadlock
  • dos o mas procesos están esperando
    indefinidamente por un evento que puede
    dispararse por uno de los procesos en espera.
  • S y Q son 2 semáforos inicializados a 1.
  • P0 P1
  • wait(S) wait(Q)
  • wait(Q) wait(S)
  • ..........................................
  • signal(S) signal(Q)
  • signal(Q) signal(S)
  • Starvation - bloqueo indefinido un proceso puede
    bloquearse en un
  • semáforo y nunca salir de su cola.

14
Tipos de semáforos
  • Semáforo contador- valor entero que puede variar
    en un dominio sin restricción.
  • Semáforo Binario. valor entero que varia de 0 a
    1.
  • Implementación de ambos semáforos.
  • Función como herramienta para implementar la
    sección crítica, y para sincronizar procesos.

15
Problemas clásicos de la sincronización
  • Problema del buffer acotado.
  • Problema de los escritores lectores.
  • Problema de los filósofos comiendo.
  • Monitores.

16
Interacción entre Tareas
  • Raras veces las tareas de un sistema son
    independientes
  • unos de otros.
  • Frecuentemente, los procesos cooperan entre si,
    o compiten por
  • algún recurso.
  • Para esto es necesario realizar operaciones de
    comunicación y
  • sincronización.
  • Dos procesos se comunican cuando hay una
    transferencia de
  • información de uno a otro.
  • Dos procesos están sincronizados cuando hay
    restricciones
  • en el orden en que ejecutan algunas de sus
    acciones.
  • En la mayoría de los sistemas de tiempo real las
  • tareas interaccionan mediante
  • datos comunes (protegidos)
  • mensajes

17
Interacción entre Tareas de Tiempo Real
  • En todos estos casos puede ocurrir que una tarea
  • tenga que esperar un suceso de otra menos
  • prioritaria.
  • Esta situación se denomina bloqueo, y produce
    una
  • inversión de prioridad indeseable.
  • La inversión de prioridad no se puede eliminar
  • completamente, pero es posible limitar su
    duración

18
Ejemplo
X
Y
19
Ejemplo Inversión de Prioridad
bloqueo
a1
ax
ay
a2
b1
by
by
b2
c1
d1
dx
dx
d2
0 2 4 6
8 10 12
14 16 18
Write a Comment
User Comments (0)
About PowerShow.com