Sistemas Concurrentes: el problema de la exclusión mutua I.T. Informática de Sistemas Curso 2002-2003.

Slides:



Advertisements
Presentaciones similares
Construcción de Sistemas Distribuidos “Transacciones Distribuidas”
Advertisements

GESTION DE PROCESOS.
Sistemas Operativos Generalidades de S.O. Gestión de procesos Memoria
Concurrencia Exclusión mutua y sincronización
Tabla de Contenido Concurrencia.
Tema 06: Programación Concurrente Sincronización con Espera Activa
SENTENCIAS SECUENCIALES
ADA: lenguaje de programación concurrente
Iteración La iteración permite modelar problemas en los cuales una secuencia de instrucciones debe ejecutarse varias veces. La cantidad de iteraciones.
Daniel Morillo Jorge Boscán Gregory Carrasco
Seminario de Actualización - Excel Avanzado y Macros
1.5 Algoritmos, Pseudocódigo y Diagramas de Flujo
Concepto de programa. Directorio Concepto de programa. Analisis del problema. Resolucion del problema. Desarroollo de un programa. Partes constitutivas.
Módulo 5: Estructuras de Decisión y Bucles
Conceptos de la clase anterior
UPV-EHU / ATC Arquitecturas Paralelas Sincronización de procesos en sistemas SMP - Introducción - Exclusión mutua - Sincronización mediante eventos.
Estructuras de Repetición
7a.1 Silberschatz, Galvin y Gagne ©2003 Sistemas Operativos 6ª edición Capítulo 7: Sincronización de procesos parte a.
Sincronización de procesos
Programación de Computadores
Concurrencia: interbloqueo e inanición
Deadlocks Abrazo Mortal Bloqueos mutuos
Concurrencia: Exclusión Mútua y Sincronización
Capítulo 3 Concurrencia: exclusión mutua y sincronización. Comunicación entre procesos.
Conceptos generales: Concurrencia: Existencia simultánea de varios procesos en ejecución. IMPORTANTE: EXISTENCIA SIMULTÁNEA NO IMPLICA EJECUCIÓN SIMULTÁNEA.
LÓGICA - DECISIONES Los valores lógicos: constantes, variables y expresiones lógicas, permiten controlar la ejecución de las sentencias de un programa.
1 Concurrencia Procesos y Programas. 2 Establecer Comunicación entre procesos (memoria común)
Sincronización de Procesos Semáforos Emely Arráiz Ene-Mar 08.
Unidad III Administración de procesos
Control de flujo: Bucles
Variables y Shapes. Variables ► Lugares de la memoria que reciben un nombre ► En VB no es necesario declarar las variables  A=8 ► Se declaran con Dim.
Conversión cadena a número
Sistemas Concurrentes: Paso de mensajes
Sistemas Concurrentes: programación concurrente
Sincronización de procesos Mariano Gómez Plaza.  Mariano Gómez Plaza Sincronización de procesos 2 Tipos de procesos IndependientesCooperantes.
Resolución de Problemas y Algoritmos Uso de iteración con secuencias
PROGRAMACION CONCURRENTE
 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.
Control de errores visual basic
Teoría – Alejandro Gonzalez
Sincronización de Procesos
Sistemas Concurrentes I.T. Informática de Sistemas Curso
Sincronización de Procesos
Tema 9.6: Sincronización de Procesos
Monitores Cabudare, noviembre de 2010 Universidad Fermín Toro
Teoría de Sistemas Operativos Sincronización Procesos Departamento de Electrónica 2º Semestre, 2003 Gabriel Astudillo Muñoz
Integrantes: Ma Carmen Zaragoza Santiago Leticia González Hernández Abraham Obispo Antonio Alexis González Ramírez Eduardo Hernández Tolentino.
Administrador de procesos
ICC243 Sistemas Operativos
Teoría de Sistemas Operativos Departamento de Electrónica 2º Semestre, 2002 Gabriel Astudillo Muñoz
COMPUTO III Ing. Jimmy Ojeda Arnica.
Teoría de Sistemas Operativos Sincronización Procesos
Sesión 14: Python (5) – Aplicaciones. 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Informática.
Tema 9: Gestión de Procesos. Tema 9: 2 Silberschatz, Galvin and Gagne ©2005 Fundamentos de los Computadores (ITT, Sist. Electr.), Gestión de.
LA ARQUITECTURA O LA FUNCIONALIDAD DEL SISTEMA DefiniciónDefiniciónDefinición Declaración y reglas sintácticas.Declaración y reglas sintácticas.Declaración.
Ing. Johanna Macias Algoritmo, Estructura y Programación III.
Estructuras de Control en Visual Basic.net
UTFSM - Sistemas Operativos
Estructuras de Decisión
Estructuras de Control
Ciclos en Visual Basic Yaimira Pérez. Los ciclos son estructuras de repetición que ejecutan una o varias instrucciones durante la cantidad de veces que.
Prof. Jonathan Silva Ingeniería Civil – Informática I Ingeniería Civil Informática I Clase 5.
CICLOS ESTRUCTURA DE REPETICIÓN PROG 2270LGUILLERMO SOLLA.
Ciclos de Repeticion Yoel Gutierrez Unidad 6. Contenido DefinicionExplicacionEjemplosReferencias.
1 Tema 6: Concurrencia de Procesos Sistemas Operativos.
Unidad V: Estatutos en Basic De control o selección if. De ciclos: Do, for, while. Otros estatutos. Solución de problemas aplicando estatutos de control.
UNIVERSIDAD CENTROCCIDENTAL “LISANDRO ALVARADO” DECANATO DE CIENCIAS Y TECNOLOGÍA DEPARTAMENTO DE SISTEMAS Unidad III: “PROGRAMACIÓN CONCURRENTE Y CONTROL.
SISTEMAS OPERATIVOS Sección Crítica.
Exclusión mutua de secciones
Transcripción de la presentación:

