comunicacion e interbloqueo

85
1 Sistemas Operativos Asignatura: Sistemas Operativos Tema 3: Com., Sincr. e Interbloqueo Miguel R. Albizu / Marián D. Fondón EUITIO curso 2009-2010 Página 1 Tema 3 Comunicación, Sincronización e Interbloqueo

Transcript of comunicacion e interbloqueo

Page 1: comunicacion e interbloqueo

1

Sistemas Operativos

Asignatura: Sistemas OperativosTema 3: Com., Sincr. e Interbloqueo

Miguel R. Albizu / Marián D. Fondón EUITIO curso 2009-2010

Página 1

Tema 3Comunicación, Sincronización e

Interbloqueo

Page 2: comunicacion e interbloqueo

2

¿Qué aprenderemos en este tema?

Objetivo general

El alumno será capaz de

Identificar los problemas que plantea la existencia de varios procesos

ejecutándose a la vez en el sistema, compartiendo recursos, y las

herramientas que se utilizan para resolver esos problemas.

Asignatura: Sistemas OperativosTema 3: Com., Sincr. e Interbloqueo

Miguel R. Albizu / Marián D. Fondón EUITIO curso 2009-2010

Página 2

herramientas que se utilizan para resolver esos problemas.

Analizar el problema que supone la aparición de interbloqueos en un

sistema informático, así como las técnicas apropiadas para tratarlo.

Page 3: comunicacion e interbloqueo

3

¿Qué aprenderemos en este tema?

Objetivos específicos (comunicación y sincronización de procesos)

Concepto base

• Comprender el concepto de procesos concucurrentes..

• Distinguir qué tipos de procesos pueden provocar problemas

durante su ejecución concurrente..

Modelos de procesos concurrentes

Asignatura: Sistemas OperativosTema 3: Com., Sincr. e Interbloqueo

Miguel R. Albizu / Marián D. Fondón EUITIO curso 2009-2010

Página 3

• Conocer qué “problemas tipo” podemos encontrarnos al trabajar

con procesos concurrentes.

Mecanismos IPC

• Conocer qué mecanismos existen para la comunicación y

sincronización de procesos y cómo funcionan.

• Ser capaces de aplicar los mecanismos IPC habituales a la

resolución de los “problemas tipo” de programación concurrente.

Page 4: comunicacion e interbloqueo

4

¿Qué aprenderemos en este tema?

Objetivos específicos (interbloqueo)

Concepto base

• Comprender el concepto de interbloqueo.

• Distinguir qué tipos de recursos pueden provocar problemas de

interbloqueo.

Representación del sistema

Asignatura: Sistemas OperativosTema 3: Com., Sincr. e Interbloqueo

Miguel R. Albizu / Marián D. Fondón EUITIO curso 2009-2010

Página 4

• Ser capaces de crear un modelo de sistema que pueda ser usado

para representar el estado del mismo, viendo los estados

problemáticos y cómo solucionarlos.

Tratamiento del interbloqueo

• Comprender las distintas técnicas que existen para tratar el

interbloqueo (Prevención, predicción, detección)

• Comprender las ventajas y desventajas de cada una de ellas.

Page 5: comunicacion e interbloqueo

5

Contenido

Parte I: Comunicación y sincronización de procesos (Tema 6)

1. Introducción a la programación Concurrente (6.1)

2. Modelos de Comunicación y Sincronización (6.2)

3. Mecanismos de sincronización y comunicación (6.3, 6.4 )

4. Comu. y sincr. de procesos en POSIX y Windows (6.6 y 6.7)

Parte II: Interbloqueo

1. Introducción (7.1 y 7.2)

Asignatura: Sistemas OperativosTema 3: Com., Sincr. e Interbloqueo

Miguel R. Albizu / Marián D. Fondón EUITIO curso 2009-2010

Página 5

1. Introducción (7.1 y 7.2)

2. Modelo del sistema. (7.3)

3. Condiciones para el interbloqueo. (7.4)

4. Tratamiento del interbloqueo: Prevención (7.5 y 7.7)

5. Tratamiento del interbloqueo: Predicción (7.8)

6. Tratamiento del interbloqueo: Detección y recuperación. (7.6)

7. Aplicación a los Sistemas Operativos (7.9)

Page 6: comunicacion e interbloqueo

6

Parte I: Comunicación y sincronización entre procesos1.- Introducción a la programación Concurrente

Procesos (o hilos) concurrentes

– Aquellos que existen simultáneamente en el sistema y pueden tener que compartir recursos.

Concurrencia real (Paralelismo)– La ejecución de los procesos se realiza en diferentes procesadores– Modelos de

Asignatura: Sistemas OperativosTema 3: Com., Sincr. e Interbloqueo

Miguel R. Albizu / Marián D. Fondón EUITIO curso 2009-2010

Página 6

– Modelos de • Multiprocesador (una máquina con varios procesadores)• Multicomputadora (múltiples máquinas conectadas en red)

Concurrencia aparente

– La simultaneidad se simula. Los procesos intercalan su ejecución en el tiempo.

– Modelo con un único procesador

Page 7: comunicacion e interbloqueo

7

Parte I: Comunicación y sincronización entre procesos1.- Introducción a la programación Concurrente

Necesidad de la concurencia

– Acelera cálculo. • Dividir la tarea en procesos paralelos: (a+b)*(a-b) 3 procesos

– Posibilita el uso interactivo. • Múltiples usuarios que hacen consultas. (ej. a base de datos)

Asignatura: Sistemas OperativosTema 3: Com., Sincr. e Interbloqueo

Miguel R. Albizu / Marián D. Fondón EUITIO curso 2009-2010

Página 7

• Múltiples usuarios que hacen consultas. (ej. a base de datos)• Se genera un proceso para cada uno

– Se aprovechan mejor los recursos de la máquina. • Ej. CPU

Page 8: comunicacion e interbloqueo

8

Parte I: Comunicación y sincronización entre procesos1.- Introducción a la programación Concurrente

Tipos de Procesos Concurrentes

Independientes

• Se ejecutan sin requerir la ayuda o cooperación de otrosprocesos

• En general la mayor parte de los procesos se ejecutanindependientemente de ningún otro.

Asignatura: Sistemas OperativosTema 3: Com., Sincr. e Interbloqueo

Miguel R. Albizu / Marián D. Fondón EUITIO curso 2009-2010

Página 8

independientemente de ningún otro.

Cooperantes

• Diseñados para trabajar conjuntamente en alguna actividad.

• Deben ser capaces de comunicarse e interactuar entre ellos

Page 9: comunicacion e interbloqueo

9

Parte I: Comunicación y sincronización entre procesos1.- Introducción a la programación Concurrente

Interacciones entre procesos (de cualquier tipo)

– Comparten o compiten por el acceso a un recurso físico o lógico

• Ej. Dos procesos independientes pueden competir por el acceso adisco

• Ej. Dos procesos desean modificar el contenido de un registro de labase de datos

Asignatura: Sistemas OperativosTema 3: Com., Sincr. e Interbloqueo

Miguel R. Albizu / Marián D. Fondón EUITIO curso 2009-2010

Página 9

base de datos

– Se comunican o sincronizan para alcanzar un objetivo común

• Ej. (a+b)*(a-b) El proceso que realiza el producto no puede empezar hasta que los que realizan la suma y resta no hayan acabado.

Necesidad de control por parte del Sistema operativo

Inclusión de servicios que permitan sincronización y comunicación (explícita).

Page 10: comunicacion e interbloqueo

10

Parte I: Comunicación y sincronización entre procesos1.- Introducción a la programación Concurrente

Problemas que presenta la concurrencia

– Condiciones de carrera: El resultado final de la ejecución de variosprocesos concurrentes depende de la secuencia de ejecución.

– Interbloqueo: bloqueo permanente de varios procesos que compiten porrecursos o se sincronizan entre sí.

Asignatura: Sistemas OperativosTema 3: Com., Sincr. e Interbloqueo

Miguel R. Albizu / Marián D. Fondón EUITIO curso 2009-2010

Página 10

recursos o se sincronizan entre sí.

Page 11: comunicacion e interbloqueo

11

Contenido

Parte I: Comunicación y sincronización de procesos (Tema 6)

1. Introducción a la programación Concurrente (6.1)

