Sie sind auf Seite 1von 4

TEMAS: 1.-SOLUCION DE PETERSON 2.

-PRODUCTOR Y CONSUMIDOR

SO Distribuidos
Ma. de Jess Snchez J. Lucero Vzquez Gonzlez

1.- Solucin de Peterson.


Una solucin posible es la proporcionada por Peterson (1981). En esta solucin se introduce una variable adicional, que denominaremos turno, que solamente resultar til cuando se produzca un problema de peticin simultnea de acceso a la regin crtica.[1] Al combinar la idea de los turnos, con la de las variables de cierre y de advertencia, T.Dekker (Matemtico Alemn) fue el primero en crear una solucin por medio del software al problema de la exclusin mutua que no requiere alternacin estricta. Esta solucin fue muy complicada por lo que Peterson descubri una manera mucho ms simple de lograr exclusin mutua. Cdigo de la Solucin de Peterson para lograr exclusin mutua.[2]

#define FALSE 0 #define TRUE 1 #define N 2 int turno; int interes[N];

/* Nmero de proceso */ /* A Quin le toca ? */ /* Todos los valores son inicialmente FALSE*/

ingresar_region(proceso) int proceso; /* Nmero del proceso */ { int otro; /* Nmero de otro proceso */ otro = 1 proceso; /* El opuesto del proceso */ interes[proceso] = TRUE; /* inters por ingresar a la seccin crtica */ turno = proceso; /* Colocar seal */ while ((turno == proceso) && (interes[otro] == TRUE)); /* Posicin nula */ } salir_region(proceso) int proceso; { interested[proceso] = FALSE; }

/* Proceso que sale de la seccin crtica */ /* Indica la Salida de la seccin crtica */

Ing. Computacin.

6 semestre

08/06/2011

SO Distribuidos
Ma. de Jess Snchez J. Lucero Vzquez Gonzlez

2.- El problema del productor y el consumidor.


Describe el echo de que cuando hay dos o ms procesos interactuando a travs de un buffer comn habiendo procesos que ponen informacin o datos y otros que los sacan se pueden llegar a dar condiciones en las cuales los procesos que ingresan los datos no puedan hacerlo debido a que el buffer ya se encuentra lleno y para el caso de los que sacan los datos del buffer intenten sacar datos cuando ya no hay nada que sacar. Para evitar estas condiciones se desarrollaron mtodos de comunicacin/sincronizacin entre procesos en los cuales se impide que esto suceda haciendo que el proceso productor "duerma" si el buffer est lleno y una vez que exista espacio el proceso "consumidor" despierte al productor para que siga generando o viceversa.[3] Problema del productor y el consumidor utilizando semforos.[2]

#define N 100 typedef int semforo; semaforo exclusion=1; semaforo vacio=N; semforo lleno=0; productor() { int item; while (TRUE) { procedimiento_item(&item); down(vacio); down(exclusion); ingrese_item(item); up(exclusion); up(lleno); } } consumidor() { int item; while(TRUE) { down(lleno); down(exclusion); remover_item(&item); up(exclusion); up(vacio); consume_item(item); } }

/* Nmero de ranuras del buffer */ /* tipo semforo como entero */ /* controla el acceso a la seccin crtica */ /* cuenta las ranuras vacas del buffer */ /* cuenta las ranuras llenas del buffer */

/* ciclo infinito */ /* generar algo para colocarlo en el buffer */ /* disminuir el conteo vaco */ /* meter en la seccin critica */ /* colocar el nuevo elemento en el buffer */ /* salir de la seccin crtica */ /* incrementar el conteo de ranuras llenas */

/* ciclo infinito */ /* disminuir el conteo lleno */ /* meter en la seccin crtica */ /* tomar el elemento del buffer */ /* salir de la seccin crtica */ /* incrementar el conteo de ranuras vacas */ /* hacer algo con el elemento */

Ing. Computacin.

6 semestre

08/06/2011

SO Distribuidos
Ma. de Jess Snchez J. Lucero Vzquez Gonzlez

Productor y el consumidor
Uno o ms productores generan datos y los sitan en un bfer, Un nico consumidor saca elementos del bfer de uno en uno. Slo un productor o consumidor puede acceder al bfer en un instante dado.

Producto-consumidor [4]

Bibliografa [1] Algoritmo de Peterson pro-concurrente.galeon.com/invc/alg-peterson.doc [2] Apuntes Sistemas de Operativos, Abril/2003. 1http://www.inf.uct.cl/~amellado/archivos/SOperativos2.pdf [3] El problema del productor y el consumidor http://www.monografias.com/trabajos14/administ-procesos/administ-procesos.shtml

Ing. Computacin.

6 semestre

08/06/2011

SO Distribuidos
Ma. de Jess Snchez J. Lucero Vzquez Gonzlez [4] Concurrencia https://belenus.unirioja.es/~secarcam/sistemas_operativos/procesos/comunicacion_procesos.ht ml

Ing. Computacin.

6 semestre

08/06/2011