SlideShare una empresa de Scribd logo
1 de 9
Problema del productor y el consumidor
Carolina Dávila Llerena
Lic. Diseño Web y Aplicaciones Multimedia
 Dos procesos comparten un almacén de
tamaño fijo. Uno de ellos, el productor
coloca información en el almacén,
mientras que el otro, el consumidor, la
obtiene de él.
 El problema surge cuando el productor
desea colocar un nuevo elemento en el
almacén, pero está lleno.
 Si el almacén está lleno el productor debe
irse a dormir.
 El consumidor debe despertar al productor
cuando haya eliminado uno o más
elementos del almacén.
 Si el consumidor desea eliminar algún
elemento del almacén y está vacío debe
irse a dormir.
 El productor despierta al consumidor
cuando ha puesto algo en el almacén.
 Se necesita saber el tamaño del almacén.
 Con está técnica no se necesita la
exclusión mutua.
 Se utiliza un tipo especial de variable
llamada contador de eventos.
 Hay tres operaciones sobre el contador
de eventos (E):
 Read(E). Da el valor actual de E.
 Advanced(E). Incrementa a E en 1.
 Await(E,v). Espera a que E >= v.
 Los contadores inician en 0 y sólo
aumentan.
 Se usan dos contadores de eventos, in
e out.
 in, cuenta el número de elementos que
el productor ha colocado en el almacén
desde el inicio de la ejecución del
programa.
 out, cuenta el número de elementos que
el consumidor ha retirado del almacén
hasta el momento.
 Cuando el productor desea colocar un
elemento en el almacén, verifica si hay
espacio por medio de await.
 El consumidor espera a que in sea igual
a k- elemento, es decir, que el productor
ha colocado k elementos en el almacén,
antes de eliminarlo.
#include “prototypes.h”
#define N 100 /*número de entradas en el almacén (buffer)*/
typedef int event_counter; /*event_counter son un tipo especial de int*/
event_counter in = 0; /*cuenta los elementos insertados en el almacén
(buffer) */
event_counter out = 0; /*cuenta los elementos retirados del almacén (buffer)*/
void producer(void)
{
int item, sequence = 0;
while (TRUE) { /*ciclo infinito*/
sequence = sequence + 1; /*número de elemento a eliminar del almacén
(buffer)*/
await(in, sequence); /*espera a que esté presente el elemento del
espacio*/
remove_item(&item); /*retira al elemento de la entrada (sequence – 1) % N */
Advance(&out); /*deja que el productor se entere de que el elemento
ha sido retirado*/
consume_item(item) /*hace algo con el elemento*/
}
}

Más contenido relacionado

Similar a Contadores de Eventos(Problema del productor y consumidor)

Tutorial cio control_almacen
Tutorial cio control_almacenTutorial cio control_almacen
Tutorial cio control_almacenHilbertTreblih
 
Documento de requerimientos (Proyecto)
Documento de requerimientos (Proyecto)Documento de requerimientos (Proyecto)
Documento de requerimientos (Proyecto)Carlos Alonso
 
3 desarollo manejo datos capitulo 3 -02 busqueda arreglo objetos
3 desarollo manejo datos capitulo 3 -02 busqueda arreglo objetos3 desarollo manejo datos capitulo 3 -02 busqueda arreglo objetos
3 desarollo manejo datos capitulo 3 -02 busqueda arreglo objetosluis freddy
 
Inventario diapo (1) andre
Inventario diapo (1) andreInventario diapo (1) andre
Inventario diapo (1) andreAndre5225
 
Inventario diapo (1) andre
Inventario diapo (1) andreInventario diapo (1) andre
Inventario diapo (1) andreAndre5225
 

Similar a Contadores de Eventos(Problema del productor y consumidor) (10)

Tutorial cio control_almacen
Tutorial cio control_almacenTutorial cio control_almacen
Tutorial cio control_almacen
 
Proyecto SAAC
Proyecto SAACProyecto SAAC
Proyecto SAAC
 
Documento de requerimientos (Proyecto)
Documento de requerimientos (Proyecto)Documento de requerimientos (Proyecto)
Documento de requerimientos (Proyecto)
 
3 desarollo manejo datos capitulo 3 -02 busqueda arreglo objetos
3 desarollo manejo datos capitulo 3 -02 busqueda arreglo objetos3 desarollo manejo datos capitulo 3 -02 busqueda arreglo objetos
3 desarollo manejo datos capitulo 3 -02 busqueda arreglo objetos
 
Kanban. Su aplicación en la empresa.
Kanban. Su aplicación en la empresa.Kanban. Su aplicación en la empresa.
Kanban. Su aplicación en la empresa.
 
Trabajo final
Trabajo finalTrabajo final
Trabajo final
 
3.2.Principios del kanban
3.2.Principios del  kanban 3.2.Principios del  kanban
3.2.Principios del kanban
 
Cisneros fernando2 6
Cisneros fernando2 6Cisneros fernando2 6
Cisneros fernando2 6
 
