SlideShare una empresa de Scribd logo
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 excepciones
jbersosa
 
Excepciones en java
Excepciones en javaExcepciones en java
Excepciones en javajent46
 
Las excepciones standar
Las excepciones standarLas excepciones standar
Las excepciones standar
jbersosa
 
excepciones en java
excepciones en javaexcepciones en java
excepciones en java
www.mentoringit.com.mx
 
Gestión de errores en Java
Gestión de errores en JavaGestión de errores en Java
Gestión de errores en Java
eccutpl
 
Java excepciones
Java excepcionesJava excepciones
Java excepcionesricardo_79
 
Excepciones
ExcepcionesExcepciones
Excepciones
Ronny Parra
 
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
 
Excepciones en Java
Excepciones en JavaExcepciones en Java
Excepciones en Java
Juan Aragón Cruz
 
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 string
Jacqui Venegas
 
05 java excepciones
05 java excepciones05 java excepciones
05 java excepciones
Renny Batista
 
Las variables y constantes
Las variables y constantesLas variables y constantes
Las variables y constantes
miguelangelvillelli
 
Clase string y manejo de excepciones
Clase string y manejo de excepcionesClase string y manejo de excepciones
Clase string y manejo de excepciones
AliciaSandovalCamacho
 

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
 
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
Instituto Tecnológico de Tepic
 
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 programados
guelo
 
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áforos
marioadair1298
 
UNIDAD II SISTEMAS OPERATIVOS
UNIDAD II SISTEMAS OPERATIVOSUNIDAD II SISTEMAS OPERATIVOS
UNIDAD II SISTEMAS OPERATIVOS
Selqit 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 concurrente
puracastillo
 
38555282 manual-simulink
38555282 manual-simulink38555282 manual-simulink
38555282 manual-simulinkEdgar Bonilla
 
Curso-de-PLC.pdf
Curso-de-PLC.pdfCurso-de-PLC.pdf
Curso-de-PLC.pdf
MarcoAntonioGonzales31
 
Controladores Automaticos - Millan Manuel
Controladores Automaticos - Millan ManuelControladores Automaticos - Millan Manuel
Controladores Automaticos - Millan Manuel
Manuel Jose Millan Trujillo
 
Presentación1
Presentación1Presentación1
Presentación1
janet290
 
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

Examen de Lengua Castellana y Literatura de la EBAU en Castilla-La Mancha 2024.
Examen de Lengua Castellana y Literatura de la EBAU en Castilla-La Mancha 2024.Examen de Lengua Castellana y Literatura de la EBAU en Castilla-La Mancha 2024.
Examen de Lengua Castellana y Literatura de la EBAU en Castilla-La Mancha 2024.
20minutos
 
Septima-Sesion-Ordinaria-del-Consejo-Tecnico-Escolar-y-el-Taller-Intensivo-de...
Septima-Sesion-Ordinaria-del-Consejo-Tecnico-Escolar-y-el-Taller-Intensivo-de...Septima-Sesion-Ordinaria-del-Consejo-Tecnico-Escolar-y-el-Taller-Intensivo-de...
Septima-Sesion-Ordinaria-del-Consejo-Tecnico-Escolar-y-el-Taller-Intensivo-de...
AracelidelRocioOrdez
 
Examen de la EvAU 2024 en Navarra Latín.
Examen de la EvAU 2024 en Navarra Latín.Examen de la EvAU 2024 en Navarra Latín.
Examen de la EvAU 2024 en Navarra Latín.
amayaltc18
 
Semana 10-TSM-del 27 al 31 de mayo 2024.pptx
Semana 10-TSM-del 27 al 31 de mayo 2024.pptxSemana 10-TSM-del 27 al 31 de mayo 2024.pptx
Semana 10-TSM-del 27 al 31 de mayo 2024.pptx
LorenaCovarrubias12
 
PPT: El fundamento del gobierno de Dios.
PPT: El fundamento del gobierno de Dios.PPT: El fundamento del gobierno de Dios.
PPT: El fundamento del gobierno de Dios.
https://gramadal.wordpress.com/
 
Introducción a la ciencia de datos con power BI
Introducción a la ciencia de datos con power BIIntroducción a la ciencia de datos con power BI
Introducción a la ciencia de datos con power BI
arleyo2006
 
Productos contestatos de la Séptima sesión ordinaria de CTE y TIFC para Docen...
Productos contestatos de la Séptima sesión ordinaria de CTE y TIFC para Docen...Productos contestatos de la Séptima sesión ordinaria de CTE y TIFC para Docen...
Productos contestatos de la Séptima sesión ordinaria de CTE y TIFC para Docen...
Monseespinoza6
 
Aprender-IA: Recursos online gratuitos para estar al tanto y familiarizarse c...
Aprender-IA: Recursos online gratuitos para estar al tanto y familiarizarse c...Aprender-IA: Recursos online gratuitos para estar al tanto y familiarizarse c...
Aprender-IA: Recursos online gratuitos para estar al tanto y familiarizarse c...
María Sánchez González (@cibermarikiya)
 
