SlideShare una empresa de Scribd logo
1 de 5
Theoretical
 A s s i g n m e n t   1
Unbounded-buffer producer-consumer with locks
Problem:
 #define N 100
 int cuenta = 0;
                                                         El problema que obtenemos aquí es
 void productor(void)
 {
                                                         que hay una condición de carrera.
          int elemento;

              while(TRUE){
              elemento = producir_elemento();
              if(cuenta == N)sleep();
              insertar_elemento(elemento);
              cuenta = cuenta + 1;
              if(cuenta == 1) wakeup(consumidor);
      }
 }

 void consumidor(void)
 {
           int elemento;

               while(TRUE) {
                     if(cuenta == 0)sleep();
                     elemento = quitar_elemento();
                     cuenta = cuenta - 1;
                     if(cuenta==N-1)wakeup(productor);
                     consumir_elemento(elemento);
          }
 }
Unbounded-buffer producer-consumer with locks

Solution:
                                                   Resolviendo este problema
  #define N 100
  typedef int semaforo;
  semaforo mutex = 1l
  semaforo vacias = N;
  semaforo llenas = 0;

  void productor(void)
                                                  mediante el uso de semáforos.
  {
           int elemento;

      while(TRUE){
           elemento = producir_elemento();
           down(&vacias);
          down(&mutex);
           insertar_elemento(elemento);
           up(&mutex);
           up(&llenas);
       }
  }

  void consumidor(void)
  {
            int elemento;

             while(TRUE) {
                 down(&llenas);
                 down(&mutex);
                 elemento = quitar_elemento();
                  up(&mutex);
                  up(&llenas);
                   consumir_elemento(elemento);
        }
  }
How to detect and eliminate deadlock in the
    dining philosophers problem.
   Problem:
Cinco filosofos estan sentados alrededor de una mesa
circular,cada filosofo tiene un plato de espagueti.El espagueti es
tan resbaloso, que un filosofo necesita dos tenedores para
comerlo.Entre cada par de platos hay un tenedor,cuando un
filosofo tiene hambre, trata de adquirir sus tenedores izquierdo y
derecho, uno a la vez, en cualquier orden.Si tiene exito al
adquirir dos tenedores, come por un momento,despues deja los
tenedores y continua pensando.
How to detect and eliminate deadlock in the
         dining philosophers problem.
   Solution:

#define N         5                void tomar_tenedores(int i)
#define IZQUIERDO      (i+N-1)%N   {
#define DERECHO        (i+1)%N                 down(&mutex);
#define PENSANDO        0                      estado[i] = HAMBRIENTO;
#define HAMBRIENTO 1                           probar(i);
#define COMIENDO         2                     up(&mutex);
typedef int semaforo;                         down(&s[i]);
int estado [N];                   }
semaforo mutex = 1;               void poner_tenedores(int i)
semaforo s[N];                    {
                                               down(&mutex);
void filosofo(int i)                            estado[i] = PENSANDO;
{                                              probar(IZQUIERDO);
     while(TRUE){                              probar(DERECHO);
           pensar();                           up(&mutex);
           tomar_tenedores(i);    }
           comer();               void probar(i)
           poner_tenedores(i);    {
     }                                                if(estado[i] == HAMBRIENTO && estado[IZQUIERDO] != COMIENDO &&
  }                               estado[DERECHO] != COMIENDO ){
                                  estado[i] = COMIENDO;
                                  up(&s[i]);
                                     }
                                  }

Más contenido relacionado

La actualidad más candente

Algoritmica i clase05 practica 5 solucionario
Algoritmica i clase05 practica 5 solucionarioAlgoritmica i clase05 practica 5 solucionario
Algoritmica i clase05 practica 5 solucionarioJulio Pari
 
Ejercicios condicional-if
Ejercicios condicional-if  Ejercicios condicional-if
Ejercicios condicional-if yulieth licona
 
Ejercidos resueltos en java para el portafolio
Ejercidos resueltos en java para el portafolioEjercidos resueltos en java para el portafolio
Ejercidos resueltos en java para el portafolioJesica Pérez
 
Funcione con vectores y matrices en c
Funcione con vectores y matrices en cFuncione con vectores y matrices en c
Funcione con vectores y matrices en cpaulinaguec
 

La actualidad más candente (6)

