Monitores

De Wiki de Sistemas Operativos
Saltar a: navegación, buscar

Idea desarrollada en los años 70 Brinch-Hansen y Hoare que notaron los siguientes problemas con respecto al uso de los semáforos:

  • Los semáforos son difíciles de usar. Es frecuente que el programador cometa errores al emplearlos.
  • El compilador no asiste al programador en el desarrollo de programas concurrentes mediante semáforos, pues no ofrece ningún tipo de validación en tiempo de compilación.

Los monitores tienen que estar integrados en el lenguaje de programación.

Definición

Un monitor es una estructura del lenguaje cuyas principales características son:

  • Los datos son privados.
  • Ofrecen una serie de métodos públicos para acceder a dichos datos.
  • En cada momento sólo puede haber un proceso activo en algún método del monitor.

Permiten organizar procesos en espera mediante:

  • Variables de condición: lista de procesos inicialmente vacía.
  • Primitivas:
 * wait(c) : cuando el proceso p invocante a c y proceso p bloquea.
 * signal(c: selecciona a uno de los procesos en c y lo pone preparado.


Fuentes

http://java.sun.com/developer/Books/performance2/chap4.pdf