PRESENTADO POR:
DANIEL MIGUEL
VARGAS
VALDERRAMA
COD:2012153093

MONITORES
EXCLUSION MUTUA Y SINCRONIZACION

4BN-SISTEMAS
OPERATIVOS -ECCI
MONITORES-DEFINICION

 son estructuras de un lenguaje de programación que ofrecen una funcionalidad
equivalente a la de los semáforos y que son más fáciles de controlar.
MONITORES-HISTORIA

 Los monitores fueron propuestos por Brich Hansen y mejorados por Hoare para poder
utilizar procesos automáticos de sincronización. Un módulo monitor encapsula la mutua
exclusión de datos y procedimientos que pueden acceder a los datos protegidos. Los
usuarios pueden hacer llamadas a estos procedimientos usando al monitor como una
tabla de estado para determinar cuando proceder y cuando suspender operaciones.
MONITORES-CARACTERISTICA

 Un monitor es un módulo de software que consta de uno o más procedimientos, una
secuencia de inicialización y unos datos locales. Las características básicas de un monitor
son las siguientes:
MONITORES-CONDICIONES

 Las variables de datos locales están sólo accesibles para los procedimientos del monitor y
no para procedimientos externos.
 Un proceso entra en el monitor invocando a uno de sus procedimientos.
 Sólo un proceso puede estar ejecutando en el monitor en un instante dado; cualquier
otro proceso que haya invocado al monitor quedará suspendido mientras espera que el
monitor esté disponible.
MONITORES-TIPOS DE FUNCIONES

 CWAIT(c): Suspende la ejecución del proceso llamado bajo la condición c. El monitor
está ahora disponible para ser usado por otro proceso.
 CSIGNAL(c): Reanuda la ejecución de algún proceso suspendido después de un CWAIT()
bajo la misma condición. Si hay varios procesos, elige uno de ellos; si no hay ninguno, no
hace nada.
MONITORES- EJEMPLO

 definen simplemente la cola de espera y no tienen valores numéricos como los
semáforos;
MONITORES- EJEMPLO
MONITORES- EJEMPLO

 En cualquier momento que una condición variable CWAIT() es encontrada, el proceso
ejecutando el CWAIT() está siempre bloqueado.
MONITORES- EJEMPLO

 En cualquier momento que un CSIGNAL() es encontrado en una condición variable, un
proceso esperando en la cola de condiciones variables (el primero si es FIFO) es activado
(puesto en la cola de listos). Si no hay procesos esperando, el operador CSIGNAL() es
ignorado.

Monitores-sistemas operativos

  • 1.
  • 2.
    MONITORES-DEFINICION  son estructurasde un lenguaje de programación que ofrecen una funcionalidad equivalente a la de los semáforos y que son más fáciles de controlar.
  • 3.
    MONITORES-HISTORIA  Los monitoresfueron propuestos por Brich Hansen y mejorados por Hoare para poder utilizar procesos automáticos de sincronización. Un módulo monitor encapsula la mutua exclusión de datos y procedimientos que pueden acceder a los datos protegidos. Los usuarios pueden hacer llamadas a estos procedimientos usando al monitor como una tabla de estado para determinar cuando proceder y cuando suspender operaciones.
  • 4.
    MONITORES-CARACTERISTICA  Un monitores un módulo de software que consta de uno o más procedimientos, una secuencia de inicialización y unos datos locales. Las características básicas de un monitor son las siguientes:
  • 5.
    MONITORES-CONDICIONES  Las variablesde datos locales están sólo accesibles para los procedimientos del monitor y no para procedimientos externos.  Un proceso entra en el monitor invocando a uno de sus procedimientos.  Sólo un proceso puede estar ejecutando en el monitor en un instante dado; cualquier otro proceso que haya invocado al monitor quedará suspendido mientras espera que el monitor esté disponible.
  • 6.
    MONITORES-TIPOS DE FUNCIONES CWAIT(c): Suspende la ejecución del proceso llamado bajo la condición c. El monitor está ahora disponible para ser usado por otro proceso.  CSIGNAL(c): Reanuda la ejecución de algún proceso suspendido después de un CWAIT() bajo la misma condición. Si hay varios procesos, elige uno de ellos; si no hay ninguno, no hace nada.
  • 7.
    MONITORES- EJEMPLO  definensimplemente la cola de espera y no tienen valores numéricos como los semáforos;
  • 8.
  • 9.
    MONITORES- EJEMPLO  Encualquier momento que una condición variable CWAIT() es encontrada, el proceso ejecutando el CWAIT() está siempre bloqueado.
  • 10.
    MONITORES- EJEMPLO  Encualquier momento que un CSIGNAL() es encontrado en una condición variable, un proceso esperando en la cola de condiciones variables (el primero si es FIFO) es activado (puesto en la cola de listos). Si no hay procesos esperando, el operador CSIGNAL() es ignorado.