Algoritmica i clase05 practica 5 solucionario
Algoritmica i clase05 practica 5 solucionarioAlgoritmica i clase05 practica 5 solucionario
Algoritmica i clase05 practica 5 solucionario
 
Ejercicios condicional-if
Ejercicios condicional-if  Ejercicios condicional-if
Ejercicios condicional-if
 
Ejercidos resueltos en java para el portafolio
Ejercidos resueltos en java para el portafolioEjercidos resueltos en java para el portafolio
Ejercidos resueltos en java para el portafolio
 
Funcione con vectores y matrices en c
Funcione con vectores y matrices en cFuncione con vectores y matrices en c
Funcione con vectores y matrices en c
 
Todas las estructuras
Todas las estructurasTodas las estructuras
Todas las estructuras
 
Ejercicios en java
Ejercicios en javaEjercicios en java
Ejercicios en java
 

Destacado

Nivel de gestión de las empresas
Nivel de gestión de las empresasNivel de gestión de las empresas
Nivel de gestión de las empresasoscarreyesnova
 
Normalización de bases de datos
Normalización de bases de datosNormalización de bases de datos
Normalización de bases de datoshugofreestyle
 
Estrategias de aplicación de prueba de unidad ,integración, sistema, y de ace...
Estrategias de aplicación de prueba de unidad ,integración, sistema, y de ace...Estrategias de aplicación de prueba de unidad ,integración, sistema, y de ace...
Estrategias de aplicación de prueba de unidad ,integración, sistema, y de ace...carlblakc
 
Tecnicas para busqueda de informacion
Tecnicas para busqueda de informacionTecnicas para busqueda de informacion
Tecnicas para busqueda de informacionARNULFO BASTO ESTEBAN
 
Trabajo potencia energía fisíca 2
Trabajo potencia energía fisíca 2Trabajo potencia energía fisíca 2
Trabajo potencia energía fisíca 2Andrea Alarcon
 
Fases De Analisis
Fases De AnalisisFases De Analisis
Fases De AnalisisJosse Perez
 
Dinamica de fluidos
Dinamica de fluidos Dinamica de fluidos
Dinamica de fluidos KevinRamone17
 
Etapas de Desarrollo Software
Etapas de Desarrollo SoftwareEtapas de Desarrollo Software
Etapas de Desarrollo SoftwareDaniel Román
 

Destacado (10)

Niveles de gestion
Niveles de gestionNiveles de gestion
Niveles de gestion
 
Nivel de gestión de las empresas
Nivel de gestión de las empresasNivel de gestión de las empresas
Nivel de gestión de las empresas
 
Normalización de bases de datos
Normalización de bases de datosNormalización de bases de datos
Normalización de bases de datos
 
Estrategias de aplicación de prueba de unidad ,integración, sistema, y de ace...
Estrategias de aplicación de prueba de unidad ,integración, sistema, y de ace...Estrategias de aplicación de prueba de unidad ,integración, sistema, y de ace...
Estrategias de aplicación de prueba de unidad ,integración, sistema, y de ace...
 
Tecnicas para busqueda de informacion
Tecnicas para busqueda de informacionTecnicas para busqueda de informacion
Tecnicas para busqueda de informacion
 
Trabajo potencia energía fisíca 2
Trabajo potencia energía fisíca 2Trabajo potencia energía fisíca 2
Trabajo potencia energía fisíca 2
 
Fases De Analisis
Fases De AnalisisFases De Analisis
Fases De Analisis
 
Dinamica de fluidos
Dinamica de fluidos Dinamica de fluidos
Dinamica de fluidos
 
POTENCIAL ELECTRICO
POTENCIAL ELECTRICOPOTENCIAL ELECTRICO
POTENCIAL ELECTRICO
 
Etapas de Desarrollo Software
Etapas de Desarrollo SoftwareEtapas de Desarrollo Software
Etapas de Desarrollo Software
 

Más de Saul Gausin

Proyectodevision
ProyectodevisionProyectodevision
ProyectodevisionSaul Gausin
 
Presentación Proyecto Final
Presentación Proyecto FinalPresentación Proyecto Final
Presentación Proyecto FinalSaul Gausin
 
