Вы находитесь на странице: 1из 85

Sistemas Operativos

Tema 3 Comunicacin, Sincronizacin e Interbloqueo


Asignatura: Sistemas Operativos Tema 3: Com., Sincr. e Interbloqueo Miguel R. Albizu / Marin D. Fondn EUITIO curso 2009-2010 Pgina 1

Qu aprenderemos en este tema?

Objetivo general El alumno ser capaz de Identificar los problemas que plantea la existencia de varios procesos ejecutndose a la vez en el sistema, compartiendo recursos, y las herramientas que se utilizan para resolver esos problemas. Analizar el problema que supone la aparicin de interbloqueos en un sistema informtico, as como las tcnicas apropiadas para tratarlo.

Asignatura: Sistemas Operativos Tema 3: Com., Sincr. e Interbloqueo

Miguel R. Albizu / Marin D. Fondn EUITIO curso 2009-2010

Pgina 2

Qu aprenderemos en este tema?


Objetivos especficos (comunicacin y sincronizacin de procesos) Concepto base
Comprender el concepto de procesos concucurrentes.. Distinguir qu tipos de procesos pueden provocar problemas durante su ejecucin concurrente.. Conocer qu problemas tipo podemos encontrarnos al trabajar con procesos concurrentes. Conocer qu mecanismos existen para la comunicacin y sincronizacin de procesos y cmo funcionan. Ser capaces de aplicar los mecanismos IPC habituales a la resolucin de los problemas tipo de programacin concurrente.
Miguel R. Albizu / Marin D. Fondn EUITIO curso 2009-2010 Pgina 3

Modelos de procesos concurrentes

Mecanismos IPC

Asignatura: Sistemas Operativos Tema 3: Com., Sincr. e Interbloqueo

Qu aprenderemos en este tema?


Objetivos especficos (interbloqueo) Concepto base
Comprender el concepto de interbloqueo. Distinguir qu tipos de recursos pueden provocar problemas de interbloqueo. Ser capaces de crear un modelo de sistema que pueda ser usado para representar el estado del mismo, viendo los estados problemticos y cmo solucionarlos. Comprender las distintas tcnicas que existen para tratar el interbloqueo (Prevencin, prediccin, deteccin) Comprender las ventajas y desventajas de cada una de ellas.
Miguel R. Albizu / Marin D. Fondn EUITIO curso 2009-2010 Pgina 4

Representacin del sistema

Tratamiento del interbloqueo


Asignatura: Sistemas Operativos Tema 3: Com., Sincr. e Interbloqueo

Contenido
Parte I: Comunicacin y sincronizacin de procesos (Tema 6) 1. Introduccin a la programacin Concurrente (6.1) 2. Modelos de Comunicacin y Sincronizacin (6.2) 3. Mecanismos de sincronizacin y comunicacin (6.3, 6.4 ) 4. Comu. y sincr. de procesos en POSIX y Windows (6.6 y 6.7) Parte II: Interbloqueo 1. Introduccin (7.1 y 7.2) 2. Modelo del sistema. (7.3) 3. Condiciones para el interbloqueo. (7.4) 4. Tratamiento del interbloqueo: Prevencin (7.5 y 7.7) 5. Tratamiento del interbloqueo: Prediccin (7.8) 6. Tratamiento del interbloqueo: Deteccin y recuperacin. (7.6) 7. Aplicacin a los Sistemas Operativos (7.9)
Asignatura: Sistemas Operativos Tema 3: Com., Sincr. e Interbloqueo Miguel R. Albizu / Marin D. Fondn EUITIO curso 2009-2010 Pgina 5

Parte I: Comunicacin y sincronizacin entre procesos


1.- Introduccin a la programacin Concurrente

Procesos (o hilos) concurrentes Aquellos que existen simultneamente en el sistema y pueden tener que compartir recursos. Concurrencia real (Paralelismo) La ejecucin de los procesos se realiza en diferentes procesadores Modelos de Multiprocesador (una mquina con varios procesadores) Multicomputadora (mltiples mquinas conectadas en red) Concurrencia aparente La simultaneidad se simula. Los procesos intercalan su ejecucin en el tiempo. Modelo con un nico procesador
Asignatura: Sistemas Operativos Tema 3: Com., Sincr. e Interbloqueo Miguel R. Albizu / Marin D. Fondn EUITIO curso 2009-2010 Pgina 6

Parte I: Comunicacin y sincronizacin entre procesos


1.- Introduccin a la programacin Concurrente

Necesidad de la concurencia Acelera clculo.


Dividir la tarea en procesos paralelos: (a+b)*(a-b) 3 procesos

Posibilita el uso interactivo.


Mltiples usuarios que hacen consultas. (ej. a base de datos) Se genera un proceso para cada uno

Se aprovechan mejor los recursos de la mquina.


Ej. CPU

Asignatura: Sistemas Operativos Tema 3: Com., Sincr. e Interbloqueo

Miguel R. Albizu / Marin D. Fondn EUITIO curso 2009-2010

Pgina 7

Parte I: Comunicacin y sincronizacin entre procesos


1.- Introduccin a la programacin Concurrente

Tipos de Procesos Concurrentes Independientes Se ejecutan sin requerir la ayuda o cooperacin de otros procesos En general la mayor parte de los procesos se ejecutan independientemente de ningn otro. Cooperantes Diseados para trabajar conjuntamente en alguna actividad. Deben ser capaces de comunicarse e interactuar entre ellos

Asignatura: Sistemas Operativos Tema 3: Com., Sincr. e Interbloqueo

Miguel R. Albizu / Marin D. Fondn EUITIO curso 2009-2010

Pgina 8

Parte I: Comunicacin y sincronizacin entre procesos


1.- Introduccin a la programacin Concurrente

Interacciones entre procesos (de cualquier tipo) Comparten o compiten por el acceso a un recurso fsico o lgico Ej. Dos procesos independientes pueden competir por el acceso a disco Ej. Dos procesos desean modificar el contenido de un registro de la base de datos Se comunican o sincronizan para alcanzar un objetivo comn 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 Inclusin de servicios que permitan sincronizacin y comunicacin (explcita).
Asignatura: Sistemas Operativos Tema 3: Com., Sincr. e Interbloqueo Miguel R. Albizu / Marin D. Fondn EUITIO curso 2009-2010 Pgina 9

Parte I: Comunicacin y sincronizacin entre procesos


1.- Introduccin a la programacin Concurrente

Problemas que presenta la concurrencia Condiciones de carrera: El resultado final de la ejecucin de varios procesos concurrentes depende de la secuencia de ejecucin. Interbloqueo: bloqueo permanente de varios procesos que compiten por recursos o se sincronizan entre s.