Sistemas Concurrentes: el problema de la exclusión mutua I.T. Informática de Sistemas Curso

SistemasConcurrentes Bibliografía Principles of Concurrent and Distributed Programming  M. Ben-Ari. Prentice Hall, 1990  Capítulo 3 Sistemas Operativos  A. Silberschatz, P. Galvin. Addison Wesley Longman, 1999  Capítulo 6

SistemasConcurrentes Modelo del sistema N procesos intentan acceder a un recurso compartido en un bucle infinito: loop Sección_No_Crítica; Pre_Protocolo; Sección_Crítica; Post_Protocolo; end loop; Nunca puede haber más de un proceso en la sección crítica (exclusión mutua) Los pre y post protocolos serán algoritmos para garantizar que se cumple la exclusión mutua

SistemasConcurrentes Requisitos de la solución, según Ben-Ari Siempre se debe cumplir la exclusión mutua. Un proceso puede detenerse en su sección no crítica, sin que afecte a los demás procesos. No pueden aparecer interbloqueos. No puede haber inanición: si un proceso declara entrar en s.c., terminará entrando. Progreso si no hay contención: si un solo proceso quiere entrar en s.c., debe poder entrar sin más.

SistemasConcurrentes Requisitos de la solución, según Peterson Exclusión mutua Progreso: si ningún proceso está en sección crítica y hay procesos que desean entrar en su s.c., sólo estos últimos participarán en la decisión y ésta se tomará en un tiempo finito. Espera limitada: hay un límite para el número de veces que otros procesos pueden adelantarse a un proceso que quiere entrar en s.c.

SistemasConcurrentes Primer intento: variable turno loop SNC1; loop exit when turno=1; end loop; SC1; turno:=2; end loop; loop SNC2; loop exit when turno=2; end loop; SC1; turno:=1; end loop; turno: integer range 1..2 := 1;

SistemasConcurrentes Discusión del primer intento ¿Garantiza exclusión mutua? ¿Está libre de interbloqueo? ¿Está libre de inanición? ¿Garantiza el progreso si no hay contención?  ¿ qué pasa si P2 muere en su sección no crítica ?

SistemasConcurrentes Segundo intento: avisadores loop SNC1; loop exit when flag2; end loop; flag1:=false; SC1; flag1:=true; end loop; loop SNC2; loop exit when flag1; end loop; flag2:=false; SC2; flag2:=true; end loop; flag1,flag2: boolean := true;

SistemasConcurrentes Discusión del segundo intento ¿Garantiza el progreso si no hay contención? ¿ Garantiza exclusión mutua ?  ¿qué pasa con esta secuencia ?: P1 encuentra flag2 a true en el bucle P2 encuentra flag1 a true en el bucle P1 pone flag1 a false P2 pone flag2 a false P1 entra en su sección crítica P2 entra en su sección crítica

SistemasConcurrentes Tercer intento loop a1: SNC1; b1: flag1:=false; c1: loop exit when flag2; end loop; d1: SC1; e1: flag1:=true; end loop; loop a2: SNC2; b2: flag2:=false; c2: loop exit when flag1; end loop; d2: SC2; e2: flag2:=true; end loop; flag1,flag2: boolean := true;

SistemasConcurrentes Demostración de la exclusión mutua flag1=false  at(c1) V at(d1) V at(e1) flag2=false  at(c2) V at(d2) V at(e2) ¬(at(d1)  at(d2))

SistemasConcurrentes Pero, qué pasa con esta secuencia? P1 pone flag1 a false P2 pone flag2 a false P1 se queda esperando en su bucle P2 se queda esperando en su bucle

SistemasConcurrentes Algoritmo de Dekker loop SNC1; C1 : = 0; loop exit when C2=1; if Turn=2 then C1 := 1; loop exit when Turn=1; end loop; C1 := 0; end if; end loop; SC1; C1 := 1; Turn := 2; end loop; loop SNC2; C2 : = 0; loop exit when C1=1; if Turn=1 then C2 := 1; loop exit when Turn=2; end loop; C2 := 0; end if; end loop; SC2; C2 := 1; Turn := 1; end loop; C1, C2: Integer range 0..1 := 1; Turn: Integer range 1..2 := 1;

SistemasConcurrentes Soluciones hardware Instrucciones atómicas test-and-set ó SWAP. Permiten evaluar y asignar un valor a una variable de forma atómica.  test-and-set(B): Pone B a true y devuelve el antiguo valor de B.  SWAP(A,B): Intercambia los valores de A y B. Si disponemos de estas instrucciones, se simplifica muchísimo el problema de la sección crítica, sobre todo para N procesos.

SistemasConcurrentes Soluciones hardware Li: Integer range 0..1; loop SNCi; loop exit when Test_and_Set(Li); exit when Li=0; end loop; SCi; C := 0; end loop; Li: Integer range 0..1 := 0; loop SNCi; loop Swap(C,Li); exit when Li=1; end loop; SCi; Swap(C,Li); end loop; TEST_AND_SET: Li := C; C1 : = 1; SWAP: Temp := A; A : = B; B := A;