Proyecto Cómputo Integrado
Proyecto Cómputo IntegradoProyecto Cómputo Integrado
Proyecto Cómputo IntegradoSaul Gausin
 
Sistemas Adaptativos #3
Sistemas Adaptativos #3Sistemas Adaptativos #3
Sistemas Adaptativos #3Saul Gausin
 
Presentacion PDA
Presentacion PDAPresentacion PDA
Presentacion PDASaul Gausin
 

Más de Saul Gausin (6)

Proyectodevision
ProyectodevisionProyectodevision
Proyectodevision
 
Presentación Proyecto Final
Presentación Proyecto FinalPresentación Proyecto Final
Presentación Proyecto Final
 
Proyecto Cómputo Integrado
Proyecto Cómputo IntegradoProyecto Cómputo Integrado
Proyecto Cómputo Integrado
 
Sistemas Adaptativos #3
Sistemas Adaptativos #3Sistemas Adaptativos #3
Sistemas Adaptativos #3
 
Avance proyecto
Avance proyectoAvance proyecto
Avance proyecto
 
Presentacion PDA
Presentacion PDAPresentacion PDA
Presentacion PDA
 

Último

Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxpabonheidy28
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesFundación YOD YOD
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxJOSEMANUELHERNANDEZH11
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024GiovanniJavierHidalg
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudianteAndreaHuertas24
 

Último (16)

Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docx
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento Protégeles
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptx
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante
 

OS

  • 1. Theoretical A s s i g n m e n t 1
  • 2. Unbounded-buffer producer-consumer with locks Problem: #define N 100 int cuenta = 0; El problema que obtenemos aquí es void productor(void) { que hay una condición de carrera. int elemento; while(TRUE){ elemento = producir_elemento(); if(cuenta == N)sleep(); insertar_elemento(elemento); cuenta = cuenta + 1; if(cuenta == 1) wakeup(consumidor); } } void consumidor(void) { int elemento; while(TRUE) { if(cuenta == 0)sleep(); elemento = quitar_elemento(); cuenta = cuenta - 1; if(cuenta==N-1)wakeup(productor); consumir_elemento(elemento); } }
  • 3. Unbounded-buffer producer-consumer with locks Solution: Resolviendo este problema #define N 100 typedef int semaforo; semaforo mutex = 1l semaforo vacias = N; semaforo llenas = 0; void productor(void) mediante el uso de semáforos. { int elemento; while(TRUE){ elemento = producir_elemento(); down(&vacias); down(&mutex); insertar_elemento(elemento); up(&mutex); up(&llenas); } } void consumidor(void) { int elemento; while(TRUE) { down(&llenas); down(&mutex); elemento = quitar_elemento(); up(&mutex); up(&llenas); consumir_elemento(elemento); } }
  • 4. How to detect and eliminate deadlock in the dining philosophers problem. Problem: Cinco filosofos estan sentados alrededor de una mesa circular,cada filosofo tiene un plato de espagueti.El espagueti es tan resbaloso, que un filosofo necesita dos tenedores para comerlo.Entre cada par de platos hay un tenedor,cuando un filosofo tiene hambre, trata de adquirir sus tenedores izquierdo y derecho, uno a la vez, en cualquier orden.Si tiene exito al adquirir dos tenedores, come por un momento,despues deja los tenedores y continua pensando.
  • 5. How to detect and eliminate deadlock in the dining philosophers problem. Solution: #define N 5 void tomar_tenedores(int i) #define IZQUIERDO (i+N-1)%N { #define DERECHO (i+1)%N down(&mutex); #define PENSANDO 0 estado[i] = HAMBRIENTO; #define HAMBRIENTO 1 probar(i); #define COMIENDO 2 up(&mutex); typedef int semaforo; down(&s[i]); int estado [N]; } semaforo mutex = 1; void poner_tenedores(int i) semaforo s[N]; { down(&mutex); void filosofo(int i) estado[i] = PENSANDO; { probar(IZQUIERDO); while(TRUE){ probar(DERECHO); pensar(); up(&mutex); tomar_tenedores(i); } comer(); void probar(i) poner_tenedores(i); { } if(estado[i] == HAMBRIENTO && estado[IZQUIERDO] != COMIENDO && } estado[DERECHO] != COMIENDO ){ estado[i] = COMIENDO; up(&s[i]); } }

Notas del editor

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n