El Liberalismo económico en la sociedad y en el mundo
El Liberalismo económico en la sociedad y en el mundoEl Liberalismo económico en la sociedad y en el mundo
El Liberalismo económico en la sociedad y en el mundo
SandraBenitez52
 
Mapa_Conceptual de los fundamentos de la evaluación educativa
Mapa_Conceptual de los fundamentos de la evaluación educativaMapa_Conceptual de los fundamentos de la evaluación educativa
Mapa_Conceptual de los fundamentos de la evaluación educativa
TatianaVanessaAltami
 
ROMPECABEZAS DE ECUACIONES DE PRIMER GRADO OLIMPIADA DE PARÍS 2024. Por JAVIE...
ROMPECABEZAS DE ECUACIONES DE PRIMER GRADO OLIMPIADA DE PARÍS 2024. Por JAVIE...ROMPECABEZAS DE ECUACIONES DE PRIMER GRADO OLIMPIADA DE PARÍS 2024. Por JAVIE...
ROMPECABEZAS DE ECUACIONES DE PRIMER GRADO OLIMPIADA DE PARÍS 2024. Por JAVIE...
JAVIER SOLIS NOYOLA
 
CONCLUSIONES-DESCRIPTIVAS NIVEL PRIMARIA
CONCLUSIONES-DESCRIPTIVAS NIVEL PRIMARIACONCLUSIONES-DESCRIPTIVAS NIVEL PRIMARIA
CONCLUSIONES-DESCRIPTIVAS NIVEL PRIMARIA
BetzabePecheSalcedo1
 
Horarios y fechas de la PAU 2024 en la Comunidad Valenciana.
Horarios y fechas de la PAU 2024 en la Comunidad Valenciana.Horarios y fechas de la PAU 2024 en la Comunidad Valenciana.
Horarios y fechas de la PAU 2024 en la Comunidad Valenciana.
20minutos
 
c3.hu3.p3.p2.Superioridad e inferioridad en la sociedad.pptx
c3.hu3.p3.p2.Superioridad e inferioridad en la sociedad.pptxc3.hu3.p3.p2.Superioridad e inferioridad en la sociedad.pptx
c3.hu3.p3.p2.Superioridad e inferioridad en la sociedad.pptx
Martín Ramírez
 
PLAN DE CAPACITACION xxxxxxxxxxxxxxxxxxx
PLAN DE CAPACITACION xxxxxxxxxxxxxxxxxxxPLAN DE CAPACITACION xxxxxxxxxxxxxxxxxxx
PLAN DE CAPACITACION xxxxxxxxxxxxxxxxxxx
cportizsanchez48
 
El lugar mas bonito del mundo resumen del libro
El lugar mas bonito del mundo resumen del libroEl lugar mas bonito del mundo resumen del libro
El lugar mas bonito del mundo resumen del libro
Distea V región
 
Presentación Curso C. Diferencial - 2024-1.pdf
Presentación Curso C. Diferencial - 2024-1.pdfPresentación Curso C. Diferencial - 2024-1.pdf
Presentación Curso C. Diferencial - 2024-1.pdf
H4RV3YH3RN4ND3Z
 
Varón de 30 años acude a consulta por presentar hipertensión arterial de reci...
Varón de 30 años acude a consulta por presentar hipertensión arterial de reci...Varón de 30 años acude a consulta por presentar hipertensión arterial de reci...
Varón de 30 años acude a consulta por presentar hipertensión arterial de reci...
HuallpaSamaniegoSeba
 
Nuevos espacios,nuevos tiempos,nuevas practica.pptx
Nuevos espacios,nuevos tiempos,nuevas practica.pptxNuevos espacios,nuevos tiempos,nuevas practica.pptx
Nuevos espacios,nuevos tiempos,nuevas practica.pptx
lautyzaracho4
 
Libro infantil sapo y sepo un año entero pdf
Libro infantil sapo y sepo un año entero pdfLibro infantil sapo y sepo un año entero pdf
Libro infantil sapo y sepo un año entero pdf
danitarb
 

Último (20)

Examen de Lengua Castellana y Literatura de la EBAU en Castilla-La Mancha 2024.
Examen de Lengua Castellana y Literatura de la EBAU en Castilla-La Mancha 2024.Examen de Lengua Castellana y Literatura de la EBAU en Castilla-La Mancha 2024.
Examen de Lengua Castellana y Literatura de la EBAU en Castilla-La Mancha 2024.
 
Septima-Sesion-Ordinaria-del-Consejo-Tecnico-Escolar-y-el-Taller-Intensivo-de...
Septima-Sesion-Ordinaria-del-Consejo-Tecnico-Escolar-y-el-Taller-Intensivo-de...Septima-Sesion-Ordinaria-del-Consejo-Tecnico-Escolar-y-el-Taller-Intensivo-de...
Septima-Sesion-Ordinaria-del-Consejo-Tecnico-Escolar-y-el-Taller-Intensivo-de...
 
Examen de la EvAU 2024 en Navarra Latín.
Examen de la EvAU 2024 en Navarra Latín.Examen de la EvAU 2024 en Navarra Latín.
Examen de la EvAU 2024 en Navarra Latín.
 
