Anda di halaman 1dari 13

SISTEMAS OPERATIVOS

FERNANDO DE LOS REYES

INTEGRANTES DEL EQUIPO: DIAZ CUEVAS NEFTALY ROA LOZA SELENE MENDEZ LEMUS ISABEL GUZMAN MORENO DANIEL

TEMA: MONITORES

FECHA DE ENTREGA: 13 DE MAYO DEL 2011

INDICE Contenido
INDICE .................................................................................................................... 2 INTRODUCCION .................................................................................................... 3 MONITORES........................................................................................................... 4 CARACTERISTICAS ............................................................................................... 4 COMPONENTES .................................................................................................... 5 VENTAJAS .............................................................................................................. 5 DESVENTAJAS ...................................................................................................... 5 IMPLEMENTACIN ................................................................................................ 7 OPERACIN K.WAIT ............................................................................................. 8 OPERACIN K.SIGNAL ......................................................................................... 8 TIPOS DE MONITORES ......................................................................................... 9 EXCLUSIN MUTUA EN UN SISTEMA OPERATIVO ......................................... 10 CONCLUSION ...................................................................................................... 12 BIBLIOGRAFIA ..................................................................................................... 13

INTRODUCCION
En el presente trabajo se habla sobre los monitores en relacin con la comunicacin entre procesos. Los monitores se disearon para resolver problemas de sincronizacin en un sistema mono o multiprocesador, es decir, un sistema con una o varias CPU's que tienen acceso a una memoria compartida. La comunicacin se logra compartiendo una zona de memoria donde los procesos guardan informacin, los monitores se utilizan para sincronizar el acceso a dicha zona. Si pasamos a un sistema distribuido, con varias CPU's, cada una con su memoria privada, este mecanismo de comunicacin entre procesos ya no se puede aplicar. Los monitores sirven para la sincronizacin, pero no para el intercambio de informacin entre procesos. Se describen las caractersticas asociadas a los monitores as como sus componentes. Se muestran varias ventajas como desventajas de usar monitores. La implementacin de estos mismos y sus tipos.

MONITORES
Un monitor es una estructura formada por una cabecera que los identifica, un conjunto de variables globales a todos los procedimientos de monitor, un conjunto de procedimientos y un bloque de inicializacin, el cual se ejecuta una nica vez, cuando se crea el monitor. Nombre Variables globales accesibles desde todos los procedimientos Procedimiento A Procedimiento B Inicializacin (solo se ejecuta una vez)

Un monitor es una estructura software que consta de datos locales uno o ms procedimientos un cdigo de inicializacin

CARACTERISTICAS
Las variables de datos locales slo pueden ser accedidas por los procedimientos del monitor La implementacin del monitor garantiza que slo un proceso puede estar ejecutando cdigo del monitor en un instante dado (es decir, los procedimientos del monitor se ejecutan en exclusin mutua) existe un tipo de variables, denominadas variables condition, para la sincronizacin de los procesos. Sobre una variable condition solo se pueden hacer las operaciones wait y signal la operacin wait sobre una variable condition x deja al proceso que la hace en espera. La denotaremos por x.wait (puede encontrarse tambin wait(x) cwait(x)) la operacin signal sobre una variable condition x saca de la espera a uno de los procesos que han hecho x.wait; si no hay procesos en espera no tiene efecto. La denotaremos por x.signal (signal (x), csignal(x)),

COMPONENTES
Inicializacin: contiene el cdigo a ser ejecutado cuando el monitor es creado Datos privados: contiene los procedimientos privados, que slo 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 algn procedimiento del monitor pero no han podido adquirir permiso para ejecutarlos an.

VENTAJAS
El control de los recursos est centralizado en el monitor, lo que hace que sea ms fcil su mantenimiento. A diferencia de los semforos que se cdigo queda distribuido en varias partes del programa. Provee una mayor proteccin a las variables de control.

DESVENTAJAS
Los monitores tienen exclusividad de uso, es decir, la concurrencia est limitada si muchos procesos hacen uso del mismo monitor. El uso de monitores es bastante costoso, porque se pierde eficiencia por tanto bloqueo de los procesos.

Un monitor se describe de la siguiente forma:

type nombre_monitor = monitor var declaracin de variables procedure entry P1 () begin end; procedure entry P2 () begin end; procedure entry Pn () begin end; begin cdigo de inicializacin end;

IMPLEMENTACIN
Para su implementacin hay que conseguir: exclusin mutua entre los procedimientos del monitor implementar correctamente las operaciones sobre las variables condition Considrese la siguiente cadena de sucesos: Un proceso A est detenido porque ha hecho wait sobre una variable condition x (x.wait). Un proceso B hace x.signal

La definicin de monitor indica que A ha de salir de la espera, pero teniendo en cuenta que dos procesos no pueden ejecutar simultneamente cdigo del monitor hay varios posibles planteamientos: a) La instruccin signal solo puede ocurrir como ltima instruccin dentro de un procedimiento del monitor (o lo que es anlogo, equivale a hacer signal y salir del procedimiento del monitor) b) A espera a que B salga del monitor o haga wait sobre una variable condition c) B espera a que A salga del monitor o haga wait sobre una variable condition Se implementa el planteamiento c (Hoare) por ser el ms general Esta implementacin tiene los siguientes elementos: Cdigo para cada procedimiento del monitor Cdigo para la operacin wait Cdigo para la operacin signal Variables compartidas mutex sig contsig Semforo de exclusin mutua dentro del monitor Semforo donde esperan los que han hecho signal Contador de los procesos que esperan en sig

OPERACIN K.WAIT
k_sem k_cont Semforo donde esperan los que han hecho k.wait Contador de procesos en k_sem