Asignatura: Sistemas Operativos Tema 3: Com., Sincr. e Interbloqueo

Miguel R. Albizu / Marin D. Fondn EUITIO curso 2009-2010

Pgina 10

10

Contenido Parte I: Comunicacin y sincronizacin de procesos (Tema 6)

1. Introduccin a la programacin Concurrente (6.1)


2. Modelos de Comunicacin y Sincronizacin (6.2)

3. Mecanismos de sincronizacin y comunicacin (6.3, 6.4 ) 4. Aspectos de diseo (6.5) 5. Comu. y sincr. de procesos en POSIX y Windows (6.6 y 6.7)

Asignatura: Sistemas Operativos Tema 3: Com., Sincr. e Interbloqueo

Miguel R. Albizu / Marin D. Fondn EUITIO curso 2009-2010

Pgina 11

11

Parte I: Comunicacin y sincronizacin entre procesos 2.- Problemas clsicos: El problema de la seccin crtica
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)); close(fd); return; J. Carretero, F. Garca, P. de Miguel, F. Prez } Si dos procesos ejecutan concurrentemente este cdigo se puede perder algn ingreso. Solucin: secciones crticas
Asignatura: Sistemas Operativos Tema 3: Com., Sincr. e Interbloqueo Miguel R. Albizu / Marin D. Fondn EUITIO curso 2009-2010 Pgina 12

12

Parte I: Comunicacin y sincronizacin entre procesos


2.- Problemas clsicos: Problema de la Seccin Crtica. Definicin

Los procesos concurrentes suelen compartir recursos (perifricos, 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)

Seccin crtica Segmento de cdigo de un programa que accede a recursos compartidos con otros procesos, siendo imprescindible un acceso exclusivo a dichos recursos.

Asignatura: Sistemas Operativos Tema 3: Com., Sincr. e Interbloqueo

Miguel R. Albizu / Marin D. Fondn EUITIO curso 2009-2010

Pgina 13

13

Parte II: Comunicacin y sincronizacin entre procesos


2.- Problemas clsicos: Problema de la Seccin Crtica

Mecanismo de proteccin de una seccin crtica (Condiciones de carrera) Cada proceso debe solicitar permiso a su seccin crtica Cuando un proceso sale de su seccin crtica debe indicarlo Estructura general del mecanismo Entrada a la seccin crtica Cdigo de la seccin crtica Salida de la seccin crtica

Asignatura: Sistemas Operativos Tema 3: Com., Sincr. e Interbloqueo

Miguel R. Albizu / Marin D. Fondn EUITIO curso 2009-2010

Pgina 14

14

Parte II: Comunicacin y sincronizacin entre procesos


2.- Problema de la Seccin Crtica. Solucin al ejemplo

void ingresar(char *cuenta, int cantidad) { int saldo, fd; fd = open(cuenta, O_RDWR); <Entrada en la seccin crtica> read(fd, &saldo, sizeof(int)); saldo = saldo + cantidad; lseek(fd, 0, SEEK_SET); write(fd, &saldo, sizeof(int)); <Salida de la seccin crtica> close(fd); return; J. Carretero, F. Garca, P. de Miguel, F. Prez
}
Asignatura: Sistemas Operativos Tema 3: Com., Sincr. e Interbloqueo Miguel R. Albizu / Marin D. Fondn EUITIO curso 2009-2010 Pgina 15

15

9.- Mecanismos de comunicacin y sincronizacin entre procesos


2.- Problemas clsicos. Problema del Productor-Consumidor

Proceso Productor
Flujo de datos

Proceso Consumidor

Mecanismo de comunicacin
Asignatura: Sistemas Operativos Tema 3: Com., Sincr. e Interbloqueo Miguel R. Albizu / Marin D. Fondn EUITIO curso 2009-2010 Pgina 16

16

9.- Mecanismos de comunicacin y sincronizacin entre procesos


2.- Problemas clsicos. Problema del Productor-Consumidor

Uno o ms procesos generan ciertos datos (producen) Uno o ms procesos utilizan esos datos (consumen) Ej: cadena de montaje Ej: compilador: el productor genera cdigo ensamblador. El consumidor (ensamblador) transforma ese cdigo en cdigo mquina

Se debe disponer de algn mecanismo de comunicacin y de sincronizacin entre ambos. Se deben enviar datos del productor al consumidor Si se llena el mecanismo el productor deber esperar a que el consumidor consuma
Asignatura: Sistemas Operativos Tema 3: Com., Sincr. e Interbloqueo Miguel R. Albizu / Marin D. Fondn EUITIO curso 2009-2010 Pgina 17

17

9.- Mecanismos de comunicacin y sincronizacin entre procesos


2.- Problemas clsicos. Problema de los lectores-escritores

Lector

Lector

Escritor

Lector

Escritor

Recurso
Asignatura: Sistemas Operativos Tema 3: Com., Sincr. e Interbloqueo Miguel R. Albizu / Marin D. Fondn EUITIO curso 2009-2010 Pgina 18

18

9.- Mecanismos de comunicacin y sincronizacin entre procesos


2.- Problemas clsicos. Problema de los lectores-escritores

Existe un recurso (fichero, registro, etc) que va a ser utilizado por una serie de procesos concurrentes Algunos procesos accedern sin modificarlo (lectores) y otros lo modificarn (escritores) Restricciones Slo se permite que un escritor tenga acceso al recurso al mismo tiempo (no habr ms escritores ni lectores) Se permite que mltiples lectores tengan acceso al recurso simultneamente Es necesario disponer de servicios de sincronizacin que controlen el acceso
Asignatura: Sistemas Operativos Tema 3: Com., Sincr. e Interbloqueo Miguel R. Albizu / Marin D. Fondn EUITIO curso 2009-2010 Pgina 19

19

9.- Mecanismos de comunicacin y sincronizacin entre procesos


2.- Problemas clsicos. Problema del Cliente-Servidor

Computador Peticin Proceso cliente S.O. Respuesta

Computador

Proceso servidor

Asignatura: Sistemas Operativos Tema 3: Com., Sincr. e Interbloqueo

Miguel R. Albizu / Marin D. Fondn EUITIO curso 2009-2010

Pgina 20

20

9.- Mecanismos de comunicacin y sincronizacin entre procesos


2.- Problemas clsicos. Problema del cliente-servidor

En el modelo cliente-servidor dos procesos se comunican para enviar peticin (cliente) y devolver resultados (servidor) El cliente y servidor pueden estar en distintas mquinas (Ej: correo electrnico, transferencia de ficheros, etc) El SO debe ofrecer servicios que permitan comunicacin entre estos procesos Si los procesos estn en la misma mquina Tcnicas de memoria compartida o archivos Si los procesos estn en distintas mquinas Tcnicas de envo de mensajes
Asignatura: Sistemas Operativos Tema 3: Com., Sincr. e Interbloqueo Miguel R. Albizu / Marin D. Fondn EUITIO curso 2009-2010 Pgina 21

