martes, 23 de agosto de 2011

definicion:
El monitor de computadora o pantalla de ordenador, aunque también es común llamarlo «pantalla», es un dispositivo de salida que, mediante una interfaz, muestra los resultados del procesamiento de una computadora.
historia:
Los primeros monitores surgieron en el año 1981, siguiendo el estándar MDA (Monochrome Display Adapter) eran monitores monocromáticos (de un solo color) de IBM. Estaban expresamente diseñados para modo texto y soportaban subrayado, negrita, cursiva, normal, e invisibilidad para textos. Poco después y en el mismo año salieron los monitores CGA (Color Graphics Adapter-graficos adaptados a color) fueron comercializados en 1981 al desarrollarse la primera tarjeta gráfica a partir del estándar CGA de IBM. Al comercializarse a la vez que los MDA los usuarios de PC optaban por comprar el monitor monocromático por su costo.
Tres años más tarde surgió el monitor EGA (Enhanced Graphics Adapter - adaptador de graficos mejorados) estándar desarrollado por IBM para la visualización de gráficos, este monitor aportaba más colores (16) y una mayor resolución. En 1987 surgió el estándar VGA (Video Graphics Array - graficos de video arreglados) fue un estándar muy acogido y dos años más tarde se mejoró y rediseñó para solucionar ciertos problemas que surgieron, desarrollando así SVGA (Super VGA), que también aumentaba colores y resoluciones, para este nuevo estándar se desarrollaron tarjetas gráficas de fabricantes hasta el día de hoy conocidos como S3 Graphics, NVIDIA o ATI entre otros.
Con este último estándar surgieron los monitores CRT que hasta no hace mucho seguían estando en la mayoría de hogares donde había un ordenador.
caracteristicas:
La característica que principalmente los define es que sus métodos son ejecutados con exclusión mutua.
componentes:
Un monitor tiene cuatro componentes: inicialización, datos privados, procedimientos del monitor y cola de entrada.
  • Inicialización: contiene el código a ser ejecutado cuando el monitor es creado
  • Datos privados: contiene los procedimientos privados, que sólo pueden ser usados desde dentro del monitor y no son visibles desde fuera
  • Procedimientos del monitor: son los procedimientos que pueden ser llamados desde fuera del monitor.
  • Cola de entrada: contiene a los hilos que han llamado a algún procedimiento del monitor pero no han podido adquirir permiso para ejecutarlos aún.
tipos:

 Tipo Hoare

En la definición original de Hoare, el thread que ejecuta cond_signal le cede el monitor al thread que esperaba. El monitor toma entonces el lock y se lo entrega al thread durmiente, que reanuda la ejecución. Más tarde cuando el monitor quede libre nuevamente el thread que cedió el lock volverá a ejecutar.
Ventajas:
  • El thread que reanuda la ejecución puede hacerlo inmediatamente sin fijarse si la condición se cumple, porque desde que se ejecutó cond_signal hasta que llegó su turno de ejecutar ningún proceso puede cambiarla.
  • El thread despertado ya estaba esperando desde antes, por lo que podría suponerse que es más urgente ejecutarlo a seguir con el proceso despertante.
Desventajas:
  • Si el proceso que ejecuta cond_signal no terminó con su ejecución se necesitarán dos cambios de contexto para que vuelva a tomar el lock del monitor.
  • Al despertar a un thread que espera en una variable de condición, se debe asegurar que reanude su ejecución inmediatamente. De otra forma, algún otro thread podría cambiar la condición. Esto implica que la planificación debe ser muy fiable, y dificulta la implementación.

 Tipo Mesa

Butler W. Lampson y David D. Redell en 1980 desarrollaron una definición diferente de monitores para el lenguaje Mesa que lidia con las desventajas de los monitores de tipo Hoare y añade algunas características.
En los monitores de Lampson y Redell el thread que ejecuta cond_signal sobre una variable de condición continúa con su ejecución dentro del monitor. Si hay otro thread esperando en esa variable de condición, se lo despierta y deja como listo. Podrá intentar entrar el monitor cuando éste quede libre, aunque puede suceder que otro thread logre entrar antes. Este nuevo thread puede cambiar la condición por la cual el primer thread estaba durmiendo. Cuando reanude la ejecución el durmiente, debería verificar que la condición efectivamente es la que necesita para seguir ejecutando. En el proceso que durmió, por lo tanto, es necesario cambiar la instrucción if por while, para que al despertar compruebe nuevamente la condición, y de no ser cierta vuelva a llamar a cond_wait.
Además de las dos primitivas cond_wait(c) y cond_signal(c), los monitores de Lampson y Redell poseen la función cond_broadcast(c), que notifica a los threads que están esperando en la variable de condición c y los pone en estado listo. Al entrar al monitor, cada thread verificará la condición por la que estaban detenidos, al igual que antes.
Los monitores del tipo Mesa son menos propensos a errores, ya que un thread podría hacer una llamada incorrecta a cond_signal o a cond_broadcast sin afectar al thread en espera, que verificará la condición y seguirá durmiendo si no fuera la esperada
como funcionan:
muestran las imagenes y lo que queremos ver.

No hay comentarios:

Publicar un comentario