¿En que consiste?. Es un modelo de concurrencia en el que múltiples threads o tareas tienen acceso simultáneo a variables o estructuras de datos mutables. Para evitar condiciones de carrera, se utilizan mecanismos de sincronización como bloqueos (locks), semáforos o monitores.
¿Que es el estado?. El estado es el valor de las variables y de los datos en un momento de la ejecución.
¿Que quiere decir mutable?. Quiere decir que se puede modificar.
¿Que quiere decir compartido?. Quiere decir que los múltiples procesos secuenciales comparten el dato.
¿Como se accede a un recurso compartido?. Se debe serializar para controlar el acceso a las variables compartidas. Podemos marcar regiones de código que no pueden superponerse en la ejecución al mismo tiempo. De esta forma, si se está ejecutando algún procedimiento en el conjunto, entonces cualquier otro proceso que intente ejecutar cualquier procedimiento en el conjunto será obligado a esperar hasta que la primera ejecución haya terminado.
¿En que consiste?. Consiste en dos etapas. Una primer etapa de Fork y una segunda etapa de Join. Básicamente una tarea principal se descompone en sub-tareas independientes. Luego, cada sub-tarea se ejecuta de forma concurrente, y al finalizar todas, sus resultados se combinan para producir la solución al problema principal.
¿En que condiciones se puede aplicar?. Es aplicable cuando:
¿Cual es el procedimiento?.