21

9.- Mecanismos de comunicacin y sincronizacin entre procesos


2.- Problemas clsicos. Problema de recursos limitados. La cena de los filsofos

Es una metfora para representar a un conjunto de procesos que comparten un conjunto limitado de recursos. En un monasterio hay 5 filsofos 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 que todo filsofo pueda comer en un tiempo finito cuando tenga hambre. que no se producen interbloqueos.

Asignatura: Sistemas Operativos Tema 3: Com., Sincr. e Interbloqueo

Miguel R. Albizu / Marin D. Fondn EUITIO curso 2009-2010

Pgina 22

22

Contenido Parte I: Procesos Parte II: Comunicacin y sincronizacin de procesos (Tema 6)

1. Introduccin a la programacin Concurrente (6.1) 2. Modelos de Comunicacin y Sincronizacin (6.2)


3. Mecanismos de sincronizacin y comunicacin (6.3, 6.4 )

4. Aspectos de diseo (6.5) 5. Comu. y sincr. de procesos en POSIX y Windows (6.6 y 6.7)

Asignatura: Sistemas Operativos Tema 3: Com., Sincr. e Interbloqueo

Miguel R. Albizu / Marin D. Fondn EUITIO curso 2009-2010

Pgina 23

23

9.- Mecanismos de comunicacin y sincronizacin entre procesos


3.- Tipos de Mecanismos

Mecanismos de comunicacin Archivos Tuberas Memoria compartida Paso de Mensajes

Mecanismos de Sincronizacin Tuberas Seales Semforos, mutex Paso de Mensajes

Asignatura: Sistemas Operativos Tema 3: Com., Sincr. e Interbloqueo

Miguel R. Albizu / Marin D. Fondn EUITIO curso 2009-2010

Pgina 24

24

9.- Mecanismos de comunicacin y sincronizacin entre procesos


3.- Tipos de mecanismos: Ficheros

Los ficheros pueden utilizarse para comparticin de datos por parte de varios procesos. Son fciles de usar, al basarse la comunicacin en las operaciones de leer y escribir. Pueden comunicar un nmero potencialmente ilimitado de procesos. Es poco eficiente, al ser operaciones lentas. Se necesita un mecanismo de sincronizacin para ordenar el acceso al fichero.

Asignatura: Sistemas Operativos Tema 3: Com., Sincr. e Interbloqueo

Miguel R. Albizu / Marin D. Fondn EUITIO curso 2009-2010

Pgina 25

25

9.- Mecanismos de comunicacin y sincronizacin entre procesos


3.- Tipos de mecanismos: Tuberas

write

Proceso de Usuario

Proceso de Usuario

read

SO pipe Flujo de datos


Asignatura: Sistemas Operativos Tema 3: Com., Sincr. e Interbloqueo
J. Carretero, F. Garca, P. de Miguel, F. Prez

Miguel R. Albizu / Marin D. Fondn EUITIO curso 2009-2010

Pgina 26

26

9.- Mecanismos de comunicacin y sincronizacin entre procesos


3.- Tipos de mecanismos: Tuberas

Es un mecanismo tanto de comunicacin como de sincronizacin usado


en el estndar Posix Se utilizan las mismas llamadas para leer y escribir que en ficheros. Ambas operaciones son atmicas. Es un fichero FIFO: cuando se lee un dato, se lee el que ms tiempo lleva en la tubera y este dato desaparece de la tubera. Si un proceso intenta leer de una tubera vaca, el S.O. duerme al proceso hasta que haya datos. Si la tubera est llena y se intenta escribir, el proceso se dormir hasta que haya sitio. Puede ser utilizado por mltiples procesos, tanto leyendo o escribiendo.
Asignatura: Sistemas Operativos Tema 3: Com., Sincr. e Interbloqueo Miguel R. Albizu / Marin D. Fondn EUITIO curso 2009-2010 Pgina 27

27

9.- Mecanismos de comunicacin y sincronizacin entre procesos


3.- Tipos de mecanismos: Seales

Envo de seales entre procesos Un proceso puede bloquearse (dormirse) hasta que reciba una seal (llamada pause). Un proceso puede despertar a otro enviando una seal (llamada kill). Problemas del mecanismo Un proceso puede recibir seales aunque no est esperando por ellas (son asncronas). Las seales no se encolan. Si hay una seal pendiente de tratar y se recibe otra del mismo tipo, slo queda constancia de que ha llegado una seal.
Asignatura: Sistemas Operativos Tema 3: Com., Sincr. e Interbloqueo Miguel R. Albizu / Marin D. Fondn EUITIO curso 2009-2010 Pgina 28

28

9.- Mecanismos de comunicacin y sincronizacin entre procesos


3.- Tipos de mecanismos: Semforos

(Dijkstra 1965) Estructura con tres operaciones definidas: Inicializacin, wait, signal. Todas las operaciones son atmicas . Internamente constituido por un valor entero.
wait (s) { s=s-1; if (s<0) dormir(); } signal (s) { s=s+1; if (s<=0) Despertar a un proceso dormido sobre s; }
Asignatura: Sistemas Operativos Tema 3: Com., Sincr. e Interbloqueo Miguel R. Albizu / Marin D. Fondn EUITIO curso 2009-2010 Pgina 29

29

9.- Mecanismos de comunicacin y sincronizacin entre procesos


3.- Tipos de mecanismos: Semforos

Solucin a la seccin crtica wait (s); SECCION CRTICA signal(s);

El valor de s debe ser inicializado a 1. La solucin es vlida para n procesos. No presenta espera activa (los procesos que esperan estn dormidos).

Asignatura: Sistemas Operativos Tema 3: Com., Sincr. e Interbloqueo

Miguel R. Albizu / Marin D. Fondn EUITIO curso 2009-2010

Pgina 30

30

9.- Mecanismos de comunicacin y sincronizacin entre procesos


3.- Tipos de mecanismos: Semforos

Valor del semforo (s) 1 0 -1 -2

P0
wait(s)

P1
wait(s)

P2

wait(s)

desbloquea

-1

signal(s)
desbloquea

signal(s) Ejecutando cdigo de la seccin crtica Proceso bloqueado en el semforo signal(s)

J. Carretero, F. Garca, P. de Miguel, F. Prez Asignatura: Sistemas Operativos Tema 3: Com., Sincr. e Interbloqueo Miguel R. Albizu / Marin D. Fondn EUITIO curso 2009-2010 Pgina 31

31

9.- Mecanismos de comunicacin y sincronizacin entre procesos


