SYSO2 Wiki
Advertisement

Sincronización de Procesos[]

Es la coordinación y cooperación de un conjunto de procesos para asegurar la comparación de recursos de cómputo. La sincronización entre procesos es necesaria para prevenir y/o corregir errores de sincronización debidos al acceso concurrente a recursos compartidos, tales como estructuras de datos o dispositivos de E/S, de procesos contendientes. La sincronización entre procesos también permite intercambiar señales de tiempo (ARRANQUE/PARADA) entre procesos cooperantes para garantizar las relaciones específicas de precedencia impuestas por el problema que se resuelve. En muchos casos, los procesos se reúnen para realizar tareas en conjunto, a este tipo de relación se le llama procesos cooperativos. Para lograr la comunicación, los procesos deben sincronizarse, de no ser así pueden ocurrir problemas no deseados. Sin una sincronización adecuada entre procesos, la actualización de variables compartidas puede inducir a errores de tiempo relacionados con la concurrencia que son con frecuencia difíciles de depurar. Una de las causas principales de este problema es que procesos concurrentes puedan observar valores temporalmente inconsistentes de una variable compartida mientras se actualizan.

Condiciones de corrida

Son el resultado de accesos no controlados a datos compartidos. Estos accesos no controlados producen resultados inesperados (ya que por ejemplo un proceso puede pisar los datos de otro).

Las condiciones de corrida vienen como resultado del acceso compartido de los recursos. Cuando dos hilos de ejecución tienen que trabajar con la misma estructura de datos (o recurso de hardware) la posibilidad de mezcla existe.

Abrazo Mortal

Es el bloqueo permanente de un conjunto de procesos o hilos de ejecución en un sistema concurrente que compiten por recursos del sistema o bien se comunican entre ellos.​ ​ A diferencia de otros problemas de concurrencia de procesos, no existe una solución general para los Inter bloqueos.

Representación de Bloqueos Mutuos usando grafos

El Bloqueo mutuo también puede ser representado usando grafos dirigidos, donde el proceso es representado por un cuadrado y el recurso, por un círculo. Cuando un proceso solicita un recurso, una flecha es dirigida desde el proceso al recurso. En cambio, cuando un recurso está asignado a un proceso, una flecha es dirigida del recurso al proceso.

Ø  Condiciones Necesarias

También conocidas como condiciones de Coffman por su primera descripción en 1971 en un artículo escrito por E. G. Coffman.3​

Estas condiciones deben cumplirse simultáneamente y no son totalmente independientes entre ellas.

Sean los procesos P0, P1,..., Pn y los recursos R0, R1,..., Rm:

·         Condición de exclusión mutua: existencia de al menos de un recurso compartido por los procesos, al cual solo puede acceder uno simultáneamente.

·         Condición de retención y espera: al menos un proceso Pi ha adquirido un recurso Ri, y lo retiene mientras espera al menos un recurso Rj que ya ha sido asignado a otro proceso.

·         Condición de no expropiación: los recursos no pueden ser expropiados por los procesos, es decir, los recursos solo podrán ser liberados voluntariamente por sus propietarios.

·         Condición de espera circular: dado el conjunto de procesos P0...Pm(subconjunto del total de procesos original),P0está esperando un recurso adquirido por P1, que está esperando un recurso adquirido por P2,... ,que está esperando un recurso adquirido por Pm, que está esperando un recurso adquirido por P0. Esta condición implica la condición de retención y espera.

Advertisement