2. Modelos de Comunicación y Sincronización (6.2)

3. Mecanismos de sincronización y comunicación (6.3, 6.4 )

4. Aspectos de diseño (6.5)

Asignatura: Sistemas OperativosTema 3: Com., Sincr. e Interbloqueo

Miguel R. Albizu / Marián D. Fondón EUITIO curso 2009-2010

Página 11

5. Comu. y sincr. de procesos en POSIX y Windows (6.6 y 6.7)

Page 12: comunicacion e interbloqueo

12

Parte I: Comunicación y sincronización entre procesos

2.- Problemas clásicos: El problema de la sección crítica

void ingresar(char *cuenta, int cantidad) {

int saldo, fd;

fd = open(cuenta, O_RDWR);

read(fd, &saldo, sizeof(int));

saldo = saldo + cantidad;

lseek(fd, 0, SEEK_SET);

write(fd, &saldo, sizeof(int));

Asignatura: Sistemas OperativosTema 3: Com., Sincr. e Interbloqueo

Miguel R. Albizu / Marián D. Fondón EUITIO curso 2009-2010

Página 12

write(fd, &saldo, sizeof(int));

close(fd);

return; © J. Carretero, F. García, P. de Miguel, F. Pérez

}

• Si dos procesos ejecutan concurrentemente este código se puede perder algún ingreso.

• Solución: secciones críticas

Page 13: comunicacion e interbloqueo

13

Parte I: Comunicación y sincronización entre procesos2.- Problemas clásicos: Problema de la Sección Crítica. Definición

• Los procesos concurrentes suelen compartir recursos (periféricos, variables..)

• Puede ocurrir que se intente acceder al mismo recurso y que éste no pueda ser usado por varios procesos a la vez. (Ej. Impresora, saldo)

Asignatura: Sistemas OperativosTema 3: Com., Sincr. e Interbloqueo

Miguel R. Albizu / Marián D. Fondón EUITIO curso 2009-2010

Página 13

Sección crítica

– Segmento de código de un programa que accede a recursos compartidos con otros procesos, siendo imprescindible un acceso exclusivo a dichos recursos.

Page 14: comunicacion e interbloqueo

14

Parte II: Comunicación y sincronización entre procesos2.- Problemas clásicos: Problema de la Sección Crítica

Mecanismo de protección de una sección crítica (Condiciones de

carrera)

– Cada proceso debe solicitar permiso a su sección crítica– Cuando un proceso sale de su sección crítica debe indicarlo

Asignatura: Sistemas OperativosTema 3: Com., Sincr. e Interbloqueo

Miguel R. Albizu / Marián D. Fondón EUITIO curso 2009-2010

Página 14

Estructura general del mecanismo

Entrada a la sección crítica

Código de la sección críticaSalida de la sección crítica

Page 15: comunicacion e interbloqueo

15

Parte II: Comunicación y sincronización entre procesos2.- Problema de la Sección Crítica. Solución al ejemplo

void ingresar(char *cuenta, int cantidad) {

int saldo, fd;

fd = open(cuenta, O_RDWR);

<Entrada en la sección crítica>

read(fd, &saldo, sizeof(int));

saldo = saldo + cantidad;

Asignatura: Sistemas OperativosTema 3: Com., Sincr. e Interbloqueo

Miguel R. Albizu / Marián D. Fondón EUITIO curso 2009-2010

Página 15

saldo = saldo + cantidad;

lseek(fd, 0, SEEK_SET);

write(fd, &saldo, sizeof(int));

<Salida de la sección crítica>

close(fd);

return; © J. Carretero, F. García, P. de Miguel, F. Pérez

}

Page 16: comunicacion e interbloqueo

16

9.- Mecanismos de comunicación y sincronización entre procesos2.- Problemas clásicos. Problema del Productor-Consumidor

ProcesoProductor

ProcesoConsumidor

Asignatura: Sistemas OperativosTema 3: Com., Sincr. e Interbloqueo

Miguel R. Albizu / Marián D. Fondón EUITIO curso 2009-2010

Página 16

Mecanismo de comunicación

Flujo de datos

Page 17: comunicacion e interbloqueo

17

9.- Mecanismos de comunicación y sincronización entre procesos2.- Problemas clásicos. Problema del Productor-Consumidor

• Uno o más procesos generan ciertos datos (producen)

• Uno o más procesos utilizan esos datos (consumen)• Ej: cadena de montaje• Ej: compilador: el productor genera código ensamblador. El

consumidor (ensamblador) transforma ese código en código máquina

Asignatura: Sistemas OperativosTema 3: Com., Sincr. e Interbloqueo

Miguel R. Albizu / Marián D. Fondón EUITIO curso 2009-2010

Página 17

• Se debe disponer de algún mecanismo de comunicación y de sincronización entre ambos.

– Se deben enviar datos del productor al consumidor– Si se llena el mecanismo el productor deberá esperar a que el

consumidor consuma

Page 18: comunicacion e interbloqueo

18

9.- Mecanismos de comunicación y sincronización entre procesos2.- Problemas clásicos. Problema de los lectores-escritores

EscritorLector Lector Escritor Lector

Asignatura: Sistemas OperativosTema 3: Com., Sincr. e Interbloqueo

Miguel R. Albizu / Marián D. Fondón EUITIO curso 2009-2010

Página 18

Recurso

Page 19: comunicacion e interbloqueo

19

• Existe un recurso (fichero, registro, etc) que va a ser utilizado por una serie de procesos concurrentes

• Algunos procesos accederán sin modificarlo (lectores) y otros lo modificarán (escritores)

• Restricciones– Sólo se permite que un escritor tenga acceso al recurso al mismo

9.- Mecanismos de comunicación y sincronización entre procesos2.- Problemas clásicos. Problema de los lectores-escritores

Asignatura: Sistemas OperativosTema 3: Com., Sincr. e Interbloqueo

Miguel R. Albizu / Marián D. Fondón EUITIO curso 2009-2010

Página 19

– Sólo se permite que un escritor tenga acceso al recurso al mismo tiempo (no habrá más escritores ni lectores)

– Se permite que múltiples lectores tengan acceso al recurso simultáneamente

• Es necesario disponer de servicios de sincronización que controlen el acceso

Page 20: comunicacion e interbloqueo

20

9.- Mecanismos de comunicación y sincronización entre procesos2.- Problemas clásicos. Problema del Cliente-Servidor

Computador Computador

Petición

Asignatura: Sistemas OperativosTema 3: Com., Sincr. e Interbloqueo

Miguel R. Albizu / Marián D. Fondón EUITIO curso 2009-2010

Página 20

Procesocliente

S.O.

Respuesta

Procesoservidor

Page 21: comunicacion e interbloqueo

21

9.- Mecanismos de comunicación y sincronización entre procesos2.- Problemas clásicos. Problema del cliente-servidor

• En el modelo cliente-servidor dos procesos se comunican para enviar petición (cliente) y devolver resultados (servidor)

• El cliente y servidor pueden estar en distintas máquinas (Ej: correo electrónico, transferencia de ficheros, etc)

• El SO debe ofrecer servicios que permitan comunicación entre estos

Asignatura: Sistemas OperativosTema 3: Com., Sincr. e Interbloqueo

Miguel R. Albizu / Marián D. Fondón EUITIO curso 2009-2010

Página 21

• El SO debe ofrecer servicios que permitan comunicación entre estos procesos– Si los procesos están en la misma máquina

• Técnicas de memoria compartida o archivos– Si los procesos están en distintas máquinas

• Técnicas de envío de mensajes

Page 22: comunicacion e interbloqueo

22

9.- Mecanismos de comunicación y sincronización entre procesos2.- Problemas clásicos. Problema de recursos limitados. La cena de los filósofos

• Es una metáfora para representar a un conjunto de procesos que comparten un conjunto limitado de recursos.

• En un monasterio hay 5 filósofos que se pasan la vida pensando y

comiendo. Cuando necesitan comer, van a una mesa donde hay 5

platos y cinco tenedores. Para comer, necesitan dos tenedores.

• Hay que garantizar

Asignatura: Sistemas OperativosTema 3: Com., Sincr. e Interbloqueo

Miguel R. Albizu / Marián D. Fondón EUITIO curso 2009-2010

Página 22

• Hay que garantizar

– que todo filósofo pueda comer en un tiempo finito cuando tenga