OPERACIN K.SIGNAL

TIPOS DE MONITORES
Tipo Hoare En la definicin 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 ejecucin. Ms tarde cuando el monitor quede libre nuevamente el thread que cedi el lock volver a ejecutar. Ventajas:

El thread que reanuda la ejecucin puede hacerlo inmediatamente sin fijarse si la condicin se cumple, porque desde que se ejecut cond_signal hasta que lleg su turno de ejecutar ningn proceso puede cambiarla. El thread despertado ya estaba esperando desde antes, por lo que podra suponerse que es ms urgente ejecutarlo a seguir con el proceso despertante.

Desventajas:

Si el proceso que ejecuta cond_signal no termin con su ejecucin se necesitarn dos cambios de contexto para que vuelva a tomar el lock del monitor. Al despertar a un thread que espera en una variable de condicin, se debe asegurar que reanude su ejecucin inmediatamente. De otra forma, algn otro thread podra cambiar la condicin. Esto implica que la planificacin debe ser muy fiable, y dificulta la implementacin.

Tipo Mesa Butler W. Lampson y David D. Redell en 1980 desarrollaron una definicin diferente de monitores para el lenguaje Mesa que lidia con las desventajas de los monitores de tipo Hoare y aade algunas caractersticas. En los monitores de Lampson y Redell el thread que ejecuta cond_signal sobre una variable de condicin contina con su ejecucin dentro del monitor. Si hay otro thread esperando en esa variable de condicin, 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 condicin 9

por la cual el primer thread estaba durmiendo. Cuando reanude la ejecucin el durmiente, debera verificar que la condicin efectivamente es la que necesita para seguir ejecutando. En el proceso que durmi, por lo tanto, es necesario cambiar la instruccin if por while, para que al despertar compruebe nuevamente la condicin, y de no ser cierta vuelva a llamar a cond_wait. Adems de las dos primitivas cond_wait(c) y cond_signal(c), los monitores de Lampson y Redell poseen la funcin cond_broadcast(c), que notifica a los threads que estn esperando en la variable de condicin cy los pone en estado listo. Al entrar al monitor, cada thread verificar la condicin por la que estaban detenidos, al igual que antes. Los monitores del tipo Mesa son menos propensos a errores, ya que un thread podra hacer una llamada incorrecta a cond_signal o a cond_broadcast sin afectar al thread en espera, que verificar la condicin y seguir durmiendo si no fuera la esperada.

EXCLUSIN MUTUA EN UN SISTEMA OPERATIVO


En un sistema multiprogramado con un nico procesador, los procesos se intercalan en el tiempo (i.e. Round Robin) para dar apariencia de ejecucin simultnea. Aunque no se consigue un procesado en paralelo real, y aunque se produce un sobrecargado en la cpu por el hecho de tener que cambiar de tareaconstantemente, las ventajas de todo esto son muy elevadas. Uno de los grandes problemas que nos podemos encontrar es que el hecho de compartir recursos est lleno de riesgos. Por ejemplo,si dos procesos hacen uso al mismo tiempo de una variable global y ambos llevan a cabo tanto operaciones de lectura como de escritura sobre dicha variable, el orden en que se ejecuten estaslecturas y escrituras es crtico, puesto que se ver afectado elvalor de la variable. Concepto de exclusin mutua.

Consiste en que un solo proceso excluye temporalmente a todos los dems para usar un recurso compartido de forma que garantice la integridad del sistema.

10

Concepto de seccin crtica.

Es la parte del programa con un comienzo y un final claramente marcados que generalmente contiene la actualizacin de una o ms variables compartidas. Para que una solucin al problema de la exclusin mutua sea vlida, se tienen que cumplir una serie de condiciones: o Hay que garantizar la exclusin mutua entre los diferentes procesos a la hora de acceder al recurso compartido. No puede haber en ningn momento dos procesos dentro de sus respectivas secciones crticas. o No se deben hacer suposiciones en cuanto a la velocidad relativa de los procesos en conflicto. o Ningn proceso que est fuera de su seccin crtica debe interrumpir a otro para el acceso a la seccin crtica. o Cuando ms de un proceso desee entrar en su seccin crtica, se le debe conceder la entrada en un tiempo finito, es decir, que nunca se le tendr esperando en un bucle que no tenga final.

11

CONCLUSION
Se lleg a la conclusin de que un monitor es un mdulo que encapsula" algn recurso compartido o los procedimientos de acceso a dicho recurso, cuando este no puede ser arbitrariamente utilizado por los procesos del sistema. De esta forma, cualquier proceso que quiera utilizar el recurso tiene que pedir permiso al monitor y, cuando ya no necesite el recurso, debe devolver el permiso, para que el monitor registre que ya no lo est utilizando. Si bien los monitores resuelven problemas de concurrencia de manera ms fiable que los semforos, la mayora de los lenguajes de programacin carecen de ellos. Los monitores son de un nivel muy alto para solucionar los problemas de excusin mutua. Adems, estn concebidos para sistemas con mltiples CPUs, y memoria compartida. No funcionan en sistemas distribuidos, con procesos repartidos en distintas memorias.

12

BIBLIOGRAFIA
http://www.dc.fi.udc.es/ai/~soto/sist_oper/monitores.htm http://books.google.com/books?id=g88A4rxPH3wC&pg=RA1PA115&dq=Monitores+Sistemas+Operativos&hl=es&ei=ooXITf3dA4qqsAP4pKCo Aw&sa=X&oi=book_result&ct=result&resnum=1&ved=0CDUQ6AEwAA#v=onepag e&q=Monitores%20Sistemas%20Operativos&f=false

13

Anda mungkin juga menyukai