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

Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.José Luis Palma
 
LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...
LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...
LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...JAVIER SOLIS NOYOLA
 
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...fcastellanos3
 
BIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdf
BIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdfBIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdf
BIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdfCESARMALAGA4
 
Mapa Mental de estrategias de articulación de las areas curriculares.pdf
Mapa Mental de estrategias de articulación de las areas curriculares.pdfMapa Mental de estrategias de articulación de las areas curriculares.pdf
Mapa Mental de estrategias de articulación de las areas curriculares.pdfvictorbeltuce
 
Análisis de la Implementación de los Servicios Locales de Educación Pública p...
Análisis de la Implementación de los Servicios Locales de Educación Pública p...Análisis de la Implementación de los Servicios Locales de Educación Pública p...
Análisis de la Implementación de los Servicios Locales de Educación Pública p...Baker Publishing Company
 
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdfOswaldoGonzalezCruz
 
La Función tecnológica del tutor.pptx
La  Función  tecnológica  del tutor.pptxLa  Función  tecnológica  del tutor.pptx
La Función tecnológica del tutor.pptxJunkotantik
 
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADODECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADOJosé Luis Palma
 
c3.hu3.p1.p3.El ser humano como ser histórico.pptx
c3.hu3.p1.p3.El ser humano como ser histórico.pptxc3.hu3.p1.p3.El ser humano como ser histórico.pptx
c3.hu3.p1.p3.El ser humano como ser histórico.pptxMartín Ramírez
 
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptxPPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptxOscarEduardoSanchezC
 
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdfTarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdfManuel Molina
 
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptxLINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptxdanalikcruz2000
 
Estrategia de Enseñanza y Aprendizaje.pdf
Estrategia de Enseñanza y Aprendizaje.pdfEstrategia de Enseñanza y Aprendizaje.pdf
Estrategia de Enseñanza y Aprendizaje.pdfromanmillans
 
FICHA DE MONITOREO Y ACOMPAÑAMIENTO 2024 MINEDU
FICHA DE MONITOREO Y ACOMPAÑAMIENTO  2024 MINEDUFICHA DE MONITOREO Y ACOMPAÑAMIENTO  2024 MINEDU
FICHA DE MONITOREO Y ACOMPAÑAMIENTO 2024 MINEDUgustavorojas179704
 
Metabolismo 3: Anabolismo y Fotosíntesis 2024
Metabolismo 3: Anabolismo y Fotosíntesis 2024Metabolismo 3: Anabolismo y Fotosíntesis 2024
Metabolismo 3: Anabolismo y Fotosíntesis 2024IES Vicent Andres Estelles
 

Último (20)

Power Point: "Defendamos la verdad".pptx
Power Point: "Defendamos la verdad".pptxPower Point: "Defendamos la verdad".pptx
Power Point: "Defendamos la verdad".pptx
 
Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.
 
LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...
LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...
LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...
 
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
 
BIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdf
BIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdfBIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdf
BIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdf
 
Mapa Mental de estrategias de articulación de las areas curriculares.pdf
Mapa Mental de estrategias de articulación de las areas curriculares.pdfMapa Mental de estrategias de articulación de las areas curriculares.pdf
Mapa Mental de estrategias de articulación de las areas curriculares.pdf
 
Análisis de la Implementación de los Servicios Locales de Educación Pública p...
Análisis de la Implementación de los Servicios Locales de Educación Pública p...Análisis de la Implementación de los Servicios Locales de Educación Pública p...
Análisis de la Implementación de los Servicios Locales de Educación Pública p...
 
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf
 
La Función tecnológica del tutor.pptx
La  Función  tecnológica  del tutor.pptxLa  Función  tecnológica  del tutor.pptx
La Función tecnológica del tutor.pptx
 
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADODECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
 
c3.hu3.p1.p3.El ser humano como ser histórico.pptx
c3.hu3.p1.p3.El ser humano como ser histórico.pptxc3.hu3.p1.p3.El ser humano como ser histórico.pptx
c3.hu3.p1.p3.El ser humano como ser histórico.pptx
 
VISITA À PROTEÇÃO CIVIL _
VISITA À PROTEÇÃO CIVIL                  _VISITA À PROTEÇÃO CIVIL                  _
VISITA À PROTEÇÃO CIVIL _
 
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptxPPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
 
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdfTarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
 
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptxLINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
 
Estrategia de Enseñanza y Aprendizaje.pdf
Estrategia de Enseñanza y Aprendizaje.pdfEstrategia de Enseñanza y Aprendizaje.pdf
Estrategia de Enseñanza y Aprendizaje.pdf
 
FICHA DE MONITOREO Y ACOMPAÑAMIENTO 2024 MINEDU
FICHA DE MONITOREO Y ACOMPAÑAMIENTO  2024 MINEDUFICHA DE MONITOREO Y ACOMPAÑAMIENTO  2024 MINEDU
FICHA DE MONITOREO Y ACOMPAÑAMIENTO 2024 MINEDU
 
Metabolismo 3: Anabolismo y Fotosíntesis 2024
Metabolismo 3: Anabolismo y Fotosíntesis 2024Metabolismo 3: Anabolismo y Fotosíntesis 2024
Metabolismo 3: Anabolismo y Fotosíntesis 2024
 
Repaso Pruebas CRECE PR 2024. Ciencia General
Repaso Pruebas CRECE PR 2024. Ciencia GeneralRepaso Pruebas CRECE PR 2024. Ciencia General
Repaso Pruebas CRECE PR 2024. Ciencia General
 
PPTX: La luz brilla en la oscuridad.pptx
PPTX: La luz brilla en la oscuridad.pptxPPTX: La luz brilla en la oscuridad.pptx
PPTX: La luz brilla en la oscuridad.pptx
 

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*/ } }