3.- Tipos de mecanismos: Semforos
Tabla de procesos
BCP1 BCP2 BCP3 BCP4 BCP5 BCP6 BCP7 BCP8 BCP9 BCP10 BCP11 BCP12 Estado PID 0 Bloq. 7 6 1 Ejec. 11 5 0 8 9

Cola asociada al semforo

(a) Tabla de procesos


BCP1 BCP2 BCP3 BCP4 BCP5 BCP6 BCP7 BCP8 BCP9 BCP10 BCP11 BCP12 Estado PID 0 Bloq. 7 6 1 Bloq. 11 Bloq. 5 0 8 9

Cola asociada al semforo

11
J. Carretero, F. Garca, P. de Miguel, F. Prez

(b)
Asignatura: Sistemas Operativos Tema 3: Com., Sincr. e Interbloqueo Miguel R. Albizu / Marin D. Fondn EUITIO curso 2009-2010 Pgina 32

32

9.- Mecanismos de comunicacin y sincronizacin entre procesos


3.- Tipos de mecanismos: Paso de Mensajes

Para comunicacin entre procesos de distintas mquinas


Los procesos envan y reciben mensajes para comunicarse y sincronizarse. Una implementacin que se utiliza mucho son los Sockets. Los ms utilizados en aplicaciones distribuidas Se utilizan dos operaciones bsicas : send(destino, mensaje) Tipos de comunicacin: Sncrona total (envo y recepcin bloqueante): el emisor se duerme hasta que el receptor recibe el mensaje. El receptor se duerme si el mensaje no ha llegado. Sncrona intermedia (envo no bloqueante y recepcin bloqueante): el emisor no se duerme pero el receptor se bloquea hasta que recibe el mensaje. Asncrona (envo no bloqueante): Nadie espera Asignatura: Sistemas Operativos y recepcinMiguel R. Albizu / Marin D. Fondn Tema 3: Com., Sincr. e Interbloqueo EUITIO curso 2009-2010 receive(origen, mensaje)

Pgina 33

33

9.- Mecanismos de comunicacin y sincronizacin entre procesos


3.- Tipos de mecanismos: Paso de Mensajes Modos de comunicacin 1. Comunicacin directa Se enva el mensaje al proceso 2. Comunicacin indirecta Se enva el mensaje a una estructura de la que el proceso recoge la informacin Colas de mensajes o buzones Puertos

Colas de mensajes. El destino y el origen identifican una entidad intermedia: un buzn. Puede haber mltiples emisores y mltiples receptores. Puertos. Caso especfico de un buzn, donde slo hay un receptor, pudiendo haber mltiples emisores. El puerto suele pertenecer al proceso receptor:
Asignatura: Sistemas Operativos Tema 3: Com., Sincr. e Interbloqueo Miguel R. Albizu / Marin D. Fondn EUITIO curso 2009-2010 Pgina 34

34

9.- Mecanismos de comunicacin y sincronizacin entre procesos


3.- Tipos de mecanismos: Paso de Mensajes

Proceso cliente

send

Proceso cliente Proceso cliente


receive send Puerto

Proceso cliente

mensaje Cola de mensajes

mensaje

Comunicacin con colas de mensajes


Asignatura: Sistemas Operativos Tema 3: Com., Sincr. e Interbloqueo

Comunicacin con puertos


J. Carretero, F. Garca, P. de Miguel, F. Prez

Miguel R. Albizu / Marin D. Fondn EUITIO curso 2009-2010

Pgina 35

35

9.- Mecanismos de comunicacin y sincronizacin entre procesos


3.- Tipos de mecanismos: Memoria Compartida
Proceso A Texto Datos
var1

Proceso B Texto Datos


var2

Pila

Segmento de memoria compartida

Pila
J. Carretero, F. Garca, P. de Miguel, F. Prez

Asignatura: Sistemas Operativos Tema 3: Com., Sincr. e Interbloqueo

Miguel R. Albizu / Marin D. Fondn EUITIO curso 2009-2010

Pgina 36

36

9.- Mecanismos de comunicacin y sincronizacin entre procesos


3.- Tipos de mecanismos: Memoria Compartida

La memoria compartida se utiliza para comunicar (no para sincronizar) procesos dentro de la misma mquina. El sistema operativo permite a varios procesos acceder a la misma zona de memoria a travs de llamadas al sistema especficas de creacin de memoria compartida. 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 intervencin del S.O.

Asignatura: Sistemas Operativos Tema 3: Com., Sincr. e Interbloqueo

Miguel R. Albizu / Marin D. Fondn EUITIO curso 2009-2010

Pgina 37

37

9.- Mecanismos de comunicacin y sincronizacin entre procesos


3.- Tipos de mecanismos: Mutex y Variables condicionales

Mutex Mecanismo de sincronizacin para hilos. Se emplea para obtener acceso exclusivo a una seccin crtica Operaciones bsicas atmicas: Lock (m) seccin crtica Unlock (m) Equivalente a los semforos pero de uso sobre los hilos
Asignatura: Sistemas Operativos Tema 3: Com., Sincr. e Interbloqueo Miguel R. Albizu / Marin D. Fondn EUITIO curso 2009-2010 Pgina 38

38

9.- Mecanismos de comunicacin y sincronizacin entre procesos


3.- Tipos de mecanismos: Variables condicionales

Variables condicionales Variable asociada a un mutex que bloquea un hilo hasta que se produzca una condicin. Operaciones 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 seccin crtica debe bloquearse por otra causa. Con c_wait se bloquea y libera la seccin crtica
Asignatura: Sistemas Operativos Tema 3: Com., Sincr. e Interbloqueo Miguel R. Albizu / Marin D. Fondn EUITIO curso 2009-2010 Pgina 39

39

9.- Mecanismos de comunicacin y sincronizacin entre procesos


4.- Problemas clsicos. Problema del Productor-Consumidor

Productor

Consumidor
Asignatura: Sistemas Operativos Tema 3: Com., Sincr. e Interbloqueo Miguel R. Albizu / Marin D. Fondn EUITIO curso 2009-2010 Pgina 40

40

9.- Mecanismos de comunicacin y sincronizacin entre procesos


4.- Problemas clsicos. Problema del Productor-Consumidor

#define TAMAO_BUFFER 1024 Productor() /* codigo del productor */ { int posicion = 0; /* posicion dentro del buffer */ for(;;) { producir dato wait(huecos); buffer[posicion] = dato; posicion = (posicion + 1) % TAMAO_BUFFER; signal(elementos); } }
Asignatura: Sistemas Operativos Tema 3: Com., Sincr. e Interbloqueo Miguel R. Albizu / Marin D. Fondn EUITIO curso 2009-2010 Pgina 41

41

