sincronizar dos o ms procesos o hilos de ejecucin que usan recursos compartidos Un monitor es un mecanismo de software para control de concurrencia que contiene los datos y los procedimientos necesarios para realizar la asignacin de un determinado recurso o grupo de recursos compartidos reutilizables en serie. . Un monitor se usa para manejar todas las funciones de concurrencia, comunicacin entre procesos y localizacin fsica de recursos en una regin crtica.
.Para llevar a cabo la asignacin de un recurso un proceso debe llamar a una funcin particular del monitor. Pueden existir varios procesos que deseen entrar al monitor, pero la exclusin mutua queda definida por la frontera del monitor: en un tiempo dado slo un proceso se encuentra dentro del monitor. .El monitor consta de varios procedimientos que manipulan datos internos y existe una parte de inicializacin. El monitor puede ser visto como una aduana en donde se permite o no el acceso a un recurso compartido. Los datos contenidos en el monitor pueden ser globales (accesibles a todos los procedimientos dentro del monitor), o locales (accesibles a un procedimiento especfico). Estos datos slo son accesibles dentro del monitor; no hay forma de que un proceso fuera del monitor pueda acceder a dichos datos. Los monitores estn pensados para ser usados en entornos multiproceso o multihilo, y por lo tanto muchos procesos o threads pueden llamar a la vez a un procedimiento del monitor. Los monitores garantizan que en cualquier momento, a lo sumo un thread puede estar ejecutando dentro de un monitor. Los monitores poseen variables de condicin que son accesibles slo desde adentro. Existen dos funciones para operar con las variables de condicin: cond_wait(c): suspende la ejecucin del proceso que la llama con la condicin c. El monitor se convierte en el dueo del lock y queda disponible para que otro proceso pueda entrar. cond_signal(c): reanuda la ejecucin de algn proceso suspendido con cond_wait bajo la misma condicin. Si hay varios procesos con esas caractersticas elige uno. Si no hay ninguno, no hace nada.