Sincronización de Procesos

Slides:



Advertisements
Presentaciones similares
GESTION DE PROCESOS.
Advertisements

Concurrencia Exclusión mutua y sincronización
Diseño y análisis de algoritmos
Iteración La iteración permite modelar problemas en los cuales una secuencia de instrucciones debe ejecutarse varias veces. La cantidad de iteraciones.
Algoritmos & Estructuras de Datos
Daniel Morillo Jorge Boscán Gregory Carrasco
Seminario de Actualización - Excel Avanzado y Macros
Concurrencia: Exclusión Mútua y Sincronización
Sincronización de Procesos Semáforos Emely Arráiz Ene-Mar 08.
Unidad III Administración de procesos
IET110 Sistemas Operativos P04: Exclusión Mutua Prof. Jonathan MakucSlide: 1.
Resolución de Problemas y Algoritmos Uso de iteración con secuencias
Sesión 5 Sentencias de Selección y repetición Prof:Eridan Otto Programación de Computadores Lenguaje Pascal.
 El acceso concurrente a datos compartidos puede dar pie a inconsistencia de datos  Mantener la consistencia de los datos requiere mecanismos para asegurar.
Sincronización de Procesos Conceptos Problema SC Soluciones Software Soluciones Hardware Emely Arráiz Ene-Mar 08.
Monitores Mecanismo sincronización de nivel más alto que semáforos Construcción a nivel de lenguaje de programación que controla el acceso a datos compartidos.
Sincronización de Procesos
Sincronización de Procesos
Tema 9.6: Sincronización de Procesos
Teoría de Sistemas Operativos Sincronización Procesos Departamento de Electrónica 2º Semestre, 2003 Gabriel Astudillo Muñoz
Robiro A. Asuaje L.17/07/20151 Universidad Centro Occidental “Lisandro Alvarado“ Decanato de Ciencias COORDINACIÓN Y SINCRONIZACIÓN ENTRE PROCESOS.
Teoría de Sistemas Operativos Sincronización Procesos
Applications Development I 6.1 Foro Tomas Anzalotta Alvarado.
Desventajas Poco eficiente: lectura y escritura en disco es lenta Necesita otro mecanismo de sincronización para acceder a los datos Son los procesos.
Computación I :: Prof. Yeniffer Peña Introducción al C Presentación Computación I.
PROGRAMACIÓN I CENTRO DE ESTUDIOS INTEGRADOS EL MARISCAL - CEIM Ing. Luisa Fernanda Arenas Castañeda Feb 6 de 2016.
Asignación 6.1 Foro. Ciclos condicionales dinámicos  Estos ciclos deben ser del tipo booleano, es decir que se evaluara una expresión con un resultado.
Ciclos Condicionales Joel R. Almodóvar Rivera Tarea 6-1 PROG2310L.
MUTEX. QUE ES CONCURRENCIA - MUTEX  Son el mecanismo que nos ayuda en la sincronización para proteger una sección crítica en nuestro código.  Estas.
DEADLOCKS Arquitectura y Sistemas Operativos
Semáforos y Comunicación entre Procesos
Estructuras de Control.
Antonio Reynoso Lobato 2002 A
SISTEMAS OPERATIVOS Sección Crítica.
Procesos Concurrentes
Comunicación, Sincronización y Concurrencia de procesos
Paul Leger Procesos (capitulo 2) Paul Leger
Stored Procedures Firebird.
Fundamentos de programación
Paul Leger Procesos (capitulo 2) Paul Leger
Resolución de problemas y algoritmos
Exclusión mutua de secciones
Introducción a la Programación
Sistemas Distribuidos
Monitores Mecanismo sincronización de nivel más alto que semáforos Construcción a nivel de lenguaje de programación que controla el acceso a datos compartidos.
L.I. Gerardo Ortiz Rivera
Bucles y estructuras de decisión
Tema 7: Concurrencia y Sincronización
Tele clase 5 Sistemas de ecuaciones lineales.
L.I. Gerardo Ortiz Rivera
Ayudantía 3: Procesos y threads
PROCESOS COMENZAR.
Tele clase 13 Optimización unidimensional.
SINCRONIZACIÓN DE PROCESOS
Hardware Description Language
Sabes Que es un ALGORITMO
Sistemas Operativos Semáforos II.
Diego Hernández R Pascal Variables Diego Hernández R
Tema 9. Estructuras de repetición. Clase 2
L.I. Gerardo Ortiz Rivera
L.I. Gerardo Ortiz Rivera
Bucles y estructuras de decisión
Sistemas Operativos Tema 3. Concurrencia
Capítulo 3: procesos.
Estructuras de Control
Concurrencia: exclusión mutua y sincronización Capítulo 5.
Diego Hernández R Pascal Variables Diego Hernández R
Arquitectura de Hardware
Tema 8. Estructuras de decisión. Clases 1 y 2.
Hilos de Procesamiento. Hilos Concepto Beneficios Hilos a nivel kérnel y a nivel usuario Modelos multihilos Hilos de Solaris 2 Hilos de Java.
Transcripción de la presentación:

Sincronización de Procesos L.I. Gerardo Ortiz Rivera Departamento de Ciencias Exactas e Ingenieria

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.

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.

Ejemplo: Proceso productor-consumidor Datos compartidos. type item = ... ; var buffer : array [0..n-1] of item; in, out: 0..n-1; counter:0..n; in:=0; 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; nextc:=buffer[out]; buffer[in] := nextp; out:=out+1 mod n; in := in+1 mod n counter:=counter-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.

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;

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.

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 turn:=j; últimas instrucciones until false; *** satisface exclusión mutua pero no progreso.

Algoritmo 2 Variables compartidas: var turn: (0,1); flag: array[0..1] of boolean; inicialmente turn = 0, y flag[0], flag[1] = false; si turn = 1 entonces Pi puede entrar en su región crítica. Proceso Pi repeat flag[i]:=true; turn:=j; while (flag[j] and turn = j) do no-op; región crítica flag[i]:=flase; últimas instrucciones until false; *** satisface los tres requisitos.

Hardware de sincronización Prueba y modifica el contenido de un “word” automáticamente function test-and-set (var target:boolean):boolean; begin test-and-set:=target; target:=true; end; Algoritmo de exclusión mutua: Variables compartidas: var lock:boolean; lock:=false; Proceso Pi repeat while test-and-set(lock) do no-op;; región crítica lock:=false; últimas instrucciones until false;

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 < 0 then block(S); signal(S): S:= S+1; 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.

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;

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

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.

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.

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

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

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

Ejemplo X Y

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