hambre.

– que no se producen interbloqueos.

Page 23: comunicacion e interbloqueo

23

Contenido

Parte I: Procesos

Parte II: Comunicación y sincronización de procesos (Tema 6)

1. Introducción a la programación Concurrente (6.1)

2. Modelos de Comunicación y Sincronización (6.2)3. Mecanismos de sincronización y comunicación (6.3, 6.4 )

Asignatura: Sistemas OperativosTema 3: Com., Sincr. e Interbloqueo

Miguel R. Albizu / Marián D. Fondón EUITIO curso 2009-2010

Página 23

4. Aspectos de diseño (6.5)

5. Comu. y sincr. de procesos en POSIX y Windows (6.6 y 6.7)

Page 24: comunicacion e interbloqueo

24

9.- Mecanismos de comunicación y sincronización entre procesos3.- Tipos de Mecanismos

Mecanismos de comunicación

• Archivos

• Tuberías

Mecanismos de Sincronización

• Tuberías

• Señales

Asignatura: Sistemas OperativosTema 3: Com., Sincr. e Interbloqueo

Miguel R. Albizu / Marián D. Fondón EUITIO curso 2009-2010

Página 24

• Tuberías

• Memoria compartida

• Paso de Mensajes

• Señales

• Semáforos, mutex

• Paso de Mensajes

Page 25: comunicacion e interbloqueo

25

9.- Mecanismos de comunicación y sincronización entre procesos3.- Tipos de mecanismos: Ficheros

• Los ficheros pueden utilizarse para compartición de datos por parte de varios procesos.

• Son fáciles de usar, al basarse la comunicación en las operaciones de leer y escribir.

• Pueden comunicar un número potencialmente ilimitado de procesos.

Asignatura: Sistemas OperativosTema 3: Com., Sincr. e Interbloqueo

Miguel R. Albizu / Marián D. Fondón EUITIO curso 2009-2010

Página 25

• Pueden comunicar un número potencialmente ilimitado de procesos.

• Es poco eficiente, al ser operaciones lentas.

• Se necesita un mecanismo de sincronización para ordenar el acceso al fichero.

Page 26: comunicacion e interbloqueo

26

9.- Mecanismos de comunicación y sincronización entre procesos3.- Tipos de mecanismos: Tuberías

Procesode Usuario

Procesode Usuario

SO

write read

Asignatura: Sistemas OperativosTema 3: Com., Sincr. e Interbloqueo

Miguel R. Albizu / Marián D. Fondón EUITIO curso 2009-2010

Página 26

pipe

SO

Flujo de datos © J. Carretero, F. García, P. de Miguel, F. Pérez

Page 27: comunicacion e interbloqueo

27

9.- Mecanismos de comunicación y sincronización entre procesos3.- Tipos de mecanismos: Tuberías

• Es un mecanismo tanto de comunicación como de sincronización usado en el estándar Posix

• Se utilizan las mismas llamadas para leer y escribir que en ficheros. Ambas operaciones son atómicas.

• Es un fichero FIFO: cuando se lee un dato, se lee el que más tiempo lleva

Asignatura: Sistemas OperativosTema 3: Com., Sincr. e Interbloqueo

Miguel R. Albizu / Marián D. Fondón EUITIO curso 2009-2010

Página 27

en la tubería y este dato desaparece de la tubería.

• Si un proceso intenta leer de una tubería vacía, el S.O. duerme al proceso hasta que haya datos.

• Si la tubería está llena y se intenta escribir, el proceso se dormirá hasta que haya sitio.

• Puede ser utilizado por múltiples procesos, tanto leyendo o escribiendo.

Page 28: comunicacion e interbloqueo

28

9.- Mecanismos de comunicación y sincronización entre procesos3.- Tipos de mecanismos: Señales

Envío de señales entre procesos

•Un proceso puede bloquearse (dormirse) hasta que reciba una señal (llamada pause).

• Un proceso puede despertar a otro enviando una señal (llamada kill).

Problemas del mecanismo

Asignatura: Sistemas OperativosTema 3: Com., Sincr. e Interbloqueo

Miguel R. Albizu / Marián D. Fondón EUITIO curso 2009-2010

Página 28

Problemas del mecanismo

• Un proceso puede recibir señales aunque no esté esperando por ellas (son asíncronas).

• Las señales no se encolan. Si hay una señal pendiente de tratar y se recibe otra del mismo tipo, sólo queda constancia de que ha llegado una señal.

Page 29: comunicacion e interbloqueo

29

9.- Mecanismos de comunicación y sincronización entre procesos3.- Tipos de mecanismos: Semáforos

• (Dijkstra 1965)

• Estructura con tres operaciones definidas: Inicialización, wait, signal.

• Todas las operaciones son atómicas .

• Internamente constituido por un valor entero.

Asignatura: Sistemas OperativosTema 3: Com., Sincr. e Interbloqueo

Miguel R. Albizu / Marián D. Fondón EUITIO curso 2009-2010

Página 29

wait (s)

{ s=s-1;

if (s<0)

dormir();

}

signal (s)

{ s=s+1;

if (s<=0)

Despertar a un proceso dormido sobre s;

}

Page 30: comunicacion e interbloqueo

30

9.- Mecanismos de comunicación y sincronización entre procesos3.- Tipos de mecanismos: Semáforos

Solución a la sección crítica

wait (s);

SECCION CRÍTICA

signal(s);

Asignatura: Sistemas OperativosTema 3: Com., Sincr. e Interbloqueo

Miguel R. Albizu / Marián D. Fondón EUITIO curso 2009-2010

Página 30

• El valor de s debe ser inicializado a 1.

• La solución es válida para n procesos.

• No presenta espera activa (los procesos que esperan están dormidos).

Page 31: comunicacion e interbloqueo

31

9.- Mecanismos de comunicación y sincronización entre procesos3.- Tipos de mecanismos: Semáforos

P0

Valor delsemáforo (s)

wait(s) wait(s)

wait(s)

1

0

-1

-2

P1 P2

Asignatura: Sistemas OperativosTema 3: Com., Sincr. e Interbloqueo

Miguel R. Albizu / Marián D. Fondón EUITIO curso 2009-2010

Página 31

© J. Carretero, F. García, P. de Miguel, F. Pérez

signal(s)

signal(s)

signal(s)

desbloquea

desbloquea

1

-1

0

Ejecutando código de la sección crítica

Proceso bloqueado en el semáforo

Page 32: comunicacion e interbloqueo

32

9.- Mecanismos de comunicación y sincronización entre procesos3.- Tipos de mecanismos: Semáforos

(a)

Tabla de procesos

BCP1 BCP7BCP2 BCP8BCP3 BCP9BCP4 BCP10BCP5 BCP11BCP6 BCP12

1 90 56 11 87 0

Cola asociada al semáforo

7

Bloq. Ejec.EstadoPID

Asignatura: Sistemas OperativosTema 3: Com., Sincr. e Interbloqueo

Miguel R. Albizu / Marián D. Fondón EUITIO curso 2009-2010

Página 32

(a)

(b)

Tabla de procesos

BCP1 BCP7BCP2 BCP8BCP3 BCP9BCP4 BCP10BCP5 BCP11BCP6 BCP12

1 90 56 11 87

Bloq.EstadoPID

Bloq. Bloq.

0

Cola asociada al semáforo

7 11© J. Carretero, F. García, P. de Miguel, F. Pérez

Page 33: comunicacion e interbloqueo

33

9.- Mecanismos de comunicación y sincronización entre procesos3.- Tipos de mecanismos: Paso de Mensajes

• Para comunicación entre procesos de distintas máquinas

• Los procesos envían y reciben mensajes para comunicarse y sincronizarse.

• Una implementación que se utiliza mucho son los Sockets. Los más utilizados en aplicaciones distribuidas

• Se utilizan dos operaciones básicas :

Asignatura: Sistemas OperativosTema 3: Com., Sincr. e Interbloqueo

Miguel R. Albizu / Marián D. Fondón EUITIO curso 2009-2010

Página 33

• Se utilizan dos operaciones básicas :

send(destino, mensaje) receive(origen, mensaje)

• Tipos de comunicación:

• Síncrona total (envío y recepción bloqueante): el emisor se duerme hasta que el receptor recibe el mensaje. El receptor se duerme si el mensaje no ha llegado.