Semana 10-TSM-del 27 al 31 de mayo 2024.pptx
Semana 10-TSM-del 27 al 31 de mayo 2024.pptxSemana 10-TSM-del 27 al 31 de mayo 2024.pptx
Semana 10-TSM-del 27 al 31 de mayo 2024.pptx
 
PPT: El fundamento del gobierno de Dios.
PPT: El fundamento del gobierno de Dios.PPT: El fundamento del gobierno de Dios.
PPT: El fundamento del gobierno de Dios.
 
Introducción a la ciencia de datos con power BI
Introducción a la ciencia de datos con power BIIntroducción a la ciencia de datos con power BI
Introducción a la ciencia de datos con power BI
 
Productos contestatos de la Séptima sesión ordinaria de CTE y TIFC para Docen...
Productos contestatos de la Séptima sesión ordinaria de CTE y TIFC para Docen...Productos contestatos de la Séptima sesión ordinaria de CTE y TIFC para Docen...
Productos contestatos de la Séptima sesión ordinaria de CTE y TIFC para Docen...
 
Aprender-IA: Recursos online gratuitos para estar al tanto y familiarizarse c...
Aprender-IA: Recursos online gratuitos para estar al tanto y familiarizarse c...Aprender-IA: Recursos online gratuitos para estar al tanto y familiarizarse c...
Aprender-IA: Recursos online gratuitos para estar al tanto y familiarizarse c...
 
El Liberalismo económico en la sociedad y en el mundo
El Liberalismo económico en la sociedad y en el mundoEl Liberalismo económico en la sociedad y en el mundo
El Liberalismo económico en la sociedad y en el mundo
 
Mapa_Conceptual de los fundamentos de la evaluación educativa
Mapa_Conceptual de los fundamentos de la evaluación educativaMapa_Conceptual de los fundamentos de la evaluación educativa
Mapa_Conceptual de los fundamentos de la evaluación educativa
 
ROMPECABEZAS DE ECUACIONES DE PRIMER GRADO OLIMPIADA DE PARÍS 2024. Por JAVIE...
ROMPECABEZAS DE ECUACIONES DE PRIMER GRADO OLIMPIADA DE PARÍS 2024. Por JAVIE...ROMPECABEZAS DE ECUACIONES DE PRIMER GRADO OLIMPIADA DE PARÍS 2024. Por JAVIE...
ROMPECABEZAS DE ECUACIONES DE PRIMER GRADO OLIMPIADA DE PARÍS 2024. Por JAVIE...
 
CONCLUSIONES-DESCRIPTIVAS NIVEL PRIMARIA
CONCLUSIONES-DESCRIPTIVAS NIVEL PRIMARIACONCLUSIONES-DESCRIPTIVAS NIVEL PRIMARIA
CONCLUSIONES-DESCRIPTIVAS NIVEL PRIMARIA
 
Horarios y fechas de la PAU 2024 en la Comunidad Valenciana.
Horarios y fechas de la PAU 2024 en la Comunidad Valenciana.Horarios y fechas de la PAU 2024 en la Comunidad Valenciana.
Horarios y fechas de la PAU 2024 en la Comunidad Valenciana.
 
c3.hu3.p3.p2.Superioridad e inferioridad en la sociedad.pptx
c3.hu3.p3.p2.Superioridad e inferioridad en la sociedad.pptxc3.hu3.p3.p2.Superioridad e inferioridad en la sociedad.pptx
c3.hu3.p3.p2.Superioridad e inferioridad en la sociedad.pptx
 
PLAN DE CAPACITACION xxxxxxxxxxxxxxxxxxx
PLAN DE CAPACITACION xxxxxxxxxxxxxxxxxxxPLAN DE CAPACITACION xxxxxxxxxxxxxxxxxxx
PLAN DE CAPACITACION xxxxxxxxxxxxxxxxxxx
 
El lugar mas bonito del mundo resumen del libro
El lugar mas bonito del mundo resumen del libroEl lugar mas bonito del mundo resumen del libro
El lugar mas bonito del mundo resumen del libro
 
Presentación Curso C. Diferencial - 2024-1.pdf
Presentación Curso C. Diferencial - 2024-1.pdfPresentación Curso C. Diferencial - 2024-1.pdf
Presentación Curso C. Diferencial - 2024-1.pdf
 
Varón de 30 años acude a consulta por presentar hipertensión arterial de reci...
Varón de 30 años acude a consulta por presentar hipertensión arterial de reci...Varón de 30 años acude a consulta por presentar hipertensión arterial de reci...
Varón de 30 años acude a consulta por presentar hipertensión arterial de reci...
 
Nuevos espacios,nuevos tiempos,nuevas practica.pptx
Nuevos espacios,nuevos tiempos,nuevas practica.pptxNuevos espacios,nuevos tiempos,nuevas practica.pptx
Nuevos espacios,nuevos tiempos,nuevas practica.pptx
 
Libro infantil sapo y sepo un año entero pdf
Libro infantil sapo y sepo un año entero pdfLibro infantil sapo y sepo un año entero pdf
Libro infantil sapo y sepo un año entero 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).