Está en la página 1de 6

Repblica Bolivariana de Venezuela Ministerio del Poder Popular para la Educacin Universitaria Universidad Politcnica Territorial de Aragua Extensin

Maracay

Coordinacin y Sincronizacin de Procesos

Maracay, 05 de julio de 2011

Introduccin De los sistemas operativos multiprogramados nace el concepto de proceso, coligado a la realizacin o ejecucin de un programa. En general, un proceso es un flujo de ejecucin, representado bsicamente por un contador de programa, y su contexto de ejecucin, que puede ser ms o menos amplio. As un proceso incluye en su contexto el estado de la pila, el estado de la memoria y el estado de la E/S, mientras que un hilo (thread) tpico tiene como contexto propio poco ms que la pila. En algunos sistemas es posible determinar el contexto propio de un proceso en el momento de su creacin, como ocurre con la llamada al sistema clone () de Linux. Uno objetivo del sistema operativo

multiprogramado es la planificacin del uso del recurso o de los recursos de proceso. Los criterios que se siguen para la planificacin y las polticas que se usan se estudiarn ms adelante en el transcurso de la presente investigacin. En dicho trabajo de investigacin se conceptualiza algunos temas como los son para seccin critica, as como la descripcin detallada de algunos de los principales modelos de sincronizacin tales como los semforos y describir algunas de las propiedades de los sistemas multiprogamados como lo es la concurrencia, para finalmente estudiar la estructura de datos en especifico de

monitores, sus componentes, tipos y sus ventajas y desventajas de los mismos

Semforos: Los semforos son una solucin, del tipo soporte al sistema operativo para garantizar la exclusin mutuaUn semforo es una estructura diseada para sincronizar doso ms threads o procesos, de modo que su ejecucin serealice de forma ordenada y sin conflictos entre ellosUn semforo nos sirve para poder permitir o restringir a losprocesos o hilos el acceso a algn recurso compartido Un semforo bsico es una estructura formada por unaposicin de memoria y dosinstrucciones, una para reservarloy otra para liberarlo. A esto se le puede aadir una cola dethreads para recordar el orden en que se hicieron las peticiones Monitores: Los monitores son estructuras de datos utilizadas en lenguajes de programacin para sincronizar dos o ms procesos o hilos de ejecucin que usan recursos compartidos. En el estudio y uso de los semforos se puede ver que las llamadas a las funciones necesarias para utilizarlos quedan repartidas en el cdigo del programa, haciendo difcil corregir errores y asegurar el buen funcionamiento de los algoritmos. Para evitar estos inconvenientes se desarrollaron los monitores. El concepto de monitor fue definido por primera vez por Charles Antony Richard en un artculo del ao 1974. La estructura de los monitores se ha implementado en varios lenguajes de programacin, incluido Pascal concurrente, Modula-2, Modula-3 y Java, y como biblioteca de programas. Concurrencia: En computacin, la concurrencia es la propiedad de los sistemas que permiten que mltiples procesos sean ejecutados al mismo tiempo, y que potencialmente puedan interactuar entre s. Los procesos concurrentes pueden ser ejecutados realmente de forma simultnea, slo cuando cada uno es ejecutado en diferentes procesadores. En cambio, la concurrencia es simulada si slo existe un procesador encargado de ejecutar los procesos concurrentes, simulando la concurrencia, ocupndose de forma alternada en uno y otro proceso a pequesimos intervalos de tiempo. De esta manera simula que se estn ejecutando a la vez.

Debido a que los procesos concurrentes en un sistema pueden interactuar entre otros tambin en ejecucin, el nmero de caminos de ejecucin puede ser extremadamente grande, resultando en un comportamiento sumamente complejo. Las dificultades asociadas a la concurrencia han sido pensadas para el desarrollo de lenguajes de programacin y conceptos que permitan hacer la concurrencia ms manejable. Exclusin Mutua en Secciones Crticas La exclusin mutua la podramos definir como una operacin de control que permite la coordinacin de procesos concurrentes, y que tiene la capacidad de prohibir a los dems procesos realizar una accin cuando un proceso haya obtenido el permiso. El control de la competencia involucra al sistema operativo inevitablemente, porque es el sistema operativo el que asigna los recursos. Adems, los procesos deben ser capaces por s mismos de expresar de algn modo los requisitos de exclusin mutua, como puede ser bloqueando los recursos antes de usarlos. Los algoritmos de exclusin mutua (comnmente abreviada como mutex por mutual exclusin) se usan en programacin concurrente para evitar que fragmentos de cdigo conocidos como secciones crticas accedan al mismo tiempo a recursos que no deben ser compartidos.

Debido a la complejidad de los temas decidimos explicar detalladamente la parte de monitores. Los monitores son estructuras de datos utilizadas en lenguajes de programacin para sincronizar dos o ms procesos o hilos de ejecucin que usan recursos compartidos, los monitores tienen cuatro componentes los cuales son inicializacin, datos privados, procedimientos del monitor y cola de entrada.
La inicializacin contiene el cdigo a ser ejecutado cuando el monitor es creado,

los datos privados contienen los procedimientos privados, que slo pueden ser usados desde dentro del monitor y no son visibles desde fuera, los procedimientos del monitor son los procedimientos que pueden ser llamados desde fuera del monitor y las cola de entrada contienen a los threads que han llamado a algn procedimiento del monitor pero no han podido adquirir permiso para ejecutarlos an.
y

Componentes :

Un monitor tiene cuatro componentes: procedimientos del monitor y cola de entrada.

inicializacin,

datos

privados,

*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.
y

Tipos de monitores.

Antes se dijo que una llamada a la funcin cond_signal con una variable de condicin haca que un proceso que estaba esperando por esa condicin reanudara su ejecucin. Ntese que el thread que reanuda su ejecucin necesitar obtener nuevamente el lock del monitor. Surge la siguiente pregunta: qu sucede con el thread que hizo el cond_signal? pierde el lock para drselo al thread que esperaba? qu thread contina con su ejecucin? Cualquier solucin debe garantizar la exclusin mutua. Segn quin contina con la ejecucin, se diferencian dos tipos de monitores: *Hoare y Mesa. *Tipo Hoare.
y

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.
y

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.

Bibliografa

http://es.scribd.com/doc/15256170/Semaforos-Concurrencia http://www.alegsa.com.ar/Dic/concurrencia.php http://administraciondeprocesos-vera.blogspot.com/2008/10/241-exclusionmutua-en-secciones.html http://administraciondeprocesos-vera.blogspot.com/2008/10/2422-mecanismosde-monitores.html

También podría gustarte