Un monitor es un mecanismo de software para control de concurrencia que contiene los datos y los procedimientos necesarios para realizar la asignación de un determinado recurso o grupo de recursos compartidos reutilizables en serie.
Un monitor se usa para manejar todas las funciones de concurrencia, comunicación entre procesos y localización física de recursos en una región crítica.
Para llevar a cabo la asignación de un recurso un proceso debe llamar a una función particular del monitor. Pueden existir varios procesos que deseen entrar al monitor, pero la exclusión mutua queda definida por la frontera del monitor: en un tiempo dado sólo un proceso se encuentra dentro del monitor. Los datos contenidos en el monitor pueden ser globales (accesibles a todos los procedimientos dentro del monitor), o locales (accesibles a un procedimiento específico). Estos datos sólo son accesibles dentro del monitor; no hay forma de que un proceso fuera del monitor pueda acceder a dichos datos.
El monitor consta de varios procedimientos que manipulan datos internos y existe una parte de inicialización (figura 5.1). El monitor puede ser visto como una aduana en donde se permite o no el acceso a un recurso compartido.
El código del monitor consta de 2 partes lógicas:
El algoritmo para la manipulación del recurso.
El mecanismo para la asignación del orden en el cual los procesos asociados pueden compartir el recurso.
No hay comentarios:
Publicar un comentario