Inventario diapo (1) andre
Inventario diapo (1) andreInventario diapo (1) andre
Inventario diapo (1) andre
 
Inventario diapo (1) andre
Inventario diapo (1) andreInventario diapo (1) andre
Inventario diapo (1) andre
 

Más de ESPOL

Control de Acceso a Sistemas Operativos
Control de Acceso a Sistemas OperativosControl de Acceso a Sistemas Operativos
Control de Acceso a Sistemas OperativosESPOL
 
Distribuciones de Linux
Distribuciones de LinuxDistribuciones de Linux
Distribuciones de LinuxESPOL
 
Api java 2D
Api  java 2DApi  java 2D
Api java 2DESPOL
 
Java blackberry
Java blackberryJava blackberry
Java blackberryESPOL
 
Ediciones Windows7 y Windows Server 2008
Ediciones Windows7 y Windows Server 2008Ediciones Windows7 y Windows Server 2008
Ediciones Windows7 y Windows Server 2008ESPOL
 
Kanon wakeshima
Kanon wakeshimaKanon wakeshima
Kanon wakeshimaESPOL
 
Software Multimedia
Software MultimediaSoftware Multimedia
Software MultimediaESPOL
 
Herramientas CASE
Herramientas CASEHerramientas CASE
Herramientas CASEESPOL
 
Base de Datos
Base de DatosBase de Datos
Base de DatosESPOL
 
Lenguajes de programacion
Lenguajes de programacionLenguajes de programacion
Lenguajes de programacionESPOL
 
Utilitarios
UtilitariosUtilitarios
UtilitariosESPOL
 
Sistamas Operativos parte1
Sistamas Operativos parte1Sistamas Operativos parte1
Sistamas Operativos parte1ESPOL
 
Sistemas operativos parte2
Sistemas  operativos parte2Sistemas  operativos parte2
Sistemas operativos parte2ESPOL
 
Dispositivos de salida
Dispositivos de salidaDispositivos de salida
Dispositivos de salidaESPOL
 
Dispositivos de entrada
Dispositivos de entradaDispositivos de entrada
Dispositivos de entradaESPOL
 
C Saucedo
C SaucedoC Saucedo
C SaucedoESPOL
 

Más de ESPOL (16)

Control de Acceso a Sistemas Operativos
Control de Acceso a Sistemas OperativosControl de Acceso a Sistemas Operativos
Control de Acceso a Sistemas Operativos
 
Distribuciones de Linux
Distribuciones de LinuxDistribuciones de Linux
Distribuciones de Linux
 
Api java 2D
Api  java 2DApi  java 2D
Api java 2D
 
Java blackberry
Java blackberryJava blackberry
Java blackberry
 
Ediciones Windows7 y Windows Server 2008
Ediciones Windows7 y Windows Server 2008Ediciones Windows7 y Windows Server 2008
Ediciones Windows7 y Windows Server 2008
 
Kanon wakeshima
Kanon wakeshimaKanon wakeshima
Kanon wakeshima
 
Software Multimedia
Software MultimediaSoftware Multimedia
Software Multimedia
 
Herramientas CASE
Herramientas CASEHerramientas CASE
Herramientas CASE
 
Base de Datos
Base de DatosBase de Datos
Base de Datos
 
Lenguajes de programacion
Lenguajes de programacionLenguajes de programacion
Lenguajes de programacion
 
Utilitarios
UtilitariosUtilitarios
Utilitarios
 
Sistamas Operativos parte1
Sistamas Operativos parte1Sistamas Operativos parte1
Sistamas Operativos parte1
 
Sistemas operativos parte2
Sistemas  operativos parte2Sistemas  operativos parte2
Sistemas operativos parte2
 
Dispositivos de salida
Dispositivos de salidaDispositivos de salida
Dispositivos de salida
 
Dispositivos de entrada
Dispositivos de entradaDispositivos de entrada
Dispositivos de entrada
 
C Saucedo
C SaucedoC Saucedo
C Saucedo
 

Último

TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptxTECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptxKarlaMassielMartinez
 
Qué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativaQué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativaDecaunlz
 
Éteres. Química Orgánica. Propiedades y reacciones
Éteres. Química Orgánica. Propiedades y reaccionesÉteres. Química Orgánica. Propiedades y reacciones
Éteres. Química Orgánica. Propiedades y reaccionesLauraColom3
 
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VSOCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VSYadi Campos
 
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOSTEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOSjlorentemartos
 
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxzulyvero07
 
plande accion dl aula de innovación pedagogica 2024.pdf
plande accion dl aula de innovación pedagogica 2024.pdfplande accion dl aula de innovación pedagogica 2024.pdf
plande accion dl aula de innovación pedagogica 2024.pdfenelcielosiempre
 
Dinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes dDinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes dstEphaniiie
 
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfSELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfAngélica Soledad Vega Ramírez
 
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdfEjercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdfMaritzaRetamozoVera
 
Cuaderno de trabajo Matemática 3 tercer grado.pdf
Cuaderno de trabajo Matemática 3 tercer grado.pdfCuaderno de trabajo Matemática 3 tercer grado.pdf
Cuaderno de trabajo Matemática 3 tercer grado.pdfNancyLoaa
 
Sesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docxSesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docxMaritzaRetamozoVera
 
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptxSEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptxYadi Campos
 
La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...JonathanCovena1
 

Último (20)

TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptxTECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
 
Presentacion Metodología de Enseñanza Multigrado
Presentacion Metodología de Enseñanza MultigradoPresentacion Metodología de Enseñanza Multigrado
Presentacion Metodología de Enseñanza Multigrado
 
Qué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativaQué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativa
 
Éteres. Química Orgánica. Propiedades y reacciones
Éteres. Química Orgánica. Propiedades y reaccionesÉteres. Química Orgánica. Propiedades y reacciones
Éteres. Química Orgánica. Propiedades y reacciones
 
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VSOCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
 
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOSTEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
 
Medición del Movimiento Online 2024.pptx
Medición del Movimiento Online 2024.pptxMedición del Movimiento Online 2024.pptx
Medición del Movimiento Online 2024.pptx
 
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
 
plande accion dl aula de innovación pedagogica 2024.pdf
plande accion dl aula de innovación pedagogica 2024.pdfplande accion dl aula de innovación pedagogica 2024.pdf
plande accion dl aula de innovación pedagogica 2024.pdf
 
Dinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes dDinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes d
 
Power Point: Fe contra todo pronóstico.pptx
Power Point: Fe contra todo pronóstico.pptxPower Point: Fe contra todo pronóstico.pptx
Power Point: Fe contra todo pronóstico.pptx
 
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfSELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
 
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdfEjercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
 
Sesión de clase: Fe contra todo pronóstico
Sesión de clase: Fe contra todo pronósticoSesión de clase: Fe contra todo pronóstico
Sesión de clase: Fe contra todo pronóstico
 
Cuaderno de trabajo Matemática 3 tercer grado.pdf
Cuaderno de trabajo Matemática 3 tercer grado.pdfCuaderno de trabajo Matemática 3 tercer grado.pdf
Cuaderno de trabajo Matemática 3 tercer grado.pdf
 
Fe contra todo pronóstico. La fe es confianza.
Fe contra todo pronóstico. La fe es confianza.Fe contra todo pronóstico. La fe es confianza.
Fe contra todo pronóstico. La fe es confianza.
 
Sesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docxSesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docx
 
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptxSEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
 
La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...
 
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdfTema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
 

Contadores de Eventos(Problema del productor y consumidor)

  • 1. Problema del productor y el consumidor Carolina Dávila Llerena Lic. Diseño Web y Aplicaciones Multimedia
  • 2.  Dos procesos comparten un almacén de tamaño fijo. Uno de ellos, el productor coloca información en el almacén, mientras que el otro, el consumidor, la obtiene de él.  El problema surge cuando el productor desea colocar un nuevo elemento en el almacén, pero está lleno.
  • 3.  Si el almacén está lleno el productor debe irse a dormir.  El consumidor debe despertar al productor cuando haya eliminado uno o más elementos del almacén.  Si el consumidor desea eliminar algún elemento del almacén y está vacío debe irse a dormir.
  • 4.  El productor despierta al consumidor cuando ha puesto algo en el almacén.  Se necesita saber el tamaño del almacén.  Con está técnica no se necesita la exclusión mutua.  Se utiliza un tipo especial de variable llamada contador de eventos.
  • 5.  Hay tres operaciones sobre el contador de eventos (E):  Read(E). Da el valor actual de E.  Advanced(E). Incrementa a E en 1.  Await(E,v). Espera a que E >= v.
  • 6.  Los contadores inician en 0 y sólo aumentan.  Se usan dos contadores de eventos, in e out.
  • 7.  in, cuenta el número de elementos que el productor ha colocado en el almacén desde el inicio de la ejecución del programa.  out, cuenta el número de elementos que el consumidor ha retirado del almacén hasta el momento.
  • 8.  Cuando el productor desea colocar un elemento en el almacén, verifica si hay espacio por medio de await.  El consumidor espera a que in sea igual a k- elemento, es decir, que el productor ha colocado k elementos en el almacén, antes de eliminarlo.
  • 9. #include “prototypes.h” #define N 100 /*número de entradas en el almacén (buffer)*/ typedef int event_counter; /*event_counter son un tipo especial de int*/ event_counter in = 0; /*cuenta los elementos insertados en el almacén (buffer) */ event_counter out = 0; /*cuenta los elementos retirados del almacén (buffer)*/ void producer(void) { int item, sequence = 0; while (TRUE) { /*ciclo infinito*/ sequence = sequence + 1; /*número de elemento a eliminar del almacén (buffer)*/ await(in, sequence); /*espera a que esté presente el elemento del espacio*/ remove_item(&item); /*retira al elemento de la entrada (sequence – 1) % N */ Advance(&out); /*deja que el productor se entere de que el elemento ha sido retirado*/ consume_item(item) /*hace algo con el elemento*/ } }