•Síncrona intermedia (envío no bloqueante y recepción bloqueante): el emisor no se duerme pero el receptor se bloquea hasta que recibe el mensaje.

• Asíncrona (envío y recepción no bloqueante): Nadie espera.

Page 34: comunicacion e interbloqueo

34

9.- Mecanismos de comunicación y sincronización entre procesos3.- Tipos de mecanismos: Paso de Mensajes

Modos de comunicación

1. Comunicación directa

Se envía el mensaje al proceso

2. Comunicación indirecta

Se envía el mensaje a una estructura de la que el proceso recoge la información

Asignatura: Sistemas OperativosTema 3: Com., Sincr. e Interbloqueo

Miguel R. Albizu / Marián D. Fondón EUITIO curso 2009-2010

Página 34

Se envía el mensaje a una estructura de la que el proceso recoge la información

• Colas de mensajes o buzones

• Puertos

Colas de mensajes. El destino y el origen identifican una entidad intermedia: un buzón. Puede haber múltiples emisores y múltiples receptores.

Puertos. Caso específico de un buzón, donde sólo hay un receptor, pudiendo haber múltiples emisores. El puerto suele pertenecer al proceso receptor:

Page 35: comunicacion e interbloqueo

35

9.- Mecanismos de comunicación y sincronización entre procesos3.- Tipos de mecanismos: Paso de Mensajes

Proceso cliente Proceso clientesend

receiveProceso cliente Proceso cliente

Puertosend

Asignatura: Sistemas OperativosTema 3: Com., Sincr. e Interbloqueo

Miguel R. Albizu / Marián D. Fondón EUITIO curso 2009-2010

Página 35

Comunicación con puertosComunicación con colas de mensajes

mensaje

Cola de mensajes

mensaje

© J. Carretero, F. García, P. de Miguel, F. Pérez

Page 36: comunicacion e interbloqueo

36

9.- Mecanismos de comunicación y sincronización entre procesos3.- Tipos de mecanismos: Memoria Compartida

Datos

Texto

Proceso A Proceso B

Texto

Datos

var1

var2

Asignatura: Sistemas OperativosTema 3: Com., Sincr. e Interbloqueo

Miguel R. Albizu / Marián D. Fondón EUITIO curso 2009-2010

Página 36

© J. Carretero, F. García, P. de Miguel, F. Pérez

PilaPilaSegmento

de memoriacompartida

2

Page 37: comunicacion e interbloqueo

37

9.- Mecanismos de comunicación y sincronización entre procesos3.- Tipos de mecanismos: Memoria Compartida

• La memoria compartida se utiliza para comunicar (no para sincronizar) procesos dentro de la misma máquina.

• El sistema operativo permite a varios procesos acceder a la misma zona de memoria a través de llamadas al sistema específicas de creación de memoria compartida.

Asignatura: Sistemas OperativosTema 3: Com., Sincr. e Interbloqueo

Miguel R. Albizu / Marián D. Fondón EUITIO curso 2009-2010

Página 37

• Los procesos que comparten memoria pueden utilizar esa zona para dejar datos que deben ser accesibles por todos ellos.

• En un sistema basado en hilos todos los hilos del mismo proceso comparten la memoria sin necesidad de intervención del S.O.

Page 38: comunicacion e interbloqueo

38

9.- Mecanismos de comunicación y sincronización entre procesos3.- Tipos de mecanismos: Mutex y Variables condicionales

Mutex

• Mecanismo de sincronización para hilos.

• Se emplea para obtener acceso exclusivo a una sección crítica

• Operaciones básicas atómicas:

Asignatura: Sistemas OperativosTema 3: Com., Sincr. e Interbloqueo

Miguel R. Albizu / Marián D. Fondón EUITIO curso 2009-2010

Página 38

• Lock (m)

sección crítica

• Unlock (m)

•Equivalente a los semáforos pero de uso sobre los hilos

Page 39: comunicacion e interbloqueo

39

9.- Mecanismos de comunicación y sincronización entre procesos3.- Tipos de mecanismos: Variables condicionales

Variables condicionales

Variable asociada a un mutex que bloquea un hilo hasta que se produzca una condición.

Operaciones

1. c_wait. Bloquea al hilo que ejecuta la llamada y lo expulsa del

Asignatura: Sistemas OperativosTema 3: Com., Sincr. e Interbloqueo

Miguel R. Albizu / Marián D. Fondón EUITIO curso 2009-2010

Página 39

1. c_wait. Bloquea al hilo que ejecuta la llamada y lo expulsa del mutex dentro del cual se ejecuta, al que está asociado la variable condicional

2. c_signal. Desbloquea uno o varios hilos

Útil si un proceso dentro de una sección crítica debe bloquearse por otra causa. Con c_wait se bloquea y libera la sección crítica

Page 40: comunicacion e interbloqueo

40

9.- Mecanismos de comunicación y sincronización entre procesos4.- Problemas clásicos. Problema del Productor-Consumidor

Productor

Asignatura: Sistemas OperativosTema 3: Com., Sincr. e Interbloqueo

Miguel R. Albizu / Marián D. Fondón EUITIO curso 2009-2010

Página 40Consumidor

Page 41: comunicacion e interbloqueo

41

9.- Mecanismos de comunicación y sincronización entre procesos4.- Problemas clásicos. Problema del Productor-Consumidor

#define TAMAÑO_BUFFER 1024

Productor() /* codigo del productor */