9.- Mecanismos de comunicacin y sincronizacin entre procesos


4.- Problemas clsicos. Problema del Productor-Consumidor

Consumidor() /* codigo del Consumidor */ { int posicion = 0; for(;;) { wait(elementos); dato = buffer[posicion]; posicion = (posicion + 1) % TAMAO_BUFFER; signal(huecos); /* cosumir dato */ } }
Asignatura: Sistemas Operativos Tema 3: Com., Sincr. e Interbloqueo Miguel R. Albizu / Marin D. Fondn EUITIO curso 2009-2010 Pgina 42

42

9.- Mecanismos de comunicacin y sincronizacin entre procesos


4.- Problemas clsicos. Problema de los lectores-escritores

Lector

Lector

Escritor

Lector

Escritor

Puede haber varios lectores No puede haber varios escritores


Asignatura: Sistemas Operativos Tema 3: Com., Sincr. e Interbloqueo

Recurso
Miguel R. Albizu / Marin D. Fondn EUITIO curso 2009-2010 Pgina 43

43

9.- Mecanismos de comunicacin y sincronizacin entre procesos


4.- Problemas clsicos. 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; sem_init(&mutex, 0, 1); sem_init(&sem_lec, 0, 1); pthread_create(&th1, pthread_create(&th2, pthread_create(&th3, pthread_create(&th4,
Asignatura: Sistemas Operativos Tema 3: Com., Sincr. e Interbloqueo

NULL, NULL, NULL, NULL,

Lector, NULL); Escritor, NULL); Lector, NULL); Escritor, NULL);


Pgina 44

Miguel R. Albizu / Marin D. Fondn EUITIO curso 2009-2010

44

9.- Mecanismos de comunicacin y sincronizacin entre procesos


4.- Problemas clsicos. 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 */ sem_destroy(&mutex); sem_destroy(&sem_lec); exit(0); }
Asignatura: Sistemas Operativos Tema 3: Com., Sincr. e Interbloqueo Miguel R. Albizu / Marin D. Fondn EUITIO curso 2009-2010 Pgina 45

45

9.- Mecanismos de comunicacin y sincronizacin entre procesos


4.- Problemas clsicos. 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 */

sem_wait(&sem_lec); n_lectores = n_lectores - 1; if (n_lectores == 0) sem_post(&mutex); sem_post(&sem_lec); pthread_exit(0); }

Asignatura: Sistemas Operativos Tema 3: Com., Sincr. e Interbloqueo

Miguel R. Albizu / Marin D. Fondn EUITIO curso 2009-2010

Pgina 46

46

9.- Mecanismos de comunicacin y sincronizacin entre procesos


4.- Problemas clsicos. Problema del Cliente-Servidor

/* cdigo del escritor */ void Escritor(void) { */ sem_wait(&mutex); dato = dato + 2; */ sem_post(&mutex); pthread_exit(0); }
Asignatura: Sistemas Operativos Tema 3: Com., Sincr. e Interbloqueo Miguel R. Albizu / Marin D. Fondn EUITIO curso 2009-2010 Pgina 47

