18
SINCRONIZACIÓN DE PROCESOS

Sincronizacion de Procesos

Embed Size (px)

Citation preview

Page 1: Sincronizacion de Procesos

SINCRONIZACIÓNDE PROCESOS

Page 2: Sincronizacion de Procesos

AntecedentesEl acceso concurrente a datos compartidos

puede dar pie a inconsistencia de datos

Mantener la consistencia de los datos requiere mecanismos para asegurar el orden de ejecución de los procesos que los comparten

Page 3: Sincronizacion de Procesos

Programas secuenciales Especifica una ejecución secuencial de una

lista de enunciados La ejecución del programa da como resultado

la creación de un proceso

Page 4: Sincronizacion de Procesos

Procesos concurrentes Concurrencia: del verbo concurrir, asistir o

acudir al mismo lugar o tiempo Especifica dos o más programas

secuenciales ejecutados concurrentemente como procesos paralelos

Page 5: Sincronizacion de Procesos

Características procesos concurrentes

Los procesos son concurrentes si existen simultáneamente

Pueden funcionar en forma totalmente independiente, unos de otros

Pueden ser asincronos lo cual significa que en ocasiones requieren cierta sincronización y cooperación

Page 6: Sincronizacion de Procesos

Clasificación procesos concurrentes Podemos hablar de

multiprogramación, multiprocesamiento o procesamiento distribuido

Page 7: Sincronizacion de Procesos

Multiprogramación Los procesos son ejecutados,

concurrentemente, compartiendo uno o más procesadores (c/u con su memoria)

El kernel del sistema operativo multiplexa los procesos en los procesadores

ProcProc22

ProcProc55

ProcProc66

ProcProc33

MM11 CPUCPU11

MM22 CPUCPU22

ProcProc77

ProcProc44

ProcProc11

Page 8: Sincronizacion de Procesos

Multiprocesamiento Se ejecuta un proceso en cada procesador Los procesos comparten una memoria en

común

CPUCPU11 CPUCPU22 CPUCPU33

Memoria comúnMemoria común

CPUCPU44

ProcProc11 ProcProc22 ProcProc44ProcProc33

Page 9: Sincronizacion de Procesos

Procesamiento distribuido Los procesos están conectados a través de

una red de comunicación Cada procesos cuenta con su memoria

CPUCPU11 CPUCPU22 CPUCPU33

MM11

CPUCPU44

ProcProc11 ProcProc22 ProcProc44ProcProc33

MM22 MM33 MM44

red de comunicaciónred de comunicación

Page 10: Sincronizacion de Procesos

Interacción entre procesos Para poder cooperar, procesos concurrentes

deben comunicarse y sincronizarse Comunicación permite ejecución de un

proceso para influenciar ejecución de otro Comunicación entre procesos esta basada

en el uso de variables compartidas o envío de mensajes

Page 11: Sincronizacion de Procesos

La sincronización Frecuentemente, la sincronización es necesaria

cuando los procesos se comunican Procesos son ejecutados con velocidades

impredecibles Para comunicarse un proceso debe realizar una

acción que el otro pueda detectar Entonces la sincronía puede verse como un conjunto

de restricciones para el ordenamiento de eventos Programador usa un mecanismo de sincronía para

retardar ejecución de un proceso para satisfacer una restricción

Page 12: Sincronizacion de Procesos

El Problema de la Sección CríticaCada proceso posee un fragmento de código,

denominado sección crítica, que no debe intercalarse con las secciones críticas de los demás procesos

En las secciones críticas de los procesos se encuentra el código que accede y/o modifica los datos compartidos

La ejecución de las secciones críticas debe ser mutuamente exclusiva para evitar inconsistencia de datos

El problema de la sección crítica consiste en diseñar un protocolo que los procesos pueden usar para conseguir la exclusión mutua de las secciones críticas.

El protocolo consta de: Sección de ingreso: solicita permiso para ingresar en la

SC Sección de egreso: anuncia la salida de la SC

Page 13: Sincronizacion de Procesos

Solución al Problema de la Sección Crítica

1.Exclusión Mutua – Si el proceso Pi está ejecutando su sección crítica, ningún otro proceso puede estar ejecutando su sección crítica

2.Progreso – Si ningún proceso está ejecutando su sección crítica y existen algunos que quieren entrar en su sección crítica, sólo los procesos que no estén ejecutando su sección restante pueden participar en la decisión de qué proceso puede ingresar en su sección crítica, y esta selección no puede posponerse indefinidamente

3.Espera limitada - Hay un límite para el número de veces que otros procesos pueden entrar a sus secciones críticas después de que un proceso ha solicitado entrar en su sección crítica y antes de que se le otorgue la autorización para hacerloAsumimos que cada proceso se ejecuta con velocidad

0 No hacemos supuestos acerca de las velocidades

relativas de los N procesos

Page 14: Sincronizacion de Procesos

Primer intentowhile (true){

while (turno 0);

SECCIÓN CRÍTICA

turno = 1;

SECCIÓN RESTANTE

}

Satisface la exclusión mutua

No cumple la condición de progreso

Requiere una alternancia estricta de los procesos en la ejecución de la sección crítica

Page 15: Sincronizacion de Procesos

Segundo intentowhile (true){

indicador[0] = TRUE;while (indicador[1]);

SECCIÓN CRÍTICA

indicador[0] = FALSE;

SECCIÓN RESTANTE

}

Satisface la exclusión mutua

No cumple la condición de progreso

Los dos procesos pueden quedarse bloqueados en ciclos infinitos

Page 16: Sincronizacion de Procesos

Solución de Dekker 5 (1965)while (true){

indicador[1] = TRUE;while (indicador[2]){

if (turno = 2){

indicador[1] = FALSE;

while (turno = 2);indicador[1] =

TRUE;}

}

SECCIÓN CRÍTICA

turno = 2;indicador[1] = FALSE;

SECCIÓN RESTANTE

}

Satisface la exclusión mutua

Cumple la condición de progreso

Cumple el requisito de espera limitada

Page 17: Sincronizacion de Procesos

Hardware de SincronizaciónMuchos sistemas proveen soporte de

hardware para resolver el problema de la exclusión mutua

Una solución en máquinas con un solo procesador es deshabilitar las interrupcionesEl código que se está ejecutando no

puede ser retirado de la CPUNo es buena solución porque el SO pierde

el control temporalmente En sistemas multiprocesadores no es eficiente

Las máquinas actuales proveen instrucciones atómicas especiales

Atómica = no interrumpible

Page 18: Sincronizacion de Procesos

PREGUNTAS¿?