{

int posicion = 0; /* posicion dentro del buffer */

for(;;) {

Asignatura: Sistemas OperativosTema 3: Com., Sincr. e Interbloqueo

Miguel R. Albizu / Marián D. Fondón EUITIO curso 2009-2010

Página 41

for(;;) {

producir dato

wait(huecos);

buffer[posicion] = dato;

posicion = (posicion + 1) % TAMAÑO_BUFFER;

signal(elementos); }

}

Page 42: comunicacion e interbloqueo

42

9.- Mecanismos de comunicación y sincronización entre procesos4.- Problemas clásicos. Problema del Productor-Consumidor

Consumidor() /* codigo del Consumidor */

{

int posicion = 0;

for(;;) {

wait(elementos);

dato = buffer[posicion];

Asignatura: Sistemas OperativosTema 3: Com., Sincr. e Interbloqueo

Miguel R. Albizu / Marián D. Fondón EUITIO curso 2009-2010

Página 42

dato = buffer[posicion];

posicion = (posicion + 1) % TAMAÑO_BUFFER;

signal(huecos);

/* cosumir dato */

}

}

Page 43: comunicacion e interbloqueo

43

9.- Mecanismos de comunicación y sincronización entre procesos4.- Problemas clásicos. Problema de los lectores-escritores

EscritorLector Lector Escritor Lector

Asignatura: Sistemas OperativosTema 3: Com., Sincr. e Interbloqueo

Miguel R. Albizu / Marián D. Fondón EUITIO curso 2009-2010

Página 43

Recurso

Puede haber varios

lectores

No puede haber

varios escritores

Page 44: comunicacion e interbloqueo

44

9.- Mecanismos de comunicación y sincronización entre procesos4.- Problemas clásicos. Problema de los lectores-escritores

int dato = 5; /* recurso */int n_lectores = 0; /* numero de lectores */sem_t sem_lec; /* controlar el acceso n_lectores */sem_t mutex; /* controlar el acceso a dato */

void main(void){

pthread_t th1, th2, th3, th4;

Asignatura: Sistemas OperativosTema 3: Com., Sincr. e Interbloqueo

Miguel R. Albizu / Marián D. Fondón EUITIO curso 2009-2010

Página 44

pthread_t th1, th2, th3, th4;

sem_init(&mutex, 0, 1);sem_init(&sem_lec, 0, 1);

pthread_create(&th1, NULL, Lector, NULL);pthread_create(&th2, NULL, Escritor, NULL);pthread_create(&th3, NULL, Lector, NULL);pthread_create(&th4, NULL, Escritor, NULL);

Page 45: comunicacion e interbloqueo

45

9.- Mecanismos de comunicación y sincronización entre procesos4.- Problemas clásicos. Problema de los lectores-escritores

pthread_join(th1, NULL);

pthread_join(th2, NULL);

pthread_join(th3, NULL);

pthread_join(th4, NULL);

/* cerrar todos los semaforos */

Asignatura: Sistemas OperativosTema 3: Com., Sincr. e Interbloqueo

Miguel R. Albizu / Marián D. Fondón EUITIO curso 2009-2010

Página 45

/* cerrar todos los semaforos */

sem_destroy(&mutex);

sem_destroy(&sem_lec);

exit(0);

}

Page 46: comunicacion e interbloqueo

46

9.- Mecanismos de comunicación y sincronización entre procesos4.- Problemas clásicos. Problema del Cliente-Servidor

/* codigo del lector */void Lector(void) { /* codigo del lector */

sem_wait(&sem_lec); /* solo un lector puede entrar a la vez*/n_lectores = n_lectores + 1;if (n_lectores == 1)

sem_wait(&mutex);sem_post(&sem_lec); /sem_post es lo mismo que signal */

printf(``%d\n'', dato); /* leer dato */

Asignatura: Sistemas OperativosTema 3: Com., Sincr. e Interbloqueo

Miguel R. Albizu / Marián D. Fondón EUITIO curso 2009-2010

Página 46

printf(``%d\n'', dato); /* leer dato */

sem_wait(&sem_lec);n_lectores = n_lectores - 1;if (n_lectores == 0)

sem_post(&mutex);sem_post(&sem_lec);pthread_exit(0);

}

Page 47: comunicacion e interbloqueo

47

9.- Mecanismos de comunicación y sincronización entre procesos4.- Problemas clásicos. Problema del Cliente-Servidor

/* código del escritor */

void Escritor(void) { /* codigo del escritor */

sem_wait(&mutex);

dato = dato + 2; /* modificar el recurso

Asignatura: Sistemas OperativosTema 3: Com., Sincr. e Interbloqueo

Miguel R. Albizu / Marián D. Fondón EUITIO curso 2009-2010

Página 47

dato = dato + 2; /* modificar el recurso */

sem_post(&mutex);

pthread_exit(0);

}

Page 48: comunicacion e interbloqueo

48

9.- Mecanismos de comunicación y sincronización entre procesos4.- Problemas clásicos. Problema del Cliente-Servidor

Ejercicio• Crea el seudocódigo de un proceso P1 que ejecute R1=(a+b)• Crea el seudocódigo de un proceso P2 que ejecute R2=(a-b) y luego

R1*R2.• ¿Qué mecanismos de comunicación y de sincronización podrías usar

si son procesos? ¿Y si son hilos? . Crea distintas versiones con diferentes mecanismos de sincronización. Indica cuales serían los

Asignatura: Sistemas OperativosTema 3: Com., Sincr. e Interbloqueo

Miguel R. Albizu / Marián D. Fondón EUITIO curso 2009-2010

Página 48

diferentes mecanismos de sincronización. Indica cuales serían los valores iniciales de estos mecanismos.

Ejercicio• Divide el código de P2 del ejercicio anterior en dos procesos

diferentes, uno que ejecute R2 y otro que haga R1*R2. Plantea diferentes mecanismos de sincronización para dar solución al problema (semáforos, pipes, y mensajes)

Page 49: comunicacion e interbloqueo

49

9.- Mecanismos de comunicación y sincronización entre procesos5.- Servicios Posix para Comunicación y Sincronización. Tuberías

• Crear una tubería sin nombre– int pipe(int fildes[2]);

• Crear una tuberías con nombre– int mkfifo(char *name, mode_t mode);

• Abrir una tubería con nombre– int open(char *fifo, int flag);

• Cerrar una tubería

Asignatura: Sistemas OperativosTema 3: Com., Sincr. e Interbloqueo

Miguel R. Albizu / Marián D. Fondón EUITIO curso 2009-2010

Página 49

• Cerrar una tubería– int close(int fd);

• Borrar una tubería con nombre– int unlink(char *fifo);

• Leer de una tubería– int read(fildes[0], buffer, n);

• Escribir en una tubería– int write(fildes[1], buffer, n);

Page 50: comunicacion e interbloqueo

50

9.- Mecanismos de comunicación y sincronización entre procesos5.- Servicios Posix para Comunicación y Sincronización. Semáforos

• int sem_init(sem_t *sem, int shared, int val);

– Inicializa un semáforo sin nombre• int sem_destroy(sem_t *sem);

– Destruye un semáforo sin nombre• sem_t *sem_open(char *name, int flag, mode_t mode,

int val);

– Abre (crea) un semáforo con nombre.

Asignatura: Sistemas OperativosTema 3: Com., Sincr. e Interbloqueo

Miguel R. Albizu / Marián D. Fondón EUITIO curso 2009-2010

Página 50

– Abre (crea) un semáforo con nombre.• int sem_close(sem_t *sem);

– Cierra un semáforo con nombre.• int sem_unlink(char *name);

– Borra un semáforo con nombre.• int sem_wait(sem_t *sem);

– Realiza la operación wait sobre un semáforo. • int sem_post(sem_t *sem);

– Realiza la operación signal sobre un semáforo.

Page 51: comunicacion e interbloqueo

51

9.- Mecanismos de comunicación y sincronización entre procesos5.- Servicios Win32 para Comunicación y Sincronización. Tuberías

• Crear una tubería sin nombre– BOOL CreatePipe(PHANDLE phRead, PHANDLE phWrite, LPSECURITY_ATTRIBUTES lpsa, DWORD cbPipe);

• Crear una tubería con nombre– HANDLE CreateNamedPipe (LPCTSTR lpszPipeName, DWORD fdwOpenMode, DWORD fdwPipeMode, DWORD nMaxInstances, DWORD cbOutBuf, DWORD cbInBuf, DWORD dwTimeOut,

Asignatura: Sistemas OperativosTema 3: Com., Sincr. e Interbloqueo

Miguel R. Albizu / Marián D. Fondón EUITIO curso 2009-2010

Página 51

DWORD cbOutBuf, DWORD cbInBuf, DWORD dwTimeOut, LPSECURITY_ATTRIBUTES lpsa);

• Abrir una tubería con nombre– HANDLE CreateFile(LPCSTR lpFileName, DWORD dwDesiredAccess,DWORD dwShareMode, LPVOID lpSecurityAttributes, DWORD CreationDisposition, DWORD dwFlagsAndAttributes, HANDLE hTemplateFile);

Page 52: comunicacion e interbloqueo

52

9.- Mecanismos de comunicación y sincronización entre procesos5.- Servicios Win32 para Comunicación y Sincronización. Tuberías

• Cerrar una tubería con nombre– BOOL CloseHandle (HANDLE hfile);

• Leer de una tubería– BOOL ReadFile (HANDLE hFile, LPVOID lpBuffer, DWORD nBytes, LPDWORD lpnBytes, LPOVERLAPPED lpOverlapped);

• Escribir en una tubería– BOOL WriteFile (HANDLE hFile, LPVOID lpBuffer, DWORD

Asignatura: Sistemas OperativosTema 3: Com., Sincr. e Interbloqueo

Miguel R. Albizu / Marián D. Fondón EUITIO curso 2009-2010

Página 52

– BOOL WriteFile (HANDLE hFile, LPVOID lpBuffer, DWORD nBytes, LPDWORD lpnBytes, LPOVERLAPPED lpOverlapped);

Page 53: comunicacion e interbloqueo

53

9.- Mecanismos de comunicación y sincronización entre procesos5.- Servicios Win32 para Comunicación y Sincronización. Semáforos

• Crear un semáforo– HANDLE CreateSemaphore(LPSECURITY_ATTRIBUTES lpsa,

LONG cSemInitial, LONG cSemMax, LPCTSTR lpszSemName);

• Abrir un semáforo– HANDLE OpenSemaphore(LONG dwDesiredAccess, LONG BinheritHandle, lpszName SemName);

Asignatura: Sistemas OperativosTema 3: Com., Sincr. e Interbloqueo

Miguel R. Albizu / Marián D. Fondón EUITIO curso 2009-2010

Página 53

BinheritHandle, lpszName SemName);• Operación wait

– DWORD WaitForSingleObject(HANDLE hSem, DWORD dwTimeOut);

• Operación signal

– BOOL ReleaseSemaphore(HANDLE hSemaphore,LONG cReleaseCount, LPLONG lpPreviousCount);

Page 54: comunicacion e interbloqueo

54

Contenido

Parte I: Comunicación y sincronización de procesos (Tema 6)

1. Introducción a la programación Concurrente (6.1)

2. Modelos de Comunicación y Sincronización (6.2)

3. Mecanismos de sincronización y comunicación (6.3, 6.4 )

4. Comu. y sincr. de procesos en POSIX y Windows (6.6 y 6.7)

Parte II: Interbloqueo

1. Introducción (7.1 y 7.2)

Asignatura: Sistemas OperativosTema 3: Com., Sincr. e Interbloqueo

Miguel R. Albizu / Marián D. Fondón EUITIO curso 2009-2010

Página 54

1. Introducción (7.1 y 7.2)

2. Modelo del sistema. (7.3)

3. Condiciones para el interbloqueo. (7.4)

4. Tratamiento del interbloqueo: Prevención (7.5 y 7.7)

5. Tratamiento del interbloqueo: Predicción (7.8)

6. Tratamiento del interbloqueo: Detección y recuperación. (7.6)

7. Aplicación a los Sistemas Operativos (7.9)

Page 55: comunicacion e interbloqueo

55

IntroducciónDefinición de Interbloqueo

Interbloqueo

• Es una anomalía que se produce cuando un proceso se encuentra esperando a un suceso que no puede ocurrir.

• La causa fundamental es el uso exclusivo de recursos compartidos por varios procesos. En el interbloqueo suele haber

Asignatura: Sistemas OperativosTema 3: Com., Sincr. e Interbloqueo

Miguel R. Albizu / Marián D. Fondón EUITIO curso 2009-2010

Página 55

compartidos por varios procesos. En el interbloqueo suele haber implicados conjuntos de procesos.

• No hay que confundirlo con inanición o aplazamiento indefinido. Este problema se da por una mala política de asignación de recursos.

Page 56: comunicacion e interbloqueo

56

IntroducciónEjemplos de Interbloqueo

De un solo proceso

1. El proceso espera por un evento que no va a ocurrir. Por ejemplo, dormir hasta que sean las 12.00 del 1 de enero de 2000.

De un dos procesos

Proceso 1 Proceso 2

Asignatura: Sistemas OperativosTema 3: Com., Sincr. e Interbloqueo

Miguel R. Albizu / Marián D. Fondón EUITIO curso 2009-2010

Página 56

Proceso 1

Solicitar Cinta

Solicitar Impresora

USAR

Liberar Impresora

Liberar Cinta

Proceso 2

Solicitar Impresora

Solicitar Cinta

USAR

Liberar Cinta

Liberar Impresora

Page 57: comunicacion e interbloqueo

57

IntroducciónEjemplos de Interbloqueo

De un dos procesos. Sea un sistema con 200 KB de memoria

Proceso 1

Solicitar 80 KB

Solicitar 60 KB

Proceso 2

Solicitar 70 KB

Solicitar 80 KB

Asignatura: Sistemas OperativosTema 3: Com., Sincr. e Interbloqueo

Miguel R. Albizu / Marián D. Fondón EUITIO curso 2009-2010

Página 57

Solicitar 60 KB

Liberar 140 KB

Solicitar 80 KB

Liberar 150 KB

• Los procesos pueden quedar bloqueados si se atiende la primera petición de cada proceso.

Page 58: comunicacion e interbloqueo

58

IntroducciónTipos de recursos

• Los interbloqueos se producen al compartir recursos por parte de los procesos. Los recursos pueden ser tanto físicos (Hardware) como lógicos. Los recursos podemos clasificarlos en:

– Reutilizables o consumibles: los recursos reutilizables siguen existiendo después de haber sido utilizados. Los consumibles desaparecen después de que un proceso los utilice.

Asignatura: Sistemas OperativosTema 3: Com., Sincr. e Interbloqueo

Miguel R. Albizu / Marián D. Fondón EUITIO curso 2009-2010

Página 58

desaparecen después de que un proceso los utilice.

– Compartibles o de uso exclusivo: los primeros pueden ser utilizados a la vez por varios procesos, mientras que los segundos no.

– Con un único ejemplar o con varios: De un recurso puede haber una sola copia o varias.

– Apropiables (o expropiables) o no apropiables. Los primeros no se les puede quitar al proceso que los tiene asignados.

Page 59: comunicacion e interbloqueo

59

IntroducciónTipos de recursos

Van a ser problemáticos los recursos reutilizables de uso exclusivo no

apropiables.

Los recursos compartibles no presentan problemas de interbloqueo.

Los recursos apropiables no presentan problemas de interbloqueo.

Los recursos consumibles pueden dar problemas de interbloqueo, pero

Asignatura: Sistemas OperativosTema 3: Com., Sincr. e Interbloqueo

Miguel R. Albizu / Marián D. Fondón EUITIO curso 2009-2010

Página 59

Los recursos consumibles pueden dar problemas de interbloqueo, pero son específicos y no los vamos a estudiar.

Page 60: comunicacion e interbloqueo

60

Tabla de contenidos

Parte II: Interbloqueo

• Introducción (7.1 y 7.2)

• Modelo del sistema. (7.3)

• Condiciones para el interbloqueo. (7.4)

• Tratamiento del interbloqueo: Prevención (7.5 y 7.7)

• Tratamiento del interbloqueo: Predicción (7.8)

• Tratamiento del interbloqueo: Detección y recuperación. (7.6)

Asignatura: Sistemas OperativosTema 3: Com., Sincr. e Interbloqueo

Miguel R. Albizu / Marián D. Fondón EUITIO curso 2009-2010

Página 60

• Tratamiento del interbloqueo: Detección y recuperación. (7.6)

• Aplicación a los Sistemas Operativos (7.9)

Page 61: comunicacion e interbloqueo

61

2.- Modelo del SistemaIntroducción

• Un modelo de un sistema informático es una representación del mismo, donde sólo aparece aquello que es necesario para estudiar el problema de que se trate.

• En este caso, nos interesa un modelo que se centre en aquellos aspectos que influyen en el interbloqueo, para poder así estudiarlo en detalle.

Asignatura: Sistemas OperativosTema 3: Com., Sincr. e Interbloqueo

Miguel R. Albizu / Marián D. Fondón EUITIO curso 2009-2010

Página 61

• El resto de elementos del sistema no serán representados, al carecer de interés.

Page 62: comunicacion e interbloqueo

62

2.- Modelo del SistemaIntroducción

Los elementos que contendrá nuestro modelo del sistema será:

• Un conjunto de procesos.

• Un conjunto de recursos reutilizables de uso exclusivo no apropiables.

• Un conjunto de relaciones (proceso, recurso) que indique qué recursos tiene asignado cada proceso.

Asignatura: Sistemas OperativosTema 3: Com., Sincr. e Interbloqueo

Miguel R. Albizu / Marián D. Fondón EUITIO curso 2009-2010

Página 62

• Un conjunto de relaciones (proceso, recurso) que indique qué solicitudes sobre recursos tiene cada proceso pendientes de ser satisfechas por el sistema.

El número de recursos asignados de cada recurso debe de ser menor o igual que el número de unidades existente de ese tipo.

La suma de las unidades asignadas y las solicitadas para un recurso concreto por parte de cada proceso debe ser menor o igual que el número de unidades existentes de ese tipo.

Page 63: comunicacion e interbloqueo

63

2.- Modelo del SistemaIntroducción

Finalmente, se va disponer de dos primitivas abstractas que podrán utilizar todos los procesos cuando requieran más recursos o cuando quieran liberarlos:

• Solicitud: S(R1[U1], R2[U2], …, Rn[Un])

•Liberación: L(R1[U1], R2[U2], …, Rn[Un])

Asignatura: Sistemas OperativosTema 3: Com., Sincr. e Interbloqueo

Miguel R. Albizu / Marián D. Fondón EUITIO curso 2009-2010

Página 63

•Liberación: L(R1[U1], R2[U2], …, Rn[Un])

Las dos primitivas se suponen bloqueantes y del tipo todo-nada (el proceso se duerme hasta que se puedan atender todas sus solicitudes y hasta que eso no ocurra no se le asigna ninguno de los recursos solicitados).

Page 64: comunicacion e interbloqueo

64

2.- Modelo del SistemaGrafo de asignación de recursos

• Se utiliza un grafo con dos tipos de nodos:

– Uno que representa a los procesos (P). Se usarán círculos para su representación gráfica.

– Uno que representa a los recursos (R). Se usarán cuadrados para su representación gráfica. Cada recurso tendrá asociado un valor que representa el número de unidades de ese recurso que hay (se dibujará con tantos círculos dentro

Asignatura: Sistemas OperativosTema 3: Com., Sincr. e Interbloqueo

Miguel R. Albizu / Marián D. Fondón EUITIO curso 2009-2010

Página 64

número de unidades de ese recurso que hay (se dibujará con tantos círculos dentro del cuadrado como unidades haya).

• El grafo tendrá también dos tipos de aristas:

– (Ri, Pj), indica que el proceso j tiene asignado una unidad del recurso i.

– (Pi, Rj), indica que el proceso i está esperando la asignación de una unidad del recurso j.

Page 65: comunicacion e interbloqueo

65

2.- Modelo del SistemaRepresentación matricial

• Se utiliza un conjunto de matrices para representar el grafo anteriormente descrito.

• Se utilizan, al menos, tres matrices (p=número de procesos; r=número de recursos):

• A: Matriz de asignación (p x r). A[i,j]=unidades del recurso j asignadas al proceso i

• S: Matriz de solicitud (p x r). S[i,j]=unidades del recurso j por las que está esperando el proceso i.

Asignatura: Sistemas OperativosTema 3: Com., Sincr. e Interbloqueo

Miguel R. Albizu / Marián D. Fondón EUITIO curso 2009-2010

Página 65

esperando el proceso i.

• E: Recursos existentes (r). R[j]=unidades del recurso j que hay en el sistema

• Con este tipo de representación pueden formularse matemáticamente las restricciones antes vistas.

• Puede utilizarse esta representación para implementar los algoritmos que se verán posteriormente.

Page 66: comunicacion e interbloqueo

66

Tabla de contenidos

Parte II: Interbloqueo

• Introducción (7.1 y 7.2)

• Modelo del sistema. (7.3)

• Condiciones para el interbloqueo. (7.4)

• Tratamiento del interbloqueo: Prevención (7.5 y 7.7)

• Tratamiento del interbloqueo: Predicción (7.8)

• Tratamiento del interbloqueo: Detección y recuperación. (7.6)

Asignatura: Sistemas OperativosTema 3: Com., Sincr. e Interbloqueo

Miguel R. Albizu / Marián D. Fondón EUITIO curso 2009-2010

Página 66

• Tratamiento del interbloqueo: Detección y recuperación. (7.6)

• Aplicación a los Sistemas Operativos (7.9)

Page 67: comunicacion e interbloqueo

67

3 Condiciones para el interbloqueo

Existen 4 condiciones necesarias para que exista interbloqueo

1. Exclusión mutua

Los procesos exigen un control exclusivo de los recursos2. Retención y espera

Los procesos retienen recursos ya asignados mientras esperan por recursos adicionales

3. No apropiación

Asignatura: Sistemas OperativosTema 3: Com., Sincr. e Interbloqueo

Miguel R. Albizu / Marián D. Fondón EUITIO curso 2009-2010

Página 67

3. No apropiación

Los recursos no pueden arrebatarse a los procesos que ya los tienen asignados hasta que acaben de usarlos

4. Espera circular

Existe una cadena circular de procesos en la que cada proceso tiene uno o más recursos que necesita el siguiente proceso de la cadena

Page 68: comunicacion e interbloqueo

68

Tabla de contenidos

Parte II: Interbloqueo

• Introducción (7.1 y 7.2)

• Modelo del sistema. (7.3)

• Condiciones para el interbloqueo. (7.4)

• Tratamiento del interbloqueo: Prevención (7.5 y 7.7)

• Tratamiento del interbloqueo: Predicción (7.8)

• Tratamiento del interbloqueo: Detección y recuperación. (7.6)

Asignatura: Sistemas OperativosTema 3: Com., Sincr. e Interbloqueo

Miguel R. Albizu / Marián D. Fondón EUITIO curso 2009-2010

Página 68

• Tratamiento del interbloqueo: Detección y recuperación. (7.6)

• Aplicación a los Sistemas Operativos (7.9)

Page 69: comunicacion e interbloqueo

69

4. Tratamiento del interbloqueo

1. Prevención

Se elimina cualquier posibilidad de que ocurra2. Evitación (predicción)

El bloqueo se evita cuando está a punto de suceder3. Detección

Se permite el bloqueo y se detecta

Asignatura: Sistemas OperativosTema 3: Com., Sincr. e Interbloqueo

Miguel R. Albizu / Marián D. Fondón EUITIO curso 2009-2010

Página 69

Se permite el bloqueo y se detecta4. Recuperación

Se permite el bloqueo, se detecta y se recupera automáticamente

Page 70: comunicacion e interbloqueo

70

4. Tratamiento del interbloqueo: PrevenciónIntroducción

• Para asegurarse de que nunca existirá interbloqueo basta con asegurarse de que no se cumpla alguna de las condiciones para el interbloqueo

• Existen 3 estrategias para ello– Negación de la retención y espera– Negación de la no apropiación

Asignatura: Sistemas OperativosTema 3: Com., Sincr. e Interbloqueo

Miguel R. Albizu / Marián D. Fondón EUITIO curso 2009-2010

Página 70

– Negación de la no apropiación– Negación de la espera circular

Page 71: comunicacion e interbloqueo

71

4. Tratamiento del interbloqueo: Prevención Negación de la retención y espera

• Evitar la espera de recursos adicionales

• Para ello el proceso deberá pedir todos los recursos a la vez. O los tiene todos o no tiene ninguno.

• Inconvenientes– Infrautilización de recursos

Asignatura: Sistemas OperativosTema 3: Com., Sincr. e Interbloqueo

Miguel R. Albizu / Marián D. Fondón EUITIO curso 2009-2010

Página 71

Page 72: comunicacion e interbloqueo

72

4. Tratamiento del interbloqueo: Prevención Negación de la no apropiación

• Se permite arrebatar recursos a los procesos

• Si un proceso que tiene recursos pide un recurso y no se le concede porque está siendo utilizado por otro, entonces debe liberar los recursos retenidos y pedirlos después junto a los nuevos

• Inconvenientes– Pérdida de trabajo realizado

Asignatura: Sistemas OperativosTema 3: Com., Sincr. e Interbloqueo

Miguel R. Albizu / Marián D. Fondón EUITIO curso 2009-2010

Página 72

– Pérdida de trabajo realizado– Posibilidad de aplazamiento indefinido

Page 73: comunicacion e interbloqueo

73

4. Tratamiento del interbloqueo: Prevención Negación de la espera circular

• Evitar que se produzcan esperas circulares

• Para ello– Se numeran los recursos– Se obliga a que los procesos pidan los recursos en orden lineal.

Por tanto si un proceso necesita 3 recursos deberá pedirlos por orden según la numeración de los mismos.

Asignatura: Sistemas OperativosTema 3: Com., Sincr. e Interbloqueo

Miguel R. Albizu / Marián D. Fondón EUITIO curso 2009-2010

Página 73

orden según la numeración de los mismos. • Inconvenientes

– Se cogen recursos antes de que se necesiten. Infrautilización

Page 74: comunicacion e interbloqueo

74

Tabla de contenidos

Parte II: Interbloqueo

• Introducción (7.1 y 7.2)

• Modelo del sistema. (7.3)

• Condiciones para el interbloqueo. (7.4)

• Tratamiento del interbloqueo: Prevención (7.5 y 7.7)

• Tratamiento del interbloqueo: Predicción (7.8)

• Tratamiento del interbloqueo: Detección y recuperación. (7.6)

Asignatura: Sistemas OperativosTema 3: Com., Sincr. e Interbloqueo

Miguel R. Albizu / Marián D. Fondón EUITIO curso 2009-2010

Página 74

• Tratamiento del interbloqueo: Detección y recuperación. (7.6)

• Aplicación a los Sistemas Operativos (7.9)

Page 75: comunicacion e interbloqueo

75

5. Evitación del interbloqueo

• No se impide la posibilidad de que se den las 4 condiciones para el interbloqueo

• Se evita el interbloqueo con una asignación de recursos adecuada

• Uso del algoritmo del Banquero para la evitaciónAlgoritmo del banquero (eqivalencias)

– Banquero Sistema Operativo

Asignatura: Sistemas OperativosTema 3: Com., Sincr. e Interbloqueo

Miguel R. Albizu / Marián D. Fondón EUITIO curso 2009-2010

Página 75

– Banquero Sistema Operativo– Capital Recursos– Clientes Procesos– Préstamo Asignación de recursos– Devolución Liberación de recursos– Bancarrota Interbloqueo

Page 76: comunicacion e interbloqueo

76

5. Evitación del interbloqueo

• Los procesos que consiguen todos los recursos que necesitan podrán finalizar y por tanto devolver todos los recursos que pidieron

• Los procesos que se quedan bloqueados a la espera de recursos no devolverán nunca los recursos asignados.

• Modo de trabajo (algoritmo)– El banquero sólo presta dinero si está seguro de que va a poder

Asignatura: Sistemas OperativosTema 3: Com., Sincr. e Interbloqueo

Miguel R. Albizu / Marián D. Fondón EUITIO curso 2009-2010

Página 76

– El banquero sólo presta dinero si está seguro de que va a poder recuperar la totalidad de su capital.

– Cuando un proceso pide un recurso el sistema sólo se lo concede si su asignación conduce a un Estado Seguro

• Estado seguro– El sistema se encuentra en un estado seguro si se sabe que todos

los procesos pueden terminar en un tiempo finito (pueden satisfacer todas sus peticiones).

Page 77: comunicacion e interbloqueo

77

5. Evitación del interbloqueo

Algoritmo de comprobación de estado seguro

Repetir hasta que no haya procesos con petición pendiente• Buscar un proceso al que se le puedan asignar todos los recursos

pendientes• Añadir a los recursos libres los prestados a ese proceso y eliminar

procesoSi al final se consigue eliminar todos los procesos el estado es

Asignatura: Sistemas OperativosTema 3: Com., Sincr. e Interbloqueo

Miguel R. Albizu / Marián D. Fondón EUITIO curso 2009-2010

Página 77

Si al final se consigue eliminar todos los procesos el estado es seguro

Inconvenientes• Necesidad de conocer a priori las necesidades de cada proceso

• Sobrecarga

Page 78: comunicacion e interbloqueo

78

Tabla de contenidos

Parte II: Interbloqueo

• Introducción (7.1 y 7.2)

• Modelo del sistema. (7.3)

• Condiciones para el interbloqueo. (7.4)

• Tratamiento del interbloqueo: Prevención (7.5 y 7.7)

• Tratamiento del interbloqueo: Predicción (7.8)

• Tratamiento del interbloqueo: Detección y recuperación. (7.6)

Asignatura: Sistemas OperativosTema 3: Com., Sincr. e Interbloqueo

Miguel R. Albizu / Marián D. Fondón EUITIO curso 2009-2010

Página 78

• Tratamiento del interbloqueo: Detección y recuperación. (7.6)

• Aplicación a los Sistemas Operativos (7.9)

Page 79: comunicacion e interbloqueo

79

6. Detección y recuperación del interbloqueo

• Se comprueba periódicamente la existencia de interbloqueo en el sistema, obteniendo los procesos y recursos implicados

• Para ello se determina si existe espera circular mediante el uso de las gráficas de asignación de recursos

• El mecanismo consiste en intentar reducir las gráficas eliminando las flechas existentes entre procesos y recursos

Asignatura: Sistemas OperativosTema 3: Com., Sincr. e Interbloqueo

Miguel R. Albizu / Marián D. Fondón EUITIO curso 2009-2010

Página 79

flechas existentes entre procesos y recursos• Si una gráfica se puede reducir para todos los procesos

El sistema no presenta interbloqueo• El orden de reducción es indiferente

• Una vez detectado, se avisa al administrador para que tome medidas

Page 80: comunicacion e interbloqueo

80

6. Detección y recuperación del interbloqueo

Una vez detectado el interbloqueo, se intenta recuperar el sistema automáticamente

Para ello es preciso eliminar una de las cuatro condiciones del interbloqueo.

Posibilidades– Matar procesos

Asignatura: Sistemas OperativosTema 3: Com., Sincr. e Interbloqueo

Miguel R. Albizu / Marián D. Fondón EUITIO curso 2009-2010

Página 80

– Matar procesos– Suspender procesos

ProblemasDecidir qué proceso matar o suspender (prioridad, arbitrario, etc)Pérdida de trabajo realizadoNecesidad de puntos de verificación/reinicio (en suspensión)

Page 81: comunicacion e interbloqueo

81

Tabla de contenidos

Parte II: Interbloqueo

• Introducción (7.1 y 7.2)

• Modelo del sistema. (7.3)

• Condiciones para el interbloqueo. (7.4)

• Tratamiento del interbloqueo: Prevención (7.5 y 7.7)

• Tratamiento del interbloqueo: Predicción (7.8)

• Tratamiento del interbloqueo: Detección y recuperación. (7.6)

Asignatura: Sistemas OperativosTema 3: Com., Sincr. e Interbloqueo

Miguel R. Albizu / Marián D. Fondón EUITIO curso 2009-2010

Página 81

• Tratamiento del interbloqueo: Detección y recuperación. (7.6)

• Aplicación a los Sistemas Operativos (7.9)

Page 82: comunicacion e interbloqueo

82

7. Aplicación a los Sistemas Operativos

• A la hora de considerar el alcance del problema del interbloqueo en los Sistemas Operativos, hay que considerar dos tipos de recursos:– Los internos del Sistema, que serán utilizados desde el código del

propio Sistema Operativo.– Los recursos que usan las aplicaciones del usuario, desde el

código de éstas.

Asignatura: Sistemas OperativosTema 3: Com., Sincr. e Interbloqueo

Miguel R. Albizu / Marián D. Fondón EUITIO curso 2009-2010

Página 82

código de éstas.• En el primer caso es muy problemático, dado que puede afectar a la

estabilidad de todo el sistema. Puede ser complicado incluso la recuperación del mismo.

• El segundo sólo es problemático para las aplicaciones que usen esos recursos. Es más “fácil” de solventar

Page 83: comunicacion e interbloqueo

83

7. Aplicación a los Sistemas Operativos

• La mayor parte de los sistemas operativos actuales no tratan el problema del interbloqueo en general, por el coste que supone y la baja probabilidad de que se produzca.

• Sólo suelen tratar de prevenir el interbloqueo para recursos internos del sistema mediante una programación adecuada.

Asignatura: Sistemas OperativosTema 3: Com., Sincr. e Interbloqueo

Miguel R. Albizu / Marián D. Fondón EUITIO curso 2009-2010

Página 83

Page 84: comunicacion e interbloqueo

84

Ejemplos

Sea un sistema con 5 procesos y 3 tipos de recursos. La situación actual del sistema es la que se muestra a continuación. Está en un estado seguro?

A B C

p1 0 1 0

A B C

p1 7 5 3

Asignación Máximo Disponibles

A B C

Asignatura: Sistemas OperativosTema 3: Com., Sincr. e Interbloqueo

Miguel R. Albizu / Marián D. Fondón EUITIO curso 2009-2010

Página 84

p1 0 1 0

p2 2 0 0

p3 3 0 2

p4 2 1 1

p5 0 0 2

p1 7 5 3

p2 3 2 2

p3 9 0 2

p4 2 2 2

p5 4 3 3

3 3 2

Page 85: comunicacion e interbloqueo

85

Ejemplos

1.- Calculamos las necesidades pendientes, (Máximo – Asignación)

A B C

p1 0 1 0

p2 2 0 0

A B C

p1 7 5 3

p2 3 2 2

Asignación Máximo Pendientes Disponibles

A B C

3 3 2

A B C

p1 7 4 3

p2 1 2 2

Asignatura: Sistemas OperativosTema 3: Com., Sincr. e Interbloqueo

Miguel R. Albizu / Marián D. Fondón EUITIO curso 2009-2010

Página 85

p2 2 0 0

p3 3 0 2

p4 2 1 1

p5 0 0 2

p2 3 2 2

p3 9 0 2

p4 2 2 2

p5 4 3 3

p2 1 2 2

p3 6 0 0

p4 0 1 1

p5 4 3 1

2.- Buscamos una secuencia segura: <p4, p2, p5, p1, p3>