SlideShare una empresa de Scribd logo
1 de 7
Introducción
 Los semáforos, a pesar de su sencillez de uso, son el equivalente a
las instrucciones goto y el manejo de apuntadores en los lenguajes
de programación imperativos: son muy susceptibles a errores. Su
utilización exige disciplina. Por ejemplo, el siguiente error conduce
inmediatamente a un deadlock:

 P(S) ; sección crítica P(S);

Generalmente resulta difícil distinguir entre los dos usos de los
semáforos (i.e. para exclusión mutua y condición de
sincronización) en un programa sin una revisión detallada de todo
el código.
Los monitores pretenden ayudar a evitar los riesgos a que se
presentan esos tipos de errores de programación.
Definición
Un monitor es un módulo opaco que encapsula servicios mediante
métodos de acceso, así como sus variables locales y globales. La única
forma para manipular o acceder las variables dentro del monitor es
invocando alguno de los métodos de servicio. Solamente se permite que
un hilo esté activo a la vez dentro del monitor ejecutando uno de los
métodos de servicio, asegurando exclusión mutua y previniendo
implícitamente la presencia de condiciones de contención. Cada objeto
monitor tiene un candado, el compilador del lenguaje de programación
genera el código al comienzo de cada método de servicio para adquirir el
candado y al final para liberarlo. Si el monitor está ocupado por algún hilo
(i.e. se apropió del candado), los hilos siguientes que invoquen alguno de
los métodos de servicio del monitor (i.e. intenten entrar al monitor) serán
bloqueados e incorporados en la lista de espera para adquirir el candado.
Al igual que los semáforos, los monitores ofrecen las dos formas de
sincronización: la exclusión mutua está garantizada por el
compilador implícitamente al invocar métodos de servicio. Para
proporcionar mecanismos para sincronización de eventos
(condición de sincronización) un monitor puede contener variables
de condición, las cuales pueden manipularse mediante las
operaciones signal y wait (que son análogas a las operaciones P y V
en semáforos binarios, respectivamente). Su funcionamiento se
describe enseguida:
 wait: Un hilo que espera a que ocurra un evento indicado por una
   variable de condición deja al monitor temporalmente, libera el
   candado y se une a la lista de hilos bloqueados correspondiente a
   esa variable de condición.
 signal: Cada señal con respecto a una variable de condición
  despierta a un hilo de la lista de hilos bloqueados
  correspondiente a esa variable de condición (no
  necesariamente el que lleva más tiempo en espera), si no
  hay ningún hilo esperando, la señal no se almacena y no
  tiene efecto (contrastando a la manera en la cual los
  semáforos funcionan). Dado que las operaciones de liberar
  al candado y unirse a la lista de espera por una variable de
  condición son operaciones atómicas no hay riesgo de
  pérdida de las señales (i.e. `wakeup'). Al hilo despertado
  por la señal se le desplaza de esa lista de bloqueados y se le
  coloca en la lista de hilos en espera por entrar al monitor.
  Una vez que el candado sea readquirido, el hilo en cuestión
  continúa la ejecución del método de servicio que invocó
  anteriormente (i.e. la primera vez para entrar al monitor).
Ejemplo
Como ejemplo, mostramos (en pseudo código) un fragmento para la
solución al problema del productor-consumidor utilizando un buffer
limitado.
 public synchronized void deposit(double data) {
 if (count == size) wait(notFull);
 buf[rear] = data;

 4 rear = (rear+1) % size;
 count++;
 if (count == 1) notify(notEmpty);
 }
 public synchronized double fetch() {
 double result;
 if (count == 0) wait(notEmpty);
 result = buf[front];
 front = (front+1) % size;
 count--;
 if (count == size-1) notify(notFull);
 return result;
 }
 Si el buffer está lleno, el productor se bloquea con la invocación al
  método wait respecto a la variable de condición notFull, el productor es
  despertado por el consumidor mediante la señal notify cuando deja un
  espacio libre en el buffer.
 Si el buffer está vacío, el consumidor se bloquea respecto la variable
  notEmpty y a su vez será despertado por el productor cuando éste
  coloque un elemento en el buffer.

Para la disciplina signal and continue, no se requiere que el hilo que
emitió la señal salga del monitor, ni tampoco que el hilo despertado tenga
prioridad para proceder dentro del monitor sobre los demás hilos que
están esperando entrar (compiten por el candado).

Más contenido relacionado

La actualidad más candente

Mas sobre excepciones
Mas sobre excepcionesMas sobre excepciones
Mas sobre excepcionesjbersosa
 
Excepciones en java
Excepciones en javaExcepciones en java
Excepciones en javajent46
 
Las excepciones standar
Las excepciones standarLas excepciones standar
Las excepciones standarjbersosa
 
Gestión de errores en Java
Gestión de errores en JavaGestión de errores en Java
Gestión de errores en Javaeccutpl
 
Java excepciones
Java excepcionesJava excepciones
Java excepcionesricardo_79
 
OCP, JSE 6 Programmer (1Z0-851) - Guia practica 2 de 7(Flujos, Excepciones y ...
OCP, JSE 6 Programmer (1Z0-851) - Guia practica 2 de 7(Flujos, Excepciones y ...OCP, JSE 6 Programmer (1Z0-851) - Guia practica 2 de 7(Flujos, Excepciones y ...
OCP, JSE 6 Programmer (1Z0-851) - Guia practica 2 de 7(Flujos, Excepciones y ...Oscar V
 
Blog
BlogBlog
Blogdgzz
 
Blog
BlogBlog
Blogdgzz
 
3...3 manejo de excepciones y la clase string
3...3 manejo de excepciones y la clase string3...3 manejo de excepciones y la clase string
3...3 manejo de excepciones y la clase stringJacqui Venegas
 
Clase string y manejo de excepciones
Clase string y manejo de excepcionesClase string y manejo de excepciones
Clase string y manejo de excepcionesAliciaSandovalCamacho
 

La actualidad más candente (20)

5.manejo de excepciones
5.manejo de excepciones5.manejo de excepciones
5.manejo de excepciones
 
Mas sobre excepciones
Mas sobre excepcionesMas sobre excepciones
Mas sobre excepciones
 
Excepciones en java
Excepciones en javaExcepciones en java
Excepciones en java
 
Las excepciones standar
Las excepciones standarLas excepciones standar
Las excepciones standar
 
excepciones en java
excepciones en javaexcepciones en java
excepciones en java
 
Gestión de errores en Java
Gestión de errores en JavaGestión de errores en Java
Gestión de errores en Java
 
Java excepciones
Java excepcionesJava excepciones
Java excepciones
 
Gestión de Excepciones
Gestión de ExcepcionesGestión de Excepciones
Gestión de Excepciones
 
Excepciones
ExcepcionesExcepciones
Excepciones
 
OCP, JSE 6 Programmer (1Z0-851) - Guia practica 2 de 7(Flujos, Excepciones y ...
OCP, JSE 6 Programmer (1Z0-851) - Guia practica 2 de 7(Flujos, Excepciones y ...OCP, JSE 6 Programmer (1Z0-851) - Guia practica 2 de 7(Flujos, Excepciones y ...
OCP, JSE 6 Programmer (1Z0-851) - Guia practica 2 de 7(Flujos, Excepciones y ...
 
Excepciones en Java
Excepciones en JavaExcepciones en Java
Excepciones en Java
 
Blog
BlogBlog
Blog
 
Blog
BlogBlog
Blog
 
3...3 manejo de excepciones y la clase string
3...3 manejo de excepciones y la clase string3...3 manejo de excepciones y la clase string
3...3 manejo de excepciones y la clase string
 
05 java excepciones
05 java excepciones05 java excepciones
05 java excepciones
 
Operadores C SHARP
Operadores C SHARPOperadores C SHARP
Operadores C SHARP
 
Las variables y constantes
Las variables y constantesLas variables y constantes
Las variables y constantes
 
Clase string y manejo de excepciones
Clase string y manejo de excepcionesClase string y manejo de excepciones
Clase string y manejo de excepciones
 
Las estructuras de control
Las estructuras de controlLas estructuras de control
Las estructuras de control
 
Resumen
ResumenResumen
Resumen
 

Similar a Monitores

Sincronizacion de procesos
Sincronizacion de procesosSincronizacion de procesos
Sincronizacion de procesoskruskaya salazar
 
S Incronizacion De Procesos
S Incronizacion De ProcesosS Incronizacion De Procesos
S Incronizacion De ProcesosAcristyM
 
S Incronizacion De Procesos
S Incronizacion De ProcesosS Incronizacion De Procesos
S Incronizacion De ProcesosAcristyM
 
Mecanismos de exclusion mutua y algoritmos
Mecanismos de exclusion mutua y algoritmosMecanismos de exclusion mutua y algoritmos
Mecanismos de exclusion mutua y algoritmosAbimael hernandez
 
009. diseño de circuitos secuenciales electroneumaticos programados
009. diseño de circuitos secuenciales electroneumaticos programados009. diseño de circuitos secuenciales electroneumaticos programados
009. diseño de circuitos secuenciales electroneumaticos programadosguelo
 
Controladores (teoria de control)
Controladores (teoria de control)Controladores (teoria de control)
Controladores (teoria de control)martinezeduardo
 
Mecanismo de-semáforos
Mecanismo de-semáforosMecanismo de-semáforos
Mecanismo de-semáforosmarioadair1298
 
UNIDAD II SISTEMAS OPERATIVOS
UNIDAD II SISTEMAS OPERATIVOSUNIDAD II SISTEMAS OPERATIVOS
UNIDAD II SISTEMAS OPERATIVOSSelqit Mgw
 
EL CONTROL COMO HERRAMIENTA FUNDAMENTAL EN EL PROCESO DE AUTOMATIZACIÓN EN LA...
EL CONTROL COMO HERRAMIENTA FUNDAMENTAL EN EL PROCESO DE AUTOMATIZACIÓN EN LA...EL CONTROL COMO HERRAMIENTA FUNDAMENTAL EN EL PROCESO DE AUTOMATIZACIÓN EN LA...
EL CONTROL COMO HERRAMIENTA FUNDAMENTAL EN EL PROCESO DE AUTOMATIZACIÓN EN LA...UDO Monagas
 
15894 pr cctica-3-introducciun-al-matlab-simulink
15894 pr cctica-3-introducciun-al-matlab-simulink15894 pr cctica-3-introducciun-al-matlab-simulink
15894 pr cctica-3-introducciun-al-matlab-simulinkFrank Arias Beltran
 
Concepto de semáforo, exclusión mutua y sección critica.
Concepto de semáforo, exclusión mutua y sección critica.Concepto de semáforo, exclusión mutua y sección critica.
Concepto de semáforo, exclusión mutua y sección critica.Uriel Martinez Cervantes
 
Programacion concurrente
Programacion concurrenteProgramacion concurrente
Programacion concurrentepuracastillo
 
38555282 manual-simulink
38555282 manual-simulink38555282 manual-simulink
38555282 manual-simulinkEdgar Bonilla
 
Presentación1
Presentación1Presentación1
Presentación1janet290
 
11 Automata Program
11 Automata Program11 Automata Program
11 Automata ProgramF Blanco
 

Similar a Monitores (20)

Sincronizacion de procesos
Sincronizacion de procesosSincronizacion de procesos
Sincronizacion de procesos
 
Procesos
ProcesosProcesos
Procesos
 
2.4 Cuestionario de comunicacion entre procesos
2.4 Cuestionario de comunicacion entre procesos2.4 Cuestionario de comunicacion entre procesos
2.4 Cuestionario de comunicacion entre procesos
 
S Incronizacion De Procesos
S Incronizacion De ProcesosS Incronizacion De Procesos
S Incronizacion De Procesos
 
S Incronizacion De Procesos
S Incronizacion De ProcesosS Incronizacion De Procesos
S Incronizacion De Procesos
 
Mecanismos de exclusion mutua y algoritmos
Mecanismos de exclusion mutua y algoritmosMecanismos de exclusion mutua y algoritmos
Mecanismos de exclusion mutua y algoritmos
 
009. diseño de circuitos secuenciales electroneumaticos programados
009. diseño de circuitos secuenciales electroneumaticos programados009. diseño de circuitos secuenciales electroneumaticos programados
009. diseño de circuitos secuenciales electroneumaticos programados
 
Controladores (teoria de control)
Controladores (teoria de control)Controladores (teoria de control)
Controladores (teoria de control)
 
Mecanismo de-semáforos
Mecanismo de-semáforosMecanismo de-semáforos
Mecanismo de-semáforos
 
UNIDAD II SISTEMAS OPERATIVOS
UNIDAD II SISTEMAS OPERATIVOSUNIDAD II SISTEMAS OPERATIVOS
UNIDAD II SISTEMAS OPERATIVOS
 
EL CONTROL COMO HERRAMIENTA FUNDAMENTAL EN EL PROCESO DE AUTOMATIZACIÓN EN LA...
EL CONTROL COMO HERRAMIENTA FUNDAMENTAL EN EL PROCESO DE AUTOMATIZACIÓN EN LA...EL CONTROL COMO HERRAMIENTA FUNDAMENTAL EN EL PROCESO DE AUTOMATIZACIÓN EN LA...
EL CONTROL COMO HERRAMIENTA FUNDAMENTAL EN EL PROCESO DE AUTOMATIZACIÓN EN LA...
 
Tema0397
Tema0397Tema0397
Tema0397
 
15894 pr cctica-3-introducciun-al-matlab-simulink
15894 pr cctica-3-introducciun-al-matlab-simulink15894 pr cctica-3-introducciun-al-matlab-simulink
15894 pr cctica-3-introducciun-al-matlab-simulink
 
Concepto de semáforo, exclusión mutua y sección critica.
Concepto de semáforo, exclusión mutua y sección critica.Concepto de semáforo, exclusión mutua y sección critica.
Concepto de semáforo, exclusión mutua y sección critica.
 
Programacion concurrente
Programacion concurrenteProgramacion concurrente
Programacion concurrente
 
38555282 manual-simulink
38555282 manual-simulink38555282 manual-simulink
38555282 manual-simulink
 
Curso-de-PLC.pdf
Curso-de-PLC.pdfCurso-de-PLC.pdf
Curso-de-PLC.pdf
 
Controladores Automaticos - Millan Manuel
Controladores Automaticos - Millan ManuelControladores Automaticos - Millan Manuel
Controladores Automaticos - Millan Manuel
 
Presentación1
Presentación1Presentación1
Presentación1
 
11 Automata Program
11 Automata Program11 Automata Program
11 Automata Program
 

Último

Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESOPrueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESOluismii249
 
SESION DE PERSONAL SOCIAL. La convivencia en familia 22-04-24 -.doc
SESION DE PERSONAL SOCIAL.  La convivencia en familia 22-04-24  -.docSESION DE PERSONAL SOCIAL.  La convivencia en familia 22-04-24  -.doc
SESION DE PERSONAL SOCIAL. La convivencia en familia 22-04-24 -.docRodneyFrankCUADROSMI
 
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docxPLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docxiemerc2024
 
INSTRUCCION PREPARATORIA DE TIRO .pptx
INSTRUCCION PREPARATORIA DE TIRO   .pptxINSTRUCCION PREPARATORIA DE TIRO   .pptx
INSTRUCCION PREPARATORIA DE TIRO .pptxdeimerhdz21
 
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
 
Estrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónEstrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónLourdes Feria
 
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICABIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICAÁngel Encinas
 
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docxEliaHernndez7
 
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptxSEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptxYadi Campos
 
Qué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativaQué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativaDecaunlz
 
Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Lourdes Feria
 
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLAACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLAJAVIER SOLIS NOYOLA
 
SEPTIMO SEGUNDO PERIODO EMPRENDIMIENTO VS
SEPTIMO SEGUNDO PERIODO EMPRENDIMIENTO VSSEPTIMO SEGUNDO PERIODO EMPRENDIMIENTO VS
SEPTIMO SEGUNDO PERIODO EMPRENDIMIENTO VSYadi Campos
 
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdfCurso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdfFrancisco158360
 
5.- Doerr-Mide-lo-que-importa-DESARROLLO PERSONAL
5.- Doerr-Mide-lo-que-importa-DESARROLLO PERSONAL5.- Doerr-Mide-lo-que-importa-DESARROLLO PERSONAL
5.- Doerr-Mide-lo-que-importa-DESARROLLO PERSONALMiNeyi1
 
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdfNUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdfUPTAIDELTACHIRA
 
Abril 2024 - Maestra Jardinera Ediba.pdf
Abril 2024 -  Maestra Jardinera Ediba.pdfAbril 2024 -  Maestra Jardinera Ediba.pdf
Abril 2024 - Maestra Jardinera Ediba.pdfValeriaCorrea29
 

Último (20)

Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESOPrueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
 
SESION DE PERSONAL SOCIAL. La convivencia en familia 22-04-24 -.doc
SESION DE PERSONAL SOCIAL.  La convivencia en familia 22-04-24  -.docSESION DE PERSONAL SOCIAL.  La convivencia en familia 22-04-24  -.doc
SESION DE PERSONAL SOCIAL. La convivencia en familia 22-04-24 -.doc
 
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docxPLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
 
INSTRUCCION PREPARATORIA DE TIRO .pptx
INSTRUCCION PREPARATORIA DE TIRO   .pptxINSTRUCCION PREPARATORIA DE TIRO   .pptx
INSTRUCCION PREPARATORIA DE TIRO .pptx
 
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
 
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
 
Estrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónEstrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcción
 
Tema 11. Dinámica de la hidrosfera 2024
Tema 11.  Dinámica de la hidrosfera 2024Tema 11.  Dinámica de la hidrosfera 2024
Tema 11. Dinámica de la hidrosfera 2024
 
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICABIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
 
Supuestos_prácticos_funciones.docx
Supuestos_prácticos_funciones.docxSupuestos_prácticos_funciones.docx
Supuestos_prácticos_funciones.docx
 
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
 
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptxSEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
 
Qué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativaQué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativa
 
Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...
 
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLAACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
 
SEPTIMO SEGUNDO PERIODO EMPRENDIMIENTO VS
SEPTIMO SEGUNDO PERIODO EMPRENDIMIENTO VSSEPTIMO SEGUNDO PERIODO EMPRENDIMIENTO VS
SEPTIMO SEGUNDO PERIODO EMPRENDIMIENTO VS
 
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdfCurso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
 
5.- Doerr-Mide-lo-que-importa-DESARROLLO PERSONAL
5.- Doerr-Mide-lo-que-importa-DESARROLLO PERSONAL5.- Doerr-Mide-lo-que-importa-DESARROLLO PERSONAL
5.- Doerr-Mide-lo-que-importa-DESARROLLO PERSONAL
 
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdfNUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
 
Abril 2024 - Maestra Jardinera Ediba.pdf
Abril 2024 -  Maestra Jardinera Ediba.pdfAbril 2024 -  Maestra Jardinera Ediba.pdf
Abril 2024 - Maestra Jardinera Ediba.pdf
 

Monitores

  • 1.
  • 2. Introducción Los semáforos, a pesar de su sencillez de uso, son el equivalente a las instrucciones goto y el manejo de apuntadores en los lenguajes de programación imperativos: son muy susceptibles a errores. Su utilización exige disciplina. Por ejemplo, el siguiente error conduce inmediatamente a un deadlock:  P(S) ; sección crítica P(S); Generalmente resulta difícil distinguir entre los dos usos de los semáforos (i.e. para exclusión mutua y condición de sincronización) en un programa sin una revisión detallada de todo el código. Los monitores pretenden ayudar a evitar los riesgos a que se presentan esos tipos de errores de programación.
  • 3. Definición Un monitor es un módulo opaco que encapsula servicios mediante métodos de acceso, así como sus variables locales y globales. La única forma para manipular o acceder las variables dentro del monitor es invocando alguno de los métodos de servicio. Solamente se permite que un hilo esté activo a la vez dentro del monitor ejecutando uno de los métodos de servicio, asegurando exclusión mutua y previniendo implícitamente la presencia de condiciones de contención. Cada objeto monitor tiene un candado, el compilador del lenguaje de programación genera el código al comienzo de cada método de servicio para adquirir el candado y al final para liberarlo. Si el monitor está ocupado por algún hilo (i.e. se apropió del candado), los hilos siguientes que invoquen alguno de los métodos de servicio del monitor (i.e. intenten entrar al monitor) serán bloqueados e incorporados en la lista de espera para adquirir el candado.
  • 4. Al igual que los semáforos, los monitores ofrecen las dos formas de sincronización: la exclusión mutua está garantizada por el compilador implícitamente al invocar métodos de servicio. Para proporcionar mecanismos para sincronización de eventos (condición de sincronización) un monitor puede contener variables de condición, las cuales pueden manipularse mediante las operaciones signal y wait (que son análogas a las operaciones P y V en semáforos binarios, respectivamente). Su funcionamiento se describe enseguida:  wait: Un hilo que espera a que ocurra un evento indicado por una variable de condición deja al monitor temporalmente, libera el candado y se une a la lista de hilos bloqueados correspondiente a esa variable de condición.
  • 5.  signal: Cada señal con respecto a una variable de condición despierta a un hilo de la lista de hilos bloqueados correspondiente a esa variable de condición (no necesariamente el que lleva más tiempo en espera), si no hay ningún hilo esperando, la señal no se almacena y no tiene efecto (contrastando a la manera en la cual los semáforos funcionan). Dado que las operaciones de liberar al candado y unirse a la lista de espera por una variable de condición son operaciones atómicas no hay riesgo de pérdida de las señales (i.e. `wakeup'). Al hilo despertado por la señal se le desplaza de esa lista de bloqueados y se le coloca en la lista de hilos en espera por entrar al monitor. Una vez que el candado sea readquirido, el hilo en cuestión continúa la ejecución del método de servicio que invocó anteriormente (i.e. la primera vez para entrar al monitor).
  • 6. Ejemplo Como ejemplo, mostramos (en pseudo código) un fragmento para la solución al problema del productor-consumidor utilizando un buffer limitado. public synchronized void deposit(double data) { if (count == size) wait(notFull); buf[rear] = data; 4 rear = (rear+1) % size; count++; if (count == 1) notify(notEmpty); } public synchronized double fetch() { double result; if (count == 0) wait(notEmpty); result = buf[front]; front = (front+1) % size; count--; if (count == size-1) notify(notFull); return result; }
  • 7.  Si el buffer está lleno, el productor se bloquea con la invocación al método wait respecto a la variable de condición notFull, el productor es despertado por el consumidor mediante la señal notify cuando deja un espacio libre en el buffer.  Si el buffer está vacío, el consumidor se bloquea respecto la variable notEmpty y a su vez será despertado por el productor cuando éste coloque un elemento en el buffer. Para la disciplina signal and continue, no se requiere que el hilo que emitió la señal salga del monitor, ni tampoco que el hilo despertado tenga prioridad para proceder dentro del monitor sobre los demás hilos que están esperando entrar (compiten por el candado).