descargas
¿En que consisten los monitores?
R.- Un monitor es un conjunto de procedimientos que proporciona el acceso con exclusión mutua a un recurso oconjunto de recursos (datos o dispositivos), se lo puede ver como una valla alrededor del recurso (o rescursos),de modo que los procesos que quieran utilizarlo deben entrar dentro de ella.
Muchas procesos puden querer entrar en distintos instantes de tiempo, pero sólo permite que entre un proceso cada vez debiéndose esperar a que salga el que está dentro antes que otro pueda entrar.
Un monitores una estructura formada por una cabecera que los identifica, un conjunto de variables globales a todos los procedimientos del monitor, un conjunto de procedimientos y un bloque de inicialización, el cual se ejecuta una única vez, cuando se crea el monitor.
{ nombre
{ variables globales accesibles desde todos los procedimientos
{ procedimiento A
{ procedimiento B
{ { inicialización (solo se ejecuta una vez)
El recurso que queremos compartir (S.C.) se declara como monitor y en él se incluyen todas las operaciones que afecten a dicho recurso. Los procesos que usan el monitor se sitúan de forma independiente y cuando deseen usar el recurso, llamarán al procedimiento del monitor que implemente la operación que desea ejecutar. Para resolver la sincronización seutilizan dos instrucciones, wait (bloquea siempre) y signal, y actúan sobre variables condición que son colas y además no tienen valor.
cwait (c): suspende la ejecución del proceso que llama bajo la condición c. El monitor está ahora disponible para ser usado por otros procesos.
csignal(c): reanuda la ejecución de algún proceso suspendido después de uncwait bajo la misma condición. Si hay variosprocesos, se elige uno de ellos; si no hay ninguno, no hace nada.
Las colas son un tipo de variables que son el lugar donde almacenaremos los procesos que hayan quedado suspendidos bajo un .wait. y estén a la espera de ser "despertados".
En el caso de que dentro de un monitor un proceso se quede bloqueado con un wait por lo cual se bloquea y no dejaría ejecutarse a otro proceso, el SO despierta aotro proceso cuya última instrucción haya sido un signal y además vale la condición que hace que se bloqueen los procesos.
Habrá algunos casos en los que nos apoyemos en una variable booleana para garantizar la exclusión mutua sobre una variable con una sola instancia. También habrá casos en los que utilicemos un contador.
- Juan Carlos Salamanca G.
- Ronald J. Escobar Cruz
- Ricardo RiveraB.
3333333333333333333333333333333333333333333333333333333333333333333
1. Introducción.
En un sistema multiprogramado con un único procesador, losprocesos se intercalan en el tiempo (i.e. Round Robin) para darapariencia de ejecución simultánea. Aunque no se consigue unprocesado en paralelo real, y aunque se produce un sobrecargadoen la cpu por el hecho de tener que cambiar detareaconstantemente, las ventajas de todo esto son muy elevadas. Ejemplo: avion-torre, chat's, etc.
Uno de los grandes problemas que nos podemos encontrar es queel hecho de compartir recursos está lleno de riesgos. Por ejemplo,si dos procesos hacen uso al mismo tiempo de una variable globaly ambos llevan a cabo tanto operaciones de lectura como deescritura sobre dicha variable, el orden en que se ejecuten...
Regístrate para leer el documento completo.