jueves, 14 de octubre de 2010

concurrencia de procesos


Concurrencia con exclusión mutua y sincronización
Concurrencia:
Es la propiedad de los sistemas que permite que múltiples procesos sean ejecutados al mismo tiempo y que potencialmente puedan interactuar entre sí.
Concurrencia con exclusión mutua:
            Es la comunicación requerida entre dos o más procesos que se están ejecutando en paralelo y que necesitan a la vez el uso de un recurso no compartible. Consiste en asignar el recurso no compartible a sólo uno de los procesos mientras que los otros deben permanecer a la espera hasta que finalice la utilización de dicho recurso por el proceso al que se le asigno. Cuando este proceso termine el recurso será asignado a uno de los procesos en espera. Se asegura el correcto uso de los recursos.
Concurrencia con sincronización
            Es la comunicación requerida entre dos o más procesos con el fin de sincronizar sus actividades. Un proceso llega a un punto y no puede proseguir su ejecución hasta que otro proceso haya llegado a otro punto de su ejecución. 
Principios generales de la concurrencia
1.-En un sistema multiprogramado con un único procesador, los procesos se intercalan en el tiempo aparentando una ejecución simultánea. Aunque no se logra un procesamiento paralelo y produce una sobrecarga en los intercambios de procesos, la ejecución intercalada produce beneficios en la eficiencia del procesamiento y en la estructuración de los programas.
2.-La intercalación y la superposición pueden contemplarse como ejemplos de procesamiento concurrente en un sistema monoprocesador, los problemas son consecuencia de la velocidad de ejecución de los procesos que no pueden predecirse y depende de las actividades de otros procesos, de la forma en que el sistema operativo trata las interrupciones surgen las siguientes dificultades:
3.-Compartir recursos globales es riesgoso Para el sistema operativo es difícil gestionar la asignación óptima de recursos. Las dificultades anteriores también se presentan en los sistemas multiprocesador.
4.-El hecho de compartir recursos ocasiona problemas, por esto es necesario proteger a dichos recursos.
5.-Los problemas de concurrencia se producen incluso cuando hay un único procesado

Soluciones de exclusión mutua a través de software y hardware
Soluciones por software
Pueden implementarse soluciones de software para los procesos concurrentes que se ejecuten en máquinas monoprocesador o multiprocesador con memoria principal compartida.
ALGORITMO DE DEKKER: La solución se desarrolla por etapas. Este método ilustra la mayoría de los errores habituales que se producen en la construcción de programas concurrentes.
ALGORITMO DE PETERSON: El algoritmo de Deker resuelve el problema de la exclusión mutua pero mediante un programa complejo, difícil de seguir y cuya corrección es difícil de demostrar. Peterson ha desarrollado una solución simple y elegante. Como antes, la variable global señal indica la posición de cada proceso con respecto a la exclusión mutua y la variable global turno resuelve los conflictos de simultaneidad.
Soluciones por hardware
INHABILITACION DE INTERRUPCIONES: En una máquina monoprocesador, la ejecución de procesos concurrentes no puede superponerse; los procesos solo pueden intercalarse. Es más, un proceso continuará ejecutándose hasta que solicite un servicio el sistema operativo o hasta que sea interrumpido.
INSTRUCCIONES ESPECIALES DE MAQUINAS: en configuraciones multiprocesador, varios procesadores comparten el acceso a una memoria principal común. A nivel de hardware, como se ha mencionado, los accesos a posiciones de memoria excluyen otro acceso a la misma posición.