Вы находитесь на странице: 1из 15

Los monitores son estructuras de datos utilizadas

en lenguajes de programacin para


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.

Вам также может понравиться