lunes, 14 de noviembre de 2011

2.10 Monitores

Son objetos destinados a ser usados  sin peligro por más de  un hilo  de  ejecución.  La característica principalmente los define  en que sus métodos son  ejecutados  con exclusión mutua lo que  significa, que encada  momento  en el tiempo, un hilo como máximo puede estar  ejecutado  cualquiera de sus  métodos.  Esta exclusión mutua simplifica el racionamiento  de implementar monitores en lugar de código  a ser  ejecutado  en  paralelo.
El estado   y el estudió de los semáforos se puede ver en las llamadas a las funciones necesarias para utilizarlos que dan ser repetidas en el código del programa, haciendo fácil corregir errores y asegurar el buen funcionamiento de los algoritmos. Para evitar estos inconvenientes  desarrollando los monitores.
Monitores con señales
       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:
1.       Las variables de datos locales están sólo accesibles para los procedimientos del monitor y no para procedimientos externos.
2.       Un proceso entra en el monitor invocando a uno de sus procedimientos.
3.       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.
       Solamente una llamada a un módulo monitor puede ser activada por vez. Esto protege a los datos dentro del monitor de accesos simultáneos de múltiples usuarios. Los usuarios que intentan acceder al monitor mientras este está ocupado son bloqueados en una cola de entrada al monitor.
       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.

No hay comentarios:

Publicar un comentario