Introduccion a la concurrencia
Definición de concurrencia
Dos o más procesos decimos que son concurrentes, paralelos, o que se ejecutan concurrentemente,cuando son procesados almismo tiempo, es decir, que para ejecutar uno de ellos, no hace falta que se haya ejecutado otro.
En sistemas multiprocesador, esta ejecución simultánea podría conseguirsecompletamente, puesto que podremos asignarle, por ejemplo, un proceso A al procesador A y un proceso B al procesador B y cada procesador realizaran la ejecución de su proceso.
Cuando tenemos un soloprocesador se producirá un intercalado delas instrucciones de ambos procesos, de tal forma que tendremos la sensación de que hay un paralelismo en el sistema (concurrencia, ejecución simultánea de más de unproceso).
Exclusión mutua
En un sistema multiprogramado con un único procesador, los procesos se intercalan en el tiempo (i.e. Round Robin) para dar apariencia de ejecución simultánea. Aunque nose consigue un procesado en paralelo real, y aunque se produce un sobrecargado en la cpu por el hecho de tener que cambiar de tarea constantemente, 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 deuna variable global y ambos llevan a cabo tanto operaciones de lectura como de escritura sobre dicha variable, el orden en que se ejecuten estas lecturas y escrituras es crítico, puesto que se veráafectado el valor de la variable.
Concepto de condiciones de carrera:
Situaciones en las que dos o más procesos leen o escriben en un área de memoria compartida y el resultado final depende de losinstantes de ejecución de cada uno.
Esto se soluciona impidiendo que más de un proceso acceda simultáneamente a las
variables compartidas. Se soluciona garantizando la exclusión mutua.
Concepto de...
Regístrate para leer el documento completo.