/* codigo del escritor

/* modificar el recurso

47

9.- Mecanismos de comunicacin y sincronizacin entre procesos


4.- Problemas clsicos. Problema del Cliente-Servidor

Ejercicio Crea el seudocdigo de un proceso P1 que ejecute R1=(a+b) Crea el seudocdigo de un proceso P2 que ejecute R2=(a-b) y luego R1*R2. Qu mecanismos de comunicacin y de sincronizacin podras usar si son procesos? Y si son hilos? . Crea distintas versiones con diferentes mecanismos de sincronizacin. Indica cuales seran los valores iniciales de estos mecanismos. Ejercicio Divide el cdigo de P2 del ejercicio anterior en dos procesos diferentes, uno que ejecute R2 y otro que haga R1*R2. Plantea diferentes mecanismos de sincronizacin para dar solucin al problema (semforos, pipes, y mensajes)
Asignatura: Sistemas Operativos Tema 3: Com., Sincr. e Interbloqueo Miguel R. Albizu / Marin D. Fondn EUITIO curso 2009-2010 Pgina 48

48

9.- Mecanismos de comunicacin y sincronizacin entre procesos


5.- Servicios Posix para Comunicacin y Sincronizacin. Tuberas

Crear una tubera sin nombre


int pipe(int fildes[2]);

Crear una tuberas con nombre


int mkfifo(char *name, mode_t mode);

Abrir una tubera con nombre


int open(char *fifo, int flag);

Cerrar una tubera


int close(int fd);

Borrar una tubera con nombre


int unlink(char *fifo);

Leer de una tubera


int read(fildes[0], buffer, n);

Escribir en una tubera


int write(fildes[1], buffer, n);
Asignatura: Sistemas Operativos Tema 3: Com., Sincr. e Interbloqueo Miguel R. Albizu / Marin D. Fondn EUITIO curso 2009-2010 Pgina 49

49

9.- Mecanismos de comunicacin y sincronizacin entre procesos


5.- Servicios Posix para Comunicacin y Sincronizacin. Semforos int sem_init(sem_t *sem, int shared, int val); Inicializa un semforo sin nombre int sem_destroy(sem_t *sem); Destruye un semforo sin nombre sem_t *sem_open(char *name, int flag, mode_t mode, int val); Abre (crea) un semforo con nombre. int sem_close(sem_t *sem); Cierra un semforo con nombre. int sem_unlink(char *name); Borra un semforo con nombre. int sem_wait(sem_t *sem); Realiza la operacin wait sobre un semforo. int sem_post(sem_t *sem); Realiza la operacin signal sobre un semforo.
Asignatura: Sistemas Operativos Tema 3: Com., Sincr. e Interbloqueo Miguel R. Albizu / Marin D. Fondn EUITIO curso 2009-2010 Pgina 50

50

9.- Mecanismos de comunicacin y sincronizacin entre procesos


5.- Servicios Win32 para Comunicacin y Sincronizacin. Tuberas Crear una tubera sin nombre BOOL CreatePipe(PHANDLE phRead, PHANDLE phWrite, LPSECURITY_ATTRIBUTES lpsa, DWORD cbPipe); Crear una tubera con nombre HANDLE CreateNamedPipe (LPCTSTR lpszPipeName, DWORD fdwOpenMode, DWORD fdwPipeMode, DWORD nMaxInstances, DWORD cbOutBuf, DWORD cbInBuf, DWORD dwTimeOut, LPSECURITY_ATTRIBUTES lpsa); Abrir una tubera con nombre HANDLE CreateFile(LPCSTR lpFileName, DWORD dwDesiredAccess,DWORD dwShareMode, LPVOID lpSecurityAttributes, DWORD CreationDisposition, DWORD dwFlagsAndAttributes, HANDLE hTemplateFile);

Asignatura: Sistemas Operativos Tema 3: Com., Sincr. e Interbloqueo

Miguel R. Albizu / Marin D. Fondn EUITIO curso 2009-2010

Pgina 51

51

9.- Mecanismos de comunicacin y sincronizacin entre procesos


5.- Servicios Win32 para Comunicacin y Sincronizacin. Tuberas Cerrar una tubera con nombre BOOL CloseHandle (HANDLE hfile); Leer de una tubera BOOL ReadFile (HANDLE hFile, LPVOID lpBuffer, DWORD nBytes, LPDWORD lpnBytes, LPOVERLAPPED lpOverlapped); Escribir en una tubera BOOL WriteFile (HANDLE hFile, LPVOID lpBuffer, DWORD nBytes, LPDWORD lpnBytes, LPOVERLAPPED lpOverlapped);

Asignatura: Sistemas Operativos Tema 3: Com., Sincr. e Interbloqueo

Miguel R. Albizu / Marin D. Fondn EUITIO curso 2009-2010

Pgina 52

52

9.- Mecanismos de comunicacin y sincronizacin entre procesos


5.- Servicios Win32 para Comunicacin y Sincronizacin. Semforos Crear un semforo HANDLE CreateSemaphore(LPSECURITY_ATTRIBUTES lpsa, LONG cSemInitial, LONG cSemMax, LPCTSTR lpszSemName); Abrir un semforo HANDLE OpenSemaphore(LONG dwDesiredAccess, LONG BinheritHandle, lpszName SemName); Operacin wait DWORD WaitForSingleObject(HANDLE hSem, DWORD dwTimeOut); Operacin signal BOOL ReleaseSemaphore(HANDLE hSemaphore, LONG cReleaseCount, LPLONG lpPreviousCount);

Asignatura: Sistemas Operativos Tema 3: Com., Sincr. e Interbloqueo

Miguel R. Albizu / Marin D. Fondn EUITIO curso 2009-2010

Pgina 53

53

Contenido
Parte I: Comunicacin y sincronizacin de procesos (Tema 6) 1. Introduccin a la programacin Concurrente (6.1) 2. Modelos de Comunicacin y Sincronizacin (6.2) 3. Mecanismos de sincronizacin y comunicacin (6.3, 6.4 ) 4. Comu. y sincr. de procesos en POSIX y Windows (6.6 y 6.7) Parte II: Interbloqueo 1. Introduccin (7.1 y 7.2) 2. Modelo del sistema. (7.3) 3. Condiciones para el interbloqueo. (7.4) 4. Tratamiento del interbloqueo: Prevencin (7.5 y 7.7) 5. Tratamiento del interbloqueo: Prediccin (7.8) 6. Tratamiento del interbloqueo: Deteccin y recuperacin. (7.6) 7. Aplicacin a los Sistemas Operativos (7.9)
Asignatura: Sistemas Operativos Tema 3: Com., Sincr. e Interbloqueo Miguel R. Albizu / Marin D. Fondn EUITIO curso 2009-2010 Pgina 54

54

Introduccin
Definicin de Interbloqueo Interbloqueo Es una anomala 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 implicados conjuntos de procesos. No hay que confundirlo con inanicin o aplazamiento indefinido. Este problema se da por una mala poltica de asignacin de recursos.

Asignatura: Sistemas Operativos Tema 3: Com., Sincr. e Interbloqueo

Miguel R. Albizu / Marin D. Fondn EUITIO curso 2009-2010

Pgina 55

55

Introduccin
Ejemplos 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 Solicitar Cinta Solicitar Impresora USAR Liberar Impresora Liberar Cinta
Asignatura: Sistemas Operativos Tema 3: Com., Sincr. e Interbloqueo

Proceso 2 Solicitar Impresora Solicitar Cinta USAR Liberar Cinta Liberar Impresora
Miguel R. Albizu / Marin D. Fondn EUITIO curso 2009-2010 Pgina 56

56

Introduccin
Ejemplos de Interbloqueo De un dos procesos. Sea un sistema con 200 KB de memoria
Proceso 1 Solicitar 80 KB Solicitar 60 KB Liberar 140 KB Solicitar 80 KB Liberar 150 KB Proceso 2 Solicitar 70 KB

Los procesos pueden quedar bloqueados si se atiende la primera peticin de cada proceso.
Asignatura: Sistemas Operativos Tema 3: Com., Sincr. e Interbloqueo Miguel R. Albizu / Marin D. Fondn EUITIO curso 2009-2010 Pgina 57

57

Introduccin
Tipos de recursos Los interbloqueos se producen al compartir recursos por parte de los procesos. Los recursos pueden ser tanto fsicos (Hardware) como lgicos. Los recursos podemos clasificarlos en: Reutilizables o consumibles: los recursos reutilizables siguen existiendo despus de haber sido utilizados. Los consumibles desaparecen despus 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.
Asignatura: Sistemas Operativos Tema 3: Com., Sincr. e Interbloqueo Miguel R. Albizu / Marin D. Fondn EUITIO curso 2009-2010 Pgina 58

58

Introduccin
Tipos de recursos Van a ser problemticos 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 son especficos y no los vamos a estudiar.

Asignatura: Sistemas Operativos Tema 3: Com., Sincr. e Interbloqueo

Miguel R. Albizu / Marin D. Fondn EUITIO curso 2009-2010

Pgina 59

59

Tabla de contenidos
Parte II: Interbloqueo Introduccin (7.1 y 7.2) Modelo del sistema. (7.3) Condiciones para el interbloqueo. (7.4) Tratamiento del interbloqueo: Prevencin (7.5 y 7.7) Tratamiento del interbloqueo: Prediccin (7.8) Tratamiento del interbloqueo: Deteccin y recuperacin. (7.6) Aplicacin a los Sistemas Operativos (7.9)

Asignatura: Sistemas Operativos Tema 3: Com., Sincr. e Interbloqueo

Miguel R. Albizu / Marin D. Fondn EUITIO curso 2009-2010

Pgina 60

60

2.- Modelo del Sistema


Introduccin Un modelo de un sistema informtico es una representacin del mismo, donde slo 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. El resto de elementos del sistema no sern representados, al carecer de inters.

Asignatura: Sistemas Operativos Tema 3: Com., Sincr. e Interbloqueo

Miguel R. Albizu / Marin D. Fondn EUITIO curso 2009-2010

Pgina 61

61

2.- Modelo del Sistema


Introduccin
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. Un conjunto de relaciones (proceso, recurso) que indique qu solicitudes sobre recursos tiene cada proceso pendientes de ser satisfechas por el sistema. El nmero de recursos asignados de cada recurso debe de ser menor o igual que el nmero 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 nmero de unidades existentes de ese tipo.
Asignatura: Sistemas Operativos Tema 3: Com., Sincr. e Interbloqueo Miguel R. Albizu / Marin D. Fondn EUITIO curso 2009-2010 Pgina 62

62

2.- Modelo del Sistema


Introduccin Finalmente, se va disponer de dos primitivas abstractas que podrn utilizar todos los procesos cuando requieran ms recursos o cuando quieran liberarlos: Solicitud: S(R1[U1], R2[U2], , Rn[Un]) Liberacin: 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).
Asignatura: Sistemas Operativos Tema 3: Com., Sincr. e Interbloqueo Miguel R. Albizu / Marin D. Fondn EUITIO curso 2009-2010 Pgina 63

63

2.- Modelo del Sistema


Grafo de asignacin de recursos
Se utiliza un grafo con dos tipos de nodos: Uno que representa a los procesos (P). Se usarn crculos para su representacin grfica. Uno que representa a los recursos (R). Se usarn cuadrados para su representacin grfica. Cada recurso tendr asociado un valor que representa el nmero de unidades de ese recurso que hay (se dibujar con tantos crculos dentro del cuadrado como unidades haya). El grafo tendr tambin 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 asignacin de una unidad del recurso j.

Asignatura: Sistemas Operativos Tema 3: Com., Sincr. e Interbloqueo

Miguel R. Albizu / Marin D. Fondn EUITIO curso 2009-2010

Pgina 64

64

2.- Modelo del Sistema


Representacin matricial
Se utiliza un conjunto de matrices para representar el grafo anteriormente descrito. Se utilizan, al menos, tres matrices (p=nmero de procesos; r=nmero de recursos): A: Matriz de asignacin (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. E: Recursos existentes (r). R[j]=unidades del recurso j que hay en el sistema Con este tipo de representacin pueden formularse matemticamente las restricciones antes vistas. Puede utilizarse esta representacin para implementar los algoritmos que se vern posteriormente.

Asignatura: Sistemas Operativos Tema 3: Com., Sincr. e Interbloqueo

Miguel R. Albizu / Marin D. Fondn EUITIO curso 2009-2010

Pgina 65

65

Tabla de contenidos
Parte II: Interbloqueo Introduccin (7.1 y 7.2) Modelo del sistema. (7.3) Condiciones para el interbloqueo. (7.4) Tratamiento del interbloqueo: Prevencin (7.5 y 7.7) Tratamiento del interbloqueo: Prediccin (7.8) Tratamiento del interbloqueo: Deteccin y recuperacin. (7.6) Aplicacin a los Sistemas Operativos (7.9)

Asignatura: Sistemas Operativos Tema 3: Com., Sincr. e Interbloqueo

Miguel R. Albizu / Marin D. Fondn EUITIO curso 2009-2010

Pgina 66

66

3 Condiciones para el interbloqueo


Existen 4 condiciones necesarias para que exista interbloqueo 1. Exclusin mutua Los procesos exigen un control exclusivo de los recursos 2. Retencin y espera Los procesos retienen recursos ya asignados mientras esperan por recursos adicionales 3. No apropiacin 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 ms recursos que necesita el siguiente proceso de la cadena
Asignatura: Sistemas Operativos Tema 3: Com., Sincr. e Interbloqueo Miguel R. Albizu / Marin D. Fondn EUITIO curso 2009-2010 Pgina 67

67

Tabla de contenidos
Parte II: Interbloqueo Introduccin (7.1 y 7.2) Modelo del sistema. (7.3) Condiciones para el interbloqueo. (7.4) Tratamiento del interbloqueo: Prevencin (7.5 y 7.7) Tratamiento del interbloqueo: Prediccin (7.8) Tratamiento del interbloqueo: Deteccin y recuperacin. (7.6) Aplicacin a los Sistemas Operativos (7.9)

Asignatura: Sistemas Operativos Tema 3: Com., Sincr. e Interbloqueo

Miguel R. Albizu / Marin D. Fondn EUITIO curso 2009-2010

Pgina 68

68

4. Tratamiento del interbloqueo


1. Prevencin Se elimina cualquier posibilidad de que ocurra 2. Evitacin (prediccin) El bloqueo se evita cuando est a punto de suceder 3. Deteccin Se permite el bloqueo y se detecta 4. Recuperacin Se permite el bloqueo, se detecta y se recupera automticamente

Asignatura: Sistemas Operativos Tema 3: Com., Sincr. e Interbloqueo

Miguel R. Albizu / Marin D. Fondn EUITIO curso 2009-2010

Pgina 69

69

4. Tratamiento del interbloqueo: Prevencin


Introduccin 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 Negacin de la retencin y espera Negacin de la no apropiacin Negacin de la espera circular

Asignatura: Sistemas Operativos Tema 3: Com., Sincr. e Interbloqueo

Miguel R. Albizu / Marin D. Fondn EUITIO curso 2009-2010

Pgina 70

70

4. Tratamiento del interbloqueo: Prevencin


Negacin de la retencin 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 Infrautilizacin de recursos

Asignatura: Sistemas Operativos Tema 3: Com., Sincr. e Interbloqueo

Miguel R. Albizu / Marin D. Fondn EUITIO curso 2009-2010

Pgina 71

71

4. Tratamiento del interbloqueo: Prevencin Negacin de la no apropiacin


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 despus junto a los nuevos Inconvenientes Prdida de trabajo realizado Posibilidad de aplazamiento indefinido

Asignatura: Sistemas Operativos Tema 3: Com., Sincr. e Interbloqueo

Miguel R. Albizu / Marin D. Fondn EUITIO curso 2009-2010

Pgina 72

72

4. Tratamiento del interbloqueo: Prevencin Negacin 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 segn la numeracin de los mismos. Inconvenientes Se cogen recursos antes de que se necesiten. Infrautilizacin

Asignatura: Sistemas Operativos Tema 3: Com., Sincr. e Interbloqueo

Miguel R. Albizu / Marin D. Fondn EUITIO curso 2009-2010

Pgina 73

73

Tabla de contenidos
Parte II: Interbloqueo Introduccin (7.1 y 7.2) Modelo del sistema. (7.3) Condiciones para el interbloqueo. (7.4) Tratamiento del interbloqueo: Prevencin (7.5 y 7.7) Tratamiento del interbloqueo: Prediccin (7.8) Tratamiento del interbloqueo: Deteccin y recuperacin. (7.6) Aplicacin a los Sistemas Operativos (7.9)

Asignatura: Sistemas Operativos Tema 3: Com., Sincr. e Interbloqueo

Miguel R. Albizu / Marin D. Fondn EUITIO curso 2009-2010

Pgina 74

74

5. Evitacin del interbloqueo


No se impide la posibilidad de que se den las 4 condiciones para el interbloqueo Se evita el interbloqueo con una asignacin de recursos adecuada Uso del algoritmo del Banquero para la evitacin Algoritmo del banquero (eqivalencias) Banquero Sistema Operativo Capital Recursos Clientes Procesos Prstamo Asignacin de recursos Devolucin Liberacin de recursos Bancarrota Interbloqueo
Asignatura: Sistemas Operativos Tema 3: Com., Sincr. e Interbloqueo Miguel R. Albizu / Marin D. Fondn EUITIO curso 2009-2010 Pgina 75

75

5. Evitacin del interbloqueo


Los procesos que consiguen todos los recursos que necesitan podrn finalizar y por tanto devolver todos los recursos que pidieron Los procesos que se quedan bloqueados a la espera de recursos no devolvern nunca los recursos asignados. Modo de trabajo (algoritmo) El banquero slo presta dinero si est seguro de que va a poder recuperar la totalidad de su capital. Cuando un proceso pide un recurso el sistema slo se lo concede si su asignacin 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).
Miguel R. Albizu / Marin D. Fondn EUITIO curso 2009-2010

Asignatura: Sistemas Operativos Tema 3: Com., Sincr. e Interbloqueo

Pgina 76

76

5. Evitacin del interbloqueo


Algoritmo de comprobacin de estado seguro Repetir hasta que no haya procesos con peticin pendiente
Buscar un proceso al que se le puedan asignar todos los recursos pendientes Aadir a los recursos libres los prestados a ese proceso y eliminar proceso

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
Asignatura: Sistemas Operativos Tema 3: Com., Sincr. e Interbloqueo Miguel R. Albizu / Marin D. Fondn EUITIO curso 2009-2010 Pgina 77

77

Tabla de contenidos
Parte II: Interbloqueo Introduccin (7.1 y 7.2) Modelo del sistema. (7.3) Condiciones para el interbloqueo. (7.4) Tratamiento del interbloqueo: Prevencin (7.5 y 7.7) Tratamiento del interbloqueo: Prediccin (7.8) Tratamiento del interbloqueo: Deteccin y recuperacin. (7.6) Aplicacin a los Sistemas Operativos (7.9)

Asignatura: Sistemas Operativos Tema 3: Com., Sincr. e Interbloqueo

Miguel R. Albizu / Marin D. Fondn EUITIO curso 2009-2010

Pgina 78

78

6. Deteccin y recuperacin del interbloqueo


Se comprueba peridicamente 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 grficas de asignacin de recursos El mecanismo consiste en intentar reducir las grficas eliminando las flechas existentes entre procesos y recursos Si una grfica se puede reducir para todos los procesos El sistema no presenta interbloqueo El orden de reduccin es indiferente Una vez detectado, se avisa al administrador para que tome medidas
Asignatura: Sistemas Operativos Tema 3: Com., Sincr. e Interbloqueo Miguel R. Albizu / Marin D. Fondn EUITIO curso 2009-2010 Pgina 79

79

6. Deteccin y recuperacin del interbloqueo


Una vez detectado el interbloqueo, se intenta recuperar el sistema automticamente Para ello es preciso eliminar una de las cuatro condiciones del interbloqueo. Posibilidades Matar procesos Suspender procesos Problemas Decidir qu proceso matar o suspender (prioridad, arbitrario, etc) Prdida de trabajo realizado Necesidad de puntos de verificacin/reinicio (en suspensin)
Asignatura: Sistemas Operativos Tema 3: Com., Sincr. e Interbloqueo Miguel R. Albizu / Marin D. Fondn EUITIO curso 2009-2010 Pgina 80

80

Tabla de contenidos
Parte II: Interbloqueo Introduccin (7.1 y 7.2) Modelo del sistema. (7.3) Condiciones para el interbloqueo. (7.4) Tratamiento del interbloqueo: Prevencin (7.5 y 7.7) Tratamiento del interbloqueo: Prediccin (7.8) Tratamiento del interbloqueo: Deteccin y recuperacin. (7.6) Aplicacin a los Sistemas Operativos (7.9)

Asignatura: Sistemas Operativos Tema 3: Com., Sincr. e Interbloqueo

Miguel R. Albizu / Marin D. Fondn EUITIO curso 2009-2010

Pgina 81

81

7. Aplicacin 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 sern utilizados desde el cdigo del propio Sistema Operativo. Los recursos que usan las aplicaciones del usuario, desde el cdigo de stas. En el primer caso es muy problemtico, dado que puede afectar a la estabilidad de todo el sistema. Puede ser complicado incluso la recuperacin del mismo. El segundo slo es problemtico para las aplicaciones que usen esos recursos. Es ms fcil de solventar

Asignatura: Sistemas Operativos Tema 3: Com., Sincr. e Interbloqueo

Miguel R. Albizu / Marin D. Fondn EUITIO curso 2009-2010

Pgina 82

82

7. Aplicacin 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. Slo suelen tratar de prevenir el interbloqueo para recursos internos del sistema mediante una programacin adecuada.

Asignatura: Sistemas Operativos Tema 3: Com., Sincr. e Interbloqueo

Miguel R. Albizu / Marin D. Fondn EUITIO curso 2009-2010

Pgina 83

83

Ejemplos
Sea un sistema con 5 procesos y 3 tipos de recursos. La situacin actual del sistema es la que se muestra a continuacin. Est en un estado seguro? Asignacin A p1 p2 p3 p4 p5 0 2 3 2 0 B 1 0 0 1 0 C 0 0 2 1 2 p1 p2 p3 p4 p5 Mximo A 7 3 9 2 4 B 5 2 0 2 3 C 3 2 2 2 3 Disponibles A 3 B 3 C 2

Asignatura: Sistemas Operativos Tema 3: Com., Sincr. e Interbloqueo

Miguel R. Albizu / Marin D. Fondn EUITIO curso 2009-2010

Pgina 84

84

Ejemplos
1.- Calculamos las necesidades pendientes, (Mximo Asignacin) Asignacin A p1 p2 p3 p4 p5 0 2 3 2 0 B 1 0 0 1 0 C 0 0 2 1 2 p1 p2 p3 p4 p5 Mximo A 7 3 9 2 4 B 5 2 0 2 3 C 3 2 2 2 3 p1 p2 p3 p4 p5 Pendientes A 7 1 6 0 4 B 4 2 0 1 3 C 3 2 0 1 1 Disponibles A 3 B 3 C 2

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

Asignatura: Sistemas Operativos Tema 3: Com., Sincr. e Interbloqueo

Miguel R. Albizu / Marin D. Fondn EUITIO curso 2009-2010

Pgina 85

85

Вам также может понравиться