monitores n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Monitores PowerPoint Presentation
Download Presentation
Monitores

Loading in 2 Seconds...

play fullscreen
1 / 10

Monitores - PowerPoint PPT Presentation


  • 207 Views
  • Uploaded on

Monitores. Universidad Fermín Toro Vicerrectorado Académico Facultad de Ingeniería Escuela de Ingeniería en computación . Román Carlis Páez Mariangel Alejo Yohana. Cabudare, noviembre de 2010. Monitores . Definición :

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Monitores' - berke


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
monitores
Monitores

Universidad Fermín Toro

Vicerrectorado Académico

Facultad de Ingeniería

Escuela de Ingeniería en computación

Román Carlis

Páez Mariangel

Alejo Yohana

Cabudare, noviembre de 2010

monitores1
Monitores

Definición:

El concepto de monitor fue definido por primera vez por Charles Antony Richard Hoare en un artículo del año 1974.

Son objetos destinados a ser usados sin peligro por más de un hilo de ejecución. La característica que principalmente los define es que sus métodos son ejecutados con exclusión mutua. Lo que significa, que en cada momento en el tiempo, un hilo como máximo puede estar ejecutando cualquiera de sus métodos.

componentes de un monitor
Componentes de un monitor

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 threads que han llamado a algún procedimiento del monitor pero no han podido adquirir permiso para ejecutarlos aún.
exclusi n mutua en un monitor
Exclusión mutua en un monitor

Los monitores están 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.

El monitor hace cumplir la exclusión mutua implícitamente, de modo que sólo un procedimiento esté siendo ejecutado a la vez. De esta forma, si un thread llama a un procedimiento mientras otro thread está dentro del monitor, se bloqueará y esperará en la cola de entrada hasta que el monitor quede nuevamente libre.

Los monitores poseen variables de condiciónque son accesibles sólo desde adentro. Existen dos funciones para operar con las variables de condición:

slide5

cond_wait(c): suspende la ejecución del proceso que la llama con la condición c. El monitor se convierte en el dueño del lock y queda disponible para que otro proceso pueda entrar.

  • cond_signal(c): reanuda la ejecución de algún proceso suspendido con cond_waitbajo la misma condición. Si hay varios procesos con esas características elige uno. Si no hay ninguno, no hace nada.

Las variables de condición indican eventos, y no poseen ningún valor.

Si un thread tiene que esperar que ocurra un evento, se dice espera

por (o en) la variable de condición correspondiente. Si otro thread

provoca un evento, simplemente utiliza la función cond_signal con

esa condición como parámetro. De este modo, cada variable de

condición tiene una cola asociada para los threads que están

esperando que ocurra el evento correspondiente

estructura de un monitor
Estructura de un monitor
  • El monitor es un módulo de software
  • Características principales
    • Las variables de datos locales son accesibles sólo por el monitor
    • Procese entre monitor invocando unos de sus procedimientos
    • Sólo un procese pueda estar ejecutando en el monitor a la vez
tipos de monitores
Tipos de monitores

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.

Tipo Mesa:

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.

slide8

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.

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

slide9

Monitores y problema prod/consExclusión mutua es automática, el monitor garantiza que solo el productor o el consumidorestaranejecutandose Si el almacen esta totalmente ocupado, el productorrealizará una operación WAIT se encontrará bloqueado hasta que consumidor ejecute unSIGNAL Si el almacen esta totalmente vacio el consumidorrealizará una operación WAIT se encontrará bloqueado hasta que productor ejecute unSIGNAL

slide10

Monitores y problema prod/cons

monitor ProdCons

condition lleno, vacio;

integercont, N;

procedureproducir;

begin

if (cont = N) then

wait(lleno);

introducir_elemento;

cont := cont +1;

if (cont = 1) then

signal(vacio);

end;

procedureretirar;

begin

if (cont = 0) then

wait(vacio)

retirar_elemento;

cont := cont-1

if (cont = N-1) then

signal(lleno);

end;

cont := 0; N=100;

end monitor;